C example.
if (!pInstance) {
std::cerr << "Failed to create the process instance"<< std::endl;
return 1;
}
std::thread updater([pInstance](){
std::cerr << "cloudx1_StartUpdateThread (no json port)" << std::endl;
std::cerr << "cloudx1_StartUpdateThread END" << std::endl;
});
std::cerr << "Waiting update thread" << std::endl;
std::cerr << "Timeout to create the process instance"<< std::endl;
}
std::cerr << "Waiting update thread DONE" << std::endl;
#if (CLOUDX1_HAS_WEBSERVER)
std::cerr << "Starting web server" << std::endl;
int listenport= 8080;
int listenport_secure= 8443;
if (listenport || listenport_secure) {
std::cerr << "Starting web server FAILED" << std::endl;
} else {
if (listenport) {
std::cerr << "Web server listening on port " << listenport;
} else {
std::cerr << "Web server failed to listen on port " << listenport;
}
}
if (listenport_secure) {
std::cerr << "Web server listening on secure port " << listenport_secure;
} else {
std::cerr << "Web server failed to listen on secure port " << listenport_secure;
}
}
std::cerr << "Starting web server DONE" << std::endl;
}
}
#endif
void cloudx1_FreeParameters(struct cloudx1_CParameters *params)
void cloudx1_SetParameter(struct cloudx1_CParameters *params, const char *name, const char *value)
struct cloudx1_CParameters * cloudx1_NewParameters()
struct cloudx1_CInstance * cloudx1_InitProcess2(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path, const struct cloudx1_CParameters *parameters)
void cloudx1_StartUpdateThread(struct cloudx1_CInstance *instance, unsigned int port)
int cloudx1_WaitUpdateThreadReady(struct cloudx1_CInstance *instance, int milliseconds)
#define SOUND4_WEBSERVER_HTTPS_OK
uint64_t cloudx1_Webserver(unsigned int listenport, unsigned int listenport_secure, struct cloudx1_CInstance *instance)
int cloudx1_Webserver_Status(uint64_t id)
#define SOUND4_WEBSERVER_HTTP_OK
#define SOUND4_INVALID_WEBSERVER_ID
bool stopthread=false;
#if defined(_WIN32) || defined(WIN32)
_setmode(_fileno(stdin), _O_BINARY);
_setmode(_fileno(stdout), _O_BINARY);
#endif
while (!stopthread)
{
std::cerr << "ProcessLoop: input stopped"<< std::endl;
stopthread=true;
break;
}
if (stopthread) break;
std::cerr << "Failed to write audio output" << std::endl;
stopthread=true;
}
}
void cloudx1_ProcessAudio(struct cloudx1_CInstance *instance, const float *input, float *output)
#if (CLOUDX1_HAS_WEBSERVER)
std::cerr << "Stopping web server" << std::endl;
std::cerr << "Stopping web server DONE" << std::endl;
#endif
std::cerr << "Stopping Update thread" << std::endl;
std::cerr << "Stopping Update thread DONE" << std::endl;
updater.join();
void cloudx1_ExitProcess(struct cloudx1_CInstance *instance)
void cloudx1_StopUpdateThread(struct cloudx1_CInstance *instance)
int cloudx1_Webserver_Stop(uint64_t id, int timeout_ms)