X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Frunxdg.cpp;h=bdc9f93deacf35290d8f5a84c62ca60ca1bddc70;hb=refs%2Fheads%2Fsandbox%2Fruke47%2Flifecycle;hp=33d5324d7c143305313df4af3d45654e0368ad43;hpb=415e5cbb5787aa0429558b5256bf912231297431;p=staging%2Fxdg-launcher.git diff --git a/src/runxdg.cpp b/src/runxdg.cpp index 33d5324..bdc9f93 100644 --- a/src/runxdg.cpp +++ b/src/runxdg.cpp @@ -63,6 +63,11 @@ void debug(const char* format, ...) va_end(va_args); } +static void _activity_reply (int reply, json_object *msg_j) { + AGL_DEBUG("REPLY:reply=%d", reply); + AGL_DEBUG("REPLY:json %s", json_object_to_json_string(msg_j)); +} + void RunXDG::notify_ivi_control_cb (ilmObjectType object, t_ilm_uint id, t_ilm_bool created) { @@ -94,6 +99,47 @@ void RunXDG::notify_ivi_control_cb (ilmObjectType object, t_ilm_uint id, else AGL_DEBUG("ivi layer: %d destroyed.", id); } + + //static std::function reply = _reply; + AGL_DEBUG("REPLY: %p, %p", _activity_reply, &_activity_reply); + int ret; + ret = this->m_lc->getActivityStatus("hvac", &_activity_reply); + if (!ret) { + AGL_DEBUG("Success!! maybe reply late!!!"); + } else { + AGL_DEBUG("Error!! getActivityStatus(hvac)"); + } +#if 0 + { + //Test for AGL LifeCycle Management + const char* state; + int ret; + ret = this->m_wm->getActivityStatus("hvac", &state); + if (ret == 0) { + AGL_DEBUG("Check HVAC state (%s)", state); + } else { + AGL_DEBUG("Error!! getActivityStatus(hvac)"); + } + ret = this->m_wm->getActivityStatus("dashboard", &state); + if (ret == 0) { + AGL_DEBUG("Check Dashboard state (%s)", state); + } else { + AGL_DEBUG("Error!! getActivityStatus(dashboard)"); + } + ret = this->m_wm->getActivityStatus("mediaplayer", &state); + if (ret == 0) { + AGL_DEBUG("Check MediaPlayer state (%s)", state); + } else { + AGL_DEBUG("Error!! getActivityStatus(mediaplayer)"); + } + ret = this->m_wm->getActivityStatus("setting", &state); + if (ret == 0) { + AGL_DEBUG("Check Settting state (%s)", state); + } else { + AGL_DEBUG("Error!! getActivityStatus(setting)"); + } + } +#endif } void RunXDG::notify_ivi_control_cb_static (ilmObjectType object, t_ilm_uint id, @@ -318,6 +364,27 @@ int RunXDG::init_wm (void) m_wm->set_event_handler(LibWindowmanager::Event_SyncDraw, h_syncdraw); m_wm->set_event_handler(LibWindowmanager::Event_FlushDraw, h_flushdraw); + // Test code of lifecycle + // Register lifecycle observer for 'HVAC' & 'Dashboard' + this->m_lc->registerActivityObserver("hvac"); + this->m_lc->registerActivityObserver("dashboard"); + + std::function< void(json_object*) > h_statusChanged = + [this](json_object* object) + { + json_object* j_state; + json_object* j_target; + if (!json_object_object_get_ex(object, "state", &j_state) || + !json_object_object_get_ex(object, "target", &j_target)) { + AGL_DEBUG("Get Event_StatusChanged but invalid"); + } else { + const char *state = json_object_get_string(j_state); + const char *target = json_object_get_string(j_target); + AGL_DEBUG("Get Event_StatusChanged(%s, %s)", state, target); + } + }; + + m_lc->set_event_handler(h_statusChanged); return 0; } @@ -453,6 +520,8 @@ RunXDG::RunXDG (int port, const char* token, const char* id) // Setup ilmController API m_ic = new ILMControl(notify_ivi_control_cb_static, this); + m_lc = new LifeCycleObserver; + AGL_DEBUG("RunXDG created."); }