add handshake
[apps/agl-service-homescreen.git] / src / hs-proxy.h
index 8741e49..1c9a67d 100644 (file)
 #include <functional>
 #include "hs-helper.h"
 
-struct HS_AfmMainProxy {
+typedef void (*api_cb_func)(struct json_object *obj, const char *error, const char *info);
+
+class HS_AfmMainProxy {
+public:
     // synchronous call, call result in object
     int runnables(afb_api_t api, struct json_object **object);
     int detail(afb_api_t api, const std::string &id, struct json_object **object);
@@ -31,4 +34,32 @@ struct HS_AfmMainProxy {
     void start(afb_req_t request, const std::string &id);
 };
 
+class HS_WmProxy {
+public:
+
+    enum EventType
+    {
+        Event_Val_Min = 0,
+
+        Event_Active = Event_Val_Min,
+        Event_Inactive,
+
+        Event_Visible,
+        Event_Invisible,
+
+        Event_SyncDraw,
+        Event_FlushDraw,
+
+        Event_ScreenUpdated,
+        Event_Handshake,
+
+        Event_Error,
+
+        Event_Val_Max = Event_Error,
+    };
+
+    // asynchronous call, reply in callback function
+    void subscribe(afb_api_t api, EventType event, api_cb_func f = nullptr);
+};
+
 #endif // HOMESCREEN_PROXY_H
\ No newline at end of file