aboutsummaryrefslogtreecommitdiffstats
path: root/src/4a-internals-hal/4a-internals-hal-alsacore-link.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/4a-internals-hal/4a-internals-hal-alsacore-link.c')
-rw-r--r--src/4a-internals-hal/4a-internals-hal-alsacore-link.c15
1 files changed, 13 insertions, 2 deletions
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 902e5ad..e1ad6dd 100644
--- a/src/4a-internals-hal/4a-internals-hal-alsacore-link.c
+++ b/src/4a-internals-hal/4a-internals-hal-alsacore-link.c
@@ -287,7 +287,9 @@ int InternalHalUpdateAlsaCtlProperties(afb_api_t apiHandle, char *cardId, struct
{
int err = 0;
- json_object *returnedDataJ;
+ char *name;
+
+ json_object *returnedDataJ = NULL;
err = InternalHalGetAlsaCtlInfo(apiHandle, cardId, currentAlsaCtl, &returnedDataJ);
if(err) {
@@ -295,7 +297,9 @@ int InternalHalUpdateAlsaCtlProperties(afb_api_t apiHandle, char *cardId, struct
}
// TBD JAI : get dblinear/dbminmax/... values
else if(wrap_json_unpack(returnedDataJ,
- "{s:{s?:i s?:i s?:i s?:i s?:i}}",
+ "{s:i s:s s:{s?:i s?:i s?:i s?:i s?:i}}",
+ "id", &currentAlsaCtl->numid,
+ "name", &name,
"ctl",
"type", (int *) &currentAlsaCtl->alsaCtlProperties.type,
"count", &currentAlsaCtl->alsaCtlProperties.count,
@@ -310,6 +314,13 @@ int InternalHalUpdateAlsaCtlProperties(afb_api_t apiHandle, char *cardId, struct
err = -9;
}
+ else {
+ currentAlsaCtl->name = strdup(name);
+ if(! currentAlsaCtl->name) {
+ AFB_API_ERROR(apiHandle, "Didn't succeed to store (allocate) control 'name' string");
+ err = -10;
+ }
+ }
if(returnedDataJ)
json_object_put(returnedDataJ);