void fgPlatformMainLoopPostWork ( void ) { LOGI("fgPlatformMainLoopPostWork"); /* Stop all events */ screen_stop_events(fgDisplay.pDisplay.screenContext); #ifndef __PLAYBOOK__ navigator_stop_events(0); #endif }
void ActionScreenLock::execute(ExecutionState* state) { DataModelLogger* RUNLOG = state->getLogger(); state->getRuntimeResources()->bpsInitialize(); navigator_request_events(NAVIGATOR_DEVICE_LOCK_STATE); bps_event_t* event = state->getRuntimeResources()->bpsGetEvent(navigator_get_domain(), NAVIGATOR_DEVICE_LOCK_STATE); navigator_stop_events(NAVIGATOR_DEVICE_LOCK_STATE); if (event) { RUNLOG->debug(SSTR("Retrieved lock state event")); state->setUserProperty("LOCK_STATE", SSTR( TriggerScreenLock::lockStateToString( navigator_event_get_device_lock_state(event)))); } else { RUNLOG->error("Did not receive lock state information"); } }
/* * This method encapsulated the main BPS event loop -- all the details needed to * set it in place have been done in the initialize() method */ void NfcWorker::listen() { qDebug() << "XXXX NfcWorker::listen() entered ..."; int rc, domain; if (_failedToInitialize) { qDebug() << "XXXX NfcWorker::listen() terminating due to initialisation failure"; emit message("Terminating due to initialisation failure"); StateManager* state_mgr = StateManager::getInstance(); state_mgr->setDefaultState(); return; } _timeToDie = false; qDebug() << "XXXX NfcWorker::listen() entering event loop"; while (!_timeToDie) { bps_event_t *event; qDebug() << "XXXX Time(ms) : " << getSysTimeMs() << ": bps_get_event() - entering"; rc = bps_get_event(&event, BPS_EVENT_TIMEOUT); qDebug() << "XXXX Time(ms) : " << getSysTimeMs() << ": bps_get_event() - exited"; if (!rc) { if (event) { domain = bps_event_get_domain(event); if (nfc_get_domain() == domain) { handleNfcEvent(event); } else if (navigator_get_domain() == domain) { handleNavigatorEvent(event); } else if (_bpsInterruptDomain == domain) { unsigned int code; code = bps_event_get_code(event); switch (code) { case NfcWorker::TERMINATE: _timeToDie = true; _taskToPerform = NONE_SET; emit message("Got a custom BPS event to terminate"); qDebug() << "XXXX Got a custom BPS event to terminate."; break; case NfcWorker::WAKEUP: emit message("Got a custom BPS event to wake up"); qDebug() << "XXXX Got a custom BPS event to wake up."; break; default: emit message("Unrecognised custom BPS event"); qDebug() << "XXXX Unrecognised custom BPS event."; break; } } else { emit message("BPS event didn't match a wanted domain"); qDebug() << "XXXX BPS event didn't match a wanted domain"; } } else { qDebug() << "XXXX No events from BPS on this wakeup"; } } else { qDebug() << "XXXX NfcWorker::listen() bps_get_event rc=" << rc; emit message("Error getting BPS event"); qDebug() << "XXXX Error getting BPS event."; } } if (_navigatorExitReceived) { qDebug() << "XXXX Exiting listen() loop since got NAVIGATOR_EXIT event"; } qDebug() << "XXXX - exited listen loop - changing state"; StateManager* state_mgr = StateManager::getInstance(); state_mgr->setDefaultState(); // // NOTE: no need to call nfc_unregister_tag_readerwriter() since it gets // called on our behalf automatically if needed. // qDebug() << "XXXX Time(ms) : " << getSysTimeMs() << ": nfc_stop_events() - entering"; rc = nfc_stop_events(); qDebug() << "XXXX Time(ms) : " << getSysTimeMs() << ": nfc_stop_events() - exited"; qDebug() << "XXXX Time(ms) : " << getSysTimeMs() << ": navigator_stop_events() - entering"; rc = navigator_stop_events(0); qDebug() << "XXXX Time(ms) : " << getSysTimeMs() << ": navigator_stop_events() - exited"; qDebug() << "XXXX Time(ms) : " << getSysTimeMs() << ": bps_shutdown() - entering"; bps_shutdown(); qDebug() << "XXXX Time(ms) : " << getSysTimeMs() << ": bps_shutdown() - exited"; qDebug() << "XXXX NfcWorker::listen() BPS shutdown. Exiting listen()"; }