diff options
author | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2018-05-31 16:39:56 +0200 |
---|---|---|
committer | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2018-10-08 15:51:00 +0200 |
commit | 509c14ede44b5d95f5ecc7d1e78a2c54609688e4 (patch) | |
tree | 302fb6ffdedd3b0e879fbf63ab3f87eafc42cde1 /4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c | |
parent | c461cb867a97a6d49945210f2050ea3d9ec44ab3 (diff) |
Store uid of the hal mixer configuration and use it
Stores uid of the hal mixer configuration in the specific controller
hal structure.
Use this uid as prefix when calling softmixer api.
Change-Id: Iab00518e02e0f9ff6dbd78c126eda45225c55256
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
Diffstat (limited to '4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c')
-rw-r--r-- | 4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c | 25 |
1 files changed, 17 insertions, 8 deletions
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 317f0b3..30f89ba 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c @@ -64,9 +64,12 @@ int HalCtlsHalMixerConfig(afb_dynapi *apiHandle, CtlSectionT *section, json_obje if(wrap_json_unpack(MixerJ, "{s:s}", "mixerapi", ¤tHalData->ctlHalSpecificData->mixerApiName)) return -5; - if(! json_object_object_get_ex(MixerJ, "streams", &streamsArray)) + if(wrap_json_unpack(MixerJ, "{s:s}", "uid", ¤tHalData->ctlHalSpecificData->halSoftMixerVerb)) return -6; + if(! json_object_object_get_ex(MixerJ, "streams", &streamsArray)) + return -7; + switch(json_object_get_type(streamsArray)) { case json_type_object: streamCount = 1; @@ -75,7 +78,7 @@ int HalCtlsHalMixerConfig(afb_dynapi *apiHandle, CtlSectionT *section, json_obje streamCount = json_object_array_length(streamsArray); break; default: - return -7; + return -8; } currentHalData->ctlHalSpecificData->ctlHalStreamsData.count = streamCount; @@ -93,7 +96,7 @@ int HalCtlsHalMixerConfig(afb_dynapi *apiHandle, CtlSectionT *section, json_obje currentStream = streamsArray; if(wrap_json_unpack(currentStream, "{s:s}", "uid", ¤tStreamName)) - return -9-idx; + return -10-idx; currentHalData->ctlHalSpecificData->ctlHalStreamsData.data[idx].name = strdup(currentStreamName); currentHalData->ctlHalSpecificData->ctlHalStreamsData.data[idx].cardId = NULL; @@ -104,7 +107,7 @@ int HalCtlsHalMixerConfig(afb_dynapi *apiHandle, CtlSectionT *section, json_obje } if(HalUtlLoadVerbs(apiHandle, CtlHalDynApiStreamVerbs)) - return -8; + return -9; } return 0; @@ -126,7 +129,7 @@ void HalCtlsActionOnStream(afb_request *request) { int verbToCallSize; - char *apiToCall, *verbToCall; + char *apiToCall, *halSoftMixerVerb, *verbToCall; afb_dynapi *apiHandle; CtlConfigT *ctrlConfig; @@ -165,15 +168,21 @@ void HalCtlsActionOnStream(afb_request *request) return; } + halSoftMixerVerb = currentCtlHalData->ctlHalSpecificData->halSoftMixerVerb; + if(! halSoftMixerVerb) { + afb_request_fail(request, "hal_softmixer_verb", "Can't get hal mixer verb prefix"); + return; + } + // TODO JAI: check status of hal before doing anything - // TODO JAI : remove action prefix, streams should be created as verb by mixer - verbToCallSize = (int) strlen(API_STREAM_PREFIX) + (int) strlen(request->verb) + 2; + // TODO JAI : remove verb to call prefix, each hal should have its own api in softmixer, and each streams should be created as verb by mixer + verbToCallSize = (int) strlen(halSoftMixerVerb) + (int) strlen(request->verb) + 2; verbToCall = (char *) alloca(verbToCallSize * sizeof(char)); verbToCall[0] = '\0'; verbToCall[verbToCallSize - 1] = '\0'; - strcat(verbToCall, API_STREAM_PREFIX); + strcat(verbToCall, halSoftMixerVerb); strcat(verbToCall, "/"); strcat(verbToCall, request->verb); |