aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/homescreen.cpp44
1 files changed, 13 insertions, 31 deletions
diff --git a/src/homescreen.cpp b/src/homescreen.cpp
index 5de15b8..744535b 100644
--- a/src/homescreen.cpp
+++ b/src/homescreen.cpp
@@ -26,18 +26,12 @@
/* To Do hash table is better */
struct event{
const char* name;
- struct afb_event* event;
- };
+ struct afb_event event;
+};
static struct event event_list[COMMAND_EVENT_NUM];
-static struct afb_event ev_tap_shortcut;
-static struct afb_event ev_on_screen_message;
-static struct afb_event ev_on_screen_reply;
-static struct afb_event ev_reserved;
-
static const char _error[] = "error";
-
static const char _application_name[] = "application_name";
static const char _display_message[] = "display_message";
static const char _reply_message[] = "reply_message";
@@ -79,7 +73,7 @@ static void tap_shortcut (struct afb_req request)
struct json_object* push_obj = json_object_new_object();
hs_add_object_to_json_object_str( push_obj, 2,
_application_name, value);
- afb_event_push(ev_tap_shortcut, push_obj);
+ afb_event_push(event_list[hs_search_event_name_index(__FUNCTION__)].event, push_obj);
} else {
afb_req_fail_f(request, "failed", "called %s, Unknown palameter", __FUNCTION__);
return;
@@ -116,7 +110,7 @@ static void on_screen_message (struct afb_req request)
struct json_object* push_obj = json_object_new_object();
hs_add_object_to_json_object_str( push_obj, 2,
_display_message, value);
- afb_event_push(ev_on_screen_message, push_obj);
+ afb_event_push(event_list[hs_search_event_name_index(__FUNCTION__)].event, push_obj);
} else {
afb_req_fail_f(request, "failed", "called %s, Unknown palameter", __FUNCTION__);
return;
@@ -153,7 +147,7 @@ static void on_screen_reply (struct afb_req request)
struct json_object* push_obj = json_object_new_object();
hs_add_object_to_json_object_str( push_obj, 2,
_reply_message, value);
- afb_event_push(ev_on_screen_reply, push_obj);
+ afb_event_push(event_list[hs_search_event_name_index(__FUNCTION__)].event, push_obj);
} else {
afb_req_fail_f(request, "failed", "called %s, Unknown palameter", __FUNCTION__);
return;
@@ -190,7 +184,7 @@ static void subscribe(struct afb_req request)
}
else
{
- afb_req_subscribe(request, *event_list[index].event);
+ afb_req_subscribe(request, event_list[index].event);
}
}
else{
@@ -228,7 +222,7 @@ static void unsubscribe(struct afb_req request)
}
else
{
- afb_req_unsubscribe(request, *event_list[index].event);
+ afb_req_unsubscribe(request, event_list[index].event);
}
}
else{
@@ -284,26 +278,14 @@ static int preinit()
*/
static int init()
{
- HMI_NOTICE("homescreen-service","binding init");
-
- ev_tap_shortcut = afb_daemon_make_event(evlist[0]);
- ev_on_screen_message = afb_daemon_make_event(evlist[1]);
- ev_on_screen_reply = afb_daemon_make_event(evlist[2]);
- ev_reserved = afb_daemon_make_event(evlist[3]);
-
- event_list[0].name = evlist[0];
- event_list[0].event = &ev_tap_shortcut;
+ HMI_NOTICE("homescreen-service","binding init");
- event_list[1].name = evlist[1];
- event_list[1].event = &ev_on_screen_message;
-
- event_list[2].name = evlist[2];
- event_list[2].event = &ev_on_screen_reply;
-
- event_list[3].name = evlist[3];
- event_list[3].event = &ev_reserved;
+ for(int i = 0; i < COMMAND_EVENT_NUM; ++i) {
+ event_list[i].name = evlist[i];
+ event_list[i].event = afb_daemon_make_event(evlist[i]);
+ }
- return 0;
+ return 0;
}
/**