## Building\r
\r
Building requires a C/C++ compiler and make.\r
+\r
To build the dependencies run `make deps`.\r
+All dependencies are included in this repository.\r
+\r
To build any of the examples run `make out/examples/<example>`.\r
+\r
To use the library:\r
- Add `src/matrix.c` to compilation\r
- Add either `src/matrix_http_mongoose.c` or `src/matrix_http_esp32.c` to compilation\r
- Add include path `ext/mjson/src/`\r
- Add include path `ext/mongoose/`\r
\r
+To build the example for the ESP32 start an ESP-IDF shell in esp32/esp_project or esp32/esp_project_riscv and run:\r
+- `idf.py build`\r
+- `idf.py flash`\r
+- `idf.py monitor`\r
+\r
+To use the library in an ESP-IDF project:\r
+- Add the matrix and olm components (can be found in `esp32/esp_project/components/`)\r
+- Add `wifi.c/.h` (can be found in `esp32/esp_project/main/`)\r
+- Add `SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")` to CMakeLists.txt\r
+- Call `wifi_init("<SSID>", "<PASSWORD>")` before initializing the library\r
+\r
## Dependencies\r
[Mongoose](https://github.com/cesanta/mongoose)\r
+\r
[mjson](https://github.com/cesanta/mjson)\r
+\r
[Olm](https://gitlab.matrix.org/matrix-org/olm)\r
\r
## Examples\r
\r
+### (De)Initialization\r
+```\r
+MatrixClient * client = (MatrixClient*)malloc(sizeof(MatrixClient));\r
+MatrixClientInit(client);\r
+\r
+MatrixHttpInit(&client->hc, SERVER);\r
+MatrixClientSetUserId(client, USER_ID);\r
+\r
+MatrixClientLoginPassword(client,\r
+ "pscho",\r
+ "Wc23EbmB9G3faMq",\r
+ "Test1");\r
+\r
+MatrixClientDeleteDevice(client);\r
+ \r
+MatrixHttpDeinit(&client->hc);\r
+```\r
+\r
+### Uploading keys\r
+```\r
+MatrixClientGenerateOnetimeKeys(client, 10);\r
+MatrixClientUploadOnetimeKeys(client);\r
+MatrixClientUploadDeviceKeys(client);\r
+```\r
+\r
### Sending an encrypted message\r
```\r
MatrixMegolmOutSession * megolmOutSession;\r