]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
ctl: generate enumerations
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 18 Nov 2019 04:22:44 +0000 (13:22 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sat, 30 Nov 2019 08:58:41 +0000 (17:58 +0900)
src/ctl/alsactl-enum-types.h [new file with mode: 0644]
src/ctl/alsactl.map
src/ctl/meson.build

diff --git a/src/ctl/alsactl-enum-types.h b/src/ctl/alsactl-enum-types.h
new file mode 100644 (file)
index 0000000..1ca7e3d
--- /dev/null
@@ -0,0 +1,112 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#ifndef __ALSA_GOBJECT_ALSACTL_ENUM_TYPES__H__
+#define __ALSA_GOBJECT_ALSACTL_ENUM_TYPES__H__
+
+#include <sound/asound.h>
+
+/**
+ * ALSACtlElemType:
+ * @ALSACTL_ELEM_TYPE_NONE:         Unudentified type.
+ * @ALSACTL_ELEM_TYPE_BOOLEAN:      The element has boolean values.
+ * @ALSACTL_ELEM_TYPE_INTEGER:      The element has integer values.
+ * @ALSACTL_ELEM_TYPE_ENUMERATED:   The element has values for enumerated labels.
+ * @ALSACTL_ELEM_TYPE_BYTES:        The element has byte values.
+ * @ALSACTL_ELEM_TYPE_IEC60958:     The element has parameters of IEC 60958.
+ * @ALSACTL_ELEM_TYPE_INTEGER64:    The element has 64 bit integer values.
+ *
+ * A set of enumerations for type of element.
+ */
+typedef enum {
+    ALSACTL_ELEM_TYPE_NONE         = SNDRV_CTL_ELEM_TYPE_NONE,
+    ALSACTL_ELEM_TYPE_BOOLEAN      = SNDRV_CTL_ELEM_TYPE_BOOLEAN,
+    ALSACTL_ELEM_TYPE_INTEGER      = SNDRV_CTL_ELEM_TYPE_INTEGER,
+    ALSACTL_ELEM_TYPE_ENUMERATED   = SNDRV_CTL_ELEM_TYPE_ENUMERATED,
+    ALSACTL_ELEM_TYPE_BYTES        = SNDRV_CTL_ELEM_TYPE_BYTES,
+    ALSACTL_ELEM_TYPE_IEC60958     = SNDRV_CTL_ELEM_TYPE_IEC958,
+    ALSACTL_ELEM_TYPE_INTEGER64    = SNDRV_CTL_ELEM_TYPE_INTEGER64,
+} ALSACtlElemType;
+
+/**
+ * ALSACtlElemIfaceType:
+ * @ALSACTL_ELEM_IFACE_TYPE_CARD:       The element has effects to whole the sound card.
+ * @ALSACTL_ELEM_IFACE_TYPE_HWDEP:      The element has effects to hwdep device.
+ * @ALSACTL_ELEM_IFACE_TYPE_MIXER:      The element has effects to mixer device.
+ * @ALSACTL_ELEM_IFACE_TYPE_PCM:        The element has effects to PCM device.
+ * @ALSACTL_ELEM_IFACE_TYPE_RAWMIDI:    The element has effects to Rawmidi device.
+ * @ALSACTL_ELEM_IFACE_TYPE_TIMER:      The element has effects to Timer device.
+ * @ALSACTL_ELEM_IFACE_TYPE_SEQUENCER:  The element has effects to Sequencer device.
+ *
+ * A set of enumerations for interface of element.
+ */
+typedef enum {
+    ALSACTL_ELEM_IFACE_TYPE_CARD        = SNDRV_CTL_ELEM_IFACE_CARD,
+    ALSACTL_ELEM_IFACE_TYPE_HWDEP       = SNDRV_CTL_ELEM_IFACE_HWDEP,
+    ALSACTL_ELEM_IFACE_TYPE_MIXER       = SNDRV_CTL_ELEM_IFACE_MIXER,
+    ALSACTL_ELEM_IFACE_TYPE_PCM         = SNDRV_CTL_ELEM_IFACE_PCM,
+    ALSACTL_ELEM_IFACE_TYPE_RAWMIDI     = SNDRV_CTL_ELEM_IFACE_RAWMIDI,
+    ALSACTL_ELEM_IFACE_TYPE_TIMER       = SNDRV_CTL_ELEM_IFACE_TIMER,
+    ALSACTL_ELEM_IFACE_TYPE_SEQUENCER   = SNDRV_CTL_ELEM_IFACE_SEQUENCER,
+} ALSACtlElemIfaceType;
+
+/**
+ * ALSACtlElemAccessFlag:
+ * @ALSACTL_ELEM_ACCESS_FLAG_READ:          The element supports operation to get its values.
+ * @ALSACTL_ELEM_ACCESS_FLAG_WRITE:         The element supports operation to change its values.
+ * @ALSACTL_ELEM_ACCESS_FLAG_VOLATILE:      The state of element is mutable independent of operating system.
+ * @ALSACTL_ELEM_ACCESS_FLAG_TLV_READ:      The element supports operation to get Type-Length-Value data.
+ * @ALSACTL_ELEM_ACCESS_FLAG_TLV_WRITE:     The element supports operation to change Type-Length-Value data.
+ * @ALSACTL_ELEM_ACCESS_FLAG_TLV_COMMAND:   The element supports operation to use Type-Length-Value data as any command.
+ * @ALSACTL_ELEM_ACCESS_FLAG_INACTIVE:      The element is not activated yet.
+ * @ALSACTL_ELEM_ACCESS_FLAG_LOCK:          The element is under locked state from any write operation.
+ * @ALSACTL_ELEM_ACCESS_FLAG_OWNER:         The element is owned by the process.
+ * @ALSACTL_ELEM_ACCESS_FLAG_TLV_CALLBACK:  The element supports specific operation to process Type-Length-Value data.
+ * @ALSACTL_ELEM_ACCESS_FLAG_USER:          The element is maintained by any user application, instead of kernel driver.
+ *
+ * A set of flags for access information of the element.
+ */
+typedef enum /*< flags >*/
+{
+    ALSACTL_ELEM_ACCESS_FLAG_READ         = SNDRV_CTL_ELEM_ACCESS_READ,
+    ALSACTL_ELEM_ACCESS_FLAG_WRITE        = SNDRV_CTL_ELEM_ACCESS_WRITE,
+    ALSACTL_ELEM_ACCESS_FLAG_VOLATILE     = SNDRV_CTL_ELEM_ACCESS_VOLATILE,
+    ALSACTL_ELEM_ACCESS_FLAG_TLV_READ     = SNDRV_CTL_ELEM_ACCESS_TLV_READ,
+    ALSACTL_ELEM_ACCESS_FLAG_TLV_WRITE    = SNDRV_CTL_ELEM_ACCESS_TLV_WRITE,
+    ALSACTL_ELEM_ACCESS_FLAG_TLV_COMMAND  = SNDRV_CTL_ELEM_ACCESS_TLV_COMMAND,
+    ALSACTL_ELEM_ACCESS_FLAG_INACTIVE     = SNDRV_CTL_ELEM_ACCESS_INACTIVE,
+    ALSACTL_ELEM_ACCESS_FLAG_LOCK         = SNDRV_CTL_ELEM_ACCESS_LOCK,
+    ALSACTL_ELEM_ACCESS_FLAG_OWNER        = SNDRV_CTL_ELEM_ACCESS_OWNER,
+    ALSACTL_ELEM_ACCESS_FLAG_TLV_CALLBACK = SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
+    ALSACTL_ELEM_ACCESS_FLAG_USER         = SNDRV_CTL_ELEM_ACCESS_USER,
+} ALSACtlElemAccessFlag;
+
+/**
+ * ALSACtlEventType:
+ * @ALSACTL_EVENT_TYPE_ELEM:     The event is related to any element.
+ *
+ * A set of enumerations for the type of event.
+ */
+typedef enum
+{
+  ALSACTL_EVENT_TYPE_ELEM  = SNDRV_CTL_EVENT_ELEM,
+} ALSACtlEventType;
+
+/**
+ * ALSACtlEventMaskFlag:
+ * @ALSACTL_EVENT_MASK_FLAG_VALUE:      The event notifies any change of value for the element.
+ * @ALSACTL_EVENT_MASK_FLAG_INFO:       The event notifies any change of information for the element.
+ * @ALSACTL_EVENT_MASK_FLAG_ADD:        The element notifies addition of the element.
+ * @ALSACTL_EVENT_MASK_FLAG_TLV:        The element notifies any change of Type-Length-Value data for the element.
+ * @ALSACTL_EVENT_MASK_FLAG_REMOVE:     The element notifies removal of the element.
+ *
+ * A set of flags for the content of event for the element.
+ */
+typedef enum /*< flags >*/
+{
+    ALSACTL_EVENT_MASK_FLAG_VALUE   = SNDRV_CTL_EVENT_MASK_VALUE,
+    ALSACTL_EVENT_MASK_FLAG_INFO    = SNDRV_CTL_EVENT_MASK_INFO,
+    ALSACTL_EVENT_MASK_FLAG_ADD     = SNDRV_CTL_EVENT_MASK_ADD,
+    ALSACTL_EVENT_MASK_FLAG_TLV     = SNDRV_CTL_EVENT_MASK_TLV,
+    ALSACTL_EVENT_MASK_FLAG_REMOVE  = SNDRV_CTL_EVENT_MASK_TLV << 1,
+} ALSACtlEventMaskFlag;
+
+#endif
index 72ece8a8a00a98d42a9c832b49050551b43a8d95..4863f838e1a4a210348e0cda22730e28f8c23eec 100644 (file)
@@ -1,4 +1,10 @@
 ALSA_GOBJECT_0_0_0 {
+  global:
+    "alsactl_elem_type_get_type";
+    "alsactl_elem_iface_type_get_type";
+    "alsactl_elem_access_flag_get_type";
+    "alsactl_event_type_get_type";
+    "alsactl_event_mask_flag_get_type";
   local:
     *;
 };
index ea076830a0a2e362a5285f886beaa72c9acb73ff..084fcbc94d6755a4b4ff8b2ba6fde9487cf7e242 100644 (file)
@@ -5,7 +5,7 @@
 path = 'ctl'
 name = 'alsactl'
 namespace = 'ALSACtl'
-has_enumerations = false
+has_enumerations = true
 has_marshaller = false
 
 sources = files()