OSDN Git Service

Merged pcmfinal branch.
[android-x86/external-alsa-lib.git] / include / seq.h
1 /****************************************************************************
2  *                                                                          *
3  *                                seq.h                                     *
4  *                              Sequencer                                   *
5  *                                                                          *
6  ****************************************************************************/
7
8 #define SND_SEQ_OPEN_OUTPUT     1
9 #define SND_SEQ_OPEN_INPUT      2
10 #define SND_SEQ_OPEN_DUPLEX     (SND_SEQ_OPEN_OUTPUT|SND_SEQ_OPEN_INPUT)
11
12 #define SND_SEQ_NONBLOCK        1
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 typedef enum _snd_seq_type {
19         SND_SEQ_TYPE_HW,
20         SND_SEQ_TYPE_SHM,
21         SND_SEQ_TYPE_INET,
22 } snd_seq_type_t;
23
24 typedef struct _snd_seq snd_seq_t;
25
26 int snd_seq_open(snd_seq_t **handle, char *name, int streams, int mode);
27 int snd_seq_close(snd_seq_t *handle);
28 int snd_seq_poll_descriptor(snd_seq_t *handle);
29 int snd_seq_nonblock(snd_seq_t *handle, int nonblock);
30 int snd_seq_client_id(snd_seq_t *handle);
31 int snd_seq_output_buffer_size(snd_seq_t *handle);
32 int snd_seq_input_buffer_size(snd_seq_t *handle);
33 int snd_seq_resize_output_buffer(snd_seq_t *handle, size_t size);
34 int snd_seq_resize_input_buffer(snd_seq_t *handle, size_t size);
35 int snd_seq_system_info(snd_seq_t *handle, snd_seq_system_info_t *info);
36 int snd_seq_get_client_info(snd_seq_t *handle, snd_seq_client_info_t *info);
37 int snd_seq_get_any_client_info(snd_seq_t *handle, int client, snd_seq_client_info_t *info);
38 int snd_seq_set_client_info(snd_seq_t *handle, snd_seq_client_info_t *info);
39 int snd_seq_create_port(snd_seq_t *handle, snd_seq_port_info_t *info);
40 int snd_seq_delete_port(snd_seq_t *handle, snd_seq_port_info_t *info);
41 int snd_seq_get_port_info(snd_seq_t *handle, int port, snd_seq_port_info_t *info);
42 int snd_seq_get_any_port_info(snd_seq_t *handle, int client, int port, snd_seq_port_info_t *info);
43 int snd_seq_set_port_info(snd_seq_t *handle, int port, snd_seq_port_info_t *info);
44 int snd_seq_get_port_subscription(snd_seq_t *handle, snd_seq_port_subscribe_t *sub);
45 int snd_seq_subscribe_port(snd_seq_t *handle, snd_seq_port_subscribe_t *sub);
46 int snd_seq_unsubscribe_port(snd_seq_t *handle, snd_seq_port_subscribe_t *sub);
47 int snd_seq_query_port_subscribers(snd_seq_t *seq, snd_seq_query_subs_t * subs);
48 int snd_seq_get_queue_status(snd_seq_t *handle, int q, snd_seq_queue_status_t *status);
49 int snd_seq_get_queue_tempo(snd_seq_t *handle, int q, snd_seq_queue_tempo_t *tempo);
50 int snd_seq_set_queue_tempo(snd_seq_t *handle, int q, snd_seq_queue_tempo_t *tempo);
51 int snd_seq_get_queue_owner(snd_seq_t *handle, int q, snd_seq_queue_owner_t *owner);
52 int snd_seq_set_queue_owner(snd_seq_t *handle, int q, snd_seq_queue_owner_t *owner);
53 int snd_seq_get_queue_timer(snd_seq_t *handle, int q, snd_seq_queue_timer_t *timer);
54 int snd_seq_set_queue_timer(snd_seq_t *handle, int q, snd_seq_queue_timer_t *timer);
55 int snd_seq_get_queue_client(snd_seq_t *handle, int q, snd_seq_queue_client_t *queue);
56 int snd_seq_set_queue_client(snd_seq_t *handle, int q, snd_seq_queue_client_t *queue);
57 int snd_seq_create_queue(snd_seq_t *seq, snd_seq_queue_info_t *info);
58 int snd_seq_alloc_named_queue(snd_seq_t *seq, char *name);
59 int snd_seq_alloc_queue(snd_seq_t *handle);
60 #ifdef SND_SEQ_SYNC_SUPPORT
61 int snd_seq_alloc_sync_queue(snd_seq_t *seq, char *name);
62 #endif
63 int snd_seq_free_queue(snd_seq_t *handle, int q);
64 int snd_seq_get_queue_info(snd_seq_t *seq, int q, snd_seq_queue_info_t *info);
65 int snd_seq_set_queue_info(snd_seq_t *seq, int q, snd_seq_queue_info_t *info);
66 int snd_seq_get_named_queue(snd_seq_t *seq, char *name);
67 int snd_seq_get_client_pool(snd_seq_t *handle, snd_seq_client_pool_t * info);
68 int snd_seq_set_client_pool(snd_seq_t *handle, snd_seq_client_pool_t * info);
69 int snd_seq_query_next_client(snd_seq_t *handle, snd_seq_client_info_t * info);
70 int snd_seq_query_next_port(snd_seq_t *handle, snd_seq_port_info_t * info);
71 #ifdef SND_SEQ_SYNC_SUPPORT
72 int snd_seq_add_sync_master(snd_seq_t *seq, int queue, snd_seq_addr_t *dest, snd_seq_queue_sync_t *info);
73 int snd_seq_remove_sync_master(snd_seq_t *seq, int queue, snd_seq_addr_t *dest);
74 int snd_seq_add_sync_std_master(snd_seq_t *seq, int queue, snd_seq_addr_t *dest, int format, int time_format, unsigned char *opt_info);
75 #define snd_seq_add_sync_master_clock(seq,q,dest) snd_seq_add_sync_std_master(seq, q, dest, SND_SEQ_SYNC_FMT_MIDI_CLOCK, 0, 0)
76 #define snd_seq_add_sync_master_mtc(seq,q,dest,tfmt) snd_seq_add_sync_std_master(seq, q, dest, SND_SEQ_SYNC_FMT_MTC, tfmt, 0)
77
78 int snd_seq_set_sync_slave(snd_seq_t *seq, int queue, snd_seq_addr_t *src, snd_seq_queue_sync_t *info);
79 int snd_seq_reset_sync_slave(snd_seq_t *seq, int queue, snd_seq_addr_t *src);
80
81 #endif
82
83 /* event routines */
84 snd_seq_event_t *snd_seq_create_event(void);
85 int snd_seq_free_event(snd_seq_event_t *ev);
86 ssize_t snd_seq_event_length(snd_seq_event_t *ev);
87 int snd_seq_event_output(snd_seq_t *handle, snd_seq_event_t *ev);
88 int snd_seq_event_output(snd_seq_t *handle, snd_seq_event_t *ev);
89 int snd_seq_event_output_buffer(snd_seq_t *handle, snd_seq_event_t *ev);
90 int snd_seq_event_output_direct(snd_seq_t *handle, snd_seq_event_t *ev);
91 int snd_seq_event_input(snd_seq_t *handle, snd_seq_event_t **ev);
92 int snd_seq_event_input_pending(snd_seq_t *seq, int fetch_sequencer);
93 int snd_seq_drain_output(snd_seq_t *handle);
94 int snd_seq_event_output_pending(snd_seq_t *seq);
95 int snd_seq_extract_output(snd_seq_t *handle, snd_seq_event_t **ev);
96 int snd_seq_drop_output(snd_seq_t *handle);
97 int snd_seq_drop_output_buffer(snd_seq_t *handle);
98 int snd_seq_drop_input(snd_seq_t *handle);
99 int snd_seq_drop_input_buffer(snd_seq_t *handle);
100 int snd_seq_remove_events(snd_seq_t *handle, snd_seq_remove_events_t *info);
101 /* misc */
102 void snd_seq_set_bit(int nr, void *array);
103 int snd_seq_change_bit(int nr, void *array);
104 int snd_seq_get_bit(int nr, void *array);
105
106 #ifdef __cplusplus
107 }
108 #endif
109