ALSA project - the C library reference: /tmp/work/src/alsa-lib-1.2.12/include/seq_event.h Source File

ALSA project - the C library reference

Loading...
Searching...
No Matches
seq_event.h
Go to the documentation of this file.
1
11/*
12 * This library is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License as
14 * published by the Free Software Foundation; either version 2.1 of
15 * the License, or (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU Lesser General Public License for more details.
21 *
22 * You should have received a copy of the GNU Lesser General Public
23 * License along with this library; if not, write to the Free Software
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 *
26 */
27
28#ifndef __ALSA_SEQ_EVENT_H
29#define __ALSA_SEQ_EVENT_H
30
41 typedef unsigned char snd_seq_event_type_t;
42
44 enum snd_seq_event_type {
46 SND_SEQ_EVENT_SYSTEM = 0,
48 SND_SEQ_EVENT_RESULT,
49
51 SND_SEQ_EVENT_NOTE = 5,
53 SND_SEQ_EVENT_NOTEON,
55 SND_SEQ_EVENT_NOTEOFF,
57 SND_SEQ_EVENT_KEYPRESS,
58
60 SND_SEQ_EVENT_CONTROLLER = 10,
62 SND_SEQ_EVENT_PGMCHANGE,
64 SND_SEQ_EVENT_CHANPRESS,
66 SND_SEQ_EVENT_PITCHBEND,
68 SND_SEQ_EVENT_CONTROL14,
70 SND_SEQ_EVENT_NONREGPARAM,
72 SND_SEQ_EVENT_REGPARAM,
73
75 SND_SEQ_EVENT_SONGPOS = 20,
77 SND_SEQ_EVENT_SONGSEL,
79 SND_SEQ_EVENT_QFRAME,
81 SND_SEQ_EVENT_TIMESIGN,
83 SND_SEQ_EVENT_KEYSIGN,
84
86 SND_SEQ_EVENT_START = 30,
88 SND_SEQ_EVENT_CONTINUE,
90 SND_SEQ_EVENT_STOP,
92 SND_SEQ_EVENT_SETPOS_TICK,
94 SND_SEQ_EVENT_SETPOS_TIME,
96 SND_SEQ_EVENT_TEMPO,
98 SND_SEQ_EVENT_CLOCK,
100 SND_SEQ_EVENT_TICK,
102 SND_SEQ_EVENT_QUEUE_SKEW,
104 SND_SEQ_EVENT_SYNC_POS,
105
107 SND_SEQ_EVENT_TUNE_REQUEST = 40,
109 SND_SEQ_EVENT_RESET,
111 SND_SEQ_EVENT_SENSING,
112
114 SND_SEQ_EVENT_ECHO = 50,
116 SND_SEQ_EVENT_OSS,
117
119 SND_SEQ_EVENT_CLIENT_START = 60,
121 SND_SEQ_EVENT_CLIENT_EXIT,
123 SND_SEQ_EVENT_CLIENT_CHANGE,
125 SND_SEQ_EVENT_PORT_START,
127 SND_SEQ_EVENT_PORT_EXIT,
129 SND_SEQ_EVENT_PORT_CHANGE,
130
132 SND_SEQ_EVENT_PORT_SUBSCRIBED,
134 SND_SEQ_EVENT_PORT_UNSUBSCRIBED,
135
137 SND_SEQ_EVENT_USR0 = 90,
139 SND_SEQ_EVENT_USR1,
141 SND_SEQ_EVENT_USR2,
143 SND_SEQ_EVENT_USR3,
145 SND_SEQ_EVENT_USR4,
147 SND_SEQ_EVENT_USR5,
149 SND_SEQ_EVENT_USR6,
151 SND_SEQ_EVENT_USR7,
153 SND_SEQ_EVENT_USR8,
155 SND_SEQ_EVENT_USR9,
156
158 SND_SEQ_EVENT_SYSEX = 130,
160 SND_SEQ_EVENT_BOUNCE,
162 SND_SEQ_EVENT_USR_VAR0 = 135,
164 SND_SEQ_EVENT_USR_VAR1,
166 SND_SEQ_EVENT_USR_VAR2,
168 SND_SEQ_EVENT_USR_VAR3,
170 SND_SEQ_EVENT_USR_VAR4,
171
173 SND_SEQ_EVENT_NONE = 255
174};
175
176
178 typedef struct snd_seq_addr {
179 unsigned char client;
180 unsigned char port;
181} snd_seq_addr_t;
182
184 typedef struct snd_seq_connect {
185 snd_seq_addr_t sender;
186 snd_seq_addr_t dest;
187} snd_seq_connect_t;
188
189
191 typedef struct snd_seq_real_time {
192 unsigned int tv_sec;
193 unsigned int tv_nsec;
194} snd_seq_real_time_t;
195
197 typedef unsigned int snd_seq_tick_time_t;
198
200 typedef union snd_seq_timestamp {
201 snd_seq_tick_time_t tick;
202 struct snd_seq_real_time time;
203} snd_seq_timestamp_t;
204
205
211#define SND_SEQ_TIME_STAMP_TICK (0<<0)
212#define SND_SEQ_TIME_STAMP_REAL (1<<0)
213#define SND_SEQ_TIME_STAMP_MASK (1<<0)
215#define SND_SEQ_TIME_MODE_ABS (0<<1)
216#define SND_SEQ_TIME_MODE_REL (1<<1)
217#define SND_SEQ_TIME_MODE_MASK (1<<1)
219#define SND_SEQ_EVENT_LENGTH_FIXED (0<<2)
220#define SND_SEQ_EVENT_LENGTH_VARIABLE (1<<2)
221#define SND_SEQ_EVENT_LENGTH_VARUSR (2<<2)
222#define SND_SEQ_EVENT_LENGTH_MASK (3<<2)
224#define SND_SEQ_PRIORITY_NORMAL (0<<4)
225#define SND_SEQ_PRIORITY_HIGH (1<<4)
226#define SND_SEQ_PRIORITY_MASK (1<<4)
228#define SND_SEQ_EVENT_UMP (1<<5)
231 typedef struct snd_seq_ev_note {
232 unsigned char channel;
233 unsigned char note;
234 unsigned char velocity;
235 unsigned char off_velocity;
236 unsigned int duration;
237} snd_seq_ev_note_t;
238
240 typedef struct snd_seq_ev_ctrl {
241 unsigned char channel;
242 unsigned char unused[3];
243 unsigned int param;
244 signed int value;
245} snd_seq_ev_ctrl_t;
246
248 typedef struct snd_seq_ev_raw8 {
249 unsigned char d[12];
250} snd_seq_ev_raw8_t;
251
253 typedef struct snd_seq_ev_raw32 {
254 unsigned int d[3];
255} snd_seq_ev_raw32_t;
256
258 struct snd_seq_ev_ext {
259 unsigned int len;
260 void *ptr;
261} __attribute__((packed));
263typedef struct snd_seq_ev_ext snd_seq_ev_ext_t;
264#ifdef DOC_HIDDEN
265/* redefine typedef for stupid doxygen */
266 typedef snd_seq_ev_ext snd_seq_ev_ext_t;
267#endif
268
270 typedef struct snd_seq_result {
271 int event;
272 int result;
273} snd_seq_result_t;
274
276 typedef struct snd_seq_queue_skew {
277 unsigned int value;
278 unsigned int base;
279} snd_seq_queue_skew_t;
280
282 typedef struct snd_seq_ev_queue_control {
283 unsigned char queue;
284 unsigned char unused[3];
285 union {
286 signed int value;
287 snd_seq_timestamp_t time;
288 unsigned int position;
289 snd_seq_queue_skew_t skew;
290 unsigned int d32[2];
291 unsigned char d8[8];
292 } param;
293} snd_seq_ev_queue_control_t;
294
296 typedef union snd_seq_event_data {
297 snd_seq_ev_note_t note;
298 snd_seq_ev_ctrl_t control;
299 snd_seq_ev_raw8_t raw8;
300 snd_seq_ev_raw32_t raw32;
301 snd_seq_ev_ext_t ext;
302 snd_seq_ev_queue_control_t queue;
303 snd_seq_timestamp_t time;
304 snd_seq_addr_t addr;
305 snd_seq_connect_t connect;
306 snd_seq_result_t result;
307} snd_seq_event_data_t;
308
310 typedef struct snd_seq_event {
311 snd_seq_event_type_t type;
312 unsigned char flags;
313 unsigned char tag;
315 unsigned char queue;
316 snd_seq_timestamp_t time;
318 snd_seq_addr_t source;
319 snd_seq_addr_t dest;
321 snd_seq_event_data_t data;
322} snd_seq_event_t;
323
325 typedef struct snd_seq_ump_event {
326 snd_seq_event_type_t type;
327 unsigned char flags;
328 unsigned char tag;
329 unsigned char queue;
330 snd_seq_timestamp_t time;
331 snd_seq_addr_t source;
332 snd_seq_addr_t dest;
334 union {
335 snd_seq_event_data_t data;
336 unsigned int ump[4];
337 };
338} snd_seq_ump_event_t;
339
342#endif /* __ALSA_SEQ_EVENT_H */
343
snd_seq_ev_ext_t
snd_seq_ev_ext snd_seq_ev_ext_t
Definition seq_event.h:266
snd_seq_event_type_t
unsigned char snd_seq_event_type_t
Definition seq_event.h:41
snd_seq_tick_time_t
unsigned int snd_seq_tick_time_t
Definition seq_event.h:197
snd_seq_event_type
snd_seq_event_type
Definition seq_event.h:44
SND_SEQ_EVENT_USR_VAR2
@ SND_SEQ_EVENT_USR_VAR2
Definition seq_event.h:166
SND_SEQ_EVENT_SONGPOS
@ SND_SEQ_EVENT_SONGPOS
Definition seq_event.h:75
SND_SEQ_EVENT_SYSEX
@ SND_SEQ_EVENT_SYSEX
Definition seq_event.h:158
SND_SEQ_EVENT_CLIENT_EXIT
@ SND_SEQ_EVENT_CLIENT_EXIT
Definition seq_event.h:121
SND_SEQ_EVENT_SETPOS_TIME
@ SND_SEQ_EVENT_SETPOS_TIME
Definition seq_event.h:94
SND_SEQ_EVENT_USR2
@ SND_SEQ_EVENT_USR2
Definition seq_event.h:141
SND_SEQ_EVENT_PORT_SUBSCRIBED
@ SND_SEQ_EVENT_PORT_SUBSCRIBED
Definition seq_event.h:132
SND_SEQ_EVENT_RESULT
@ SND_SEQ_EVENT_RESULT
Definition seq_event.h:48
SND_SEQ_EVENT_USR9
@ SND_SEQ_EVENT_USR9
Definition seq_event.h:155
SND_SEQ_EVENT_BOUNCE
@ SND_SEQ_EVENT_BOUNCE
Definition seq_event.h:160
SND_SEQ_EVENT_TIMESIGN
@ SND_SEQ_EVENT_TIMESIGN
Definition seq_event.h:81
SND_SEQ_EVENT_TICK
@ SND_SEQ_EVENT_TICK
Definition seq_event.h:100
SND_SEQ_EVENT_KEYSIGN
@ SND_SEQ_EVENT_KEYSIGN
Definition seq_event.h:83
SND_SEQ_EVENT_USR_VAR0
@ SND_SEQ_EVENT_USR_VAR0
Definition seq_event.h:162
SND_SEQ_EVENT_USR5
@ SND_SEQ_EVENT_USR5
Definition seq_event.h:147
SND_SEQ_EVENT_CLIENT_CHANGE
@ SND_SEQ_EVENT_CLIENT_CHANGE
Definition seq_event.h:123
SND_SEQ_EVENT_CLOCK
@ SND_SEQ_EVENT_CLOCK
Definition seq_event.h:98
SND_SEQ_EVENT_TUNE_REQUEST
@ SND_SEQ_EVENT_TUNE_REQUEST
Definition seq_event.h:107
SND_SEQ_EVENT_SYNC_POS
@ SND_SEQ_EVENT_SYNC_POS
Definition seq_event.h:104
SND_SEQ_EVENT_KEYPRESS
@ SND_SEQ_EVENT_KEYPRESS
Definition seq_event.h:57
SND_SEQ_EVENT_USR7
@ SND_SEQ_EVENT_USR7
Definition seq_event.h:151
SND_SEQ_EVENT_ECHO
@ SND_SEQ_EVENT_ECHO
Definition seq_event.h:114
SND_SEQ_EVENT_NOTE
@ SND_SEQ_EVENT_NOTE
Definition seq_event.h:51
SND_SEQ_EVENT_NONE
@ SND_SEQ_EVENT_NONE
Definition seq_event.h:173
SND_SEQ_EVENT_CLIENT_START
@ SND_SEQ_EVENT_CLIENT_START
Definition seq_event.h:119
SND_SEQ_EVENT_CHANPRESS
@ SND_SEQ_EVENT_CHANPRESS
Definition seq_event.h:64
SND_SEQ_EVENT_NONREGPARAM
@ SND_SEQ_EVENT_NONREGPARAM
Definition seq_event.h:70
SND_SEQ_EVENT_CONTINUE
@ SND_SEQ_EVENT_CONTINUE
Definition seq_event.h:88
SND_SEQ_EVENT_SYSTEM
@ SND_SEQ_EVENT_SYSTEM
Definition seq_event.h:46
SND_SEQ_EVENT_STOP
@ SND_SEQ_EVENT_STOP
Definition seq_event.h:90
SND_SEQ_EVENT_PORT_EXIT
@ SND_SEQ_EVENT_PORT_EXIT
Definition seq_event.h:127
SND_SEQ_EVENT_USR_VAR3
@ SND_SEQ_EVENT_USR_VAR3
Definition seq_event.h:168
SND_SEQ_EVENT_CONTROLLER
@ SND_SEQ_EVENT_CONTROLLER
Definition seq_event.h:60
SND_SEQ_EVENT_CONTROL14
@ SND_SEQ_EVENT_CONTROL14
Definition seq_event.h:68
SND_SEQ_EVENT_NOTEOFF
@ SND_SEQ_EVENT_NOTEOFF
Definition seq_event.h:55
SND_SEQ_EVENT_USR_VAR1
@ SND_SEQ_EVENT_USR_VAR1
Definition seq_event.h:164
SND_SEQ_EVENT_USR3
@ SND_SEQ_EVENT_USR3
Definition seq_event.h:143
SND_SEQ_EVENT_TEMPO
@ SND_SEQ_EVENT_TEMPO
Definition seq_event.h:96
SND_SEQ_EVENT_PITCHBEND
@ SND_SEQ_EVENT_PITCHBEND
Definition seq_event.h:66
SND_SEQ_EVENT_PORT_START
@ SND_SEQ_EVENT_PORT_START
Definition seq_event.h:125
SND_SEQ_EVENT_USR4
@ SND_SEQ_EVENT_USR4
Definition seq_event.h:145
SND_SEQ_EVENT_USR1
@ SND_SEQ_EVENT_USR1
Definition seq_event.h:139
SND_SEQ_EVENT_PORT_UNSUBSCRIBED
@ SND_SEQ_EVENT_PORT_UNSUBSCRIBED
Definition seq_event.h:134
SND_SEQ_EVENT_QUEUE_SKEW
@ SND_SEQ_EVENT_QUEUE_SKEW
Definition seq_event.h:102
SND_SEQ_EVENT_QFRAME
@ SND_SEQ_EVENT_QFRAME
Definition seq_event.h:79
SND_SEQ_EVENT_USR6
@ SND_SEQ_EVENT_USR6
Definition seq_event.h:149
SND_SEQ_EVENT_OSS
@ SND_SEQ_EVENT_OSS
Definition seq_event.h:116
SND_SEQ_EVENT_USR0
@ SND_SEQ_EVENT_USR0
Definition seq_event.h:137
SND_SEQ_EVENT_PORT_CHANGE
@ SND_SEQ_EVENT_PORT_CHANGE
Definition seq_event.h:129
SND_SEQ_EVENT_PGMCHANGE
@ SND_SEQ_EVENT_PGMCHANGE
Definition seq_event.h:62
SND_SEQ_EVENT_REGPARAM
@ SND_SEQ_EVENT_REGPARAM
Definition seq_event.h:72
SND_SEQ_EVENT_SETPOS_TICK
@ SND_SEQ_EVENT_SETPOS_TICK
Definition seq_event.h:92
SND_SEQ_EVENT_USR_VAR4
@ SND_SEQ_EVENT_USR_VAR4
Definition seq_event.h:170
SND_SEQ_EVENT_START
@ SND_SEQ_EVENT_START
Definition seq_event.h:86
SND_SEQ_EVENT_RESET
@ SND_SEQ_EVENT_RESET
Definition seq_event.h:109
SND_SEQ_EVENT_SENSING
@ SND_SEQ_EVENT_SENSING
Definition seq_event.h:111
SND_SEQ_EVENT_NOTEON
@ SND_SEQ_EVENT_NOTEON
Definition seq_event.h:53
SND_SEQ_EVENT_USR8
@ SND_SEQ_EVENT_USR8
Definition seq_event.h:153
SND_SEQ_EVENT_SONGSEL
@ SND_SEQ_EVENT_SONGSEL
Definition seq_event.h:77
snd_seq_addr_t
Definition seq_event.h:178
snd_seq_addr_t::port
unsigned char port
Definition seq_event.h:180
snd_seq_addr_t::client
unsigned char client
Definition seq_event.h:179
snd_seq_connect_t
Definition seq_event.h:184
snd_seq_connect_t::dest
snd_seq_addr_t dest
Definition seq_event.h:186
snd_seq_connect_t::sender
snd_seq_addr_t sender
Definition seq_event.h:185
snd_seq_ev_ctrl_t
Definition seq_event.h:240
snd_seq_ev_ctrl_t::channel
unsigned char channel
Definition seq_event.h:241
snd_seq_ev_ctrl_t::value
signed int value
Definition seq_event.h:244
snd_seq_ev_ctrl_t::param
unsigned int param
Definition seq_event.h:243
snd_seq_ev_ext
Definition seq_event.h:258
snd_seq_ev_ext::len
unsigned int len
Definition seq_event.h:259
snd_seq_ev_ext::ptr
void * ptr
Definition seq_event.h:260
snd_seq_ev_note_t
Definition seq_event.h:231
snd_seq_ev_note_t::velocity
unsigned char velocity
Definition seq_event.h:234
snd_seq_ev_note_t::off_velocity
unsigned char off_velocity
Definition seq_event.h:235
snd_seq_ev_note_t::note
unsigned char note
Definition seq_event.h:233
snd_seq_ev_note_t::duration
unsigned int duration
Definition seq_event.h:236
snd_seq_ev_note_t::channel
unsigned char channel
Definition seq_event.h:232
snd_seq_ev_queue_control_t
Definition seq_event.h:282
snd_seq_ev_queue_control_t::time
snd_seq_timestamp_t time
Definition seq_event.h:287
snd_seq_ev_queue_control_t::queue
unsigned char queue
Definition seq_event.h:283
snd_seq_ev_queue_control_t::value
signed int value
Definition seq_event.h:286
snd_seq_ev_queue_control_t::position
unsigned int position
Definition seq_event.h:288
snd_seq_ev_queue_control_t::skew
snd_seq_queue_skew_t skew
Definition seq_event.h:289
snd_seq_ev_raw32_t
Definition seq_event.h:253
snd_seq_ev_raw8_t
Definition seq_event.h:248
snd_seq_event_t
Definition seq_event.h:310
snd_seq_event_t::queue
unsigned char queue
Definition seq_event.h:315
snd_seq_event_t::flags
unsigned char flags
Definition seq_event.h:312
snd_seq_event_t::time
snd_seq_timestamp_t time
Definition seq_event.h:316
snd_seq_event_t::tag
unsigned char tag
Definition seq_event.h:313
snd_seq_event_t::data
snd_seq_event_data_t data
Definition seq_event.h:321
snd_seq_event_t::source
snd_seq_addr_t source
Definition seq_event.h:318
snd_seq_event_t::type
snd_seq_event_type_t type
Definition seq_event.h:311
snd_seq_event_t::dest
snd_seq_addr_t dest
Definition seq_event.h:319
snd_seq_queue_skew_t
Definition seq_event.h:276
snd_seq_queue_skew_t::base
unsigned int base
Definition seq_event.h:278
snd_seq_queue_skew_t::value
unsigned int value
Definition seq_event.h:277
snd_seq_real_time_t
Definition seq_event.h:191
snd_seq_real_time_t::tv_nsec
unsigned int tv_nsec
Definition seq_event.h:193
snd_seq_real_time_t::tv_sec
unsigned int tv_sec
Definition seq_event.h:192
snd_seq_result_t
Definition seq_event.h:270
snd_seq_result_t::result
int result
Definition seq_event.h:272
snd_seq_result_t::event
int event
Definition seq_event.h:271
snd_seq_ump_event_t
Definition seq_event.h:325
snd_seq_ump_event_t::tag
unsigned char tag
Definition seq_event.h:328
snd_seq_ump_event_t::flags
unsigned char flags
Definition seq_event.h:327
snd_seq_ump_event_t::source
snd_seq_addr_t source
Definition seq_event.h:331
snd_seq_ump_event_t::queue
unsigned char queue
Definition seq_event.h:329
snd_seq_ump_event_t::data
snd_seq_event_data_t data
Definition seq_event.h:335
snd_seq_ump_event_t::type
snd_seq_event_type_t type
Definition seq_event.h:326
snd_seq_ump_event_t::dest
snd_seq_addr_t dest
Definition seq_event.h:332
snd_seq_ump_event_t::time
snd_seq_timestamp_t time
Definition seq_event.h:330
snd_seq_event_data_t
Definition seq_event.h:296
snd_seq_event_data_t::queue
snd_seq_ev_queue_control_t queue
Definition seq_event.h:302
snd_seq_event_data_t::time
snd_seq_timestamp_t time
Definition seq_event.h:303
snd_seq_event_data_t::raw8
snd_seq_ev_raw8_t raw8
Definition seq_event.h:299
snd_seq_event_data_t::note
snd_seq_ev_note_t note
Definition seq_event.h:297
snd_seq_event_data_t::raw32
snd_seq_ev_raw32_t raw32
Definition seq_event.h:300
snd_seq_event_data_t::addr
snd_seq_addr_t addr
Definition seq_event.h:304
snd_seq_event_data_t::result
snd_seq_result_t result
Definition seq_event.h:306
snd_seq_event_data_t::connect
snd_seq_connect_t connect
Definition seq_event.h:305
snd_seq_event_data_t::control
snd_seq_ev_ctrl_t control
Definition seq_event.h:298
snd_seq_event_data_t::ext
snd_seq_ev_ext_t ext
Definition seq_event.h:301
snd_seq_timestamp_t
Definition seq_event.h:200
snd_seq_timestamp_t::tick
snd_seq_tick_time_t tick
Definition seq_event.h:201