21 #include "JackError.h"
22 #include "JackMidiPort.h"
34 void* port_buffer, uint32_t event_index);
41 jack_nframes_t time,
size_t data_size);
44 jack_nframes_t time,
const jack_midi_data_t* data,
size_t data_size);
58 if (!buf || !buf->IsValid()) {
61 return buf->event_count;
68 if (!buf || !buf->IsValid()) {
71 if (event_index >= buf->event_count) {
75 event->time = ev->time;
76 event->size = ev->size;
77 event->buffer = ev->GetData(buf);
85 if (buf && buf->IsValid()) {
86 buf->Reset(buf->nframes);
94 if (buf && buf->IsValid())
95 return buf->MaxEventSize();
104 jack_error(
"jack_midi_event_reserve: port buffer is set to NULL");
107 if (! buf->IsValid()) {
108 jack_error(
"jack_midi_event_reserve: port buffer is invalid");
111 if (time >= buf->nframes) {
112 jack_error(
"jack_midi_event_reserve: time parameter is out of range "
113 "(%lu >= %lu)", time, buf->nframes);
116 if (buf->event_count && (buf->events[buf->event_count - 1].time > time)) {
117 jack_error(
"jack_midi_event_reserve: time parameter is earlier than "
118 "last reserved event");
121 return buf->ReserveEvent(time, data_size);
126 jack_nframes_t time,
const jack_midi_data_t* data,
size_t data_size)
129 if (!buf && !buf->IsValid()) {
132 if (time >= buf->nframes || (buf->event_count && buf->events[buf->event_count - 1].time > time)) {
135 jack_midi_data_t* dest = buf->ReserveEvent(time, data_size);
139 memcpy(dest, data, data_size);
147 if (buf && buf->IsValid())
148 return buf->lost_events;
LIB_EXPORT void jack_midi_clear_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)