+ else if (CheckCommand(cmd, "sendencrypted")) {\r
+ CHECK_ARGS(2, "<room_id> <message>")\r
+\r
+ static char body[1024];\r
+ snprintf(body, 1024,\r
+ "{\"body\":\"%s\",\"msgtype\":\"m.text\"}",\r
+ args[1]);\r
+\r
+ MatrixClientSendEventEncrypted(client,\r
+ args[0],\r
+ "m.room.message",\r
+ body);\r
+ }\r
+ else if (CheckCommand(cmd, "sharesession")) {\r
+ CHECK_ARGS(3, "<session_index> <user_id> <device_id>")\r
+\r
+ int sessionIndex = atoi(args[0]);\r
+\r
+ MatrixClientShareMegolmOutSession(client,\r
+ args[1],\r
+ args[2],\r
+ &client->megolmOutSessions[sessionIndex]);\r
+ }\r
+ else if (CheckCommand(cmd, "printsessions")) {\r
+ for (int i = 0; i < client->numMegolmOutSessions; i++) {\r
+ printf("%d: %s\t%s\t%s\n", i,\r
+ client->megolmOutSessions[i].roomId,\r
+ client->megolmOutSessions[i].id,\r
+ client->megolmOutSessions[i].key);\r
+ }\r
+ }\r
+ else if (CheckCommand(cmd, "initsession")) {\r
+ CHECK_ARGS(1, "<room_id>")\r
+\r
+ MatrixMegolmOutSession * megolmOutSession;\r
+ if (! MatrixClientNewMegolmOutSession(client,\r
+ args[0],\r
+ &megolmOutSession))\r
+ {\r
+ printf("Maximum number of Megolm sessions reached (%d)\n", NUM_MEGOLM_SESSIONS);\r
+ }\r
+ }\r
+ \r
+ \r
+ else {\r
+ printf("Unknown command\n");\r
+ }\r