summaryrefslogtreecommitdiff
path: root/platform/sysroot/usr/include/sound/asequencer.h
blob: 01a505854fdc31c361e5f4564cb6af5376b0522c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _UAPI__SOUND_ASEQUENCER_H
#define _UAPI__SOUND_ASEQUENCER_H
#include <sound/asound.h>
#define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 2)
#define SNDRV_SEQ_EVENT_SYSTEM 0
#define SNDRV_SEQ_EVENT_RESULT 1
#define SNDRV_SEQ_EVENT_NOTE 5
#define SNDRV_SEQ_EVENT_NOTEON 6
#define SNDRV_SEQ_EVENT_NOTEOFF 7
#define SNDRV_SEQ_EVENT_KEYPRESS 8
#define SNDRV_SEQ_EVENT_CONTROLLER 10
#define SNDRV_SEQ_EVENT_PGMCHANGE 11
#define SNDRV_SEQ_EVENT_CHANPRESS 12
#define SNDRV_SEQ_EVENT_PITCHBEND 13
#define SNDRV_SEQ_EVENT_CONTROL14 14
#define SNDRV_SEQ_EVENT_NONREGPARAM 15
#define SNDRV_SEQ_EVENT_REGPARAM 16
#define SNDRV_SEQ_EVENT_SONGPOS 20
#define SNDRV_SEQ_EVENT_SONGSEL 21
#define SNDRV_SEQ_EVENT_QFRAME 22
#define SNDRV_SEQ_EVENT_TIMESIGN 23
#define SNDRV_SEQ_EVENT_KEYSIGN 24
#define SNDRV_SEQ_EVENT_START 30
#define SNDRV_SEQ_EVENT_CONTINUE 31
#define SNDRV_SEQ_EVENT_STOP 32
#define SNDRV_SEQ_EVENT_SETPOS_TICK 33
#define SNDRV_SEQ_EVENT_SETPOS_TIME 34
#define SNDRV_SEQ_EVENT_TEMPO 35
#define SNDRV_SEQ_EVENT_CLOCK 36
#define SNDRV_SEQ_EVENT_TICK 37
#define SNDRV_SEQ_EVENT_QUEUE_SKEW 38
#define SNDRV_SEQ_EVENT_TUNE_REQUEST 40
#define SNDRV_SEQ_EVENT_RESET 41
#define SNDRV_SEQ_EVENT_SENSING 42
#define SNDRV_SEQ_EVENT_ECHO 50
#define SNDRV_SEQ_EVENT_OSS 51
#define SNDRV_SEQ_EVENT_CLIENT_START 60
#define SNDRV_SEQ_EVENT_CLIENT_EXIT 61
#define SNDRV_SEQ_EVENT_CLIENT_CHANGE 62
#define SNDRV_SEQ_EVENT_PORT_START 63
#define SNDRV_SEQ_EVENT_PORT_EXIT 64
#define SNDRV_SEQ_EVENT_PORT_CHANGE 65
#define SNDRV_SEQ_EVENT_PORT_SUBSCRIBED 66
#define SNDRV_SEQ_EVENT_PORT_UNSUBSCRIBED 67
#define SNDRV_SEQ_EVENT_USR0 90
#define SNDRV_SEQ_EVENT_USR1 91
#define SNDRV_SEQ_EVENT_USR2 92
#define SNDRV_SEQ_EVENT_USR3 93
#define SNDRV_SEQ_EVENT_USR4 94
#define SNDRV_SEQ_EVENT_USR5 95
#define SNDRV_SEQ_EVENT_USR6 96
#define SNDRV_SEQ_EVENT_USR7 97
#define SNDRV_SEQ_EVENT_USR8 98
#define SNDRV_SEQ_EVENT_USR9 99
#define SNDRV_SEQ_EVENT_SYSEX 130
#define SNDRV_SEQ_EVENT_BOUNCE 131
#define SNDRV_SEQ_EVENT_USR_VAR0 135
#define SNDRV_SEQ_EVENT_USR_VAR1 136
#define SNDRV_SEQ_EVENT_USR_VAR2 137
#define SNDRV_SEQ_EVENT_USR_VAR3 138
#define SNDRV_SEQ_EVENT_USR_VAR4 139
#define SNDRV_SEQ_EVENT_KERNEL_ERROR 150
#define SNDRV_SEQ_EVENT_KERNEL_QUOTE 151
#define SNDRV_SEQ_EVENT_NONE 255
typedef unsigned char snd_seq_event_type_t;
struct snd_seq_addr {
  unsigned char client;
  unsigned char port;
};
struct snd_seq_connect {
  struct snd_seq_addr sender;
  struct snd_seq_addr dest;
};
#define SNDRV_SEQ_ADDRESS_UNKNOWN 253
#define SNDRV_SEQ_ADDRESS_SUBSCRIBERS 254
#define SNDRV_SEQ_ADDRESS_BROADCAST 255
#define SNDRV_SEQ_QUEUE_DIRECT 253
#define SNDRV_SEQ_TIME_STAMP_TICK (0 << 0)
#define SNDRV_SEQ_TIME_STAMP_REAL (1 << 0)
#define SNDRV_SEQ_TIME_STAMP_MASK (1 << 0)
#define SNDRV_SEQ_TIME_MODE_ABS (0 << 1)
#define SNDRV_SEQ_TIME_MODE_REL (1 << 1)
#define SNDRV_SEQ_TIME_MODE_MASK (1 << 1)
#define SNDRV_SEQ_EVENT_LENGTH_FIXED (0 << 2)
#define SNDRV_SEQ_EVENT_LENGTH_VARIABLE (1 << 2)
#define SNDRV_SEQ_EVENT_LENGTH_VARUSR (2 << 2)
#define SNDRV_SEQ_EVENT_LENGTH_MASK (3 << 2)
#define SNDRV_SEQ_PRIORITY_NORMAL (0 << 4)
#define SNDRV_SEQ_PRIORITY_HIGH (1 << 4)
#define SNDRV_SEQ_PRIORITY_MASK (1 << 4)
struct snd_seq_ev_note {
  unsigned char channel;
  unsigned char note;
  unsigned char velocity;
  unsigned char off_velocity;
  unsigned int duration;
};
struct snd_seq_ev_ctrl {
  unsigned char channel;
  unsigned char unused1, unused2, unused3;
  unsigned int param;
  signed int value;
};
struct snd_seq_ev_raw8 {
  unsigned char d[12];
};
struct snd_seq_ev_raw32 {
  unsigned int d[3];
};
struct snd_seq_ev_ext {
  unsigned int len;
  void * ptr;
} __attribute__((packed));
struct snd_seq_result {
  int event;
  int result;
};
struct snd_seq_real_time {
  unsigned int tv_sec;
  unsigned int tv_nsec;
};
typedef unsigned int snd_seq_tick_time_t;
union snd_seq_timestamp {
  snd_seq_tick_time_t tick;
  struct snd_seq_real_time time;
};
struct snd_seq_queue_skew {
  unsigned int value;
  unsigned int base;
};
struct snd_seq_ev_queue_control {
  unsigned char queue;
  unsigned char pad[3];
  union {
    signed int value;
    union snd_seq_timestamp time;
    unsigned int position;
    struct snd_seq_queue_skew skew;
    unsigned int d32[2];
    unsigned char d8[8];
  } param;
};
struct snd_seq_ev_quote {
  struct snd_seq_addr origin;
  unsigned short value;
  struct snd_seq_event * event;
} __attribute__((packed));
struct snd_seq_event {
  snd_seq_event_type_t type;
  unsigned char flags;
  char tag;
  unsigned char queue;
  union snd_seq_timestamp time;
  struct snd_seq_addr source;
  struct snd_seq_addr dest;
  union {
    struct snd_seq_ev_note note;
    struct snd_seq_ev_ctrl control;
    struct snd_seq_ev_raw8 raw8;
    struct snd_seq_ev_raw32 raw32;
    struct snd_seq_ev_ext ext;
    struct snd_seq_ev_queue_control queue;
    union snd_seq_timestamp time;
    struct snd_seq_addr addr;
    struct snd_seq_connect connect;
    struct snd_seq_result result;
    struct snd_seq_ev_quote quote;
  } data;
};
struct snd_seq_event_bounce {
  int err;
  struct snd_seq_event event;
};
struct snd_seq_system_info {
  int queues;
  int clients;
  int ports;
  int channels;
  int cur_clients;
  int cur_queues;
  char reserved[24];
};
struct snd_seq_running_info {
  unsigned char client;
  unsigned char big_endian;
  unsigned char cpu_mode;
  unsigned char pad;
  unsigned char reserved[12];
};
#define SNDRV_SEQ_CLIENT_SYSTEM 0
#define SNDRV_SEQ_CLIENT_DUMMY 14
#define SNDRV_SEQ_CLIENT_OSS 15
typedef int __bitwise snd_seq_client_type_t;
#define NO_CLIENT (( snd_seq_client_type_t) 0)
#define USER_CLIENT (( snd_seq_client_type_t) 1)
#define KERNEL_CLIENT (( snd_seq_client_type_t) 2)
#define SNDRV_SEQ_FILTER_BROADCAST (1U << 0)
#define SNDRV_SEQ_FILTER_MULTICAST (1U << 1)
#define SNDRV_SEQ_FILTER_BOUNCE (1U << 2)
#define SNDRV_SEQ_FILTER_USE_EVENT (1U << 31)
struct snd_seq_client_info {
  int client;
  snd_seq_client_type_t type;
  char name[64];
  unsigned int filter;
  unsigned char multicast_filter[8];
  unsigned char event_filter[32];
  int num_ports;
  int event_lost;
  int card;
  int pid;
  char reserved[56];
};
struct snd_seq_client_pool {
  int client;
  int output_pool;
  int input_pool;
  int output_room;
  int output_free;
  int input_free;
  char reserved[64];
};
#define SNDRV_SEQ_REMOVE_INPUT (1 << 0)
#define SNDRV_SEQ_REMOVE_OUTPUT (1 << 1)
#define SNDRV_SEQ_REMOVE_DEST (1 << 2)
#define SNDRV_SEQ_REMOVE_DEST_CHANNEL (1 << 3)
#define SNDRV_SEQ_REMOVE_TIME_BEFORE (1 << 4)
#define SNDRV_SEQ_REMOVE_TIME_AFTER (1 << 5)
#define SNDRV_SEQ_REMOVE_TIME_TICK (1 << 6)
#define SNDRV_SEQ_REMOVE_EVENT_TYPE (1 << 7)
#define SNDRV_SEQ_REMOVE_IGNORE_OFF (1 << 8)
#define SNDRV_SEQ_REMOVE_TAG_MATCH (1 << 9)
struct snd_seq_remove_events {
  unsigned int remove_mode;
  union snd_seq_timestamp time;
  unsigned char queue;
  struct snd_seq_addr dest;
  unsigned char channel;
  int type;
  char tag;
  int reserved[10];
};
#define SNDRV_SEQ_PORT_SYSTEM_TIMER 0
#define SNDRV_SEQ_PORT_SYSTEM_ANNOUNCE 1
#define SNDRV_SEQ_PORT_CAP_READ (1 << 0)
#define SNDRV_SEQ_PORT_CAP_WRITE (1 << 1)
#define SNDRV_SEQ_PORT_CAP_SYNC_READ (1 << 2)
#define SNDRV_SEQ_PORT_CAP_SYNC_WRITE (1 << 3)
#define SNDRV_SEQ_PORT_CAP_DUPLEX (1 << 4)
#define SNDRV_SEQ_PORT_CAP_SUBS_READ (1 << 5)
#define SNDRV_SEQ_PORT_CAP_SUBS_WRITE (1 << 6)
#define SNDRV_SEQ_PORT_CAP_NO_EXPORT (1 << 7)
#define SNDRV_SEQ_PORT_TYPE_SPECIFIC (1 << 0)
#define SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC (1 << 1)
#define SNDRV_SEQ_PORT_TYPE_MIDI_GM (1 << 2)
#define SNDRV_SEQ_PORT_TYPE_MIDI_GS (1 << 3)
#define SNDRV_SEQ_PORT_TYPE_MIDI_XG (1 << 4)
#define SNDRV_SEQ_PORT_TYPE_MIDI_MT32 (1 << 5)
#define SNDRV_SEQ_PORT_TYPE_MIDI_GM2 (1 << 6)
#define SNDRV_SEQ_PORT_TYPE_SYNTH (1 << 10)
#define SNDRV_SEQ_PORT_TYPE_DIRECT_SAMPLE (1 << 11)
#define SNDRV_SEQ_PORT_TYPE_SAMPLE (1 << 12)
#define SNDRV_SEQ_PORT_TYPE_HARDWARE (1 << 16)
#define SNDRV_SEQ_PORT_TYPE_SOFTWARE (1 << 17)
#define SNDRV_SEQ_PORT_TYPE_SYNTHESIZER (1 << 18)
#define SNDRV_SEQ_PORT_TYPE_PORT (1 << 19)
#define SNDRV_SEQ_PORT_TYPE_APPLICATION (1 << 20)
#define SNDRV_SEQ_PORT_FLG_GIVEN_PORT (1 << 0)
#define SNDRV_SEQ_PORT_FLG_TIMESTAMP (1 << 1)
#define SNDRV_SEQ_PORT_FLG_TIME_REAL (1 << 2)
struct snd_seq_port_info {
  struct snd_seq_addr addr;
  char name[64];
  unsigned int capability;
  unsigned int type;
  int midi_channels;
  int midi_voices;
  int synth_voices;
  int read_use;
  int write_use;
  void * kernel;
  unsigned int flags;
  unsigned char time_queue;
  char reserved[59];
};
#define SNDRV_SEQ_QUEUE_FLG_SYNC (1 << 0)
struct snd_seq_queue_info {
  int queue;
  int owner;
  unsigned locked : 1;
  char name[64];
  unsigned int flags;
  char reserved[60];
};
struct snd_seq_queue_status {
  int queue;
  int events;
  snd_seq_tick_time_t tick;
  struct snd_seq_real_time time;
  int running;
  int flags;
  char reserved[64];
};
struct snd_seq_queue_tempo {
  int queue;
  unsigned int tempo;
  int ppq;
  unsigned int skew_value;
  unsigned int skew_base;
  char reserved[24];
};
#define SNDRV_SEQ_TIMER_ALSA 0
#define SNDRV_SEQ_TIMER_MIDI_CLOCK 1
#define SNDRV_SEQ_TIMER_MIDI_TICK 2
struct snd_seq_queue_timer {
  int queue;
  int type;
  union {
    struct {
      struct snd_timer_id id;
      unsigned int resolution;
    } alsa;
  } u;
  char reserved[64];
};
struct snd_seq_queue_client {
  int queue;
  int client;
  int used;
  char reserved[64];
};
#define SNDRV_SEQ_PORT_SUBS_EXCLUSIVE (1 << 0)
#define SNDRV_SEQ_PORT_SUBS_TIMESTAMP (1 << 1)
#define SNDRV_SEQ_PORT_SUBS_TIME_REAL (1 << 2)
struct snd_seq_port_subscribe {
  struct snd_seq_addr sender;
  struct snd_seq_addr dest;
  unsigned int voices;
  unsigned int flags;
  unsigned char queue;
  unsigned char pad[3];
  char reserved[64];
};
#define SNDRV_SEQ_QUERY_SUBS_READ 0
#define SNDRV_SEQ_QUERY_SUBS_WRITE 1
struct snd_seq_query_subs {
  struct snd_seq_addr root;
  int type;
  int index;
  int num_subs;
  struct snd_seq_addr addr;
  unsigned char queue;
  unsigned int flags;
  char reserved[64];
};
#define SNDRV_SEQ_IOCTL_PVERSION _IOR('S', 0x00, int)
#define SNDRV_SEQ_IOCTL_CLIENT_ID _IOR('S', 0x01, int)
#define SNDRV_SEQ_IOCTL_SYSTEM_INFO _IOWR('S', 0x02, struct snd_seq_system_info)
#define SNDRV_SEQ_IOCTL_RUNNING_MODE _IOWR('S', 0x03, struct snd_seq_running_info)
#define SNDRV_SEQ_IOCTL_GET_CLIENT_INFO _IOWR('S', 0x10, struct snd_seq_client_info)
#define SNDRV_SEQ_IOCTL_SET_CLIENT_INFO _IOW('S', 0x11, struct snd_seq_client_info)
#define SNDRV_SEQ_IOCTL_CREATE_PORT _IOWR('S', 0x20, struct snd_seq_port_info)
#define SNDRV_SEQ_IOCTL_DELETE_PORT _IOW('S', 0x21, struct snd_seq_port_info)
#define SNDRV_SEQ_IOCTL_GET_PORT_INFO _IOWR('S', 0x22, struct snd_seq_port_info)
#define SNDRV_SEQ_IOCTL_SET_PORT_INFO _IOW('S', 0x23, struct snd_seq_port_info)
#define SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT _IOW('S', 0x30, struct snd_seq_port_subscribe)
#define SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT _IOW('S', 0x31, struct snd_seq_port_subscribe)
#define SNDRV_SEQ_IOCTL_CREATE_QUEUE _IOWR('S', 0x32, struct snd_seq_queue_info)
#define SNDRV_SEQ_IOCTL_DELETE_QUEUE _IOW('S', 0x33, struct snd_seq_queue_info)
#define SNDRV_SEQ_IOCTL_GET_QUEUE_INFO _IOWR('S', 0x34, struct snd_seq_queue_info)
#define SNDRV_SEQ_IOCTL_SET_QUEUE_INFO _IOWR('S', 0x35, struct snd_seq_queue_info)
#define SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE _IOWR('S', 0x36, struct snd_seq_queue_info)
#define SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS _IOWR('S', 0x40, struct snd_seq_queue_status)
#define SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO _IOWR('S', 0x41, struct snd_seq_queue_tempo)
#define SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO _IOW('S', 0x42, struct snd_seq_queue_tempo)
#define SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER _IOWR('S', 0x45, struct snd_seq_queue_timer)
#define SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER _IOW('S', 0x46, struct snd_seq_queue_timer)
#define SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT _IOWR('S', 0x49, struct snd_seq_queue_client)
#define SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT _IOW('S', 0x4a, struct snd_seq_queue_client)
#define SNDRV_SEQ_IOCTL_GET_CLIENT_POOL _IOWR('S', 0x4b, struct snd_seq_client_pool)
#define SNDRV_SEQ_IOCTL_SET_CLIENT_POOL _IOW('S', 0x4c, struct snd_seq_client_pool)
#define SNDRV_SEQ_IOCTL_REMOVE_EVENTS _IOW('S', 0x4e, struct snd_seq_remove_events)
#define SNDRV_SEQ_IOCTL_QUERY_SUBS _IOWR('S', 0x4f, struct snd_seq_query_subs)
#define SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION _IOWR('S', 0x50, struct snd_seq_port_subscribe)
#define SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT _IOWR('S', 0x51, struct snd_seq_client_info)
#define SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT _IOWR('S', 0x52, struct snd_seq_port_info)
#endif