]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
seq: generate enumerations
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 1 Apr 2020 09:13:28 +0000 (18:13 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Fri, 3 Apr 2020 13:06:25 +0000 (22:06 +0900)
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/seq/alsaseq-enum-types.h [new file with mode: 0644]
src/seq/alsaseq.map
src/seq/meson.build

diff --git a/src/seq/alsaseq-enum-types.h b/src/seq/alsaseq-enum-types.h
new file mode 100644 (file)
index 0000000..4edc231
--- /dev/null
@@ -0,0 +1,342 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+#ifndef __ALSA_GOBJECT_ALSASEQ_ENUM_TYPES__H__
+#define __ALSA_GOBJECT_ALSASEQ_ENUM_TYPES__H__
+
+#include <sound/asequencer.h>
+
+/**
+ * ALSASeqSpecificAddress:
+ * @ALSASEQ_SPECIFIC_ADDRESS_UNKNOWN:       The address for unknown client/port/queue.
+ * @ALSASEQ_SPECIFIC_ADDRESS_SUBSCRIBERS:   The client/port/queue address towards subscribers.
+ * @ALSASEQ_SPECIFIC_ADDRESS_BROADCAST:     The client/port/queue address to broadcast.
+ *
+ * A set of enumerations for specific addresses.
+ */
+typedef enum {
+    ALSASEQ_SPECIFIC_ADDRESS_UNKNOWN        = SNDRV_SEQ_ADDRESS_UNKNOWN,
+    ALSASEQ_SPECIFIC_ADDRESS_SUBSCRIBERS    = SNDRV_SEQ_ADDRESS_SUBSCRIBERS,
+    ALSASEQ_SPECIFIC_ADDRESS_BROADCAST      = SNDRV_SEQ_ADDRESS_BROADCAST,
+} ALSASeqSpecificAddress;
+
+/**
+ * ALSASeqSpecificClientId:
+ * @ALSASEQ_SPECIFIC_CLIENT_ID_SYSTEM:  The numerical ID to system client.
+ * @ALSASEQ_SPECIFIC_CLIENT_ID_DUMMY:   The numerical ID to dummy client.
+ * @ALSASEQ_SPECIFIC_CLIENT_ID_OSS:     The numerical ID to OSS client.
+ *
+ * A set of enumerations for the numerical IDs of specific clients.
+ */
+typedef enum {
+    ALSASEQ_SPECIFIC_CLIENT_ID_SYSTEM       = SNDRV_SEQ_CLIENT_SYSTEM,
+    ALSASEQ_SPECIFIC_CLIENT_ID_DUMMY        = SNDRV_SEQ_CLIENT_DUMMY,
+    ALSASEQ_SPECIFIC_CLIENT_ID_OSS          = SNDRV_SEQ_CLIENT_OSS,
+} ALSASeqSpecificClientId;
+
+/**
+ * ALSASeqClientType:
+ * @ALSASEQ_CLIENT_TYPE_NONE:       The client is invalid.
+ * @ALSASEQ_CLIENT_TYPE_USER:       The client is userspace application.
+ * @ALSASEQ_CLIENT_TYPE_KERNEL:     The client is kernel driver.
+ *
+ * A set of enumerations for the type of client.
+ */
+typedef enum {
+    ALSASEQ_CLIENT_TYPE_NONE    = NO_CLIENT,
+    ALSASEQ_CLIENT_TYPE_USER    = USER_CLIENT,
+    ALSASEQ_CLIENT_TYPE_KERNEL  = KERNEL_CLIENT,
+} ALSASeqClientType;
+
+/**
+ * ALSASeqFilterAttrFlag:
+ * @ALSASEQ_FILTER_ATTR_FLAG_BROADCAST: The client is going to handle broadcast events.
+ * @ALSASEQ_FILTER_ATTR_FLAG_MULTICAST: The client is going to handle multicast events.
+ * @ALSASEQ_FILTER_ATTR_FLAG_BOUNCE:    The client is going to handle bounce events.
+ *
+ * A set of flags for attributes of event filter.
+ */
+typedef enum /*< flags >*/
+{
+    ALSASEQ_FILTER_ATTR_FLAG_BROADCAST  = SNDRV_SEQ_FILTER_BROADCAST,
+    ALSASEQ_FILTER_ATTR_FLAG_MULTICAST  = SNDRV_SEQ_FILTER_MULTICAST,
+    ALSASEQ_FILTER_ATTR_FLAG_BOUNCE     = SNDRV_SEQ_FILTER_BOUNCE,
+} ALSASeqFilterAttrFlag;
+
+/**
+ * ALSASeqSpecificPortId:
+ * @ALSASEQ_SPECIFIC_PORT_ID_SYSTEM_TIMER:      The numerical ID of port for system timer.
+ * @ALSASEQ_SPECIFIC_PORT_ID_SYSTEM_ANNOUNCE:   The numerical ID of port for system announce.
+ *
+ * A set of enumerations for the numerical IDs of port for specific purpose.
+ */
+typedef enum
+{
+    ALSASEQ_SPECIFIC_PORT_ID_SYSTEM_TIMER    = SNDRV_SEQ_PORT_SYSTEM_TIMER,
+    ALSASEQ_SPECIFIC_PORT_ID_SYSTEM_ANNOUNCE = SNDRV_SEQ_PORT_SYSTEM_ANNOUNCE,
+} ALSASeqSpecificPortId;
+
+/**
+ * ALSASeqPortCapFlag:
+ * @ALSASEQ_PORT_CAP_FLAG_READ:         Any message can be read from the port.
+ * @ALSASEQ_PORT_CAP_FLAG_WRITE:        Any message can be written to the port.
+ * @ALSASEQ_PORT_CAP_FLAG_DUPLEX:       Any messages can be read from/written to the port simultaneously.
+ * @ALSASEQ_PORT_CAP_FLAG_SUBS_READ:    The data of subscription can be read from the port.
+ * @ALSASEQ_PORT_CAP_FLAG_SUBS_WRITE:   The data of subscription can be written to the port.
+ * @ALSASEQ_PORT_CAP_FLAG_NO_EXPORT:    Only owners of the port can maintain subscription.
+ *
+ * A set of flags for the capabilities of port.
+ */
+typedef enum /*< flags >*/
+{
+    ALSASEQ_PORT_CAP_FLAG_READ          = SNDRV_SEQ_PORT_CAP_READ,
+    ALSASEQ_PORT_CAP_FLAG_WRITE         = SNDRV_SEQ_PORT_CAP_WRITE,
+    ALSASEQ_PORT_CAP_FLAG_DUPLEX        = SNDRV_SEQ_PORT_CAP_DUPLEX,
+    ALSASEQ_PORT_CAP_FLAG_SUBS_READ     = SNDRV_SEQ_PORT_CAP_SUBS_READ,
+    ALSASEQ_PORT_CAP_FLAG_SUBS_WRITE    = SNDRV_SEQ_PORT_CAP_SUBS_WRITE,
+    ALSASEQ_PORT_CAP_FLAG_NO_EXPORT     = SNDRV_SEQ_PORT_CAP_NO_EXPORT,
+} ALSASeqPortCapFlag;
+
+/**
+ * ALSASeqPortAttrFlag:
+ * @ALSASEQ_PORT_ATTR_FLAG_SPECIFIC:        For hardware specific messages.
+ * @ALSASEQ_PORT_ATTR_FLAG_MIDI_GENERIC:    For generic MIDI messages.
+ * @ALSASEQ_PORT_ATTR_FLAG_MIDI_GM:         For General MIDI comatible messages.
+ * @ALSASEQ_PORT_ATTR_FLAG_MIDI_GS:         For GS compatible messages.
+ * @ALSASEQ_PORT_ATTR_FLAG_MIDI_XG:         For XG compatible messages.
+ * @ALSASEQ_PORT_ATTR_FLAG_MIDI_MT32:       For MT-32 compatible messages.
+ * @ALSASEQ_PORT_ATTR_FLAG_MIDI_GM2:        For General MIDI 2 compatible messages.
+ * @ALSASEQ_PORT_ATTR_FLAG_HARDWARE:        The port on any hardware.
+ * @ALSASEQ_PORT_ATTR_FLAG_SOFTWARE:        The port on any software.
+ * @ALSASEQ_PORT_ATTR_FLAG_SYNTHESIZER:     The port to generate sound.
+ * @ALSASEQ_PORT_ATTR_FLAG_PORT:            The port connects to the other devices.
+ * @ALSASEQ_PORT_ATTR_FLAG_APPLICATION:     The port on any application such as sequencer and editor.
+ *
+ * A set of flags for the attributes of port.
+ */
+typedef enum /*< flags >*/
+{
+    ALSASEQ_PORT_ATTR_FLAG_SPECIFIC         = SNDRV_SEQ_PORT_TYPE_SPECIFIC,
+    ALSASEQ_PORT_ATTR_FLAG_MIDI_GENERIC     = SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC,
+    ALSASEQ_PORT_ATTR_FLAG_MIDI_GM          = SNDRV_SEQ_PORT_TYPE_MIDI_GM,
+    ALSASEQ_PORT_ATTR_FLAG_MIDI_GS          = SNDRV_SEQ_PORT_TYPE_MIDI_GS,
+    ALSASEQ_PORT_ATTR_FLAG_MIDI_XG          = SNDRV_SEQ_PORT_TYPE_MIDI_XG,
+    ALSASEQ_PORT_ATTR_FLAG_MIDI_MT32        = SNDRV_SEQ_PORT_TYPE_MIDI_MT32,
+    ALSASEQ_PORT_ATTR_FLAG_MIDI_GM2         = SNDRV_SEQ_PORT_TYPE_MIDI_GM2,
+    ALSASEQ_PORT_ATTR_FLAG_HARDWARE         = SNDRV_SEQ_PORT_TYPE_HARDWARE,
+    ALSASEQ_PORT_ATTR_FLAG_SOFTWARE         = SNDRV_SEQ_PORT_TYPE_SOFTWARE,
+    ALSASEQ_PORT_ATTR_FLAG_SYNTHESIZER      = SNDRV_SEQ_PORT_TYPE_SYNTHESIZER,
+    ALSASEQ_PORT_ATTR_FLAG_PORT             = SNDRV_SEQ_PORT_TYPE_PORT,
+    ALSASEQ_PORT_ATTR_FLAG_APPLICATION      = SNDRV_SEQ_PORT_TYPE_APPLICATION,
+} ALSASeqPortAttrFlag;
+
+/**
+ * ALSASeqEventType:
+ * @ALSASEQ_EVENT_TYPE_SYSTEM:              For system status.
+ * @ALSASEQ_EVENT_TYPE_RESULT:              For result status.
+ * @ALSASEQ_EVENT_TYPE_NOTE:                For note message with duration.
+ * @ALSASEQ_EVENT_TYPE_NOTEON:              For note on message.
+ * @ALSASEQ_EVENT_TYPE_NOTEOFF:             For note off message.
+ * @ALSASEQ_EVENT_TYPE_KEYPRESS:            For keypress message.
+ * @ALSASEQ_EVENT_TYPE_CONTROLLER:          For control change message.
+ * @ALSASEQ_EVENT_TYPE_PGMCHANGE:           For program change message.
+ * @ALSASEQ_EVENT_TYPE_CHANPRESS:           For channel pressure message.
+ * @ALSASEQ_EVENT_TYPE_PITCHBEND:           For pitchbend message.
+ * @ALSASEQ_EVENT_TYPE_CONTROL14:           For control message with 14 bit value.
+ * @ALSASEQ_EVENT_TYPE_NONREGPARAM:         For 14 bit NRPN address and 14 bit unsigned value.
+ * @ALSASEQ_EVENT_TYPE_REGPARAM:            For 14 bit RPN address and 14 bit unsigned value.
+ * @ALSASEQ_EVENT_TYPE_SONGPOS:             For song position message with LSB and MSB values.
+ * @ALSASEQ_EVENT_TYPE_SONGSEL:             For song select message with numerical ID of song.
+ * @ALSASEQ_EVENT_TYPE_QFRAME:              For time code quarter frame message of MIDI.
+ * @ALSASEQ_EVENT_TYPE_TIMESIGN:            For time signature message of Standard MIDi File.
+ * @ALSASEQ_EVENT_TYPE_KEYSIGN:             For key signature message of Standard MIDI File.
+ * @ALSASEQ_EVENT_TYPE_START:               For Real Time Start message of MIDI.
+ * @ALSASEQ_EVENT_TYPE_CONTINUE:            For Real Time Continue message of MIDI.
+ * @ALSASEQ_EVENT_TYPE_STOP:                For Real Time Stop message of MIDI.
+ * @ALSASEQ_EVENT_TYPE_SETPOS_TICK:         For position setting of tick queue.
+ * @ALSASEQ_EVENT_TYPE_SETPOS_TIME:         For position setting of realtime queue.
+ * @ALSASEQ_EVENT_TYPE_TEMPO:               For tempo message of Standard MIDI File.
+ * @ALSASEQ_EVENT_TYPE_CLOCK:               For Real Time Clock message of MIDI.
+ * @ALSASEQ_EVENT_TYPE_TICK:                For Real Time Tick message of MIDI.
+ * @ALSASEQ_EVENT_TYPE_QUEUE_SKEW:          For skew of tempo for queue.
+ * @ALSASEQ_EVENT_TYPE_TUNE_REQUEST:        For requests to tune.
+ * @ALSASEQ_EVENT_TYPE_RESET:               For reset to power-on state.
+ * @ALSASEQ_EVENT_TYPE_SENSING:             For active sensing message.
+ * @ALSASEQ_EVENT_TYPE_ECHO:                For echo message.
+ * @ALSASEQ_EVENT_TYPE_OSS:                 For raw message from Open Sound System.
+ * @ALSASEQ_EVENT_TYPE_CLIENT_START:        For appear of the port.
+ * @ALSASEQ_EVENT_TYPE_CLIENT_EXIT:         For disappear of the client.
+ * @ALSASEQ_EVENT_TYPE_CLIENT_CHANGE:       For change of information or status of the client.
+ * @ALSASEQ_EVENT_TYPE_PORT_START:          For addition of the port.
+ * @ALSASEQ_EVENT_TYPE_PORT_EXIT:           For removal of the port.
+ * @ALSASEQ_EVENT_TYPE_PORT_CHANGE:         For change of information or status of the port.
+ * @ALSASEQ_EVENT_TYPE_PORT_SUBSCRIBED:     For establishment of subscription about the port.
+ * @ALSASEQ_EVENT_TYPE_PORT_UNSUBSCRIBED:   For break of subscription about the port.
+ * @ALSASEQ_EVENT_TYPE_USR0:                For user-defined message 0.
+ * @ALSASEQ_EVENT_TYPE_USR1:                For user-defined message 1.
+ * @ALSASEQ_EVENT_TYPE_USR2:                For user-defined message 2.
+ * @ALSASEQ_EVENT_TYPE_USR3:                For user-defined message 3.
+ * @ALSASEQ_EVENT_TYPE_USR4:                For user-defined message 4.
+ * @ALSASEQ_EVENT_TYPE_USR5:                For user-defined message 5.
+ * @ALSASEQ_EVENT_TYPE_USR6:                For user-defined message 6.
+ * @ALSASEQ_EVENT_TYPE_USR7:                For user-defined message 7.
+ * @ALSASEQ_EVENT_TYPE_USR8:                For user-defined message 8.
+ * @ALSASEQ_EVENT_TYPE_USR9:                For user-defined message 9.
+ * @ALSASEQ_EVENT_TYPE_SYSEX:               For system exclisive message with variable length data.
+ * @ALSASEQ_EVENT_TYPE_BOUNCE:              For error message.
+ * @ALSASEQ_EVENT_TYPE_USR_VAR0:            For user-defined message 0 with variable length data.
+ * @ALSASEQ_EVENT_TYPE_USR_VAR1:            For user-defined message 1 with variable length data.
+ * @ALSASEQ_EVENT_TYPE_USR_VAR2:            For user-defined message 2 with variable length data.
+ * @ALSASEQ_EVENT_TYPE_USR_VAR3:            For user-defined message 3 with variable length data.
+ * @ALSASEQ_EVENT_TYPE_USR_VAR4:            For user-defined message 4 with variable length data.
+ * @ALSASEQ_EVENT_TYPE_NONE:                For invalid or unknown message.
+ *
+ * The type of event.
+ */
+typedef enum {
+    ALSASEQ_EVENT_TYPE_SYSTEM               = SNDRV_SEQ_EVENT_SYSTEM,
+    ALSASEQ_EVENT_TYPE_RESULT               = SNDRV_SEQ_EVENT_RESULT,
+    ALSASEQ_EVENT_TYPE_NOTE                 = SNDRV_SEQ_EVENT_NOTE,
+    ALSASEQ_EVENT_TYPE_NOTEON               = SNDRV_SEQ_EVENT_NOTEON,
+    ALSASEQ_EVENT_TYPE_NOTEOFF              = SNDRV_SEQ_EVENT_NOTEOFF,
+    ALSASEQ_EVENT_TYPE_KEYPRESS             = SNDRV_SEQ_EVENT_KEYPRESS,
+    ALSASEQ_EVENT_TYPE_CONTROLLER           = SNDRV_SEQ_EVENT_CONTROLLER,
+    ALSASEQ_EVENT_TYPE_PGMCHANGE            = SNDRV_SEQ_EVENT_PGMCHANGE,
+    ALSASEQ_EVENT_TYPE_CHANPRESS            = SNDRV_SEQ_EVENT_CHANPRESS,
+    ALSASEQ_EVENT_TYPE_PITCHBEND            = SNDRV_SEQ_EVENT_PITCHBEND,
+    ALSASEQ_EVENT_TYPE_CONTROL14            = SNDRV_SEQ_EVENT_CONTROL14,
+    ALSASEQ_EVENT_TYPE_NONREGPARAM          = SNDRV_SEQ_EVENT_NONREGPARAM,
+    ALSASEQ_EVENT_TYPE_REGPARAM             = SNDRV_SEQ_EVENT_REGPARAM,
+    ALSASEQ_EVENT_TYPE_SONGPOS              = SNDRV_SEQ_EVENT_SONGPOS,
+    ALSASEQ_EVENT_TYPE_SONGSEL              = SNDRV_SEQ_EVENT_SONGSEL,
+    ALSASEQ_EVENT_TYPE_QFRAME               = SNDRV_SEQ_EVENT_QFRAME,
+    ALSASEQ_EVENT_TYPE_TIMESIGN             = SNDRV_SEQ_EVENT_TIMESIGN,
+    ALSASEQ_EVENT_TYPE_KEYSIGN              = SNDRV_SEQ_EVENT_KEYSIGN,
+    ALSASEQ_EVENT_TYPE_START                = SNDRV_SEQ_EVENT_START,
+    ALSASEQ_EVENT_TYPE_CONTINUE             = SNDRV_SEQ_EVENT_CONTINUE,
+    ALSASEQ_EVENT_TYPE_STOP                 = SNDRV_SEQ_EVENT_STOP,
+    ALSASEQ_EVENT_TYPE_SETPOS_TICK          = SNDRV_SEQ_EVENT_SETPOS_TICK,
+    ALSASEQ_EVENT_TYPE_SETPOS_TIME          = SNDRV_SEQ_EVENT_SETPOS_TIME,
+    ALSASEQ_EVENT_TYPE_TEMPO                = SNDRV_SEQ_EVENT_TEMPO,
+    ALSASEQ_EVENT_TYPE_CLOCK                = SNDRV_SEQ_EVENT_CLOCK,
+    ALSASEQ_EVENT_TYPE_TICK                 = SNDRV_SEQ_EVENT_TICK,
+    ALSASEQ_EVENT_TYPE_QUEUE_SKEW           = SNDRV_SEQ_EVENT_QUEUE_SKEW,
+    ALSASEQ_EVENT_TYPE_TUNE_REQUEST         = SNDRV_SEQ_EVENT_TUNE_REQUEST,
+    ALSASEQ_EVENT_TYPE_RESET                = SNDRV_SEQ_EVENT_RESET,
+    ALSASEQ_EVENT_TYPE_SENSING              = SNDRV_SEQ_EVENT_SENSING,
+    ALSASEQ_EVENT_TYPE_ECHO                 = SNDRV_SEQ_EVENT_ECHO,
+    ALSASEQ_EVENT_TYPE_OSS                  = SNDRV_SEQ_EVENT_OSS,
+    ALSASEQ_EVENT_TYPE_CLIENT_START         = SNDRV_SEQ_EVENT_CLIENT_START,
+    ALSASEQ_EVENT_TYPE_CLIENT_EXIT          = SNDRV_SEQ_EVENT_CLIENT_EXIT,
+    ALSASEQ_EVENT_TYPE_CLIENT_CHANGE        = SNDRV_SEQ_EVENT_CLIENT_CHANGE,
+    ALSASEQ_EVENT_TYPE_PORT_START           = SNDRV_SEQ_EVENT_PORT_START,
+    ALSASEQ_EVENT_TYPE_PORT_EXIT            = SNDRV_SEQ_EVENT_PORT_EXIT,
+    ALSASEQ_EVENT_TYPE_PORT_CHANGE          = SNDRV_SEQ_EVENT_PORT_CHANGE,
+    ALSASEQ_EVENT_TYPE_PORT_SUBSCRIBED      = SNDRV_SEQ_EVENT_PORT_SUBSCRIBED,
+    ALSASEQ_EVENT_TYPE_PORT_UNSUBSCRIBED    = SNDRV_SEQ_EVENT_PORT_UNSUBSCRIBED,
+    ALSASEQ_EVENT_TYPE_USR0                 = SNDRV_SEQ_EVENT_USR0,
+    ALSASEQ_EVENT_TYPE_USR1                 = SNDRV_SEQ_EVENT_USR1,
+    ALSASEQ_EVENT_TYPE_USR2                 = SNDRV_SEQ_EVENT_USR2,
+    ALSASEQ_EVENT_TYPE_USR3                 = SNDRV_SEQ_EVENT_USR3,
+    ALSASEQ_EVENT_TYPE_USR4                 = SNDRV_SEQ_EVENT_USR4,
+    ALSASEQ_EVENT_TYPE_USR5                 = SNDRV_SEQ_EVENT_USR5,
+    ALSASEQ_EVENT_TYPE_USR6                 = SNDRV_SEQ_EVENT_USR6,
+    ALSASEQ_EVENT_TYPE_USR7                 = SNDRV_SEQ_EVENT_USR7,
+    ALSASEQ_EVENT_TYPE_USR8                 = SNDRV_SEQ_EVENT_USR8,
+    ALSASEQ_EVENT_TYPE_USR9                 = SNDRV_SEQ_EVENT_USR9,
+    ALSASEQ_EVENT_TYPE_SYSEX                = SNDRV_SEQ_EVENT_SYSEX,
+    ALSASEQ_EVENT_TYPE_BOUNCE               = SNDRV_SEQ_EVENT_BOUNCE,
+    ALSASEQ_EVENT_TYPE_USR_VAR0             = SNDRV_SEQ_EVENT_USR_VAR0,
+    ALSASEQ_EVENT_TYPE_USR_VAR1             = SNDRV_SEQ_EVENT_USR_VAR1,
+    ALSASEQ_EVENT_TYPE_USR_VAR2             = SNDRV_SEQ_EVENT_USR_VAR2,
+    ALSASEQ_EVENT_TYPE_USR_VAR3             = SNDRV_SEQ_EVENT_USR_VAR3,
+    ALSASEQ_EVENT_TYPE_USR_VAR4             = SNDRV_SEQ_EVENT_USR_VAR4,
+    ALSASEQ_EVENT_TYPE_NONE                 = SNDRV_SEQ_EVENT_NONE,
+} ALSASeqEventType;
+
+/**
+ * ALSASeqEventTimestampMode:
+ * @ALSASEQ_EVENT_TIMESTAMP_MODE_TICK:      The timestamp includes tick count.
+ * @ALSASEQ_EVENT_TIMESTAMP_MODE_REAL:      The timestamp includes real time.
+ *
+ * A set of enumeration for the mode of timestamp.
+ */
+typedef enum {
+    ALSASEQ_EVENT_TIMESTAMP_MODE_TICK   = SNDRV_SEQ_TIME_STAMP_TICK,
+    ALSASEQ_EVENT_TIMESTAMP_MODE_REAL   = SNDRV_SEQ_TIME_STAMP_REAL,
+} ALSASeqEventTimestampMode;
+
+/**
+ * ALSASeqEventTimeMode:
+ * @ALSASEQ_EVENT_TIME_MODE_ABS:    The time is absolute.
+ * @ALSASEQ_EVENT_TIME_MODE_REL:    The time is relative.
+ *
+ * A set of enumerations for the mode of time.
+ */
+typedef enum {
+    ALSASEQ_EVENT_TIME_MODE_ABS         = SNDRV_SEQ_TIME_MODE_ABS,
+    ALSASEQ_EVENT_TIME_MODE_REL         = SNDRV_SEQ_TIME_MODE_REL,
+} ALSASeqEventTimeMode;
+
+/**
+ * ALSASeqEventLengthMode:
+ * @ALSASEQ_EVENT_LENGTH_MODE_FIXED:    The data is fixed length.
+ * @ALSASEQ_EVENT_LENGTH_MODE_VARIABLE: The data is variable length.
+ * @ALSASEQ_EVENT_LENGTH_MODE_POINTER:  The data is a pointer and its length in userspace.
+ *
+ * A set of enumeration for the mode of data length.
+ */
+typedef enum {
+    ALSASEQ_EVENT_LENGTH_MODE_FIXED     = SNDRV_SEQ_EVENT_LENGTH_FIXED,
+    ALSASEQ_EVENT_LENGTH_MODE_VARIABLE  = SNDRV_SEQ_EVENT_LENGTH_VARIABLE,
+    ALSASEQ_EVENT_LENGTH_MODE_POINTER = SNDRV_SEQ_EVENT_LENGTH_VARUSR,
+} ALSASeqEventLengthMode;
+
+/**
+ * ALSASeqEventPriorityMode:
+ * @ALSASEQ_EVENT_PRIORITY_MODE_NORMAL:     For normal priority.
+ * @ALSASEQ_EVENT_PRIORITY_MODE_HIGH:       For high priority.
+ *
+ * A set of enumerations for the mode of priority.
+ */
+typedef enum {
+    ALSASEQ_EVENT_PRIORITY_MODE_NORMAL  = SNDRV_SEQ_PRIORITY_NORMAL,
+    ALSASEQ_EVENT_PRIORITY_MODE_HIGH    = SNDRV_SEQ_PRIORITY_HIGH,
+} ALSASeqEventPriorityMode;
+
+/**
+ * ALSASeqSpecificQueueId:
+ * @ALSASEQ_SPECIFIC_QUEUE_ID_DIRECT:   The message is delivered immediately, instead of being queued.
+ *
+ * A set of enumerations for the numerical IDs of queue for specific purpose.
+ */
+typedef enum {
+    ALSASEQ_SPECIFIC_QUEUE_ID_DIRECT = SNDRV_SEQ_QUEUE_DIRECT,
+} ALSASeqSpecificQueueId;
+
+/**
+ * ALSASeqPortSubscribeFlag:
+ * @ALSASEQ_PORT_SUBSCRIBE_FLAG_EXCLUSIVE:  The subscription can be changed by originator.
+ * @ALSASEQ_PORT_SUBSCRIBE_FLAG_TIMESTAMP:  Any event for this subscription has timestamp.
+ * @ALSASEQ_PORT_SUBSCRIBE_FLAG_TIME_REAL:  The timestamp on the event from the port has real time.
+ *
+ * A set of flags for subscription conditions.
+ */
+typedef enum /*< flags >*/
+{
+    ALSASEQ_PORT_SUBSCRIBE_FLAG_EXCLUSIVE = SNDRV_SEQ_PORT_SUBS_EXCLUSIVE,
+    ALSASEQ_PORT_SUBSCRIBE_FLAG_TIMESTAMP = SNDRV_SEQ_PORT_SUBS_TIMESTAMP,
+    ALSASEQ_PORT_SUBSCRIBE_FLAG_TIME_REAL = SNDRV_SEQ_PORT_SUBS_TIME_REAL,
+} ALSASeqPortSubscribeFlag;
+
+/**
+ * ALSASeqQuerySubscribeType
+ * @ALSASEQ_QUERY_SUBSCRIBE_TYPE_READ:  To query subscribers to read from the port.
+ * @ALSASEQ_QUERY_SUBSCRIBE_TYPE_WRITE: To query subscribers to write to the port.
+ *
+ * A set of enumerations for the type to query subscription.
+ */
+typedef enum {
+    ALSASEQ_QUERY_SUBSCRIBE_TYPE_READ   = SNDRV_SEQ_QUERY_SUBS_READ,
+    ALSASEQ_QUERY_SUBSCRIBE_TYPE_WRITE  = SNDRV_SEQ_QUERY_SUBS_WRITE,
+} ALSASeqQuerySubscribeType;
+
+#endif
index 72ece8a8a00a98d42a9c832b49050551b43a8d95..e2b35f16a68d5d04cd40ac19409d1f44a24bd06f 100644 (file)
@@ -1,4 +1,20 @@
 ALSA_GOBJECT_0_0_0 {
+  global:
+    "alsaseq_specific_address_get_type";
+    "alsaseq_specific_client_id_get_type";
+    "alsaseq_client_type_get_type";
+    "alsaseq_filter_attr_flag_get_type";
+    "alsaseq_specific_port_id_get_type";
+    "alsaseq_port_cap_flag_get_type";
+    "alsaseq_port_attr_flag_get_type";
+    "alsaseq_event_type_get_type";
+    "alsaseq_event_timestamp_mode_get_type";
+    "alsaseq_event_time_mode_get_type";
+    "alsaseq_event_length_mode_get_type";
+    "alsaseq_event_priority_mode_get_type";
+    "alsaseq_specific_queue_id_get_type";
+    "alsaseq_port_subscribe_flag_get_type";
+    "alsaseq_query_subscribe_type_get_type";
   local:
     *;
 };
index 680b357e280912bb86c664dfc5210af1f86565bf..efabf23570584b8a278a828b190f3c7fdab106dc 100644 (file)
@@ -5,7 +5,7 @@
 path = 'seq'
 name = 'alsaseq'
 namespace = 'ALSASeq'
-has_enumerations = false
+has_enumerations = true
 has_marshaller = false
 
 sources = files()