00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __JackThreadedDriver__
00022 #define __JackThreadedDriver__
00023
00024 #include "JackDriver.h"
00025 #include "JackPlatformPlug.h"
00026
00027 namespace Jack
00028 {
00029
00034 class SERVER_EXPORT JackThreadedDriver : public JackDriverClientInterface, public JackRunnableInterface
00035 {
00036
00037 protected:
00038
00039 JackThread fThread;
00040 JackDriver* fDriver;
00041
00042 public:
00043
00044 JackThreadedDriver(JackDriver* driver);
00045 virtual ~JackThreadedDriver();
00046
00047 virtual int Open();
00048 virtual int Open(jack_nframes_t buffer_size,
00049 jack_nframes_t samplerate,
00050 bool capturing,
00051 bool playing,
00052 int inchannels,
00053 int outchannels,
00054 bool monitor,
00055 const char* capture_driver_name,
00056 const char* playback_driver_name,
00057 jack_nframes_t capture_latency,
00058 jack_nframes_t playback_latency);
00059 virtual int Close();
00060
00061 virtual int Process();
00062 virtual int ProcessNull();
00063
00064 virtual int Attach();
00065 virtual int Detach();
00066
00067 virtual int Read();
00068 virtual int Write();
00069
00070 virtual int Start();
00071 virtual int Stop();
00072
00073 virtual bool IsFixedBufferSize();
00074 virtual int SetBufferSize(jack_nframes_t buffer_size);
00075 virtual int SetSampleRate(jack_nframes_t sample_rate);
00076
00077 virtual void SetMaster(bool onoff);
00078 virtual bool GetMaster();
00079 virtual void AddSlave(JackDriverInterface* slave);
00080 virtual void RemoveSlave(JackDriverInterface* slave);
00081 virtual int ProcessSlaves();
00082
00083 virtual int ClientNotify(int refnum, const char* name, int notify, int sync, int value1, int value2);
00084 virtual JackClientControl* GetClientControl() const;
00085 virtual bool IsRealTime() const;
00086
00087
00088 virtual bool Execute();
00089 virtual bool Init();
00090
00091 };
00092
00093 }
00094
00095
00096 #endif