temp
[apps/agl-service-homescreen.git] / src / homescreen.cpp
index c02f62b..c9ad6ef 100644 (file)
@@ -32,6 +32,23 @@ const char _display_message[] = "display_message";
 const char _reply_message[] = "reply_message";
 const char _keyData[] = "data";
 const char _keyId[] = "id";
+const char _keyHandshake[] = "handshake";
+const char _keyTimes[] = "times";
+const char _keySleep[] = "sleep";
+const char _hs_conf_json[] = "hs-conf.json";
+const char _lastmode_json[] = "lastmode.json";
+
+struct hs_config {
+    struct json_object *hs_conf;
+    struct json_object *lastmode;
+};
+static struct hs_config g_hs_config;
+
+const char _wm_event[] = "windowmanager/screenUpdated";
+static void screenUpdateCb(void *closure, const char *event, struct json_object* obj, afb_api_t api)
+{
+    AFB_WARNING("windowmanager/screenUpdated callback. obj=%s.", json_object_to_json_string(obj));
+}
 
 struct hs_instance {
   HS_ClientManager *client_manager;   // the connection session manager
@@ -70,6 +87,18 @@ int hs_instance::init(afb_api_t api)
     }
     app_info->init(api);
 
+    struct json_object *handshake_obj;
+    if(json_object_object_get_ex(g_hs_config.hs_conf, _keyHandshake, &handshake_obj) == 0) {
+        AFB_ERROR("get handshake failed.");
+        return -1;
+    }
+    else {
+        struct json_object *times_obj, *sleep_obj;
+        json_object_object_get_ex(handshake_obj, _keyTimes, &times_obj);
+        json_object_object_get_ex(handshake_obj, _keySleep, &sleep_obj);
+        AFB_WARNING("get handshake times=%d, sleep=%d", json_object_get_int(times_obj), json_object_get_int(sleep_obj));
+    }
+
     return 0;
 }
 
@@ -533,8 +562,20 @@ static const afb_verb_t verbs[]= {
  */
 static int preinit(afb_api_t api)
 {
-   AFB_DEBUG("binding preinit (was register)");
-   return 0;
+    AFB_DEBUG("binding preinit (was register)");
+    auto rootdir = std::string(getenv("AFM_APP_INSTALL_DIR"));
+    auto path = rootdir + "/etc/" + _hs_conf_json;
+    if(readJsonFile(path.c_str(), &g_hs_config.hs_conf) < 0) {
+        AFB_ERROR("read %s failed.", _hs_conf_json);
+        return -1;
+    }
+
+    path = rootdir + "/etc/" + _lastmode_json;
+    if(readJsonFile(path.c_str(), &g_hs_config.lastmode) < 0) {
+        AFB_ERROR("read %s failed.", _lastmode_json);
+        return -1;
+    }
+    return 0;
 }
 
 /**