+ LibHomeScreen();
+ ~LibHomeScreen();
+
+ LibHomeScreen(const LibHomeScreen &) = delete;
+ LibHomeScreen &operator=(const LibHomeScreen &) = delete;
+
+ using handler_func = std::function<void(json_object*)>;
+
+ enum EventType {
+ Event_Min,
+ Event_ShowWindow = 1,
+ Event_TapShortcut = 1,
+ Event_OnScreenMessage,
+ Event_OnScreenReply,
+ Event_HideWindow,
+ Event_ReplyShowWindow,
+ Event_ShowNotification,
+ Event_ShowInformation,
+ Event_AppListChanged,
+ Event_Max
+ };
+
+ static const std::vector<std::string> api_list;
+ static const std::vector<std::string> event_list;
+
+ /* Method */
+ int init(const int port, const std::string& token);
+
+ 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 getRunnables(void);