ALSA project - the C library reference
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
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)
230
typedef struct snd_seq_ev_note {
231
unsigned
char
channel
;
232
unsigned
char
note
;
233
unsigned
char
velocity
;
234
unsigned
char
off_velocity
;
235
unsigned
int
duration
;
236
}
snd_seq_ev_note_t
;
237
239
typedef
struct
snd_seq_ev_ctrl {
240
unsigned
char
channel
;
241
unsigned
char
unused[3];
242
unsigned
int
param
;
243
signed
int
value
;
244
}
snd_seq_ev_ctrl_t
;
245
247
typedef
struct
snd_seq_ev_raw8 {
248
unsigned
char
d[12];
249
}
snd_seq_ev_raw8_t
;
250
252
typedef
struct
snd_seq_ev_raw32 {
253
unsigned
int
d[3];
254
}
snd_seq_ev_raw32_t
;
255
257
struct
snd_seq_ev_ext
{
258
unsigned
int
len
;
259
void
*
ptr
;
260
} __attribute__((packed));
262
typedef
struct
snd_seq_ev_ext
snd_seq_ev_ext_t
;
263
#ifdef DOC_HIDDEN
264
/* redefine typedef for stupid doxygen */
265
typedef
snd_seq_ev_ext
snd_seq_ev_ext_t
;
266
#endif
267
269
typedef
struct
snd_seq_result {
270
int
event
;
271
int
result
;
272
}
snd_seq_result_t
;
273
275
typedef
struct
snd_seq_queue_skew {
276
unsigned
int
value
;
277
unsigned
int
base
;
278
}
snd_seq_queue_skew_t
;
279
281
typedef
struct
snd_seq_ev_queue_control {
282
unsigned
char
queue
;
283
unsigned
char
unused[3];
284
union
{
285
signed
int
value
;
286
snd_seq_timestamp_t
time
;
287
unsigned
int
position
;
288
snd_seq_queue_skew_t
skew
;
289
unsigned
int
d32[2];
290
unsigned
char
d8[8];
291
} param;
292
}
snd_seq_ev_queue_control_t
;
293
294
296
typedef
struct
snd_seq_event {
297
snd_seq_event_type_t
type
;
298
unsigned
char
flags
;
299
unsigned
char
tag
;
301
unsigned
char
queue
;
302
snd_seq_timestamp_t
time
;
304
snd_seq_addr_t
source
;
305
snd_seq_addr_t
dest
;
307
union
{
308
snd_seq_ev_note_t
note
;
309
snd_seq_ev_ctrl_t
control
;
310
snd_seq_ev_raw8_t
raw8
;
311
snd_seq_ev_raw32_t
raw32
;
312
snd_seq_ev_ext_t
ext
;
313
snd_seq_ev_queue_control_t
queue
;
314
snd_seq_timestamp_t
time;
315
snd_seq_addr_t
addr
;
316
snd_seq_connect_t
connect
;
317
snd_seq_result_t
result
;
318
} data;
319
}
snd_seq_event_t
;
320
321
324
#endif
/* __ALSA_SEQ_EVENT_H */
325
Generated by
1.8.1.1