diff options
Diffstat (limited to '4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c')
-rw-r--r-- | 4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c | 92 |
1 files changed, 51 insertions, 41 deletions
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 |