00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __JackMidiDriver__
00021 #define __JackMidiDriver__
00022
00023 #include "JackDriver.h"
00024 #include "JackMidiPort.h"
00025 #include "JackLockedEngine.h"
00026 #include "ringbuffer.h"
00027
00028 namespace Jack
00029 {
00030
00035 class SERVER_EXPORT JackMidiDriver : public JackDriver
00036 {
00037
00038 protected:
00039
00040 JackMidiBuffer* GetInputBuffer(int port_index);
00041 JackMidiBuffer* GetOutputBuffer(int port_index);
00042
00043 virtual int ProcessReadSync();
00044 virtual int ProcessWriteSync();
00045
00046 virtual int ProcessReadAsync();
00047 virtual int ProcessWriteAsync();
00048
00049 virtual void UpdateLatencies();
00050
00051 public:
00052
00053 JackMidiDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table);
00054 virtual ~JackMidiDriver();
00055
00056 virtual int Open(bool capturing,
00057 bool playing,
00058 int inchannels,
00059 int outchannels,
00060 bool monitor,
00061 const char* capture_driver_name,
00062 const char* playback_driver_name,
00063 jack_nframes_t capture_latency,
00064 jack_nframes_t playback_latency);
00065
00066 virtual int SetBufferSize(jack_nframes_t buffer_size);
00067
00068 virtual int Attach();
00069 virtual int Detach();
00070
00071 };
00072
00073 }
00074
00075 #endif