23 #include "JackALSARawMidiInputPort.h"    24 #include "JackMidiUtil.h"    25 #include "JackError.h"    29 JackALSARawMidiInputPort::JackALSARawMidiInputPort(snd_rawmidi_info_t *info,
    33     JackALSARawMidiPort(info, index, POLLIN)
    37     receive_queue = 
new JackALSARawMidiReceiveQueue(rawmidi, max_bytes);
    38     std::auto_ptr<JackALSARawMidiReceiveQueue> receive_ptr(receive_queue);
    39     thread_queue = 
new JackMidiAsyncQueue(max_bytes, max_messages);
    40     std::auto_ptr<JackMidiAsyncQueue> thread_ptr(thread_queue);
    41     write_queue = 
new JackMidiBufferWriteQueue();
    42     std::auto_ptr<JackMidiBufferWriteQueue> write_ptr(write_queue);
    43     raw_queue = 
new JackMidiRawInputWriteQueue(thread_queue, max_bytes,
    47     receive_ptr.release();
    50 JackALSARawMidiInputPort::~JackALSARawMidiInputPort()
    59 JackALSARawMidiInputPort::ProcessJack(JackMidiBuffer *port_buffer,
    60                                       jack_nframes_t frames)
    63     bool dequeued = 
false;
    69         case JackMidiWriteQueue::BUFFER_TOO_SMALL:
    70             jack_error(
"JackALSARawMidiInputPort::ProcessJack - The write "    71                        "queue couldn't enqueue a %d-byte event.  Dropping "    72                        "event.", jack_event->
size);
    74         case JackMidiWriteQueue::OK:
    77             goto trigger_queue_event;
    87     return dequeued ? TriggerQueueEvent() : true;
    91 JackALSARawMidiInputPort::ProcessPollEvents(jack_nframes_t current_frame)
    93     if (GetQueuePollEvent() == -1) {
    96     int io_event = GetIOPollEvent();
   104         size_t size = alsa_event->
size;
   106         bool enough_room = space >= size;
   110                    JackMidiWriteQueue::OK);
   115                    JackMidiWriteQueue::OK);
   116             alsa_event->
buffer += space;
   117             alsa_event->
size -= space;
   119         SetIOEventsEnabled(enough_room);
 
jack_midi_data_t * buffer
jack_midi_event_t * DequeueEvent()
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)
virtual jack_midi_event_t * DequeueEvent()