00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "JackFFADOMidiReceiveQueue.h"
00021 #include "JackMidiUtil.h"
00022
00023 using Jack::JackFFADOMidiReceiveQueue;
00024
00025 JackFFADOMidiReceiveQueue::JackFFADOMidiReceiveQueue()
00026 {
00027
00028 }
00029
00030 jack_midi_event_t *
00031 JackFFADOMidiReceiveQueue::DequeueEvent()
00032 {
00033 for (; index < length; index += 8) {
00034 uint32_t data = input_buffer[index];
00035 if (data & 0xff000000) {
00036 byte = (jack_midi_data_t) (data & 0xff);
00037 event.buffer = &byte;
00038 event.size = 1;
00039 event.time = last_frame + index;
00040 index += 8;
00041 return &event;
00042 }
00043 }
00044 return 0;
00045 }
00046
00047 void
00048 JackFFADOMidiReceiveQueue::ResetInputBuffer(uint32_t *input_buffer,
00049 jack_nframes_t length)
00050 {
00051 this->input_buffer = input_buffer;
00052 index = 0;
00053 last_frame = GetLastFrame();
00054 this->length = length;
00055 }