diff --git a/binding/navigation-api.c b/binding/navigation-api.c index 07e5216a544f83e3792d4b7203ff8effe05d7580..b51b54929b67bd89b880e33062c8e8c0f2caae1b 100644 --- a/binding/navigation-api.c +++ b/binding/navigation-api.c @@ -58,6 +58,9 @@ static afb_event_t get_event_from_value(struct navigation_state *ns, if (!g_strcmp0(value, "waypoints")) return ns->waypoints_event; + if (!g_strcmp0(value, "destination")) + return ns->destination_event; + return NULL; } @@ -73,6 +76,9 @@ static json_object **get_storage_from_value(struct navigation_state *ns, if (!g_strcmp0(value, "waypoints")) return &ns->waypoints_storage; + if (!g_strcmp0(value, "destination")) + return &ns->destination_storage; + return NULL; } @@ -216,6 +222,18 @@ static void broadcast_waypoints(afb_req_t request) // here. } +static void broadcast_destination(afb_req_t request) +{ + json_object* jresp = afb_req_json(request); + broadcast(jresp, "destination", TRUE); + + afb_req_success(request, NULL, "Broadcast destination send"); + + // NOTE: If the Alexa SDK API for pushing local navigation + // updates gets exposed, send update to vshl-capabilities + // here. +} + static void handle_setDestination_event(struct json_object *object) { json_object *jdest = NULL; @@ -319,10 +337,12 @@ static int init(afb_api_t api) ns->status_event = afb_daemon_make_event("status"); ns->position_event = afb_daemon_make_event("position"); ns->waypoints_event = afb_daemon_make_event("waypoints"); + ns->destination_event = afb_daemon_make_event("destination"); if (!afb_event_is_valid(ns->status_event) || !afb_event_is_valid(ns->position_event) || - !afb_event_is_valid(ns->waypoints_event)) { + !afb_event_is_valid(ns->waypoints_event) || + !afb_event_is_valid(ns->destination_event)) { AFB_ERROR("Cannot create events"); return -EINVAL; } @@ -356,6 +376,10 @@ static const afb_verb_t binding_verbs[] = { .verb = "broadcast_waypoints", .callback = broadcast_waypoints, .info = "Broadcast out waypoint event" + },{ + .verb = "broadcast_destination", + .callback = broadcast_destination, + .info = "Broadcast out destination event" }, {} }; diff --git a/binding/navigation-api.h b/binding/navigation-api.h index 457a87db35dccbd18adbac0c914353178682c226..e38425d4519d3af725a0ef31f2ea7b1d0024194d 100644 --- a/binding/navigation-api.h +++ b/binding/navigation-api.h @@ -40,11 +40,13 @@ struct navigation_state { afb_event_t status_event; afb_event_t position_event; afb_event_t waypoints_event; + afb_event_t destination_event; // storage json_object *status_storage; json_object *position_storage; json_object *waypoints_storage; + json_object *destination_storage; // locking GRWLock rw_lock; diff --git a/conf.d/cmake/config.cmake b/conf.d/cmake/config.cmake index e09670581fb3751fe88ca19ee498ddcab8f53a08..9fbc5cb70160b958f6b3974b64057fe169d90175 100644 --- a/conf.d/cmake/config.cmake +++ b/conf.d/cmake/config.cmake @@ -24,7 +24,7 @@ set(PROJECT_PRETTY_NAME "Navigation service for AGL") set(PROJECT_DESCRIPTION "Navigation reporting proxy for consumers") set(PROJECT_URL "https://gerrit.automotivelinux.org/gerrit/apps/agl-service-navigation") set(PROJECT_ICON "icon.png") -set(PROJECT_AUTHOR "Matt Ranostay") +set(PROJECT_AUTHOR "Matt Ranostay - Edited by Sebastian Eckl") set(PROJECT_AUTHOR_MAIL "matt.ranostay@konsulko.com") set(PROJECT_LICENSE "APL2.0") set(PROJECT_LANGUAGES,"C")