Hi, fellow Zoom developers,
After reviewing the latest posts on the forum, I was able to resolve the issue when I came across this post: Linux Meeting SDK example
First, I got my Crow HTTP server running in a separate thread.
Secondly, I integrated a GMainLoop into my main.cpp code:
#include <glib.h>
void sigHandler(int s)
{
cout << "Caught signal: " << s << endl;
httpServer->Stop();
exit(0);
}
int main() {
/* ... */
struct sigaction sigIntHandler{};
sigIntHandler.sa_handler = sigHandler;
sigemptyset(&sigIntHandler.sa_mask);
sigIntHandler.sa_flags = 0;
sigaction(SIGINT, &sigIntHandler, nullptr);
GMainLoop* loop = g_main_loop_new(nullptr, FALSE);
g_timeout_add(100, [](gpointer) -> gboolean {
return TRUE;
}, loop);
g_main_loop_run(loop);
return 0;
}
You will need to install the gtkmm-3.0
package and add it to your CMakeLists.txt along with glib-2.0
library.