int onScreenReply(const char* reply_message);
void set_event_handler(enum EventType et, handler_func f);
+ void publishSubscription(void);
void registerCallback(
void (*event_cb)(const std::string& event, struct json_object* event_contents),
void LibHomeScreen::set_event_handler(enum EventType et, handler_func f)
{
if (et > Event_Min && et < Event_Max) {
- switch (et) {
- case Event_ShowWindow:
- this->subscribe(LibHomeScreen::event_list[0]);
- break;
- case Event_OnScreenMessage:
- this->subscribe(LibHomeScreen::event_list[1]);
- break;
- case Event_OnScreenReply:
- this->subscribe(LibHomeScreen::event_list[2]);
- break;
- case Event_HideWindow:
- this->subscribe(LibHomeScreen::event_list[3]);
- break;
- case Event_ReplyShowWindow:
- this->subscribe(LibHomeScreen::event_list[4]);
- break;
- case Event_ShowNotification:
- this->subscribe(LibHomeScreen::event_list[5]);
- break;
- case Event_ShowInformation:
- this->subscribe(LibHomeScreen::event_list[6]);
- break;
- case Event_AppListChanged:
- this->subscribe(LibHomeScreen::event_list[7]);
- break;
- }
-
this->handlers[et] = std::move(f);
}
}
+/**
+ * This function subscribe HomeScreen event
+ *
+ * #### Parameters
+ * None
+ *
+ * #### Return
+ * - Nothing
+ *
+ * #### Note
+ * To call HomeScreen's subscribe APIs.
+ *
+ */
+void LibHomeScreen::publishSubscription(void)
+{
+ for(auto &it : handlers) {
+ this->subscribe(LibHomeScreen::event_list[it.first - 1]);
+ }
+}
+
/**
* This function calls the API of HomeScreen via WebSocket
*