summaryrefslogtreecommitdiffstats
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.c45
1 files changed, 36 insertions, 9 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 1a89b23..b910899 100644
--- a/src/4a-internals-hal/4a-internals-hal-alsacore-link.c
+++ b/src/4a-internals-hal/4a-internals-hal-alsacore-link.c
@@ -102,20 +102,17 @@ int InternalHalGetCardInfo(afb_api_t apiHandle, json_object *requestJ, json_obje
return errorToReturn;
}
-int InternalHalSubscribeToAlsaCardEvent(afb_api_t apiHandle, char *cardId)
+int InternalHalSubscribeToAlsacoreEvent(afb_api_t apiHandle,
+ json_object *subscribeQueryJ)
{
- int err = 0, wrapRet;
+ int err = 0;
char *returnedError = NULL, *returnedInfo = NULL;
- json_object *subscribeQueryJ, *responseJ = NULL;
+ json_object *responseJ = NULL;
- wrapRet = wrap_json_pack(&subscribeQueryJ,
- "{s:s, s:s}",
- "event", ALSACORE_CARD_CONTROL_EVENT_NAME,
- "devid", cardId);
- if(wrapRet) {
- AFB_API_ERROR(apiHandle, "Didn't succeed to allocate subscription query json object");
+ if(! apiHandle || ! subscribeQueryJ) {
+ AFB_API_ERROR(apiHandle, "Invalid argument(s)");
return -1;
}
@@ -144,6 +141,36 @@ int InternalHalSubscribeToAlsaCardEvent(afb_api_t apiHandle, char *cardId)
return err;
}
+int InternalHalSubscribeToAlsacoreCardEvent(afb_api_t apiHandle,
+ char *cardId)
+{
+ int err, wrapRet;
+
+ json_object *subscribeQueryJ = NULL;
+
+ wrapRet = wrap_json_pack(&subscribeQueryJ,
+ "{s:s, s:s}",
+ "event", ALSACORE_CARD_CONTROL_EVENT_NAME,
+ "devid", cardId);
+ if(wrapRet) {
+ AFB_API_ERROR(apiHandle, "Didn't succeed to allocate subscription query json object");
+ return -1;
+ }
+
+ err = InternalHalSubscribeToAlsacoreEvent(apiHandle, subscribeQueryJ);
+ if(err) {
+ AFB_API_ERROR(apiHandle,
+ "Error %i happened when tried to subscribe to %s card event",
+ err,
+ ALSACORE_API);
+ if(! subscribeQueryJ)
+ json_object_put(subscribeQueryJ);
+ return -2;
+ }
+
+ return 0;
+}
+
int InternalHalGetAlsaCtlInfo(afb_api_t apiHandle, char *cardId, struct InternalHalAlsaCtl *currentAlsaCtl, json_object **returnedDataJ)
{
int wrapRet;