OSDN Git Service

Sequencer changes (pool per client) by Takashi Iwai <iwai@ww.uni-erlangen.de>
[android-x86/external-alsa-lib.git] / include / seq.h
1 /****************************************************************************
2  *                                                                          *
3  *                                seq.h                                     *
4  *                              Sequencer                                   *
5  *                                                                          *
6  ****************************************************************************/
7
8 #define SND_SEQ_OPEN_OUT        (O_WRONLY)
9 #define SND_SEQ_OPEN_IN         (O_RDONLY)
10 #define SND_SEQ_OPEN            (O_RDWR)
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 typedef struct snd_seq snd_seq_t;
17
18 int snd_seq_open(snd_seq_t **handle, int mode);
19 int snd_seq_close(snd_seq_t *handle);
20 int snd_seq_file_descriptor(snd_seq_t *handle);
21 int snd_seq_block_mode(snd_seq_t *handle, int enable);
22 int snd_seq_client_id(snd_seq_t *handle);
23 int snd_seq_system_info(snd_seq_t *handle, snd_seq_system_info_t *info);
24 int snd_seq_get_client_info(snd_seq_t *handle, snd_seq_client_info_t *info);
25 int snd_seq_get_any_client_info(snd_seq_t *handle, int client, snd_seq_client_info_t *info);
26 int snd_seq_set_client_info(snd_seq_t *handle, snd_seq_client_info_t *info);
27 int snd_seq_create_port(snd_seq_t *handle, snd_seq_port_info_t *info);
28 int snd_seq_delete_port(snd_seq_t *handle, snd_seq_port_info_t *info);
29 int snd_seq_get_port_info(snd_seq_t *handle, int port, snd_seq_port_info_t *info);
30 int snd_seq_get_any_port_info(snd_seq_t *handle, int client, int port, snd_seq_port_info_t *info);
31 int snd_seq_set_port_info(snd_seq_t *handle, int port, snd_seq_port_info_t *info);
32 int snd_seq_subscribe_port(snd_seq_t *handle, snd_seq_port_subscribe_t *sub);
33 int snd_seq_unsubscribe_port(snd_seq_t *handle, snd_seq_port_subscribe_t *sub);
34 int snd_seq_get_queue_status(snd_seq_t *handle, int q, snd_seq_queue_status_t *status);
35 int snd_seq_get_queue_tempo(snd_seq_t *handle, int q, snd_seq_queue_tempo_t *tempo);
36 int snd_seq_set_queue_tempo(snd_seq_t *handle, int q, snd_seq_queue_tempo_t *tempo);
37 int snd_seq_get_queue_owner(snd_seq_t *handle, int q, snd_seq_queue_owner_t *owner);
38 int snd_seq_set_queue_owner(snd_seq_t *handle, int q, snd_seq_queue_owner_t *owner);
39 int snd_seq_get_queue_timer(snd_seq_t *handle, int q, snd_seq_queue_timer_t *timer);
40 int snd_seq_set_queue_timer(snd_seq_t *handle, int q, snd_seq_queue_timer_t *timer);
41 int snd_seq_get_queue_sync(snd_seq_t *handle, int q, snd_seq_queue_sync_t *sync);
42 int snd_seq_set_queue_sync(snd_seq_t *handle, int q, snd_seq_queue_sync_t *sync);
43 int snd_seq_get_queue_client(snd_seq_t *handle, int q, snd_seq_queue_client_t *queue);
44 int snd_seq_set_queue_client(snd_seq_t *handle, int q, snd_seq_queue_client_t *queue);
45 int snd_seq_alloc_queue(snd_seq_t *handle);
46 int snd_seq_free_queue(snd_seq_t *handle, int q);
47 int snd_seq_get_client_pool(snd_seq_t *handle, snd_seq_client_pool_t * info);
48 int snd_seq_set_client_pool(snd_seq_t *handle, snd_seq_client_pool_t * info);
49 /* event routines */
50 snd_seq_event_t *snd_seq_create_event(void);
51 int snd_seq_free_event(snd_seq_event_t *ev);
52 int snd_seq_event_length(snd_seq_event_t *ev);
53 int snd_seq_event_output(snd_seq_t *handle, snd_seq_event_t *ev);
54 int snd_seq_event_input(snd_seq_t *handle, snd_seq_event_t **ev);
55 int snd_seq_flush_output(snd_seq_t *handle);
56 int snd_seq_drain_output(snd_seq_t *handle);
57 int snd_seq_drain_input(snd_seq_t *handle);
58 /* misc */
59 void snd_seq_set_bit(int nr, void *array);
60 int snd_seq_change_bit(int nr, void *array);
61 int snd_seq_get_bit(int nr, void *array);
62
63 #ifdef __cplusplus
64 }
65 #endif
66