21 #include "JackError.h"
22 #include "JackMidiPort.h"
34 void* port_buffer, uint32_t event_index);
43 jack_nframes_t time,
size_t data_size);
46 jack_nframes_t time,
const jack_midi_data_t* data,
size_t data_size);
60 if (!buf || !buf->IsValid()) {
63 return buf->event_count;
70 if (!buf || !buf->IsValid()) {
73 if (event_index >= buf->event_count) {
77 event->time = ev->time;
78 event->size = ev->size;
79 event->buffer = ev->GetData(buf);
87 if (buf && buf->IsValid()) {
88 buf->Reset(buf->nframes);
95 MidiBufferInit(port_buffer, BUFFER_SIZE_MAX, BUFFER_SIZE_MAX);
102 if (buf && buf->IsValid()) {
103 return buf->MaxEventSize();
113 jack_error(
"jack_midi_event_reserve: port buffer is set to NULL");
116 if (! buf->IsValid()) {
117 jack_error(
"jack_midi_event_reserve: port buffer is invalid");
120 if (time >= buf->nframes) {
121 jack_error(
"jack_midi_event_reserve: time parameter is out of range "
122 "(%lu >= %lu)", time, buf->nframes);
125 if (buf->event_count && (buf->events[buf->event_count - 1].time > time)) {
126 jack_error(
"jack_midi_event_reserve: time parameter is earlier than "
127 "last reserved event");
130 return buf->ReserveEvent(time, data_size);
135 jack_nframes_t time,
const jack_midi_data_t* data,
size_t data_size)
138 if (!buf || !buf->IsValid()) {
141 if (time >= buf->nframes || (buf->event_count && buf->events[buf->event_count - 1].time > time)) {
144 jack_midi_data_t* dest = buf->ReserveEvent(time, data_size);
148 memcpy(dest, data, data_size);
156 if (buf && buf->IsValid()) {
157 return buf->lost_events;
LIB_EXPORT void jack_midi_clear_buffer(void *port_buffer)
LIB_EXPORT void jack_midi_reset_buffer(void *port_buffer)
SERVER_EXPORT void jack_error(const char *fmt,...)
LIB_EXPORT jack_nframes_t jack_midi_get_lost_event_count(void *port_buffer)
LIB_EXPORT size_t jack_midi_max_event_size(void *port_buffer)
LIB_EXPORT uint32_t jack_midi_get_event_count(void *port_buffer)
LIB_EXPORT int jack_midi_event_get(jack_midi_event_t *event, void *port_buffer, uint32_t event_index)
LIB_EXPORT int jack_midi_event_write(void *port_buffer, jack_nframes_t time, const jack_midi_data_t *data, size_t data_size)
LIB_EXPORT jack_midi_data_t * jack_midi_event_reserve(void *port_buffer, jack_nframes_t time, size_t data_size)