diff options
author | 2019-06-19 14:13:34 +0200 | |
---|---|---|
committer | 2019-06-25 10:22:48 +0200 | |
commit | 70c11ed3c3f1f7ce80af6fd3997a8bb8a38d392e (patch) | |
tree | 9983db8e9b9b21c06fc37a50d208d1324c175994 | |
parent | 7cc44519439f2e96b88f4b9cc68e96d0668ef7ea (diff) |
Move function used to process all halmap objects
Move function used to process all halmap json objects.
BUG-AGL: SPEC-2329
Change-Id: I692b1810ce2298b24198a001c26b9233740ca31a
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
-rw-r--r-- | src/4a-internals-hal/4a-internals-hal-cb.c | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/src/4a-internals-hal/4a-internals-hal-cb.c b/src/4a-internals-hal/4a-internals-hal-cb.c index 1e920c3..a8d6dc3 100644 --- a/src/4a-internals-hal/4a-internals-hal-cb.c +++ b/src/4a-internals-hal/4a-internals-hal-cb.c @@ -266,6 +266,56 @@ int InternalHalProcessOneHalMapObject(afb_api_t apiHandle, struct InternalHalAls return 0; } +int InternalHalProcessAllHalMap(afb_api_t apiHandle, json_object *AlsaMapJ, struct InternalHalAlsaMapT *currentInternalHalAlsaMapT) +{ + int idx, err = 0; + + struct InternalHalAlsaMap *ctlMaps; + + json_object *currentAlsaMapJ; + json_type alsaMapType; + + alsaMapType = json_object_get_type(AlsaMapJ); + switch(alsaMapType) { + case json_type_array: + currentInternalHalAlsaMapT->ctlsCount = (unsigned int) json_object_array_length(AlsaMapJ); + break; + + case json_type_object: + currentInternalHalAlsaMapT->ctlsCount = 1; + break; + + default: + currentInternalHalAlsaMapT->ctlsCount = 0; + currentInternalHalAlsaMapT->ctls = NULL; + AFB_API_ERROR(apiHandle, "Content of 'halmap' section is not valid ('%s')", json_object_get_string(AlsaMapJ)); + return -1; + } + + ctlMaps = calloc(currentInternalHalAlsaMapT->ctlsCount, sizeof(struct InternalHalAlsaMap)); + if(! ctlMaps) { + AFB_API_ERROR(apiHandle, "Didn't succeed to allocate halmap data table"); + return -2; + } + + for(idx = 0; idx < currentInternalHalAlsaMapT->ctlsCount; idx++) { + currentAlsaMapJ = (alsaMapType == json_type_array) ? json_object_array_get_idx(AlsaMapJ, idx) : AlsaMapJ; + err = InternalHalProcessOneHalMapObject(apiHandle, &ctlMaps[idx], currentAlsaMapJ); + if(err) { + AFB_API_ERROR(apiHandle, + "Didn't succeed to proccess halmap object %i ('%s')", + idx, + json_object_get_string(currentAlsaMapJ)); + HalUtlFreeAlsaCtlsMap(currentInternalHalAlsaMapT); + return -3; + } + } + + currentInternalHalAlsaMapT->ctls = ctlMaps; + + return err; +} + int InternalHalHandleOneHalMapObject(afb_api_t apiHandle, char *cardId, struct InternalHalAlsaMap *alsaMap) { int err; @@ -360,56 +410,6 @@ int InternalHalHandleOneHalMapObject(afb_api_t apiHandle, char *cardId, struct I return 0; } -int InternalHalProcessAllHalMap(afb_api_t apiHandle, json_object *AlsaMapJ, struct InternalHalAlsaMapT *currentInternalHalAlsaMapT) -{ - int idx, err = 0; - - struct InternalHalAlsaMap *ctlMaps; - - json_object *currentAlsaMapJ; - json_type alsaMapType; - - alsaMapType = json_object_get_type(AlsaMapJ); - switch(alsaMapType) { - case json_type_array: - currentInternalHalAlsaMapT->ctlsCount = (unsigned int) json_object_array_length(AlsaMapJ); - break; - - case json_type_object: - currentInternalHalAlsaMapT->ctlsCount = 1; - break; - - default: - currentInternalHalAlsaMapT->ctlsCount = 0; - currentInternalHalAlsaMapT->ctls = NULL; - AFB_API_ERROR(apiHandle, "Content of 'halmap' section is not valid ('%s')", json_object_get_string(AlsaMapJ)); - return -1; - } - - ctlMaps = calloc(currentInternalHalAlsaMapT->ctlsCount, sizeof(struct InternalHalAlsaMap)); - if(! ctlMaps) { - AFB_API_ERROR(apiHandle, "Didn't succeed to allocate halmap data table"); - return -2; - } - - for(idx = 0; idx < currentInternalHalAlsaMapT->ctlsCount; idx++) { - currentAlsaMapJ = (alsaMapType == json_type_array) ? json_object_array_get_idx(AlsaMapJ, idx) : AlsaMapJ; - err = InternalHalProcessOneHalMapObject(apiHandle, &ctlMaps[idx], currentAlsaMapJ); - if(err) { - AFB_API_ERROR(apiHandle, - "Didn't succeed to proccess halmap object %i ('%s')", - idx, - json_object_get_string(currentAlsaMapJ)); - HalUtlFreeAlsaCtlsMap(currentInternalHalAlsaMapT); - return -3; - } - } - - currentInternalHalAlsaMapT->ctls = ctlMaps; - - return err; -} - int InternalHalHandleAllHalMap(afb_api_t apiHandle, int sndCardId, struct InternalHalAlsaMapT *currentInternalHalAlsaMapT) { int idx, err = 0; |