From a3ee77ad41d2f12fff8556b140fd1df4b5618dc9 Mon Sep 17 00:00:00 2001 From: Tadao Tanikawa Date: Fri, 7 Dec 2018 00:57:55 +0000 Subject: [PATCH] POI: AGL LifeCycle Management Add test code of AGL LifeCycle Management Change-Id: I57994825697c0ec3ce937303804d9be8827d68da Signed-off-by: Tadao Tanikawa --- src/runxdg.cpp | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/runxdg.hpp | 2 ++ 2 files changed, 71 insertions(+) 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."); } diff --git a/src/runxdg.hpp b/src/runxdg.hpp index 595babe..565d860 100644 --- a/src/runxdg.hpp +++ b/src/runxdg.hpp @@ -150,6 +150,8 @@ class RunXDG LibHomeScreen *m_hs; ILMControl *m_ic; + LifeCycleObserver *m_lc; + t_ilm_surface m_ivi_id; std::map m_surfaces; // pair of -- 2.16.6