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;