diff options
author | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2019-01-23 13:56:06 +0100 |
---|---|---|
committer | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2019-01-28 15:38:58 +0100 |
commit | 2b558bb1ec9f854769c556e84735e7dcd3a295e8 (patch) | |
tree | b88875e5cff3759be7bb8c93e61fd892b16ced8e /4a-hal/4a-hal-controllers | |
parent | 20a22fadf78660394ca2ce8354530306288578fc (diff) |
Migrate to newer application framework calls
Migrate from 'afb_api_call_sync_legacy' function to 'afb_api_call_sync'
function, therefore, handle function return and response json
differently from before.
Change-Id: Ia7fb42188b8d41e22db2d824459a0d10ed6d6a8e
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
Diffstat (limited to '4a-hal/4a-hal-controllers')
4 files changed, 182 insertions, 169 deletions
diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-alsacore-link.c b/4a-hal/4a-hal-controllers/4a-hal-controllers-alsacore-link.c index 5fadd36..f814e74 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-alsacore-link.c +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-alsacore-link.c @@ -30,7 +30,6 @@ #include "4a-hal-utilities-alsa-data.h" #include "4a-hal-utilities-data.h" -#include "4a-hal-utilities-appfw-responses-handler.h" #include "4a-hal-controllers-alsacore-link.h" #include "4a-hal-controllers-value-handler.h" @@ -72,13 +71,11 @@ snd_ctl_elem_type_t HalCtlsMapsAlsaTypeToEnum(const char *label) int HalCtlsGetCardIdByCardPath(afb_api_t apiHandle, char *devPath) { - int cardId = -1; + int errorToReturn, cardId; - char *returnedStatus = NULL, *returnedInfo = NULL, *cardIdString = NULL; + char *returnedError = NULL, *returnedInfo = NULL, *cardIdString = NULL; - enum CallError returnedError; - - json_object *toSendJ, *returnJ = NULL, *responsJ, *devidJ; + json_object *toSendJ, *responseJ = NULL, *devidJ; if(! apiHandle) { AFB_API_ERROR(apiHandle, "Api handle not available"); @@ -92,68 +89,83 @@ int HalCtlsGetCardIdByCardPath(afb_api_t apiHandle, char *devPath) wrap_json_pack(&toSendJ, "{s:s}", "devpath", devPath); - if(afb_api_call_sync_legacy(apiHandle, ALSACORE_API, ALSACORE_GETINFO_VERB, toSendJ, &returnJ)) { - returnedError = HalUtlHandleAppFwCallError(apiHandle, ALSACORE_API, ALSACORE_GETINFO_VERB, returnJ, &returnedStatus, &returnedInfo); - AFB_API_WARNING(apiHandle, - "Error %i during call to verb %s of %s api with status '%s' and info '%s'", - (int) returnedError, - ALSACORE_GETINFO_VERB, - ALSACORE_API, - returnedStatus ? returnedStatus : "not returned", - returnedInfo ? returnedInfo : "not returned"); - } - else if(json_object_object_get_ex(returnJ, "response", &responsJ)) { - if(json_object_object_get_ex(responsJ, "devid", &devidJ) && json_object_is_type(devidJ, json_type_string)) { - cardIdString = (char *) json_object_get_string(devidJ); - if(sscanf(cardIdString, "hw:%i", &cardId) <= 0) { - AFB_API_WARNING(apiHandle, "Couldn't get valid devid from string: '%s'", cardIdString); - cardId = -2; - } + if(afb_api_call_sync(apiHandle, + ALSACORE_API, + ALSACORE_GETINFO_VERB, + toSendJ, + &responseJ, + &returnedError, + &returnedInfo)) { + AFB_API_ERROR(apiHandle, + "Something went wrong during call to verb '%s' of api '%s' with error '%s' and info '%s'", + ALSACORE_GETINFO_VERB, + ALSACORE_API, + returnedError ? returnedError : "not returned", + returnedInfo ? returnedInfo : "not returned"); + errorToReturn = -3; + } + else if(! responseJ) { + AFB_API_ERROR(apiHandle, + "Seems that %s call to api %s succeed but no response was returned", + ALSACORE_GETINFO_VERB, + ALSACORE_API); + errorToReturn = -4; + } + else if(json_object_object_get_ex(responseJ, "devid", &devidJ) && json_object_is_type(devidJ, json_type_string)) { + cardIdString = (char *) json_object_get_string(devidJ); + if(sscanf(cardIdString, "hw:%i", &cardId) == 1) { + json_object_put(responseJ); + return cardId; } else { - AFB_API_WARNING(apiHandle, "Response devid is not present/valid"); + AFB_API_WARNING(apiHandle, "Could not get valid devid from string: '%s'", cardIdString); + errorToReturn = -5; } } + else { + AFB_API_WARNING(apiHandle, "Response devid is not present/valid"); + errorToReturn = -6; + } - if(returnJ) - json_object_put(returnJ); + if(responseJ) + json_object_put(responseJ); - return cardId; + free(returnedError); + free(returnedInfo); + + return errorToReturn; } int HalCtlsSubscribeToAlsaCardEvent(afb_api_t apiHandle, char *cardId) { int err = 0; - char *returnedStatus = NULL, *returnedInfo = NULL; - - enum CallError returnedError; + char *returnedError = NULL, *returnedInfo = NULL; - json_object *subscribeQueryJ, *returnedJ = NULL, *returnedWarningJ; + json_object *subscribeQueryJ, *responseJ = NULL; wrap_json_pack(&subscribeQueryJ, "{s:s}", "devid", cardId); - if(afb_api_call_sync_legacy(apiHandle, ALSACORE_API, ALSACORE_SUBSCRIBE_VERB, subscribeQueryJ, &returnedJ)) { - returnedError = HalUtlHandleAppFwCallError(apiHandle, ALSACORE_API, ALSACORE_SUBSCRIBE_VERB, returnedJ, &returnedStatus, &returnedInfo); + if(afb_api_call_sync(apiHandle, + ALSACORE_API, + ALSACORE_SUBSCRIBE_VERB, + subscribeQueryJ, + &responseJ, + &returnedError, + &returnedInfo)) { AFB_API_ERROR(apiHandle, - "Error %i during call to verb %s of %s api with status '%s' and info '%s'", - (int) returnedError, + "Something went wrong during call to verb '%s' of api '%s' with error '%s' and info '%s'", ALSACORE_SUBSCRIBE_VERB, ALSACORE_API, - returnedStatus ? returnedStatus : "not returned", + returnedError ? returnedError : "not returned", returnedInfo ? returnedInfo : "not returned"); err = -1; } - else if(! wrap_json_unpack(returnedJ, "{s:{s:o}}", "request", "info", &returnedWarningJ)) { - AFB_API_ERROR(apiHandle, - "Warning raised during call to verb %s of %s api : '%s'", - ALSACORE_SUBSCRIBE_VERB, - ALSACORE_API, - json_object_get_string(returnedWarningJ)); - err = -2; - } - if(returnedJ) - json_object_put(returnedJ); + if(responseJ) + json_object_put(responseJ); + + free(returnedError); + free(returnedInfo); return err; } @@ -162,11 +174,9 @@ int HalCtlsGetAlsaCtlInfo(afb_api_t apiHandle, char *cardId, struct CtlHalAlsaCt { int err = 0; - char *returnedStatus = NULL, *returnedInfo = NULL; - - enum CallError returnedError; + char *returnedError = NULL, *returnedInfo = NULL; - json_object *queryJ, *returnedJ; + json_object *queryJ, *responseJ = NULL; *returnedDataJ = NULL; @@ -203,30 +213,37 @@ int HalCtlsGetAlsaCtlInfo(afb_api_t apiHandle, char *cardId, struct CtlHalAlsaCt return -4; } - if(afb_api_call_sync_legacy(apiHandle, ALSACORE_API, ALSACORE_CTLGET_VERB, queryJ, &returnedJ)) { - returnedError = HalUtlHandleAppFwCallError(apiHandle, ALSACORE_API, ALSACORE_CTLGET_VERB, returnedJ, &returnedStatus, &returnedInfo); + if(afb_api_call_sync(apiHandle, + ALSACORE_API, + ALSACORE_CTLGET_VERB, + queryJ, + &responseJ, + &returnedError, + &returnedInfo)) { AFB_API_ERROR(apiHandle, - "Error %i during call to verb %s of %s api with status '%s' and info '%s'", - (int) returnedError, + "Something went wrong during call to verb '%s' of api '%s' with error '%s' and info '%s'", ALSACORE_CTLGET_VERB, ALSACORE_API, - returnedStatus ? returnedStatus : "not returned", + returnedError ? returnedError : "not returned", returnedInfo ? returnedInfo : "not returned"); + free(returnedError); + free(returnedInfo); return -5; } - else if(currentAlsaCtl->name && wrap_json_unpack(returnedJ, "{s:{s:i}}", "response", "id", ¤tAlsaCtl->numid)) { - AFB_API_ERROR(apiHandle, "Can't find alsa control 'id' from control 'name': '%s' on device '%s'", currentAlsaCtl->name, cardId); - err = -6; + else if(! responseJ) { + AFB_API_ERROR(apiHandle, + "Seems that %s call to api %s succeed but no response was returned", + ALSACORE_CTLGET_VERB, + ALSACORE_API); + return -6; } - else if(! json_object_object_get_ex(returnedJ, "response", NULL)) { - AFB_API_ERROR(apiHandle, "Can't find alsa control 'id': %i on device '%s'", currentAlsaCtl->numid, cardId); - err = -7; + else if(currentAlsaCtl->name && wrap_json_unpack(responseJ, "{s:i}", "id", ¤tAlsaCtl->numid)) { + AFB_API_ERROR(apiHandle, "Can't find alsa control 'id' from control 'name': '%s' on device '%s'", currentAlsaCtl->name, cardId); + json_object_put(responseJ); + return -7; } - if(err) - json_object_put(returnedJ); - else - *returnedDataJ = returnedJ; + *returnedDataJ = responseJ; return err; } @@ -242,8 +259,7 @@ int HalCtlsUpdateAlsaCtlProperties(afb_api_t apiHandle, char *cardId, struct Ctl } // TBD JAI : get dblinear/dbminmax/... values else if(wrap_json_unpack(returnedDataJ, - "{s:{s:{s?:i s?:i s?:i s?:i s?:i}}}", - "response", + "{s:{s?:i s?:i s?:i s?:i s?:i}}", "ctl", "type", (int *) ¤tAlsaCtl->alsaCtlProperties.type, "count", ¤tAlsaCtl->alsaCtlProperties.count, @@ -276,7 +292,7 @@ int HalCtlsGetAlsaCtlValues(afb_api_t apiHandle, char *cardId, struct CtlHalAlsa if((err = HalCtlsGetAlsaCtlInfo(apiHandle, cardId, currentAlsaCtl, &returnedDataJ))) { return err; } - else if(wrap_json_unpack(returnedDataJ, "{s:{s:o}}", "response", "val", &returnedValuesArrayJ)) { + else if(wrap_json_unpack(returnedDataJ, "{s:o}", "val", &returnedValuesArrayJ)) { AFB_API_ERROR(apiHandle, "Didn't succeed to get control %i values on device '%s' : '%s'", currentAlsaCtl->numid, @@ -308,11 +324,9 @@ int HalCtlsSetAlsaCtlValue(afb_api_t apiHandle, char *cardId, int ctlId, json_ob { int err = 0; - char *returnedStatus = NULL, *returnedInfo = NULL; - - enum CallError returnedError; + char *returnedError = NULL, *returnedInfo = NULL; - json_object *queryJ, *returnedJ = NULL, *returnedWarningJ; + json_object *queryJ, *responseJ = NULL; if(! apiHandle) { AFB_API_ERROR(apiHandle, "Api handle not available"); @@ -336,28 +350,27 @@ int HalCtlsSetAlsaCtlValue(afb_api_t apiHandle, char *cardId, int ctlId, json_ob wrap_json_pack(&queryJ, "{s:s s:{s:i s:o}}", "devid", cardId, "ctl", "id", ctlId, "val", json_object_get(valuesJ)); - if(afb_api_call_sync_legacy(apiHandle, ALSACORE_API, ALSACORE_CTLSET_VERB, queryJ, &returnedJ)) { - returnedError = HalUtlHandleAppFwCallError(apiHandle, ALSACORE_API, ALSACORE_CTLSET_VERB, returnedJ, &returnedStatus, &returnedInfo); + if(afb_api_call_sync(apiHandle, + ALSACORE_API, + ALSACORE_CTLSET_VERB, + queryJ, + &responseJ, + &returnedError, + &returnedInfo)) { AFB_API_ERROR(apiHandle, - "Error %i during call to verb %s of %s api with status '%s' and info '%s'", - (int) returnedError, + "Something went wrong during call to verb '%s' of api '%s' with error '%s' and info '%s'", ALSACORE_CTLSET_VERB, ALSACORE_API, - returnedStatus ? returnedStatus : "not returned", + returnedError ? returnedError : "not returned", returnedInfo ? returnedInfo : "not returned"); - err = 1; - } - else if(! wrap_json_unpack(returnedJ, "{s:{s:o}}", "request", "info", &returnedWarningJ)) { - AFB_API_ERROR(apiHandle, - "Warning raised during call to verb %s of %s api : '%s'", - ALSACORE_CTLSET_VERB, - ALSACORE_API, - json_object_get_string(returnedWarningJ)); - err = 2; + err = -5; } - if(returnedJ) - json_object_put(returnedJ); + if(responseJ) + json_object_put(responseJ); + + free(returnedError); + free(returnedInfo); return err; } @@ -366,11 +379,9 @@ int HalCtlsCreateAlsaCtl(afb_api_t apiHandle, char *cardId, struct CtlHalAlsaCtl { int err = 0; - char *returnedStatus = NULL, *returnedInfo = NULL; - - enum CallError returnedError; + char *returnedError = NULL, *returnedInfo = NULL; - json_object *queryJ, *returnedJ = NULL, *returnedWarningJ, *responseJ; + json_object *queryJ, *responseJ = NULL; if(! apiHandle) { AFB_API_ERROR(apiHandle, "Api handle not available"); @@ -392,7 +403,7 @@ int HalCtlsCreateAlsaCtl(afb_api_t apiHandle, char *cardId, struct CtlHalAlsaCtl return -4; } - wrap_json_pack(&queryJ, "{s:s s:{s:i s:s s:i s:i s:i s:i s:i}}", + wrap_json_pack(&queryJ, "{s:s s:{s:i s:s s?:i s?:i s?:i s:i s:i}}", "devid", cardId, "ctl", "ctl", -1, @@ -403,46 +414,44 @@ int HalCtlsCreateAlsaCtl(afb_api_t apiHandle, char *cardId, struct CtlHalAlsaCtl "type", (int) alsaCtlToCreate->alsaCtlCreation->type, "count", alsaCtlToCreate->alsaCtlCreation->count); - if(afb_api_call_sync_legacy(apiHandle, ALSACORE_API, ALSACORE_ADDCTL_VERB, queryJ, &returnedJ)) { - returnedError = HalUtlHandleAppFwCallError(apiHandle, ALSACORE_API, ALSACORE_ADDCTL_VERB, returnedJ, &returnedStatus, &returnedInfo); + if(afb_api_call_sync(apiHandle, + ALSACORE_API, + ALSACORE_ADDCTL_VERB, + queryJ, + &responseJ, + &returnedError, + &returnedInfo)) { AFB_API_ERROR(apiHandle, - "Error %i during call to verb %s of %s api with status '%s' and info '%s'", - (int) returnedError, + "Something went wrong during call to verb '%s' of api '%s' with error '%s' and info '%s'", ALSACORE_GETINFO_VERB, ALSACORE_API, - returnedStatus ? returnedStatus : "not returned", + returnedError ? returnedError : "not returned", returnedInfo ? returnedInfo : "not returned"); err = -5; } - else if(! wrap_json_unpack(returnedJ, "{s:{s:o}}", "request", "info", &returnedWarningJ)) { + else if(! responseJ) { AFB_API_ERROR(apiHandle, - "Warning raised during call to verb %s of %s api : '%s'", - ALSACORE_GETINFO_VERB, - ALSACORE_API, - json_object_get_string(returnedWarningJ)); + "Seems that %s call to api %s succeed but no response was returned", + ALSACORE_ADDCTL_VERB, + ALSACORE_API); err = -6; } - else if(wrap_json_unpack(returnedJ, "{s:o}", "response", &responseJ)) { - AFB_API_ERROR(apiHandle, - "Can't get response of call to verb %s of %s api : %s", - ALSACORE_GETINFO_VERB, - ALSACORE_API, - json_object_get_string(returnedJ)); - err = -7; - } else if(wrap_json_unpack(responseJ, "{s:i}", "id", &alsaCtlToCreate->numid)) { AFB_API_ERROR(apiHandle, "Can't get create id from %s of %s api", ALSACORE_GETINFO_VERB, ALSACORE_API); - err = -8; + err = -7; } else if(wrap_json_unpack(responseJ, "{s:o}", "ctl", NULL)) { AFB_API_WARNING(apiHandle, "Control %s was already present but has been updated", alsaCtlToCreate->name); } - if(returnedJ) - json_object_put(returnedJ); + if(responseJ) + json_object_put(responseJ); + + free(returnedError); + free(returnedInfo); return err; } 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 d648103..98d8d53 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c @@ -25,7 +25,6 @@ #include <afb/afb-binding.h> #include "4a-hal-utilities-data.h" -#include "4a-hal-utilities-appfw-responses-handler.h" #include "4a-hal-controllers-cb.h" #include "4a-hal-controllers-alsacore-link.h" @@ -487,7 +486,7 @@ json_object *HalCtlsGetJsonArrayForControls(afb_api_t apiHandle, struct CtlHalAl void HalCtlsInfo(afb_req_t request) { - char *apiToCall, *returnedStatus = NULL, *returnedInfo = NULL; + char *apiToCall, *returnedError = NULL, *returnedInfo = NULL; afb_api_t apiHandle; CtlConfigT *ctrlConfig; @@ -521,17 +520,12 @@ void HalCtlsInfo(afb_req_t request) return; } - if(HalCtlsGetInfoFromMixer(apiHandle, apiToCall, requestJson, &toReturnJ, &returnedStatus, &returnedInfo)) { - if(returnedStatus && returnedInfo) { - afb_req_fail_f(request, - "mixer_info", - "Call to mixer info verb didn't succeed with status '%s' and info '%s'", - returnedStatus, - returnedInfo); - } - else { - afb_req_fail(request, "mixer_info", "Call to mixer info verb didn't succeed"); - } + if(HalCtlsGetInfoFromMixer(apiHandle, apiToCall, requestJson, &toReturnJ, &returnedError, &returnedInfo)) { + afb_req_fail_f(request, + "mixer_info", + "Call to mixer info verb didn't succeed with status '%s' and info '%s'", + returnedError ? returnedError : "not returned", + returnedInfo ? returnedInfo : "not returned"); return; } diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c b/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c index 1574f83..2bd85be 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c @@ -24,7 +24,6 @@ #include <afb/afb-binding.h> -#include "4a-hal-utilities-appfw-responses-handler.h" #include "4a-hal-utilities-data.h" #include "4a-hal-utilities-hal-streams-handler.h" @@ -203,16 +202,14 @@ int HalCtlsAttachToMixer(afb_api_t apiHandle) { int err = 0, mixerError; - char *apiToCall, *returnedStatus = NULL, *returnedInfo = NULL; - - enum CallError returnedError; + char *apiToCall, *returnedError = NULL, *returnedInfo = NULL; CtlConfigT *ctrlConfig; struct SpecificHalData *currentCtlHalData, *concurentHalData = NULL; struct SpecificHalData **firstHalData; - json_object *returnJ = NULL, *toReturnJ; + json_object *responseJ = NULL; if(! apiHandle) { AFB_API_ERROR(apiHandle, "Can't get current hal api handle"); @@ -257,32 +254,35 @@ int HalCtlsAttachToMixer(afb_api_t apiHandle) return -6; } - if(afb_api_call_sync_legacy(apiHandle, apiToCall, MIXER_ATTACH_VERB, json_object_get(currentCtlHalData->ctlHalSpecificData->halMixerJ), &returnJ)) { - returnedError = HalUtlHandleAppFwCallError(apiHandle, apiToCall, MIXER_ATTACH_VERB, returnJ, &returnedStatus, &returnedInfo); + if(afb_api_call_sync(apiHandle, + apiToCall, + MIXER_ATTACH_VERB, + json_object_get(currentCtlHalData->ctlHalSpecificData->halMixerJ), + &responseJ, + &returnedError, + &returnedInfo)) { AFB_API_ERROR(apiHandle, - "Error %i during call to verb %s of %s api with status '%s' and info '%s'", - (int) returnedError, + "Something went wrong during call to verb '%s' of api '%s' with error '%s' and info '%s'", MIXER_ATTACH_VERB, apiToCall, - returnedStatus ? returnedStatus : "not returned", + returnedError ? returnedError : "not returned", returnedInfo ? returnedInfo : "not returned"); err = -7; } - else if(! json_object_object_get_ex(returnJ, "response", &toReturnJ)) { + else if(! responseJ) { AFB_API_ERROR(apiHandle, - "Seems that %s call to api %s succeed, but response is not valid : '%s'", + "Seems that %s call to api %s succeed but no response was returned", MIXER_ATTACH_VERB, - apiToCall, - json_object_get_string(returnJ)); + apiToCall); err = -8; } - else if((mixerError = HalCtlsHandleMixerAttachResponse(apiHandle, currentCtlHalData->ctlHalSpecificData, toReturnJ)) != (int) MIXER_NO_ERROR) { + else if((mixerError = HalCtlsHandleMixerAttachResponse(apiHandle, currentCtlHalData->ctlHalSpecificData, responseJ)) != (int) MIXER_NO_ERROR) { AFB_API_ERROR(apiHandle, "Seems that %s call to api %s succeed but this warning was risen by response decoder : %i '%s'", MIXER_ATTACH_VERB, apiToCall, mixerError, - json_object_get_string(toReturnJ)); + json_object_get_string(responseJ)); err = -9; } else { @@ -290,13 +290,15 @@ int HalCtlsAttachToMixer(afb_api_t apiHandle) "Seems that %s call to api %s succeed with no warning raised : '%s'", MIXER_ATTACH_VERB, apiToCall, - json_object_get_string(toReturnJ)); - + json_object_get_string(responseJ)); currentCtlHalData->status = HAL_STATUS_READY; } - if(returnJ) - json_object_put(returnJ); + if(responseJ) + json_object_put(responseJ); + + free(returnedError); + free(returnedInfo); return err; } @@ -305,14 +307,10 @@ int HalCtlsGetInfoFromMixer(afb_api_t apiHandle, char *apiToCall, json_object *requestJson, json_object **toReturnJ, - char **returnedStatus, + char **returnedError, char **returnedInfo) { - int err = 0; - - enum CallError returnedError; - - json_object *returnJ, *responseJ; + json_object *responseJ = NULL; if(! apiHandle) { AFB_API_ERROR(apiHandle, "Can't get current hal api handle"); @@ -329,24 +327,38 @@ int HalCtlsGetInfoFromMixer(afb_api_t apiHandle, return -3; } - if(afb_api_call_sync_legacy(apiHandle, apiToCall, MIXER_INFO_VERB, json_object_get(requestJson), &returnJ)) { - returnedError = HalUtlHandleAppFwCallError(apiHandle, apiToCall, MIXER_INFO_VERB, returnJ, returnedStatus, returnedInfo); + if(*returnedError || *returnedInfo) { + AFB_API_ERROR(apiHandle, "'returnedError' and 'returnedInfo' strings should be empty and set to 'NULL'"); + return -4; + } + + if(*toReturnJ) { + AFB_API_ERROR(apiHandle, "'toReturnJ' should be empty and set to 'NULL'"); + return -5; + } + + if(afb_api_call_sync(apiHandle, + apiToCall, + MIXER_INFO_VERB, + json_object_get(requestJson), + &responseJ, + returnedError, + returnedInfo)) { AFB_API_ERROR(apiHandle, - "Error %i during call to verb %s of %s api with status '%s' and info '%s'", - (int) returnedError, + "Something went wrong during call to verb '%s' of api '%s' with error '%s' and info '%s'", apiToCall, MIXER_INFO_VERB, - *returnedStatus ? *returnedStatus : "not returned", + *returnedError ? *returnedError : "not returned", *returnedInfo ? *returnedInfo : "not returned"); - err = -4; + return -6; } - else if(! json_object_object_get_ex(returnJ, "response", &responseJ)) { + else if(! responseJ) { AFB_API_ERROR(apiHandle, - "Seems that %s call to api %s succeed, but response is not valid : '%s'", + "Seems that %s call to api %s succeed but no response was returned", MIXER_INFO_VERB, - apiToCall, - json_object_get_string(returnJ)); - err = -5; + apiToCall); + json_object_put(responseJ); + return -7; } else { AFB_API_NOTICE(apiHandle, @@ -354,10 +366,8 @@ int HalCtlsGetInfoFromMixer(afb_api_t apiHandle, MIXER_INFO_VERB, apiToCall, json_object_get_string(responseJ)); - - *toReturnJ = json_object_get(responseJ); + *toReturnJ = responseJ; } - json_object_put(returnJ); - return err; + return 0; }
\ No newline at end of file diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.h b/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.h index f7d8f83..744830c 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.h +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.h @@ -64,7 +64,7 @@ int HalCtlsGetInfoFromMixer(afb_api_t apiHandle, char *apiToCall, json_object *requestJson, json_object **toReturnJ, - char **returnedStatus, + char **returnedError, char **returnedInfo); #endif /* _HAL_CTLS_SOFTMIXER_LINK_INCLUDE_ */
\ No newline at end of file |