aboutsummaryrefslogtreecommitdiffstats
path: root/src/4a-internals-hal/4a-internals-hal-alsacore-link.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/4a-internals-hal/4a-internals-hal-alsacore-link.h')
-rw-r--r--src/4a-internals-hal/4a-internals-hal-alsacore-link.h37
1 files changed, 29 insertions, 8 deletions
diff --git a/src/4a-internals-hal/4a-internals-hal-alsacore-link.h b/src/4a-internals-hal/4a-internals-hal-alsacore-link.h
index 84a096a..0694a81 100644
--- a/src/4a-internals-hal/4a-internals-hal-alsacore-link.h
+++ b/src/4a-internals-hal/4a-internals-hal-alsacore-link.h
@@ -19,6 +19,7 @@
#define _INTERNALS_HAL_ALSACORE_LINK_INCLUDE_
#include <stdio.h>
+#include <string.h>
#include <wrap-json.h>
@@ -29,17 +30,31 @@
#include <ctl-config.h>
#include "4a-hal-utilities-alsa-data.h"
+#include "4a-hal-utilities-data.h"
-#define ALSACORE_API "alsacore"
+#define ALSACORE_API "alsacore"
+#define ALSACORE_API_NAME_LENGTH strlen(ALSACORE_API)
-#define ALSACORE_SUBSCRIBE_VERB "subscribe"
-#define ALSACORE_UNSUBSCRIBE_VERB "unsubscribe"
-#define ALSACORE_GETINFO_VERB "infoget"
-#define ALSACORE_CTLGET_VERB "ctlget"
-#define ALSACORE_CTLSET_VERB "ctlset"
-#define ALSACORE_ADDCTL_VERB "addcustomctl"
+#define ALSACORE_SUBSCRIBE_VERB "subscribe"
+#define ALSACORE_UNSUBSCRIBE_VERB "unsubscribe"
+#define ALSACORE_GETINFO_VERB "infoget"
+#define ALSACORE_CTLGET_VERB "ctlget"
+#define ALSACORE_CTLSET_VERB "ctlset"
+#define ALSACORE_ADDCTL_VERB "addcustomctl"
-#define ALSACORE_CARD_CONTROL_EVENT_NAME "controls"
+#define ALSACORE_CARD_CONTROL_EVENT_NAME "controls"
+
+#define ALSACORE_EVENT_NAME_BEGIN (ALSACORE_API_NAME_LENGTH + 1)
+#define ALSACORE_CARD_CONTROL_EVENT_NAME_PREFIX "hw:"
+#define ALSACORE_CARD_CONTROL_EVENT_NAME_PREFIX_LENGTH strlen(ALSACORE_CARD_CONTROL_EVENT_NAME_PREFIX)
+#define ALSACORE_CARD_CONTROL_EVENT_BEGIN (ALSACORE_EVENT_NAME_BEGIN + ALSACORE_CARD_CONTROL_EVENT_NAME_PREFIX_LENGTH)
+
+// Enum for handled alsacore events
+
+enum aslacoreEventType {
+ ALSACORE_EVENT_CARD_CONTROL_CHANGE = 0,
+ ALSACORE_UNRECOGNIZED_EVENT = 1
+};
// Enum for the type of subscription/unsubscription to do with alsacore
enum AlsacoreSubscribeUnsubscribeType {
@@ -50,6 +65,12 @@ enum AlsacoreSubscribeUnsubscribeType {
// Alsa control types map from string function
snd_ctl_elem_type_t InternalHalMapsAlsaTypeToEnum(const char *label);
+// Internals HAL alsacore events handler function
+int InternalHalHandleAlsaCoreEvents(afb_api_t apiHandle,
+ const char *evtLabel,
+ json_object *eventJ,
+ struct HalData *currentHalData);
+
// Internals HAL alsacore calls funtions
int InternalHalGetCardInfo(afb_api_t apiHandle, json_object *requestJ, json_object **responseJ);
int InternalHalSubscribeToAlsacoreCardEvent(afb_api_t apiHandle, char *cardId);