00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __JackMidiWriteQueue__
00021 #define __JackMidiWriteQueue__
00022
00023 #include "JackMidiPort.h"
00024
00025 namespace Jack {
00026
00032 class SERVER_EXPORT JackMidiWriteQueue {
00033
00034 public:
00035
00036 enum EnqueueResult {
00037 BUFFER_FULL,
00038 BUFFER_TOO_SMALL,
00039 EVENT_EARLY,
00040 EN_ERROR,
00041 OK
00042 };
00043
00044 virtual ~JackMidiWriteQueue();
00045
00061 virtual EnqueueResult
00062 EnqueueEvent(jack_nframes_t time, size_t size,
00063 jack_midi_data_t *buffer) = 0;
00064
00071 inline EnqueueResult
00072 EnqueueEvent(jack_midi_event_t *event, jack_nframes_t frame_offset=0)
00073 {
00074 return EnqueueEvent(event->time + frame_offset, event->size,
00075 event->buffer);
00076 }
00077
00078 };
00079
00080 }
00081
00082 #endif