add new features in homescreen-service and homescreen
[src/libhomescreen.git] / include / libhomescreen.hpp
index 54662d4..0fed49f 100644 (file)
@@ -31,65 +31,87 @@ extern "C"
 class LibHomeScreen
 {
 public:
-    LibHomeScreen();
-    ~LibHomeScreen();
+       LibHomeScreen();
+       ~LibHomeScreen();
 
-    LibHomeScreen(const LibHomeScreen &) = delete;
-    LibHomeScreen &operator=(const LibHomeScreen &) = delete;
+       LibHomeScreen(const LibHomeScreen &) = delete;
+       LibHomeScreen &operator=(const LibHomeScreen &) = delete;
 
-    using handler_func = std::function<void(json_object*)>;
+       using handler_func = std::function<void(json_object*)>;
 
-    enum EventType {
-        Event_TapShortcut = 1,
-        Event_OnScreenMessage,
-        Event_OnScreenReply
-    };
+       enum EventType {
+               Event_ShowWindow = 1,
+               Event_TapShortcut = 1,
+               Event_OnScreenMessage,
+               Event_OnScreenReply,
+               Event_HideWindow,
+               Event_ReplyShowWindow,
+               Event_ShowNotification,
+               Event_ShowInformation
+       };
 
-    static const std::vector<std::string> api_list;
-    static const std::vector<std::string> event_list;
+       /* Key for json obejct */
+       const char *_keyParameter = "parameter";
+       const char *_keyArea = "area";
 
-    /* Method */
-    int init(const int port, const std::string& token);
+       /* display area */
+       const char *_areaNormal = "normal";
+       const char *_areaFullScreen = "fullscreen";
+       const char *_areaSplitMain = "split.main";
+       const char *_areaSplitSub = "split.sub";
 
-    int tapShortcut(const char* application_id);
-    int onScreenMessage(const char* display_message);
-    int onScreenReply(const char* reply_message);
+       static const std::vector<std::string> api_list;
+       static const std::vector<std::string> event_list;
 
-    void set_event_handler(enum EventType et, handler_func f);
+       /* Method */
+       int init(const int port, const std::string& token);
 
-    void registerCallback(
-        void (*event_cb)(const std::string& event, struct json_object* event_contents),
-        void (*reply_cb)(struct json_object* reply_contents),
-        void (*hangup_cb)(void) = nullptr);
+       int tapShortcut(const char* application_id);
+       int onScreenMessage(const char* display_message);
+       int onScreenReply(const char* reply_message);
+
+       void set_event_handler(enum EventType et, handler_func f);
+
+       void registerCallback(
+               void (*event_cb)(const std::string& event, struct json_object* event_contents),
+               void (*reply_cb)(struct json_object* reply_contents),
+               void (*hangup_cb)(void) = nullptr);
+
+       int call(const std::string& verb, struct json_object* arg);
+       int call(const char* verb, struct json_object* arg);
+       int subscribe(const std::string& event_name);
+       int unsubscribe(const std::string& event_name);
+
+       int showWindow(const char* application_id, json_object* json);
+       int hideWindow(const char* application_id);
+       int replyShowWindow(const char* application_id, json_object* json);
+       int showNotification(json_object* json);
+       int showInformation(json_object* json);
 
-    int call(const std::string& verb, struct json_object* arg);
-    int call(const char* verb, struct json_object* arg);
-    int subscribe(const std::string& event_name);
-    int unsubscribe(const std::string& event_name);
 
 private:
-    int initialize_websocket();
+       int initialize_websocket();
 
-    void (*onEvent)(const std::string& event, struct json_object* event_contents);
-    void (*onReply)(struct json_object* reply);
-    void (*onHangup)(void);
+       void (*onEvent)(const std::string& event, struct json_object* event_contents);
+       void (*onReply)(struct json_object* reply);
+       void (*onHangup)(void);
 
-    struct afb_wsj1* sp_websock;
-    struct afb_wsj1_itf minterface;
-    sd_event* mploop;
-    std::string muri;
+       struct afb_wsj1* sp_websock;
+       struct afb_wsj1_itf minterface;
+       sd_event* mploop;
+       std::string muri;
 
-    int mport = 2000;
-    std::string mtoken = "hs";
+       int mport = 2000;
+       std::string mtoken = "hs";
 
-    std::map<EventType, handler_func> handlers;
+       std::map<EventType, handler_func> handlers;
 
 public:
-    /* Don't use/ Internal only */
-    void on_hangup(void *closure, struct afb_wsj1 *wsj);
-    void on_call(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg);
-    void on_event(void *closure, const char *event, struct afb_wsj1_msg *msg);
-    void on_reply(void *closure, struct afb_wsj1_msg *msg);
+       /* Don't use/ Internal only */
+       void on_hangup(void *closure, struct afb_wsj1 *wsj);
+       void on_call(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg);
+       void on_event(void *closure, const char *event, struct afb_wsj1_msg *msg);
+       void on_reply(void *closure, struct afb_wsj1_msg *msg);
 };
 
 #endif /* LIBHOMESCREEN_H */