Modify function argument from char to json
[src/libhomescreen.git] / sample / template / main.cpp
index 589d314..831df41 100644 (file)
@@ -90,29 +90,47 @@ int main(int argc, char *argv[])
         }
 
         // Application should call requestSurface at first
-        if (wm->requestSurface(myname.c_str()) != 0) {
+        json_object *obj = json_object_new_object();
+        json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str()));
+        if (wm->requestSurface(obj) != 0) {
             exit(EXIT_FAILURE);
         }
 
         // Set event handlers for each event
-        wm->set_event_handler(LibWindowmanager::Event_Active, [](char const *label) {
+        wm->set_event_handler(LibWindowmanager::Event_Active, [wm](json_object *object) {
+            const char *label = json_object_get_string(
+                json_object_object_get(object, wm->kKeyDrawingName));
             fprintf(stderr, "Surface %s got activated!\n", label);
         });
-        wm->set_event_handler(LibWindowmanager::Event_Inactive, [](char const *label) {
+        wm->set_event_handler(LibWindowmanager::Event_Inactive, [wm](json_object *object) {
+            const char *label = json_object_get_string(
+                json_object_object_get(object, wm->kKeyDrawingName));
             fprintf(stderr, "Surface %s got deactivated!\n", label);
         });
-        wm->set_event_handler(LibWindowmanager::Event_Visible, [](char const *label) {
+        wm->set_event_handler(LibWindowmanager::Event_Visible, [wm](json_object *object) {
+            const char *label = json_object_get_string(
+                json_object_object_get(object, wm->kKeyDrawingName));
             fprintf(stderr, "Surface %s got visible!\n", label);
         });
-        wm->set_event_handler(LibWindowmanager::Event_Invisible, [](char const *label) {
+        wm->set_event_handler(LibWindowmanager::Event_Invisible, [wm](json_object *object) {
+            const char *label = json_object_get_string(
+                json_object_object_get(object, wm->kKeyDrawingName));
             fprintf(stderr, "Surface %s got invisible!\n", label);
         });
-        wm->set_event_handler(LibWindowmanager::Event_SyncDraw, [wm](char const *label) {
-            fprintf(stderr, "Surface %s got syncDraw!\n", label);
+        wm->set_event_handler(LibWindowmanager::Event_SyncDraw, [wm](json_object *object) {
+            const char *label = json_object_get_string(
+                json_object_object_get(object, wm->kKeyDrawingName));
+            const char *area = json_object_get_string(
+                json_object_object_get(object, wm->kKeyDrawingArea));
+                fprintf(stderr, "Surface %s got syncDraw!\n", label);
             // Application should call LibWindowmanager::endDraw() in SyncDraw handler
-            wm->endDraw(label);
+            json_object *obj = json_object_new_object();
+            json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str()));
+            wm->endDraw(obj);
         });
-        wm->set_event_handler(LibWindowmanager::Event_FlushDraw, [](char const *label) {
+        wm->set_event_handler(LibWindowmanager::Event_FlushDraw, [wm](json_object *object) {
+            const char *label = json_object_get_string(
+                json_object_object_get(object, wm->kKeyDrawingName));
             fprintf(stderr, "Surface %s got flushDraw!\n", label);
         });
 
@@ -127,11 +145,16 @@ int main(int argc, char *argv[])
         hs->init(port, token.c_str());
 
         // Set event handler
-        hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [wm](const char* appname) {
+        hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [wm](json_object *object) {
+            const char *appname = json_object_get_string(
+                           json_object_object_get(object, "application_name"));
             if(myname == appname) {
                 qDebug("Surface %s got tapShortcut\n", appname);
                 // Application should call LibWindowmanager::endDraw() in TapShortcut handler
-                wm->activateSurface(myname.c_str());
+                               json_object *obj = json_object_new_object();
+                               json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str()));
+                               json_object_object_add(obj, wm->kKeyDrawingArea, json_object_new_string("normal.full"));
+                wm->activateSurface(obj);
             }
         });