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-utilities-hal-streams-handler.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to '4a-hal-utilities/4a-hal-utilities-hal-streams-handler.c') diff --git a/4a-hal-utilities/4a-hal-utilities-hal-streams-handler.c b/4a-hal-utilities/4a-hal-utilities-hal-streams-handler.c index 4dbe35c..4d42b01 100644 --- a/4a-hal-utilities/4a-hal-utilities-hal-streams-handler.c +++ b/4a-hal-utilities/4a-hal-utilities-hal-streams-handler.c @@ -232,6 +232,8 @@ struct CtlHalMixerData *HalUtlAddStreamDataAndCreateStreamVerb(AFB_ApiT apiHandl char *verbToCall, char *streamCardId) { + json_object *streamAddedEventJ; + CtlConfigT *ctrlConfig; struct SpecificHalData *currentSpecificHalData; @@ -278,6 +280,14 @@ struct CtlHalMixerData *HalUtlAddStreamDataAndCreateStreamVerb(AFB_ApiT apiHandl return NULL; } + wrap_json_pack(&streamAddedEventJ, + "{s:s, s:s, s:s}", + "action", "added", + "name", createdStreamData->verb, + "cardId", createdStreamData->streamCardId); + + AFB_EventPush(currentSpecificHalData->ctlHalSpecificData->streamUpdates, streamAddedEventJ); + return createdStreamData; } @@ -288,6 +298,8 @@ int8_t HalUtlRemoveStreamDataAndDeleteStreamVerb(AFB_ApiT apiHandle, { int8_t returnedErr = 0; + json_object *streamRemovedEventJ; + CtlConfigT *ctrlConfig; struct SpecificHalData *currentSpecificHalData; @@ -307,15 +319,25 @@ int8_t HalUtlRemoveStreamDataAndDeleteStreamVerb(AFB_ApiT apiHandle, streamCardId))) return -3; + wrap_json_pack(&streamRemovedEventJ, + "{s:s, s:s, s:s}", + "action", "removed", + "name", toRemoveStreamData->verb, + "cardId", toRemoveStreamData->streamCardId); + if(afb_api_del_verb(apiHandle, verb, NULL)) { AFB_ApiError(apiHandle,"Error while deleting verb for stream : '%s'", verb); + json_object_put(streamRemovedEventJ); return -4; } if((returnedErr = HalUtlRemoveSelectedMixerData(¤tSpecificHalData->ctlHalSpecificData->ctlHalStreamsData, toRemoveStreamData))) { AFB_ApiError(apiHandle,"Error %i while removing data for stream : '%s'", returnedErr, verb); + json_object_put(streamRemovedEventJ); return -5; } + AFB_EventPush(currentSpecificHalData->ctlHalSpecificData->streamUpdates, streamRemovedEventJ); + return 0; } \ No newline at end of file -- cgit 1.2.3-korg