22 #include "JackFFADOMidiOutputPort.h"    23 #include "JackMidiUtil.h"    24 #include "JackError.h"    28 JackFFADOMidiOutputPort::JackFFADOMidiOutputPort(
size_t non_rt_size,
    29                                                  size_t max_non_rt_messages,
    30                                                  size_t max_rt_messages)
    33     read_queue = 
new JackMidiBufferReadQueue();
    34     std::auto_ptr<JackMidiBufferReadQueue> read_queue_ptr(read_queue);
    35     send_queue = 
new JackFFADOMidiSendQueue();
    36     std::auto_ptr<JackFFADOMidiSendQueue> send_queue_ptr(send_queue);
    37     raw_queue = 
new JackMidiRawOutputWriteQueue(send_queue, non_rt_size,
    40     send_queue_ptr.release();
    41     read_queue_ptr.release();
    44 JackFFADOMidiOutputPort::~JackFFADOMidiOutputPort()
    52 JackFFADOMidiOutputPort::Process(JackMidiBuffer *port_buffer,
    53                                  uint32_t *output_buffer,
    54                                  jack_nframes_t frames)
    57     send_queue->ResetOutputBuffer(output_buffer, frames);
    58     jack_nframes_t boundary_frame = GetLastFrame() + frames;
    64         case JackMidiWriteQueue::BUFFER_FULL:
    69             raw_queue->
Process(boundary_frame);
    71             case JackMidiWriteQueue::BUFFER_TOO_SMALL:
    74                 jack_error(
"JackFFADOMidiOutputPort::Process - **BUG** "    75                            "JackMidiRawOutputWriteQueue::EnqueueEvent "    76                            "returned `BUFFER_FULL`, and then returned "    77                            "`BUFFER_TOO_SMALL` after a `Process()` call.");
    79             case JackMidiWriteQueue::OK:
    84         case JackMidiWriteQueue::BUFFER_TOO_SMALL:
    85             jack_error(
"JackFFADOMidiOutputPort::Process - The write queue "    86                        "couldn't enqueue a %d-byte event. Dropping event.",
    89         case JackMidiWriteQueue::OK:
    98     raw_queue->
Process(boundary_frame);
 jack_midi_event_t * DequeueEvent()
void ResetMidiBuffer(JackMidiBuffer *buffer)
SERVER_EXPORT void jack_error(const char *fmt,...)
EnqueueResult EnqueueEvent(jack_nframes_t time, size_t size, jack_midi_data_t *buffer)
jack_nframes_t Process(jack_nframes_t boundary_frame=0)