From: Takashi Sakamoto Date: Wed, 1 Apr 2020 09:13:28 +0000 (+0900) Subject: seq: generate enumerations X-Git-Tag: v0.1.0~312 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=24d6667aed93f617765f018de3e0cff2a3bc4e1f;p=alsa-gobject.git seq: generate enumerations Signed-off-by: Takashi Sakamoto --- diff --git a/src/seq/alsaseq-enum-types.h b/src/seq/alsaseq-enum-types.h new file mode 100644 index 0000000..4edc231 --- /dev/null +++ b/src/seq/alsaseq-enum-types.h @@ -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 + +/** + * 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 diff --git a/src/seq/alsaseq.map b/src/seq/alsaseq.map index 72ece8a..e2b35f1 100644 --- a/src/seq/alsaseq.map +++ b/src/seq/alsaseq.map @@ -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: *; }; diff --git a/src/seq/meson.build b/src/seq/meson.build index 680b357..efabf23 100644 --- a/src/seq/meson.build +++ b/src/seq/meson.build @@ -5,7 +5,7 @@ path = 'seq' name = 'alsaseq' namespace = 'ALSASeq' -has_enumerations = false +has_enumerations = true has_marshaller = false sources = files()