20 #include "JackMidiBufferWriteQueue.h"
21 #include "JackMidiUtil.h"
22 #include "JackError.h"
26 JackMidiBufferWriteQueue::JackMidiBufferWriteQueue()
31 Jack::JackMidiWriteQueue::EnqueueResult
33 jack_midi_data_t *data)
35 if (time >= next_frame_time) {
38 if (time < last_frame_time) {
39 time = last_frame_time;
41 jack_midi_data_t *dst = buffer->ReserveEvent(time - last_frame_time, size);
43 return size > max_bytes ? BUFFER_TOO_SMALL : BUFFER_FULL;
45 memcpy(dst, data, size);
51 jack_nframes_t frames)
54 jack_error(
"JackMidiBufferWriteQueue::ResetMidiBuffer - buffer reset "
56 }
else if (! buffer->IsValid()) {
57 jack_error(
"JackMidiBufferWriteQueue::ResetMidiBuffer - buffer reset "
60 this->buffer = buffer;
61 buffer->Reset(frames);
62 last_frame_time = GetLastFrame();
63 max_bytes = buffer->MaxEventSize();
64 next_frame_time = last_frame_time + frames;
EnqueueResult EnqueueEvent(jack_nframes_t time, size_t size, jack_midi_data_t *buffer)
SERVER_EXPORT void jack_error(const char *fmt,...)
void ResetMidiBuffer(JackMidiBuffer *buffer, jack_nframes_t frames)