summaryrefslogtreecommitdiffstats
path: root/4a-hal/4a-hal-controllers
diff options
context:
space:
mode:
Diffstat (limited to '4a-hal/4a-hal-controllers')
-rw-r--r--4a-hal/4a-hal-controllers/4a-hal-controllers-alsacore-link.c237
-rw-r--r--4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c20
-rw-r--r--4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c92
-rw-r--r--4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.h2
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", &currentAlsaCtl->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", &currentAlsaCtl->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 *) &currentAlsaCtl->alsaCtlProperties.type,
"count", &currentAlsaCtl->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