diff options
author | zheng_wenlong <wenlong_zheng@nexty-ele.com> | 2017-10-23 14:06:12 +0900 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2017-11-01 11:35:41 +0000 |
commit | 599de8d3f35cb0fe56c7e27591862d61944b456b (patch) | |
tree | 1361368744f0015bb5ca647cde3c84709a795e85 /src/homescreen.c | |
parent | 26ec25e2f9271396328c208ae1a256fdf1a92c91 (diff) |
Add a new OnScreenReply api to agl-service-homescreeneel_4.99.2eel/4.99.24.99.2
Add a new event named OnScreenReply. Applications
can use this event to reply to the homescreen.
Also update the documentation for this event.
[Patch Sets 8,9]
Update ApplicationGuide.md. For details:
Use master source build agl-service-homescreen-2017.
Change agl version to EE.
Add libhomescreen sample code path.
[Patch Sets 10]
Delete tailing space.
BUG-AGL: SPEC-985
Change-Id: Iea0c321731fa62cd94fc08fc5e303c20847fd525
Signed-off-by: zheng_wenlong <wenlong_zheng@nexty-ele.com>
Diffstat (limited to 'src/homescreen.c')
-rw-r--r-- | src/homescreen.c | 50 |
1 files changed, 47 insertions, 3 deletions
diff --git a/src/homescreen.c b/src/homescreen.c index 7f5f067..f1a8fcd 100644 --- a/src/homescreen.c +++ b/src/homescreen.c @@ -29,7 +29,7 @@ #include "hs-helper.h" #include "hmi-debug.h" -#define COMMAND_EVENT_NUM 3 +#define COMMAND_EVENT_NUM 4 #define EVENT_SUBSCRIBE_ERROR_CODE 100 /* To Do hash table is better */ @@ -42,12 +42,14 @@ 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"; /* ********** Method of HomeScreen Service (API) ********** @@ -137,6 +139,43 @@ static void on_screen_message (struct afb_req request) } /** + * HomeScreen OnScreen Reply + * + * #### Parameters + * Request key + * - reply_message : message for reply + * + * #### Return + * Nothing + * + */ +static void on_screen_reply (struct afb_req request) +{ + HMI_NOTICE("homescreen-service","called."); + + int ret = 0; + const char* value = afb_req_value(request, _reply_message); + if (value) { + + HMI_NOTICE("homescreen-service","request params = %s.", value); + + 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); + } else { + afb_req_fail_f(request, "failed", "called %s, Unknown palameter", __FUNCTION__); + return; + } + + // response to HomeScreen + struct json_object *res = json_object_new_object(); + hs_add_object_to_json_object_func(res, __FUNCTION__, 2, + _error, ret); + afb_req_success(request, res, "afb_event_push event [on_screen_reply]"); +} + +/** * Subscribe event * * #### Parameters @@ -224,6 +263,7 @@ static const struct afb_verb_v2 verbs[]= { { .verb = "ping", .session = AFB_SESSION_NONE, .callback = pingSample, .auth = NULL }, { .verb = "tap_shortcut", .session = AFB_SESSION_NONE, .callback = tap_shortcut, .auth = NULL }, { .verb = "on_screen_message", .session = AFB_SESSION_NONE, .callback = on_screen_message, .auth = NULL }, + { .verb = "on_screen_reply", .session = AFB_SESSION_NONE, .callback = on_screen_reply, .auth = NULL }, { .verb = "subscribe", .session = AFB_SESSION_NONE, .callback = subscribe, .auth = NULL }, { .verb = "unsubscribe", .session = AFB_SESSION_NONE, .callback = unsubscribe, .auth = NULL }, {NULL } /* marker for end of the array */ @@ -241,7 +281,8 @@ static int init() ev_tap_shortcut = afb_daemon_make_event(evlist[0]); ev_on_screen_message = afb_daemon_make_event(evlist[1]); - ev_reserved = afb_daemon_make_event(evlist[2]); + 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; @@ -250,7 +291,10 @@ static int init() event_list[1].event = &ev_on_screen_message; event_list[2].name = evlist[2]; - event_list[2].event = &ev_reserved; + event_list[2].event = &ev_on_screen_reply; + + event_list[3].name = evlist[3]; + event_list[3].event = &ev_reserved; return 0; } |