22 #include "JackFFADOMidiInputPort.h"    23 #include "JackMidiUtil.h"    24 #include "JackError.h"    28 JackFFADOMidiInputPort::JackFFADOMidiInputPort(
size_t max_bytes)
    31     receive_queue = 
new JackFFADOMidiReceiveQueue();
    32     std::auto_ptr<JackFFADOMidiReceiveQueue> receive_queue_ptr(receive_queue);
    33     write_queue = 
new JackMidiBufferWriteQueue();
    34     std::auto_ptr<JackMidiBufferWriteQueue> write_queue_ptr(write_queue);
    35     raw_queue = 
new JackMidiRawInputWriteQueue(write_queue, max_bytes,
    37     write_queue_ptr.release();
    38     receive_queue_ptr.release();
    41 JackFFADOMidiInputPort::~JackFFADOMidiInputPort()
    49 JackFFADOMidiInputPort::Process(JackMidiBuffer *port_buffer,
    50                                 uint32_t *input_buffer, jack_nframes_t frames)
    52     receive_queue->ResetInputBuffer(input_buffer, frames);
    54     jack_nframes_t boundary_frame = GetLastFrame() + frames;
    60         case JackMidiWriteQueue::BUFFER_FULL:
    65             raw_queue->
Process(boundary_frame);
    67             case JackMidiWriteQueue::BUFFER_TOO_SMALL:
    70                 jack_error(
"JackFFADOMidiInputPort::Process - **BUG** "    71                            "JackMidiRawInputWriteQueue::EnqueueEvent returned "    72                            "`BUFFER_FULL`, and then returned "    73                            "`BUFFER_TOO_SMALL` after a `Process()` call.");
    75             case JackMidiWriteQueue::OK:
    80         case JackMidiWriteQueue::BUFFER_TOO_SMALL:
    81             jack_error(
"JackFFADOMidiInputPort::Process - The write queue "    82                        "couldn't enqueue a %d-byte event.  Dropping event.",
    85         case JackMidiWriteQueue::OK:
    94     raw_queue->
Process(boundary_frame);
 
SERVER_EXPORT void jack_error(const char *fmt,...)
void ResetMidiBuffer(JackMidiBuffer *buffer, jack_nframes_t frames)
jack_midi_event_t * DequeueEvent()