From 9ea8f82f17fa57a0648eb9b16d24957bba22f9f2 Mon Sep 17 00:00:00 2001 From: Jonathan Aillet Date: Thu, 10 Jan 2019 12:08:56 +0100 Subject: Add event to indicate hal stream changes This event can be used to be notified when a stream has been added/removed from hal. Change-Id: I0511b948accf4d3dc25e5603cbaaf5f1da741b49 Signed-off-by: Jonathan Aillet --- 4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to '4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c') diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c b/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c index ec00056..f44ea6f 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c @@ -630,6 +630,7 @@ void HalCtlsSubscribeUnsubscribe(AFB_ReqT request, enum SubscribeUnsubscribeType requestJson = AFB_ReqJson(request); if(! requestJson) { AFB_ReqFail(request, "request_json", "Can't get request json"); + return; } if(wrap_json_unpack(requestJson, "{s:o}", "events", &requestedSubscriptionsJ)) { @@ -665,6 +666,28 @@ void HalCtlsSubscribeUnsubscribe(AFB_ReqT request, enum SubscribeUnsubscribeType subscriptionFound = 0; currentSubscriptionString = (char *) json_object_get_string(requestedSubscriptionJ); + if(! strcasecmp(currentSubscriptionString, HAL_STREAM_UPDATES_EVENT_NAME)) { + if(currentCtlHalData->ctlHalSpecificData->streamUpdates && + subscribeUnsubscribeType == SUBSCRIPTION && + afb_req_subscribe(request, currentCtlHalData->ctlHalSpecificData->streamUpdates)) { + AFB_ReqFailF(request, + "request_stream_list_updates_event", + "Error while trying to subscribe to stream list updates event"); + return; + } + else if(currentCtlHalData->ctlHalSpecificData->streamUpdates && + subscribeUnsubscribeType == UNSUBSCRIPTION && + afb_req_unsubscribe(request, currentCtlHalData->ctlHalSpecificData->streamUpdates)) { + AFB_ReqFailF(request, + "request_stream_list_updates_event", + "Error while trying to unsubscribe to stream list updates event"); + return; + } + + subscriptionFound = 1; + subscriptionDoneNb++; + } + currentStreamData = currentCtlHalData->ctlHalSpecificData->ctlHalStreamsData; while(currentStreamData && (! subscriptionFound)) { -- cgit 1.2.3-korg