aboutsummaryrefslogtreecommitdiffstats
path: root/src/4a-internals-hal/4a-internals-hal-cb.c
diff options
context:
space:
mode:
authorJonathan Aillet <jonathan.aillet@iot.bzh>2019-05-23 10:41:50 +0200
committerJonathan Aillet <jonathan.aillet@iot.bzh>2019-05-24 16:35:06 +0200
commit7095c40c09e2afec2382e1307b8bb134496282e3 (patch)
tree3030bbaf2c40b5087912129d5e654e136d006d5a /src/4a-internals-hal/4a-internals-hal-cb.c
parente20fca4d144c431dd58face1be7d996ce15815f1 (diff)
Rework mixer answer handling
Rework mixer answer handling to make it simpler and to avoid fanciful returns. Add some error prints to help diagnostic in case of mixer answer handling error. BUG-AGL : SPEC-2329 Change-Id: I14fe86496585bdc66b8aa761f4ff2c56333c5515 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
Diffstat (limited to 'src/4a-internals-hal/4a-internals-hal-cb.c')
-rw-r--r--src/4a-internals-hal/4a-internals-hal-cb.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/4a-internals-hal/4a-internals-hal-cb.c b/src/4a-internals-hal/4a-internals-hal-cb.c
index 4c5fb68..10ed6c0 100644
--- a/src/4a-internals-hal/4a-internals-hal-cb.c
+++ b/src/4a-internals-hal/4a-internals-hal-cb.c
@@ -338,6 +338,7 @@ int InternalHalProcessAllHalMap(afb_api_t apiHandle, json_object *AlsaMapJ, stru
struct InternalHalAlsaMap *ctlMaps;
+ json_object *currentAlsaMapJ;
json_type alsaMapType;
alsaMapType = json_object_get_type(AlsaMapJ);
@@ -363,8 +364,18 @@ int InternalHalProcessAllHalMap(afb_api_t apiHandle, json_object *AlsaMapJ, stru
return -2;
}
- for(idx = 0; idx < currentInternalHalAlsaMapT->ctlsCount; idx++)
- err += InternalHalProcessOneHalMapObject(apiHandle, &ctlMaps[idx], alsaMapType == json_type_array ? json_object_array_get_idx(AlsaMapJ, idx) : AlsaMapJ);
+ 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;
@@ -381,8 +392,16 @@ int InternalHalHandleAllHalMap(afb_api_t apiHandle, int sndCardId, struct Intern
InternalHalSubscribeToAlsaCardEvent(apiHandle, cardIdString);
- for(idx = 0; idx < currentInternalHalAlsaMapT->ctlsCount; idx++)
- err += InternalHalHandleOneHalMapObject(apiHandle, cardIdString, &currentInternalHalAlsaMapT->ctls[idx]);
+ for(idx = 0; idx < currentInternalHalAlsaMapT->ctlsCount; idx++) {
+ err = InternalHalHandleOneHalMapObject(apiHandle, cardIdString, &currentInternalHalAlsaMapT->ctls[idx]);
+ if(err) {
+ AFB_API_ERROR(apiHandle,
+ "Didn't succeed to handle halmap object %i ('%s')",
+ idx,
+ json_object_get_string(currentInternalHalAlsaMapT->ctls[idx].actionJ));
+ return -3;
+ }
+ }
return err;
}