diff options
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.h | 37 |
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); |