summaryrefslogtreecommitdiffstats
path: root/src/4a-internals-hal/4a-internals-hal-cb.c
diff options
context:
space:
mode:
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;
}