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();
112 jack_error(
"jack_midi_event_reserve: port buffer is set to NULL");
115 if (! buf->IsValid()) {
116 jack_error(
"jack_midi_event_reserve: port buffer is invalid");
119 if (time >= buf->nframes) {
120 jack_error(
"jack_midi_event_reserve: time parameter is out of range " 121 "(%lu >= %lu)", time, buf->nframes);
124 if (buf->event_count && (buf->events[buf->event_count - 1].time > time)) {
125 jack_error(
"jack_midi_event_reserve: time parameter is earlier than " 126 "last reserved event");
129 return buf->ReserveEvent(time, data_size);
134 jack_nframes_t time,
const jack_midi_data_t* data,
size_t data_size)
137 if (!buf && !buf->IsValid()) {
140 if (time >= buf->nframes || (buf->event_count && buf->events[buf->event_count - 1].time > time)) {
143 jack_midi_data_t* dest = buf->ReserveEvent(time, data_size);
147 memcpy(dest, data, data_size);
155 if (buf && buf->IsValid())
156 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)