C example.
pInstance=
impact_InitProcess2(pLoginKey,pRadioName,pKeyId,pAccessKey,store_path.c_str(), params);
if (!pInstance) {
std::cerr << "Failed to create the process instance"<< std::endl;
return 1;
}
std::thread updater([pInstance](){
std::cerr << "impact_StartUpdateThread (no json port)" << std::endl;
std::cerr << "impact_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 (IMPACT_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
struct impact_CParameters * impact_NewParameters()
void impact_SetParameter(struct impact_CParameters *params, const char *name, const char *value)
struct impact_CInstance * impact_InitProcess2(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path, const struct impact_CParameters *parameters)
void impact_FreeParameters(struct impact_CParameters *params)
void impact_StartUpdateThread(struct impact_CInstance *instance, unsigned int port)
int impact_WaitUpdateThreadReady(struct impact_CInstance *instance, int milliseconds)
#define SOUND4_WEBSERVER_HTTPS_OK
uint64_t impact_Webserver(unsigned int listenport, unsigned int listenport_secure, struct impact_CInstance *instance)
int impact_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 impact_ProcessAudio(struct impact_CInstance *instance, const float *input, float *output)
#if (IMPACT_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 impact_ExitProcess(struct impact_CInstance *instance)
void impact_StopUpdateThread(struct impact_CInstance *instance)
int impact_Webserver_Stop(uint64_t id, int timeout_ms)