20 #include "JackMidiBufferWriteQueue.h"
21 #include "JackMidiUtil.h"
25 JackMidiBufferWriteQueue::JackMidiBufferWriteQueue()
30 Jack::JackMidiWriteQueue::EnqueueResult
32 jack_midi_data_t *data)
34 if (time >= next_frame_time) {
37 if (time < last_frame_time) {
38 time = last_frame_time;
40 jack_midi_data_t *dst = buffer->ReserveEvent(time - last_frame_time, size);
42 return size > max_bytes ? BUFFER_TOO_SMALL : BUFFER_FULL;
44 memcpy(dst, data, size);
50 jack_nframes_t frames)
53 jack_error(
"JackMidiBufferWriteQueue::ResetMidiBuffer - buffer reset "
55 }
else if (! buffer->IsValid()) {
56 jack_error(
"JackMidiBufferWriteQueue::ResetMidiBuffer - buffer reset "
59 this->buffer = buffer;
60 buffer->Reset(frames);
61 last_frame_time = GetLastFrame();
62 max_bytes = buffer->MaxEventSize();
63 next_frame_time = last_frame_time + frames;