Typedefs | |
typedef snd_midi_event | snd_midi_event_t |
Functions | |
int | snd_midi_event_new (size_t bufsize, snd_midi_event_t **rdev) |
Creates a MIDI event parser. | |
int | snd_midi_event_resize_buffer (snd_midi_event_t *dev, size_t bufsize) |
Resizes the MIDI message encoding buffer. | |
void | snd_midi_event_free (snd_midi_event_t *dev) |
Frees a MIDI event parser. | |
void | snd_midi_event_init (snd_midi_event_t *dev) |
Resets MIDI encode/decode parsers. | |
void | snd_midi_event_reset_encode (snd_midi_event_t *dev) |
Resets MIDI encode parser. | |
void | snd_midi_event_reset_decode (snd_midi_event_t *dev) |
Resets MIDI decode parser. | |
void | snd_midi_event_no_status (snd_midi_event_t *dev, int on) |
Enables/disables MIDI command merging. | |
long | snd_midi_event_encode (snd_midi_event_t *dev, const unsigned char *buf, long count, snd_seq_event_t *ev) |
Encodes bytes to sequencer event. | |
int | snd_midi_event_encode_byte (snd_midi_event_t *dev, int c, snd_seq_event_t *ev) |
Encodes byte to sequencer event. | |
long | snd_midi_event_decode (snd_midi_event_t *dev, unsigned char *buf, long count, const snd_seq_event_t *ev) |
Decodes sequencer event to MIDI byte stream. |
|
container for sequencer midi event parsers |
|
Decodes sequencer event to MIDI byte stream.
The generated MIDI messages may use running status, unless disabled with snd_midi_event_no_status. The required buffer size for a sequencer event it as most 12 bytes, except for System Exclusive events (ev->type == SND_SEQ_EVENT_SYSEX) which can have any length (as specified by ev->data.ext.len). The following sequencer events correspond to MIDI messages:
|
|
Encodes bytes to sequencer event.
The buffer in dev is used to hold any bytes of a not-yet-complete MIDI message. If a System Exclusive message is larger than the buffer, the message is split into multiple parts, and a sequencer event is returned at the end of each part. Any bytes that are not part of a valid MIDI message are silently ignored, i.e., they are consumed without signaling an error. When this function returns a system exclusive sequencer event (ev->type is SND_SEQ_EVENT_SYSEX), the data pointer (ev->data.ext.ptr) points into the MIDI event parser's buffer. Therefore, the sequencer event can only be used as long as that buffer remains valid, i.e., until the next call to snd_midi_event_encode, snd_midi_event_encode_byte, snd_midi_event_resize_buffer, snd_midi_event_init, snd_midi_event_reset_encode, or snd_midi_event_free for that MIDI event parser. This function can generate any sequencer event that corresponds to a MIDI message, i.e.:
|
|
Encodes byte to sequencer event.
See also the description of snd_midi_event_encode.
|
|
Frees a MIDI event parser.
|
|
Resets MIDI encode/decode parsers.
|
|
Creates a MIDI event parser.
|
|
Enables/disables MIDI command merging.
When MIDI command merging is not disabled, snd_midi_event_decode is allowed to omit any status byte that is identical to the previous status byte. |
|
Resets MIDI decode parser.
|
|
Resets MIDI encode parser.
|
|
Resizes the MIDI message encoding buffer.
If there is a partially encoded message in the buffer, it is dropped.
|