Major change to sequencer API.

The sequencer API is totally recoded with the style of "encapsulation"
in other api.
The structure becomes opaque and accessed only via functions.

Other changes:
- There is no longer group in client and port info.
- snd_seq_query_subs_t is renamed to snd_seq_query_subscribe_t.
- snd_seq_delete_port takes only the port id argument instead of
  port_info structure.
- snd_seq_input/output_buffer_size are renamed
  as snd_seq_get_input/output_buffer_size.
  Similarly snd_seq_resize_input/output_buffer are renamed as
  snd_seq_set_input/output_buffer_size.
- snd_seq_get_named_queue is renamed to snd_seq_query_named_queue.
- Sync codes are removed temporarily from API.
- Subscription conditions are accessed via the corresponding functions.
  convert_time is named now as time_update.
- snd_seq_get/set_queue_owner are removed.
  Use snd_seq_get/set_queue_info instead.
- Instrument put/get/remove structure is unified as snd_instr_header_t.
This commit is contained in:
Jaroslav Kysela 2001-07-04 13:54:13 +00:00
parent d23ff765ad
commit 88e5e45151
20 changed files with 4410 additions and 1691 deletions

55
src/seq/seq_event.c Normal file
View file

@ -0,0 +1,55 @@
/**
* \file seq/seq_event.c
* \author Takashi Iwai <tiwai@suse.de>
* \date 2001
*/
#include "../../include/asoundlib.h"
#define FIXED_EV(x) (_SND_SEQ_TYPE(SND_SEQ_EVFLG_FIXED) | _SND_SEQ_TYPE(x))
const unsigned int snd_seq_event_types[256] = {
[SND_SEQ_EVENT_SYSTEM ... SND_SEQ_EVENT_RESULT]
= FIXED_EV(SND_SEQ_EVFLG_RESULT),
[SND_SEQ_EVENT_NOTE]
= FIXED_EV(SND_SEQ_EVFLG_NOTE) | _SND_SEQ_TYPE_OPT(SND_SEQ_EVFLG_NOTE_TWOARG),
[SND_SEQ_EVENT_NOTEON ... SND_SEQ_EVENT_KEYPRESS]
= FIXED_EV(SND_SEQ_EVFLG_NOTE),
[SND_SEQ_EVENT_CONTROLLER ... SND_SEQ_EVENT_REGPARAM]
= FIXED_EV(SND_SEQ_EVFLG_CONTROL),
[SND_SEQ_EVENT_START ... SND_SEQ_EVENT_STOP]
= FIXED_EV(SND_SEQ_EVFLG_QUEUE),
[SND_SEQ_EVENT_SETPOS_TICK]
= FIXED_EV(SND_SEQ_EVFLG_QUEUE) | _SND_SEQ_TYPE_OPT(SND_SEQ_EVFLG_QUEUE_TICK),
[SND_SEQ_EVENT_SETPOS_TIME]
= FIXED_EV(SND_SEQ_EVFLG_QUEUE) | _SND_SEQ_TYPE_OPT(SND_SEQ_EVFLG_QUEUE_TIME),
[SND_SEQ_EVENT_TEMPO ... SND_SEQ_EVENT_SYNC_POS]
= FIXED_EV(SND_SEQ_EVFLG_QUEUE) | _SND_SEQ_TYPE_OPT(SND_SEQ_EVFLG_QUEUE_VALUE),
[SND_SEQ_EVENT_TUNE_REQUEST ... SND_SEQ_EVENT_SENSING]
= FIXED_EV(SND_SEQ_EVFLG_NONE),
[SND_SEQ_EVENT_ECHO ... SND_SEQ_EVENT_OSS]
= FIXED_EV(SND_SEQ_EVFLG_RAW) | FIXED_EV(SND_SEQ_EVFLG_SYSTEM),
[SND_SEQ_EVENT_CLIENT_START ... SND_SEQ_EVENT_PORT_CHANGE]
= FIXED_EV(SND_SEQ_EVFLG_MESSAGE),
[SND_SEQ_EVENT_PORT_SUBSCRIBED ... SND_SEQ_EVENT_PORT_UNSUBSCRIBED]
= FIXED_EV(SND_SEQ_EVFLG_CONNECTION),
[SND_SEQ_EVENT_SAMPLE ... SND_SEQ_EVENT_SAMPLE_PRIVATE1]
= FIXED_EV(SND_SEQ_EVFLG_SAMPLE),
[SND_SEQ_EVENT_USR0 ... SND_SEQ_EVENT_USR9]
= FIXED_EV(SND_SEQ_EVFLG_RAW) | FIXED_EV(SND_SEQ_EVFLG_USERS),
[SND_SEQ_EVENT_INSTR_BEGIN ... SND_SEQ_EVENT_INSTR_CHANGE]
= _SND_SEQ_TYPE(SND_SEQ_EVFLG_INSTR) | _SND_SEQ_TYPE(SND_SEQ_EVFLG_VARUSR),
[SND_SEQ_EVENT_SYSEX ... SND_SEQ_EVENT_BOUNCE]
= _SND_SEQ_TYPE(SND_SEQ_EVFLG_VARIABLE),
[SND_SEQ_EVENT_USR_VAR0 ... SND_SEQ_EVENT_USR_VAR4]
= _SND_SEQ_TYPE(SND_SEQ_EVFLG_VARIABLE) | _SND_SEQ_TYPE(SND_SEQ_EVFLG_USERS),
#if 0 // NYI
[SND_SEQ_EVENT_IPCSHM]
= _SND_SEQ_TYPE(SND_SEQ_EVFLG_IPC),
[SND_SEQ_EVENT_USR_VARIPC0 ... SND_SEQ_EVENT_USR_VARIPC4]
= _SND_SEQ_TYPE(SND_SEQ_EVFLG_IPC) | _SND_SEQ_TYPE(SND_SEQ_EVFLG_USERS),
#endif
[SND_SEQ_EVENT_NONE]
= FIXED_EV(SND_SEQ_EVFLG_NONE),
};