int main(int argc, char* argv[]) { struct sigaction action; action.sa_handler = signalHandler; sigemptyset(&action.sa_mask); action.sa_flags = 0; sigaction(SIGTERM, &action, NULL); srand(time(NULL)); int i; i = isAppRunning(spAppNetflix, NULL ); printf("Netflix is %s\n", i ? "Running":"Not Running"); i = isAppRunning( spAppYouTube, spAppYouTubeMatch ); printf("YouTube is %s\n", i ? "Running":"Not Running"); // set all defaults setValue(spDefaultFriendlyName, spFriendlyName ); setValue(spDefaultModelName, spModelName ); setValue(spDefaultUuid, spUuid ); setValue(spDefaultNetflix, spNetflix ); setDataDir(spDefaultData); // Process command line options // Loop through pairs of command line options. for( i = 1; i < argc; i+=2 ) { int numberOfOptions = sizeof(gDialOptions) / sizeof(dial_options_t); while( --numberOfOptions >= 0 ) { int shortLen, longLen; shortLen = strlen(gDialOptions[numberOfOptions].pOption); longLen = strlen(gDialOptions[numberOfOptions].pLongOption); if( ( ( strncmp( argv[i], gDialOptions[numberOfOptions].pOption, shortLen ) == 0 ) || ( strncmp( argv[i], gDialOptions[numberOfOptions].pLongOption, longLen ) == 0 ) ) && ( (i+1) < argc ) ) { processOption( numberOfOptions, argv[i+1] ); break; } } // if we don't find an option in our list, bail out. if( numberOfOptions < 0 ) { printUsage(); exit(1); } } runDial(); return 0; }
static void youtube_stop(DIALServer *ds, const char *appname, DIAL_run_t run_id, void *callback_data) { printf("\n\n ** KILL YouTube **\n\n"); pid_t pid; if ((pid = isAppRunning( spAppYouTube, spAppYouTubeMatch ))) { kill(pid, SIGTERM); } }
static DIALStatus netflix_status(DIALServer *ds, const char *appname, DIAL_run_t run_id, int* pCanStop, void *callback_data) { // Netflix application can stop *pCanStop = 1; waitpid((pid_t)(long)run_id, NULL, WNOHANG); // reap child return isAppRunning( spAppNetflix, NULL ) ? kDIALStatusRunning : kDIALStatusStopped; }
static void netflix_stop(DIALServer *ds, const char *appname, DIAL_run_t run_id, void *callback_data) { int pid; pid = isAppRunning( spAppNetflix, NULL ); if( pid ) { printf("Killing pid %d\n", pid); kill((pid_t)pid, SIGTERM); waitpid((pid_t)pid, NULL, 0); // reap child } }
static DIALStatus netflix_start(DIALServer *ds, const char *appname, const char *args, size_t arglen, DIAL_run_t *run_id, void *callback_data) { int shouldRelaunchApp = 0; int payloadLen = 0; int appPid = 0; // only launch Netflix if it isn't running appPid = isAppRunning( spAppNetflix, NULL ); shouldRelaunchApp = shouldRelaunch( ds, appname, args ); // construct the payload to determine if it has changed from the previous launch payloadLen = strlen(args); memset( sQueryParam, 0, DIAL_MAX_PAYLOAD ); strcat( sQueryParam, defaultLaunchParam ); if( payloadLen ) { char * pUrlEncodedParams; pUrlEncodedParams = url_encode( args ); if( pUrlEncodedParams ) { strcat( sQueryParam, "&dial="); strcat( sQueryParam, pUrlEncodedParams ); free( pUrlEncodedParams ); } } printf("appPid = %s, shouldRelaunch = %s queryParams = %s\n", appPid?"TRUE":"FALSE", shouldRelaunchApp?"TRUE":"FALSE", sQueryParam ); // if its not running, launch it. The Netflix application should // never be relaunched if( !appPid ) { const char * const netflix_args[] = {spNetflix, "-Q", sQueryParam, 0}; return runApplication( netflix_args, run_id ); } else return kDIALStatusRunning; }
void LightingApp::mainLoop() { inpController.reset(new InputController()); inpController->setMouseSensetive(0.2f); inpController->setMoveSpeed(10.f); scenePtr.reset(createScene()); inpController->setSceneToControll(scenePtr.get()); currDrawTimeP = getAppRunDuration(); prevDrawTimeP = currDrawTimeP; while (isAppRunning()) { prevDrawTimeP = currDrawTimeP; currDrawTimeP = getAppRunDuration(); inpController->process(currDrawTimeP - prevDrawTimeP); scenePtr->update(); scenePtr->render(); surfaceSwapBuffers(); } }
static DIALStatus youtube_status(DIALServer *ds, const char *appname, DIAL_run_t run_id, int *pCanStop, void *callback_data) { // YouTube can stop *pCanStop = 1; return isAppRunning( spAppYouTube, spAppYouTubeMatch ) ? kDIALStatusRunning : kDIALStatusStopped; }
static DIALStatus youtube_hide(DIALServer *ds, const char *app_name, DIAL_run_t *run_id, void *callback_data) { return (isAppRunning( spAppYouTube, spAppYouTubeMatch )) ? kDIALStatusRunning : kDIALStatusStopped; }