summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/4a-hal-utilities/4a-hal-utilities-data.c20
-rw-r--r--lib/4a-hal-utilities/4a-hal-utilities-hal-streams-handler.c24
-rw-r--r--plugins/lib/bluealsa/hal-bluealsa-transports.c4
-rw-r--r--plugins/lib/bluealsa/hal-bluealsa.c313
-rw-r--r--src/4a-hal-manager/4a-hal-manager-cb.c19
-rw-r--r--src/4a-hal-manager/4a-hal-manager.c18
-rw-r--r--src/4a-internals-hal/4a-internals-hal-alsacore-link.c33
-rw-r--r--src/4a-internals-hal/4a-internals-hal-api-loader.c34
-rw-r--r--src/4a-internals-hal/4a-internals-hal-cb.c95
-rw-r--r--src/4a-internals-hal/4a-internals-hal-mixer-link.c22
-rw-r--r--src/4a-internals-hal/4a-internals-hal-value-handler.c26
11 files changed, 321 insertions, 287 deletions
diff --git a/lib/4a-hal-utilities/4a-hal-utilities-data.c b/lib/4a-hal-utilities/4a-hal-utilities-data.c
index 314190f..26bbd23 100644
--- a/lib/4a-hal-utilities/4a-hal-utilities-data.c
+++ b/lib/4a-hal-utilities/4a-hal-utilities-data.c
@@ -96,16 +96,14 @@ int8_t HalUtlRemoveSelectedMixerData(struct InternalHalMixerData **mixerDataList
int64_t HalUtlRemoveAllMixerData(struct InternalHalMixerData **mixerDataList)
{
- int8_t ret;
int64_t mixerDataRemoved = 0;
if(! mixerDataList)
return -1;
while(*mixerDataList) {
- ret = HalUtlRemoveSelectedMixerData(mixerDataList, *mixerDataList);
- if(ret)
- return (int64_t) ret;
+ if(HalUtlRemoveSelectedMixerData(mixerDataList, *mixerDataList))
+ return -2;
mixerDataRemoved++;
}
@@ -134,11 +132,10 @@ struct InternalHalMixerData *HalUtlSearchMixerDataByProperties(struct InternalHa
{
struct InternalHalMixerData *currentMixerData;
- if(! mixerDataList || ! verb)
+ if(! mixerDataList || ! *mixerDataList || ! verb)
return NULL;
currentMixerData = *mixerDataList;
-
while(currentMixerData) {
if((! strcmp(verb, currentMixerData->verb)) &&
(! strcmp(verbToCall, currentMixerData->verbToCall)) &&
@@ -152,7 +149,7 @@ struct InternalHalMixerData *HalUtlSearchMixerDataByProperties(struct InternalHa
}
/*******************************************************************************
- * Hal data handling functions *
+ * Hal data handling functions *
******************************************************************************/
struct HalData *HalUtlAddHalToHalList(struct HalData **halDataList)
@@ -233,16 +230,14 @@ int8_t HalUtlRemoveSelectedHalFromList(struct HalData **halDataList, struct HalD
int64_t HalUtlRemoveAllHalFromList(struct HalData **halDataList)
{
- int8_t ret;
int64_t halRemoved = 0;
if(! halDataList)
return -1;
while(*halDataList) {
- ret = HalUtlRemoveSelectedHalFromList(halDataList, *halDataList);
- if(ret)
- return (int64_t) ret;
+ if(HalUtlRemoveSelectedHalFromList(halDataList, *halDataList))
+ return -2;
halRemoved++;
}
@@ -259,7 +254,6 @@ int64_t HalUtlGetNumberOfHalInList(struct HalData **halDataList)
return -1;
currentHalData = *halDataList;
-
while(currentHalData) {
currentHalData = currentHalData->next;
numberOfHal++;
@@ -276,7 +270,6 @@ struct HalData *HalUtlSearchHalDataByApiName(struct HalData **halDataList, char
return NULL;
currentHalData = *halDataList;
-
while(currentHalData) {
if(! strcmp(apiName, currentHalData->apiName))
return currentHalData;
@@ -295,7 +288,6 @@ struct HalData *HalUtlSearchReadyHalDataByCardId(struct HalData **halDataList, i
return NULL;
currentHalData = *halDataList;
-
while(currentHalData) {
if(currentHalData->status == HAL_STATUS_READY && currentHalData->sndCardId == cardId)
return currentHalData;
diff --git a/lib/4a-hal-utilities/4a-hal-utilities-hal-streams-handler.c b/lib/4a-hal-utilities/4a-hal-utilities-hal-streams-handler.c
index ed06b27..2960537 100644
--- a/lib/4a-hal-utilities/4a-hal-utilities-hal-streams-handler.c
+++ b/lib/4a-hal-utilities/4a-hal-utilities-hal-streams-handler.c
@@ -45,23 +45,26 @@ void HalUtlActionOnMixer(afb_req_t request, enum ActionOnMixerType actionType)
json_object *requestJson, *responseJ = NULL, *toReturnJ = NULL;
- if(! (apiHandle = afb_req_get_api(request))) {
- afb_req_fail(request, "api_handle", "Can't get current hal controller api handle");
+ apiHandle = afb_req_get_api(request);
+ if(! apiHandle) {
+ afb_req_fail(request, "api_handle", "Can't get current hal api handle");
return;
}
- if(! (ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle))) {
- afb_req_fail(request, "hal_controller_config", "Can't get current hal controller config");
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
+ if(! ctrlConfig) {
+ afb_req_fail(request, "hal_controller_config", "Can't get current internal hal controller config");
return;
}
currentHalData = (struct HalData *) getExternalData(ctrlConfig);
if(! currentHalData) {
- afb_req_fail(request, "hal_controller_data", "Can't get current hal controller data");
+ afb_req_fail(request, "hal_controller_data", "Can't get current internal hal controller data");
return;
}
- if(! (requestJson = afb_req_json(request))) {
+ requestJson = afb_req_json(request);
+ if(! requestJson) {
afb_req_fail(request, "request_json", "Can't get request json");
return;
}
@@ -261,14 +264,15 @@ struct InternalHalMixerData *HalUtlAddStreamDataAndCreateStreamVerb(afb_api_t ap
createdStreamData->verbToCall = strdup(verbToCall);
createdStreamData->streamCardId = strdup(streamCardId);
- if((! createdStreamData->verb) ||
- (! createdStreamData->verbToCall) ||
- (! createdStreamData->streamCardId)) {
+ if(! createdStreamData->verb ||
+ ! createdStreamData->verbToCall ||
+ ! createdStreamData->streamCardId) {
HalUtlRemoveSelectedMixerData(&currentHalData->internalHalData->streamsData, createdStreamData);
return NULL;
}
- if(! (createdStreamData->event = afb_api_make_event(apiHandle, createdStreamData->verb))) {
+ createdStreamData->event = afb_api_make_event(apiHandle, createdStreamData->verb);
+ if(! createdStreamData->event) {
HalUtlRemoveSelectedMixerData(&currentHalData->internalHalData->streamsData, createdStreamData);
return NULL;
}
diff --git a/plugins/lib/bluealsa/hal-bluealsa-transports.c b/plugins/lib/bluealsa/hal-bluealsa-transports.c
index b528212..341fb6b 100644
--- a/plugins/lib/bluealsa/hal-bluealsa-transports.c
+++ b/plugins/lib/bluealsa/hal-bluealsa-transports.c
@@ -107,8 +107,8 @@ int halBlueAlsaTransportUpdate(
char transportS[HAL_BLUEALSA_TRANSPORT_LEN_MAX];
AFB_API_INFO(watch->plugin->api,
- "Unregister transport %s",
- halBlueAlsaTransportAsString(transportS, HAL_BLUEALSA_TRANSPORT_LEN_MAX, &transport->transport));
+ "Unregister transport %s",
+ halBlueAlsaTransportAsString(transportS, HAL_BLUEALSA_TRANSPORT_LEN_MAX, &transport->transport));
cds_list_del(&transport->list);
if (destructor) {
diff --git a/plugins/lib/bluealsa/hal-bluealsa.c b/plugins/lib/bluealsa/hal-bluealsa.c
index 58c4b54..efce322 100644
--- a/plugins/lib/bluealsa/hal-bluealsa.c
+++ b/plugins/lib/bluealsa/hal-bluealsa.c
@@ -70,7 +70,8 @@ CTLP_INIT(plugin, callbacks)
CtlConfigT *ctrlConfig;
struct HalData *currentHalData;
- if (!(ctrlConfig = (CtlConfigT *) afb_api_get_userdata(plugin->api))) {
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(plugin->api);
+ if (!ctrlConfig) {
AFB_API_ERROR(plugin->api, "Can't get current internal hal controller config");
goto fail;
}
@@ -83,7 +84,7 @@ CTLP_INIT(plugin, callbacks)
if (currentHalData->status != HAL_STATUS_AVAILABLE) {
AFB_API_WARNING(plugin->api,
- "Controller initialization of %s plugin cannot be done because hal is not ready to be used", HAL_BLUEALSA_PLUGIN_NAME);
+ "Controller initialization of %s plugin cannot be done because hal is not ready to be used", HAL_BLUEALSA_PLUGIN_NAME);
goto done;
}
@@ -127,17 +128,17 @@ CTLP_CAPI(init, source, argsJ, queryJ)
int error;
/*
- * "params": {
- "sco": {
- "mic": "2CH-GENERIC-USB",
- "zone": "full-stereo",
- "delayms": 300
- },
- "a2dp": {
- "zone": "full-stereo",
- "delayms": 1000
- }
- }
+ "params": {
+ "sco": {
+ "mic": "2CH-GENERIC-USB",
+ "zone": "full-stereo",
+ "delayms": 300
+ },
+ "a2dp": {
+ "zone": "full-stereo",
+ "delayms": 1000
+ }
+ }
*/
json_object * scoParamsJ = NULL;
@@ -184,7 +185,7 @@ CTLP_CAPI(init, source, argsJ, queryJ)
return 0;
fail:
- return -1;
+ return -1;
}
@@ -228,104 +229,100 @@ done:
*
* A2DP Case:
*
- * {
- "uid":"a2dp_F6:32:15:2A:80:70",
- "captures":
- {
- "uid":"a2dp_listen_capture",
- "pcmplug_params" : "bluealsa:HCI=hci0,DEV=F6:32:15:2A:80:70,PROFILE=a2dp",
- "source" : {
- "channels": [
- {
- "uid": "a2dp-right",
- "port": 0
- },
- {
- "uid": "a2dp-left",
- "port": 1
- }
- ]
- }
- },
- "streams":
- {
- "uid" : "a2dp_listen_stream",
- "source":"a2dp_listen_capture",
- "zone": "full-stereo"
- }
- }
+{
+ "uid":"a2dp_F6:32:15:2A:80:70",
+ "captures": {
+ "uid":"a2dp_listen_capture",
+ "pcmplug_params" : "bluealsa:HCI=hci0,DEV=F6:32:15:2A:80:70,PROFILE=a2dp",
+ "source" : {
+ "channels": [
+ {
+ "uid": "a2dp-right",
+ "port": 0
+ },
+ {
+ "uid": "a2dp-left",
+ "port": 1
+ }
+ ]
+ }
+ },
+ "streams": {
+ "uid" : "a2dp_listen_stream",
+ "source":"a2dp_listen_capture",
+ "zone": "full-stereo"
+ }
+}
*
*-----------------------------------------------------------------------------------
*
* SCO Case:
*
- * {
- "uid":"sco_F6:32:15:2A:80:70",",
- "captures":
- {
- "uid":"sco_listen_capture",
- "pcmplug_params" : "bluealsa:HCI=hci0,DEV=F6:32:15:2A:80:70,PROFILE=sco",
- "source" : {
- "channels": [
- {
- "uid": "sco-right",
- "port": 0
- },
- {
- "uid": "sco-left",
- "port": 1
- }
- ]
- }
- },
- "playbacks" :
- {
- "uid"="sco_talk_playback",
- "pcmplug_params" : "bluealsa:HCI=hci0,DEV=F6:32:15:2A:80:70,PROFILE=sco",
- "params": {
- "rate": 44100,
- "format": "S16_LE",
- },
- "sink": {
- "channels": [
- {
- "uid": "sco-mono"
- }
- ]
- }
- },
- "zones" : [
- {
- "uid": "sco_talk_zone",
- "sink": [
- {
- "target": "sco-mono",
- "channel": 0,
- "volume": 0.5
- },
- {
- "target": "sco-mono",
- "channel": 1,
- "volume": 0.5
- }
- ]
- }
- ] ,
- "streams": [
- {
- "uid" : "sco_listen_stream",
- "source":"sco_listen_capture",
- "zone": "full-stereo",
- "delayms": 300
- },
- {
- "uid" : "sco_talk_stream",
- "source": "2CH-GENERIC-USB",
- "zone": "sco_talk_zone",
- "delayms": 300
- }
- ]
- }
+{
+ "uid":"sco_F6:32:15:2A:80:70",",
+ "captures": {
+ "uid":"sco_listen_capture",
+ "pcmplug_params" : "bluealsa:HCI=hci0,DEV=F6:32:15:2A:80:70,PROFILE=sco",
+ "source" : {
+ "channels": [
+ {
+ "uid": "sco-right",
+ "port": 0
+ },
+ {
+ "uid": "sco-left",
+ "port": 1
+ }
+ ]
+ }
+ },
+ "playbacks" : {
+ "uid"="sco_talk_playback",
+ "pcmplug_params" : "bluealsa:HCI=hci0,DEV=F6:32:15:2A:80:70,PROFILE=sco",
+ "params": {
+ "rate": 44100,
+ "format": "S16_LE",
+ },
+ "sink": {
+ "channels": [
+ {
+ "uid": "sco-mono"
+ }
+ ]
+ }
+ },
+ "zones" : [
+ {
+ "uid": "sco_talk_zone",
+ "sink": [
+ {
+ "target": "sco-mono",
+ "channel": 0,
+ "volume": 0.5
+ },
+ {
+ "target": "sco-mono",
+ "channel": 1,
+ "volume": 0.5
+ }
+ ]
+ }
+ ],
+ "streams": [
+ {
+ "uid" : "sco_listen_stream",
+ "source":"sco_listen_capture",
+ "zone": "full-stereo",
+ "delayms": 300
+ },
+ {
+ "uid" : "sco_talk_stream",
+ "source": "2CH-GENERIC-USB",
+ "zone": "sco_talk_zone",
+ "delayms": 300
+ }
+ ]
+}
*
* */
@@ -566,7 +563,7 @@ static int halBlueAlsaAttachTransportStreams(bluealsa_transport_t * transport) {
json_object_object_add(streamJ, "uid", json_object_new_string(streamS));
json_object_object_add(streamJ, "source", json_object_new_string(captureS));
json_object_object_add(streamJ, "zone", json_object_new_string(playbackZoneS));
- if (delayms != 0) {
+ if (delayms) {
json_object_object_add(streamJ, "delayms", json_object_new_int(delayms));
}
@@ -582,7 +579,7 @@ static int halBlueAlsaAttachTransportStreams(bluealsa_transport_t * transport) {
json_object_object_add(streamJ, "uid", json_object_new_string(streamS));
json_object_object_add(streamJ, "source", json_object_new_string(pluginData->sco.mic));
json_object_object_add(streamJ, "zone", json_object_new_string(SCO_TALK_ZONE));
- if (delayms != 0)
+ if (delayms)
json_object_object_add(streamJ, "delayms", json_object_new_int(delayms));
json_object_array_add(streamsJ, streamJ);
}
@@ -614,7 +611,7 @@ static int halBluezAlsaRemoveTransportStream(bluealsa_transport_t * transport) {
json_object* requestJ = NULL;
AFB_API_INFO(plugin->api, "Call transaction detach verb %s", transport->transactionUidS);
- if (transport->transactionUidS == NULL)
+ if (!transport->transactionUidS)
goto fail;
requestJ = json_object_new_object();
@@ -642,7 +639,8 @@ static int halBlueAlsaFetchTransports(bluealsa_watch * watch) {
AFB_API_DEBUG(plugin->api, "Fetching available transports of interface %s", watch->interface);
- if ((nbTransports = bluealsa_get_transports(watch->fd, &transports)) == -1) {
+ nbTransports = bluealsa_get_transports(watch->fd, &transports);
+ if (nbTransports == -1) {
AFB_API_ERROR(plugin->api, "Couldn't get transports: %s", strerror(errno));
goto done;
}
@@ -676,7 +674,7 @@ static int halBlueAlsaFetchTransports(bluealsa_watch * watch) {
AFB_API_INFO(plugin->api, "Registering transport type %s, dev %s", typeS, addr);
transport = halBlueAlsaTransportsAdd(watch, transport_list, ba_transport);
- if (transport == NULL) {
+ if (!transport) {
AFB_API_ERROR(plugin->api, "Failed to register this transport");
goto done;
}
@@ -738,47 +736,49 @@ static int halBlueAlsaUnregister(CtlPluginT * plugin, const char * dbus_name) {
static int halBlueAlsaRegister(CtlPluginT* plugin, const char * dbus_name) {
int ret;
- sd_event * sdLoop;
- sd_event_source * evtsrc;
+ sd_event * sdLoop;
+ sd_event_source * evtsrc;
- const char * interface = dbus_name + strlen(BLUEZALSA_DBUS_NAME_PREFIX) +1 ;
+ const char * interface = dbus_name + strlen(BLUEZALSA_DBUS_NAME_PREFIX) +1 ;
- sdLoop = afb_api_get_event_loop(plugin->api);
+ sdLoop = afb_api_get_event_loop(plugin->api);
- enum ba_event transport_mask = BA_EVENT_TRANSPORT_ADDED |
- BA_EVENT_TRANSPORT_CHANGED |
- BA_EVENT_TRANSPORT_REMOVED;
+ enum ba_event transport_mask = BA_EVENT_TRANSPORT_ADDED |
+ BA_EVENT_TRANSPORT_CHANGED |
+ BA_EVENT_TRANSPORT_REMOVED;
- bluealsa_watch * watch = (bluealsa_watch *)malloc(sizeof(bluealsa_watch));
- if (watch == NULL)
- goto fail;
+ bluealsa_watch * watch = (bluealsa_watch *)malloc(sizeof(bluealsa_watch));
+ if (!watch)
+ goto fail;
- watch->interface = strdup(interface);
- if (!watch->interface) {
- AFB_API_ERROR(plugin->api, "%s: Insufficient memory", __func__);
+ watch->interface = strdup(interface);
+ if (!watch->interface) {
+ AFB_API_ERROR(plugin->api, "%s: Insufficient memory", __func__);
goto fail;
}
- watch->plugin = plugin;
+ watch->plugin = plugin;
- if ((watch->fd = bluealsa_open(interface)) == -1) {
- AFB_API_ERROR(plugin->api, "BlueALSA connection failed: %s", strerror(errno));
- goto fail;
- }
+ watch->fd = bluealsa_open(interface);
+ if (watch->fd == -1) {
+ AFB_API_ERROR(plugin->api, "BlueALSA connection failed: %s", strerror(errno));
+ goto fail;
+ }
halBlueAlsaFetchTransports(watch);
- if (bluealsa_event_subscribe(watch->fd, transport_mask) == -1) {
- AFB_API_ERROR(plugin->api, "BlueALSA subscription failed: %s", strerror(errno));
- goto fail;
- }
+ if (bluealsa_event_subscribe(watch->fd, transport_mask) == -1) {
+ AFB_API_ERROR(plugin->api, "BlueALSA subscription failed: %s", strerror(errno));
+ goto fail;
+ }
- // Register transport change event to the main loop of the binder
- if ((ret = sd_event_add_io(sdLoop, &evtsrc, watch->fd, EPOLLIN, halBlueAlsaTransportEventCB, watch)) < 0) {
- AFB_API_ERROR(plugin->api,
- "%s: Failed to register event fd to io loop",
- __func__);
- goto fail;
- }
+ // Register transport change event to the main loop of the binder
+ ret = sd_event_add_io(sdLoop, &evtsrc, watch->fd, EPOLLIN, halBlueAlsaTransportEventCB, watch);
+ if (ret < 0) {
+ AFB_API_ERROR(plugin->api,
+ "%s: Failed to register event fd to io loop",
+ __func__);
+ goto fail;
+ }
return 0;
@@ -812,7 +812,7 @@ static int name_changed_cb(sd_bus_message *m, void *userdata, sd_bus_error * ret
}
if (strcmp(signature,"sss") != 0) {
- AFB_API_ERROR(plugin->api, "%s: wrong message signature '%s'", __func__, signature);
+ AFB_API_ERROR(plugin->api, "%s: wrong message signature '%s'", __func__, signature);
goto done;
}
@@ -821,7 +821,7 @@ static int name_changed_cb(sd_bus_message *m, void *userdata, sd_bus_error * ret
const char *owner_new;
if (sd_bus_message_read(m, "sss", &name, &owner_old, &owner_new) < 0) {
- AFB_API_ERROR(plugin->api, "%s: failed to read message parameters", __func__);
+ AFB_API_ERROR(plugin->api, "%s: failed to read message parameters", __func__);
goto done;
}
@@ -829,12 +829,12 @@ static int name_changed_cb(sd_bus_message *m, void *userdata, sd_bus_error * ret
goto done;
if (owner_old != NULL && owner_old[0] != '\0') {
- AFB_API_INFO(plugin->api, "bluez-alsa: %s disappeared", name);
+ AFB_API_INFO(plugin->api, "bluez-alsa: %s disappeared", name);
halBlueAlsaUnregister(plugin, name);
}
if (owner_new != NULL && owner_new[0] != '\0') {
- AFB_API_INFO(plugin->api, "bluez-alsa %s appeared", name);
+ AFB_API_INFO(plugin->api, "bluez-alsa %s appeared", name);
halBlueAlsaRegister(plugin, name);
}
@@ -865,8 +865,9 @@ static int sd_bus_list_message_handler (sd_bus_message *m, void *userdata, sd_bu
const char * string = NULL;
- if ( (ret = sd_bus_message_enter_container(m, SD_BUS_TYPE_ARRAY, "s")) < 0) {
- AFB_API_ERROR(plugin->api, "failed to enter container, err=%s\n", strerror(-ret));
+ ret = sd_bus_message_enter_container(m, SD_BUS_TYPE_ARRAY, "s");
+ if (ret < 0) {
+ AFB_API_ERROR(plugin->api, "failed to enter container, err=%s", strerror(-ret));
goto failed;
}
@@ -877,7 +878,7 @@ static int sd_bus_list_message_handler (sd_bus_message *m, void *userdata, sd_bu
goto done;
}
- if (ret == 0)
+ if (!ret)
break;
if (strstr(string, BLUEZALSA_DBUS_NAME_PREFIX) != 0) {
@@ -906,14 +907,14 @@ static int halBlueAlsaRegisterAll(CtlPluginT* plugin) {
AFB_API_INFO(plugin->api, "Ask DBus for the list of services");
ret = sd_bus_call_method_async(bus,
- &slot,
- ORG_FREEDESKTOP_DBUS_NAME,
- ORG_FREEDESKTOP_DBUS_PATH,
- ORG_FREEDESKTOP_DBUS_INTERFACE,
- "ListNames",
- sd_bus_list_message_handler,
- plugin,
- NULL);
+ &slot,
+ ORG_FREEDESKTOP_DBUS_NAME,
+ ORG_FREEDESKTOP_DBUS_PATH,
+ ORG_FREEDESKTOP_DBUS_INTERFACE,
+ "ListNames",
+ sd_bus_list_message_handler,
+ plugin,
+ NULL);
if (ret < 0) {
AFB_API_ERROR(plugin->api, "Unable to request service list from DBus: %s", strerror(-ret));
goto failed;
diff --git a/src/4a-hal-manager/4a-hal-manager-cb.c b/src/4a-hal-manager/4a-hal-manager-cb.c
index 32fbb25..022bda8 100644
--- a/src/4a-hal-manager/4a-hal-manager-cb.c
+++ b/src/4a-hal-manager/4a-hal-manager-cb.c
@@ -67,7 +67,8 @@ void HalMgrLoaded(afb_req_t request)
json_object *requestJson, *requestAnswer, *apiObject;
- if(! (apiHandle = afb_req_get_api(request))) {
+ apiHandle = afb_req_get_api(request);
+ if(! apiHandle) {
afb_req_fail(request, "api_handle", "Can't get hal manager api handle");
return;
}
@@ -79,7 +80,6 @@ void HalMgrLoaded(afb_req_t request)
}
currentHalData = halMgrData->halDataList;
-
if(! currentHalData) {
afb_req_success(request, NULL, "No Hal Api loaded");
return;
@@ -91,7 +91,8 @@ void HalMgrLoaded(afb_req_t request)
return;
}
- if(! (requestJson = afb_req_json(request)))
+ requestJson = afb_req_json(request);
+ if(! requestJson)
AFB_REQ_NOTICE(request, "Can't get request json");
else
requestJsonErr = wrap_json_unpack(requestJson, "{s?:b s?:b}", "all", &allHal, "verbose", &verbose);
@@ -142,7 +143,8 @@ void HalMgrLoad(afb_req_t request)
json_object *requestJson, *apiReceivedMetadata;
- if(! (apiHandle = afb_req_get_api(request))) {
+ apiHandle = afb_req_get_api(request);
+ if(! apiHandle) {
afb_req_fail(request, "api_handle", "Can't get hal manager api handle");
return;
}
@@ -153,7 +155,8 @@ void HalMgrLoad(afb_req_t request)
return;
}
- if(! (requestJson = afb_req_json(request))) {
+ requestJson = afb_req_json(request);
+ if(! requestJson) {
afb_req_fail(request, "request_json", "Can't get request json");
return;
}
@@ -214,7 +217,8 @@ void HalMgrUnload(afb_req_t request)
json_object *requestJson;
- if(! (apiHandle = afb_req_get_api(request))) {
+ apiHandle = afb_req_get_api(request);
+ if(! apiHandle) {
afb_req_fail(request, "api_handle", "Can't get hal manager api handle");
return;
}
@@ -225,7 +229,8 @@ void HalMgrUnload(afb_req_t request)
return;
}
- if(! (requestJson = afb_req_json(request))) {
+ requestJson = afb_req_json(request);
+ if(! requestJson) {
afb_req_fail(request, "request_json", "Can't get request json");
return;
}
diff --git a/src/4a-hal-manager/4a-hal-manager.c b/src/4a-hal-manager/4a-hal-manager.c
index 4d2fbf1..20103cb 100644
--- a/src/4a-hal-manager/4a-hal-manager.c
+++ b/src/4a-hal-manager/4a-hal-manager.c
@@ -54,7 +54,7 @@ afb_verb_t HalManagerApiStaticVerbs[] =
};
/*******************************************************************************
- * HAL Manager get 'HalData' linked list *
+ * HAL Manager get 'HalData' linked list *
from HAL list function *
******************************************************************************/
@@ -87,7 +87,6 @@ static int HalMgrInitApi(afb_api_t apiHandle)
return -3;
currentHalData = halMgrData->halDataList;
-
while(currentHalData) {
if(! currentHalData->apiName)
return -4;
@@ -115,7 +114,7 @@ static int HalMgrLoadApi(void *cbdata, afb_api_t apiHandle)
// Add static controls verbs
if(HalUtlLoadVerbs(apiHandle, HalManagerApiStaticVerbs)) {
AFB_API_ERROR(apiHandle, "Load section : fail to register static verbs");
- return 1;
+ return -2;
}
// Declare an event manager for Hal Manager
@@ -144,7 +143,6 @@ int HalMgrCreateApi(afb_api_t apiHandle, struct HalMgrData *halMgrData)
int afbBindingEntry(afb_api_t apiHandle)
{
- int status = 0, rc;
if(! apiHandle)
return -1;
@@ -155,14 +153,12 @@ int afbBindingEntry(afb_api_t apiHandle)
AFB_API_NOTICE(apiHandle, "Binding start");
// Load Hal-Manager using Api v3
- rc = HalMgrCreateApi(apiHandle, &localHalMgrGlobalData);
- if(rc < 0)
- status--;
+ if(HalMgrCreateApi(apiHandle, &localHalMgrGlobalData))
+ return -3;
// Load internals Hal using Api v3
- rc = InternalHalCreateAllApi(apiHandle, &localHalMgrGlobalData);
- if(rc < 0)
- status -= rc;
+ if(InternalHalCreateAllApi(apiHandle, &localHalMgrGlobalData))
+ return -4;
- return status;
+ return 0;
} \ No newline at end of file
diff --git a/src/4a-internals-hal/4a-internals-hal-alsacore-link.c b/src/4a-internals-hal/4a-internals-hal-alsacore-link.c
index d092ddf..6eda170 100644
--- a/src/4a-internals-hal/4a-internals-hal-alsacore-link.c
+++ b/src/4a-internals-hal/4a-internals-hal-alsacore-link.c
@@ -39,13 +39,13 @@
******************************************************************************/
static const char *const snd_ctl_elem_type_names[] = {
- [SND_CTL_ELEM_TYPE_NONE]= "NONE",
- [SND_CTL_ELEM_TYPE_BOOLEAN]= "BOOLEAN",
- [SND_CTL_ELEM_TYPE_INTEGER]="INTEGER",
- [SND_CTL_ELEM_TYPE_ENUMERATED]="ENUMERATED",
- [SND_CTL_ELEM_TYPE_BYTES]="BYTES",
- [SND_CTL_ELEM_TYPE_IEC958]="IEC958",
- [SND_CTL_ELEM_TYPE_INTEGER64]="INTEGER64",
+ [SND_CTL_ELEM_TYPE_NONE] = "NONE",
+ [SND_CTL_ELEM_TYPE_BOOLEAN] = "BOOLEAN",
+ [SND_CTL_ELEM_TYPE_INTEGER] = "INTEGER",
+ [SND_CTL_ELEM_TYPE_ENUMERATED] = "ENUMERATED",
+ [SND_CTL_ELEM_TYPE_BYTES] = "BYTES",
+ [SND_CTL_ELEM_TYPE_IEC958] = "IEC958",
+ [SND_CTL_ELEM_TYPE_INTEGER64] = "INTEGER64",
};
/*******************************************************************************
@@ -481,19 +481,21 @@ void InternalHalActionOnAlsaCtl(afb_req_t request)
*appliedControlValuesJ,
*normalizedAppliedControlValuesJ;
- if(! (apiHandle = afb_req_get_api(request))) {
- afb_req_fail(request, "api_handle", "Can't get current hal controller api handle");
+ apiHandle = afb_req_get_api(request);
+ if(! apiHandle) {
+ afb_req_fail(request, "api_handle", "Can't get current internal hal api handle");
return;
}
- if(! (ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle))) {
- afb_req_fail(request, "hal_controller_config", "Can't get current hal controller config");
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
+ if(! ctrlConfig) {
+ afb_req_fail(request, "hal_controller_config", "Can't get current internal hal controller config");
return;
}
currentHalData = (struct HalData *) getExternalData(ctrlConfig);
if(! currentHalData) {
- afb_req_fail(request, "hal_controller_data", "Can't get current hal controller data");
+ afb_req_fail(request, "hal_controller_data", "Can't get current internal hal controller data");
return;
}
@@ -516,7 +518,7 @@ void InternalHalActionOnAlsaCtl(afb_req_t request)
snprintf(cardIdString, 6, "hw:%i", currentHalData->sndCardId);
if(InternalHalGetAlsaCtlValues(apiHandle, cardIdString, &currentAlsaCtl->ctl, &previousControlValuesJ)) {
- afb_req_fail_f(request, "previous_values", "Error when trying to get unchanged alsa control values");
+ afb_req_fail(request, "previous_values", "Error when trying to get unchanged alsa control values");
return;
}
else if(InternalHalConvertJsonValues(apiHandle,
@@ -532,7 +534,8 @@ void InternalHalActionOnAlsaCtl(afb_req_t request)
return;
}
- if(! (requestJson = afb_req_json(request))) {
+ requestJson = afb_req_json(request);
+ if(! requestJson) {
wrap_json_pack(&answerJ,
"{s:o}",
"current", normalizedPreviousControlValuesJ);
@@ -604,7 +607,7 @@ void InternalHalActionOnAlsaCtl(afb_req_t request)
json_object_put(convertedJ);
if(InternalHalGetAlsaCtlValues(apiHandle, cardIdString, &currentAlsaCtl->ctl, &appliedControlValuesJ)) {
- afb_req_fail_f(request, "applied_values", "Error when trying to get applied alsa control values");
+ afb_req_fail(request, "applied_values", "Error when trying to get applied alsa control values");
json_object_put(normalizedPreviousControlValuesJ);
return;
}
diff --git a/src/4a-internals-hal/4a-internals-hal-api-loader.c b/src/4a-internals-hal/4a-internals-hal-api-loader.c
index 94891b8..d70019e 100644
--- a/src/4a-internals-hal/4a-internals-hal-api-loader.c
+++ b/src/4a-internals-hal/4a-internals-hal-api-loader.c
@@ -82,7 +82,8 @@ static int InternalHalInitOneApi(afb_api_t apiHandle)
AFB_default = apiHandle;
// Retrieve section config from api handle
- if(! (ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle)))
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
+ if(! ctrlConfig)
return -2;
currentHalData = (struct HalData *) getExternalData(ctrlConfig);
@@ -135,15 +136,18 @@ static int InternalHalLoadOneApi(void *cbdata, afb_api_t apiHandle)
// Add static controls verbs
if(HalUtlLoadVerbs(apiHandle, InternalHalApiStaticVerbs)) {
AFB_API_ERROR(apiHandle, "Load Section : fail to register static V2 verbs");
- return 1;
+ return -2;
}
ctrlCurrentSections = malloc(sizeof(ctrlSectionsDefault));
memcpy(ctrlCurrentSections, ctrlSectionsDefault, sizeof(ctrlSectionsDefault));
// Load section for corresponding Api
- if((err = CtlLoadSections(apiHandle, ctrlConfig, ctrlCurrentSections)))
- return err;
+ err = CtlLoadSections(apiHandle, ctrlConfig, ctrlCurrentSections);
+ if(err) {
+ AFB_API_ERROR(apiHandle, "Didn't succeed to load current internal hal controller section");
+ return -4;
+ }
// Declare an event manager for this Api
afb_api_on_event(apiHandle, InternalHalDispatchApiEvent);
@@ -165,19 +169,21 @@ int InternalHalCreateApi(afb_api_t apiHandle, char *path, struct HalMgrData *hal
// Create one Api per file
ctrlConfig = CtlLoadMetaData(apiHandle, path);
if(! ctrlConfig) {
- AFB_API_ERROR(apiHandle, "No valid control config file in:\n-- %s", path);
+ AFB_API_ERROR(apiHandle, "No valid internal hal config file in : '%s'", path);
return -2;
}
if(! ctrlConfig->api) {
- AFB_API_ERROR(apiHandle, "API Missing from metadata in:\n-- %s", path);
+ AFB_API_ERROR(apiHandle, "API Missing from metadata in : '%s'", path);
return -3;
}
- // Allocation of current hal controller data
+ // Allocation of current internal hal data
currentHalData = HalUtlAddHalToHalList(&halMgrData->halDataList);
- if(! currentHalData)
+ if(! currentHalData) {
+ AFB_API_ERROR(apiHandle, "Didn't succeed to add hal to hal list");
return -4;
+ }
currentHalData->apiName = (char *) ctrlConfig->api;
@@ -188,15 +194,17 @@ int InternalHalCreateApi(afb_api_t apiHandle, char *path, struct HalMgrData *hal
currentHalData->internalHalData = calloc(1, sizeof(struct InternalHalData));
// Create one API
- if(! afb_api_new_api(apiHandle, ctrlConfig->api, ctrlConfig->info, 1, InternalHalLoadOneApi, ctrlConfig))
- return -5;
+ if(! afb_api_new_api(apiHandle, ctrlConfig->api, ctrlConfig->info, 1, InternalHalLoadOneApi, ctrlConfig)) {
+ AFB_API_ERROR(apiHandle, "An error occurred at '%s' internal hal api creation", ctrlConfig->api);
+ return -6;
+ }
return 0;
}
int InternalHalCreateAllApi(afb_api_t apiHandle, struct HalMgrData *halMgrData)
{
- int index, status = 0;
+ int index;
char *dirList, *fileName, *fullPath;
char filePath[CONTROL_MAXPATH_LEN];
@@ -236,8 +244,8 @@ int InternalHalCreateAllApi(afb_api_t apiHandle, struct HalMgrData *halMgrData)
strncat(filePath, fileName, sizeof(filePath) - 1);
if(InternalHalCreateApi(apiHandle, filePath, halMgrData) < 0)
- status--;
+ return -3;
}
- return status;
+ return 0;
} \ No newline at end of file
diff --git a/src/4a-internals-hal/4a-internals-hal-cb.c b/src/4a-internals-hal/4a-internals-hal-cb.c
index 0102d8d..c4934a4 100644
--- a/src/4a-internals-hal/4a-internals-hal-cb.c
+++ b/src/4a-internals-hal/4a-internals-hal-cb.c
@@ -49,7 +49,8 @@ void InternalHalDispatchApiEvent(afb_api_t apiHandle, const char *evtLabel, json
AFB_API_DEBUG(apiHandle, "Evtname=%s [msg=%s]", evtLabel, json_object_get_string(eventJ));
- if(! (ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle))) {
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
+ if(! ctrlConfig) {
AFB_API_ERROR(apiHandle, "Can't get current internal hal controller config");
return;
}
@@ -74,7 +75,7 @@ void InternalHalDispatchApiEvent(afb_api_t apiHandle, const char *evtLabel, json
currentHalAlsaCtlsT = currentHalData->internalHalData->alsaMapT;
- // Search for corresponding numid in halCtls, if found, launch callback (if available)
+ // Search for corresponding numid in ALSA controls list, if found, launch callback (if available)
for(idx = 0; idx < currentHalAlsaCtlsT->ctlsCount; idx++) {
if(currentHalAlsaCtlsT->ctls[idx].ctl.numid == numid) {
if(currentHalAlsaCtlsT->ctls[idx].action) {
@@ -90,7 +91,7 @@ void InternalHalDispatchApiEvent(afb_api_t apiHandle, const char *evtLabel, json
numid);
}
- if((! currentHalAlsaCtlsT->ctls[idx].alsaControlEvent) ||
+ if(! currentHalAlsaCtlsT->ctls[idx].alsaControlEvent ||
InternalHalConvertJsonValues(apiHandle,
&currentHalAlsaCtlsT->ctls[idx].ctl.alsaCtlProperties,
valuesJ,
@@ -138,7 +139,8 @@ int InternalHalHalMixerConfig(afb_api_t apiHandle, CtlSectionT *section, json_ob
if(! apiHandle || ! section)
return -1;
- if(! (ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle)))
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
+ if(! ctrlConfig)
return -2;
currentHalData = (struct HalData *) getExternalData(ctrlConfig);
@@ -184,7 +186,7 @@ int InternalHalProcessOneHalMapObject(afb_api_t apiHandle, struct InternalHalAls
"info", &alsaMap->info,
"alsa", &alsaJ,
"action", &action)) {
- AFB_API_ERROR(apiHandle, "Parsing error, map should only contains [label]|[uid]|[tag]|[info]|[alsa]|[action] in:\n-- %s", json_object_get_string(AlsaMapJ));
+ AFB_API_ERROR(apiHandle, "Parsing error, map should only contains [label]|[uid]|[tag]|[info]|[alsa]|[action] in : '%s'", json_object_get_string(AlsaMapJ));
return -1;
}
@@ -193,7 +195,7 @@ int InternalHalProcessOneHalMapObject(afb_api_t apiHandle, struct InternalHalAls
"numid", &alsaMap->ctl.numid,
"value", &alsaMap->ctl.value,
"create", &createAlsaCtlJ)) {
- AFB_API_ERROR(apiHandle, "Parsing error, alsa json should only contains [name]|[numid]||[value]|[create] in:\n-- %s", json_object_get_string(alsaJ));
+ AFB_API_ERROR(apiHandle, "Parsing error, alsa json should only contains [name]|[numid]||[value]|[create] in : '%s'", json_object_get_string(alsaJ));
return -2;
}
@@ -207,14 +209,17 @@ int InternalHalProcessOneHalMapObject(afb_api_t apiHandle, struct InternalHalAls
"minval", &alsaMap->ctl.alsaCtlCreation->minval,
"maxval", &alsaMap->ctl.alsaCtlCreation->maxval,
"step", &alsaMap->ctl.alsaCtlCreation->step)) {
- AFB_API_ERROR(apiHandle, "Parsing error, alsa creation json should only contains [type]|[count]|[minval]|[maxval]|[step] in:\n-- %s", json_object_get_string(alsaJ));
+ AFB_API_ERROR(apiHandle, "Parsing error, alsa creation json should only contains [type]|[count]|[minval]|[maxval]|[step] in : '%s'", json_object_get_string(alsaJ));
return -3;
}
if(typename) {
alsaMap->ctl.alsaCtlCreation->type = InternalHalMapsAlsaTypeToEnum(typename);
if(alsaMap->ctl.alsaCtlCreation->type == SND_CTL_ELEM_TYPE_NONE) {
- AFB_API_ERROR(apiHandle, "Couldn't get alsa type from string %s in:\n-- %s", typename, json_object_get_string(alsaJ));
+ AFB_API_ERROR(apiHandle,
+ "Couldn't get alsa type from string %s in : '%s'",
+ typename,
+ json_object_get_string(alsaJ));
return -4;
}
}
@@ -224,7 +229,7 @@ int InternalHalProcessOneHalMapObject(afb_api_t apiHandle, struct InternalHalAls
}
else if(alsaMap->ctl.name && alsaMap->ctl.numid > 0) {
AFB_API_ERROR(apiHandle,
- "Can't have both a control name (%s) and a control uid (%i) in alsa object:\n-- %s",
+ "Can't have both a control name (%s) and a control uid (%i) in alsa object : '%s'",
alsaMap->ctl.name,
alsaMap->ctl.numid,
json_object_get_string(alsaJ));
@@ -232,7 +237,7 @@ int InternalHalProcessOneHalMapObject(afb_api_t apiHandle, struct InternalHalAls
}
else if(! alsaMap->ctl.name && alsaMap->ctl.numid <= 0) {
AFB_API_ERROR(apiHandle,
- "Need at least a control name or a control uid in alsa object:\n-- %s",
+ "Need at least a control name or a control uid in alsa object : '%s'",
json_object_get_string(alsaJ));
return -6;
}
@@ -249,9 +254,10 @@ int InternalHalHandleOneHalMapObject(afb_api_t apiHandle, char *cardId, struct I
json_object *valueJ, *convertedValueJ = NULL;
- if(! (alsaMap->alsaControlEvent = afb_api_make_event(apiHandle, alsaMap->uid))) {
+ alsaMap->alsaControlEvent = afb_api_make_event(apiHandle, alsaMap->uid);
+ if(! alsaMap->alsaControlEvent) {
AFB_API_ERROR(apiHandle,
- "Didn't succeed to create event for current alsa control to load action using alsa object:\n-- %s",
+ "Didn't succeed to create event for current alsa control to load action using alsa object : '%s'",
json_object_get_string(alsaMap->actionJ));
return -1;
}
@@ -298,7 +304,7 @@ int InternalHalHandleOneHalMapObject(afb_api_t apiHandle, char *cardId, struct I
alsaMap->action = calloc(1, sizeof(CtlActionT));
if(ActionLoadOne(apiHandle, alsaMap->action, alsaMap->actionJ, 0)) {
AFB_API_ERROR(apiHandle,
- "Didn't succeed to load action using alsa object:\n-- %s",
+ "Didn't succeed to load action using alsa object : '%s'",
json_object_get_string(alsaMap->actionJ));
return -6;
}
@@ -306,7 +312,7 @@ int InternalHalHandleOneHalMapObject(afb_api_t apiHandle, char *cardId, struct I
if(afb_api_add_verb(apiHandle, alsaMap->uid, alsaMap->info, InternalHalActionOnAlsaCtl, (void *) alsaMap, NULL, 0, 0)) {
AFB_API_ERROR(apiHandle,
- "Didn't succeed to create verb for current alsa control to load action using alsa object:\n-- %s",
+ "Didn't succeed to create verb for current alsa control to load action using alsa object : '%s'",
json_object_get_string(alsaMap->actionJ));
return -7;
}
@@ -335,7 +341,7 @@ int InternalHalProcessAllHalMap(afb_api_t apiHandle, json_object *AlsaMapJ, stru
default:
currentInternalHalAlsaMapT->ctlsCount = 0;
currentInternalHalAlsaMapT->ctls = NULL;
- AFB_API_WARNING(apiHandle, "Couldn't get content of 'halmap' section in : '%s'", json_object_get_string(AlsaMapJ));
+ AFB_API_ERROR(apiHandle, "Content of 'halmap' section is not valid ('%s')", json_object_get_string(AlsaMapJ));
return -1;
}
@@ -370,7 +376,8 @@ int InternalHalHalMapConfig(afb_api_t apiHandle, CtlSectionT *section, json_obje
CtlConfigT *ctrlConfig;
struct HalData *currentHalData;
- if(! (ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle)))
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
+ if(! ctrlConfig)
return -1;
currentHalData = (struct HalData *) getExternalData(ctrlConfig);
@@ -391,7 +398,7 @@ int InternalHalHalMapConfig(afb_api_t apiHandle, CtlSectionT *section, json_obje
}
else if(currentHalData->sndCardId < 0) {
AFB_API_ERROR(apiHandle, "Hal alsa card id is not valid, 'halmap' section data can't be handle");
- return -6;
+ return -4;
}
else if(! currentHalData->internalHalData->alsaMapT) {
AFB_API_WARNING(apiHandle, "'halmap' section data is empty");
@@ -403,7 +410,7 @@ int InternalHalHalMapConfig(afb_api_t apiHandle, CtlSectionT *section, json_obje
}
else if(InternalHalHandleAllHalMap(apiHandle, currentHalData->sndCardId, currentHalData->internalHalData->alsaMapT)) {
AFB_API_ERROR(apiHandle, "Failed to handle 'halmap' section");
- return -9;
+ return -5;
}
return 0;
@@ -428,12 +435,11 @@ json_object *InternalHalGetJsonArrayForMixerDataTable(afb_api_t apiHandle,
mixerDataArrayJ = json_object_new_array();
if(! mixerDataArrayJ) {
- AFB_API_ERROR(apiHandle, "Can't generate json mixer data array");
+ AFB_API_ERROR(apiHandle, "Didn't succeed to allocate requested mixer data json array");
return NULL;
}
currentMixerData = *mixerDataList;
-
while(currentMixerData) {
switch(dataType) {
case MIXER_DATA_STREAMS:
@@ -480,8 +486,9 @@ json_object *InternalHalGetJsonArrayForControls(afb_api_t apiHandle, struct Inte
return NULL;
}
- if(! (alsaMapDataArray = json_object_new_array())) {
- AFB_API_ERROR(apiHandle, "Can't generate json mixer data array");
+ alsaMapDataArray = json_object_new_array();
+ if(! alsaMapDataArray) {
+ AFB_API_ERROR(apiHandle, "Didn't succeed to allocate ALSA controls data json array");
return NULL;
}
@@ -506,14 +513,22 @@ void InternalHalInfo(afb_req_t request)
struct HalData *currentHalData;
- json_object *requestJson, *toReturnJ = NULL, *requestAnswer, *streamsArray, *playbacksArray, *capturesArray, *controlsArray;
+ json_object *requestJson,
+ *toReturnJ = NULL,
+ *requestAnswer,
+ *streamsArray,
+ *playbacksArray,
+ *capturesArray,
+ *controlsArray;
- if(! (apiHandle = afb_req_get_api(request))) {
+ apiHandle = afb_req_get_api(request);
+ if(! apiHandle) {
afb_req_fail(request, "api_handle", "Can't get current internal hal api handle");
return;
}
- if(! (ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle))) {
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
+ if(! ctrlConfig) {
afb_req_fail(request, "hal_controller_config", "Can't get current internal hal controller config");
return;
}
@@ -524,7 +539,8 @@ void InternalHalInfo(afb_req_t request)
return;
}
- if(! (requestJson = afb_req_json(request))) {
+ requestJson = afb_req_json(request);
+ if(! requestJson) {
AFB_REQ_NOTICE(request, "Can't get request json");
}
else if(json_object_is_type(requestJson, json_type_object) && json_object_get_object(requestJson)->count > 0) {
@@ -604,12 +620,14 @@ void InternalHalSubscribeUnsubscribe(afb_req_t request, enum SubscribeUnsubscrib
json_object *requestJson, *requestedSubscriptionsJ, *requestedSubscriptionJ = NULL;
json_type requestJsonType;
- if(! (apiHandle = afb_req_get_api(request))) {
+ apiHandle = afb_req_get_api(request);
+ if(! apiHandle) {
afb_req_fail(request, "api_handle", "Can't get current internal hal api handle");
return;
}
- if(! (ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle))) {
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
+ if(! ctrlConfig) {
afb_req_fail(request, "hal_controller_config", "Can't get current internal hal controller config");
return;
}
@@ -627,7 +645,8 @@ void InternalHalSubscribeUnsubscribe(afb_req_t request, enum SubscribeUnsubscrib
InternalHalAlsaMapT = currentHalData->internalHalData->alsaMapT;
- if(! (requestJson = afb_req_json(request))) {
+ requestJson = afb_req_json(request);
+ if(! requestJson) {
afb_req_fail(request, "request_json", "Can't get request json");
return;
}
@@ -669,17 +688,17 @@ void InternalHalSubscribeUnsubscribe(afb_req_t request, enum SubscribeUnsubscrib
if(currentHalData->internalHalData->streamUpdates &&
subscribeUnsubscribeType == SUBSCRIPTION &&
afb_req_subscribe(request, currentHalData->internalHalData->streamUpdates)) {
- afb_req_fail_f(request,
- "request_stream_list_updates_event",
- "Error while trying to subscribe to stream list updates event");
+ afb_req_fail(request,
+ "request_stream_list_updates_event",
+ "Error while trying to subscribe to stream list updates event");
return;
}
else if(currentHalData->internalHalData->streamUpdates &&
subscribeUnsubscribeType == UNSUBSCRIPTION &&
afb_req_unsubscribe(request, currentHalData->internalHalData->streamUpdates)) {
- afb_req_fail_f(request,
- "request_stream_list_updates_event",
- "Error while trying to unsubscribe to stream list updates event");
+ afb_req_fail(request,
+ "request_stream_list_updates_event",
+ "Error while trying to unsubscribe to stream list updates event");
return;
}
@@ -689,7 +708,7 @@ void InternalHalSubscribeUnsubscribe(afb_req_t request, enum SubscribeUnsubscrib
currentStreamData = currentHalData->internalHalData->streamsData;
while(currentStreamData &&
- (! subscriptionFound)) {
+ ! subscriptionFound) {
if(! strcasecmp(currentSubscriptionString, currentStreamData->verb)) {
if(currentStreamData->event &&
subscribeUnsubscribeType == SUBSCRIPTION &&
@@ -712,7 +731,6 @@ void InternalHalSubscribeUnsubscribe(afb_req_t request, enum SubscribeUnsubscrib
subscriptionFound = 1;
subscriptionDoneNb++;
-
break;
}
@@ -721,7 +739,7 @@ void InternalHalSubscribeUnsubscribe(afb_req_t request, enum SubscribeUnsubscrib
searchIdx = 0;
while((searchIdx < (InternalHalAlsaMapT ? InternalHalAlsaMapT->ctlsCount : 0)) &&
- (! subscriptionFound)) {
+ ! subscriptionFound) {
if(! strcasecmp(currentSubscriptionString, InternalHalAlsaMapT->ctls[searchIdx].uid)) {
if(InternalHalAlsaMapT->ctls[searchIdx].alsaControlEvent &&
subscribeUnsubscribeType == SUBSCRIPTION &&
@@ -744,7 +762,6 @@ void InternalHalSubscribeUnsubscribe(afb_req_t request, enum SubscribeUnsubscrib
subscriptionFound = 1;
subscriptionDoneNb++;
-
break;
}
diff --git a/src/4a-internals-hal/4a-internals-hal-mixer-link.c b/src/4a-internals-hal/4a-internals-hal-mixer-link.c
index 95e9099..4e0398e 100644
--- a/src/4a-internals-hal/4a-internals-hal-mixer-link.c
+++ b/src/4a-internals-hal/4a-internals-hal-mixer-link.c
@@ -58,9 +58,11 @@ int InternalHalHandleMixerData(afb_api_t apiHandle,
case json_type_object:
mixerDataNb = 1;
break;
+
case json_type_array:
mixerDataNb = (unsigned int) json_object_array_length(currentDataJ);
break;
+
default:
mixerDataNb = 0;
AFB_API_ERROR(apiHandle, "No data returned");
@@ -104,7 +106,6 @@ int InternalHalHandleMixerData(afb_api_t apiHandle,
currentDataVerbName);
err += (int) MIXER_ERROR_STREAM_NOT_ADDED;
}
-
break;
case MIXER_DATA_PLAYBACKS:
@@ -114,8 +115,8 @@ int InternalHalHandleMixerData(afb_api_t apiHandle,
currentMixerData->verb = strdup((dataType == MIXER_DATA_PLAYBACKS) ? HAL_PLAYBACK_ID : HAL_CAPTURE_ID);
currentMixerData->verbToCall = strdup(currentDataVerbName);
- if((! currentMixerData->verb) ||
- (! currentMixerData->verbToCall)) {
+ if(! currentMixerData->verb ||
+ ! currentMixerData->verbToCall) {
HalUtlRemoveSelectedMixerData(mixerDataList, currentMixerData);
err += (int) MIXER_ERROR_STREAM_ALLOCATION_FAILED;
}
@@ -169,7 +170,11 @@ int InternalHalHandleMixerAttachResponse(afb_api_t apiHandle, struct InternalHal
return (int) MIXER_ERROR_API_UNAVAILABLE;
}
- if(wrap_json_unpack(mixerResponseJ, "{s?:o s?:o s?:o}", "streams", &mixerStreamsJ, "playbacks", &mixerPlaybacksJ, "captures", &mixerCapturesJ)) {
+ if(wrap_json_unpack(mixerResponseJ,
+ "{s?:o s?:o s?:o}",
+ "streams", &mixerStreamsJ,
+ "playbacks", &mixerPlaybacksJ,
+ "captures", &mixerCapturesJ)) {
AFB_API_ERROR(apiHandle, "Can't get streams|playbacks|captures object in '%s'", json_object_get_string(mixerResponseJ));
return (int) MIXER_ERROR_DATA_UNAVAILABLE;
}
@@ -227,14 +232,15 @@ int InternalHalAttachToMixer(afb_api_t apiHandle)
return -1;
}
- if(! (ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle))) {
- AFB_API_ERROR(apiHandle, "Can't get current hal controller config");
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
+ if(! ctrlConfig) {
+ AFB_API_ERROR(apiHandle, "Can't get current internal hal controller config");
return -2;
}
currentHalData = (struct HalData *) getExternalData(ctrlConfig);
if(! currentHalData) {
- AFB_API_ERROR(apiHandle, "Can't get current hal controller data");
+ AFB_API_ERROR(apiHandle, "Can't get current internal hal controller data");
return -3;
}
@@ -386,4 +392,4 @@ int InternalHalGetInfoFromMixer(afb_api_t apiHandle,
}
return 0;
-} \ No newline at end of file
+}
diff --git a/src/4a-internals-hal/4a-internals-hal-value-handler.c b/src/4a-internals-hal/4a-internals-hal-value-handler.c
index 64083a9..98e29ab 100644
--- a/src/4a-internals-hal/4a-internals-hal-value-handler.c
+++ b/src/4a-internals-hal/4a-internals-hal-value-handler.c
@@ -229,7 +229,7 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle,
idx,
json_object_get_string(toConvertObjectJ));
json_object_put(convertedArrayJ);
- return -(idx + 1);
+ return -1;
}
break;
@@ -246,7 +246,7 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle,
idx,
json_object_get_string(toConvertObjectJ));
json_object_put(convertedArrayJ);
- return -(idx + 1);
+ return -2;
}
break;
@@ -255,7 +255,7 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle,
"Conversion not handle for the alsa control type %i",
(int) alsaCtlProperties->type);
json_object_put(convertedArrayJ);
- return -(idx + 1);
+ return -3;
}
json_object_array_put_idx(convertedArrayJ, idx, convertedValueJ);
@@ -285,8 +285,8 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle,
requestedPercentageVariation = (int) strtol(requestedPercentageVariationString, &conversionEnd, 10);
if(conversionEnd == requestedPercentageVariationString) {
AFB_API_ERROR(apiHandle,
- "Tried to increase/decrease an integer control \
- but string sent in json is not a increase/decrease string : '%s'",
+ "Tried to increase/decrease an integer control"
+ "but string sent in json is not a increase/decrease string : '%s'",
json_object_get_string(requestedPercentageVariationJ));
return -1;
}
@@ -294,16 +294,16 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle,
if(alsaCtlProperties->type != SND_CTL_ELEM_TYPE_INTEGER &&
alsaCtlProperties->type != SND_CTL_ELEM_TYPE_INTEGER64) {
AFB_API_ERROR(apiHandle,
- "Tried to increase/decrease values on a incompatible \
- control type (%i), control type must be an integer",
+ "Tried to increase/decrease values on a incompatible"
+ "control type (%i), control type must be an integer",
alsaCtlProperties->type);
return -2;
}
if(requestedPercentageVariation < -100 || requestedPercentageVariation > 100) {
AFB_API_ERROR(apiHandle,
- "Tried to increase/decrease values but specified change is \
- not a valid percentage, it should be between -100 and 100");
+ "Tried to increase/decrease values but specified change is"
+ "not a valid percentage, it should be between -100 and 100");
return -3;
}
@@ -331,9 +331,11 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle,
if(! json_object_is_type(toChangeObjectJ, json_type_int)) {
AFB_API_ERROR(apiHandle,
- "Current json object %s is not an integer",
- json_object_get_string(toChangeObjectJ));
- return -(10 + idx);
+ "Current json object %s is not an integer (object %i out of %i)",
+ json_object_get_string(toChangeObjectJ),
+ idx,
+ count);
+ return -5;
}
toChangeValue = json_object_get_int(toChangeObjectJ);