00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __JackTimedDriver__
00022 #define __JackTimedDriver__
00023
00024 #include "JackAudioDriver.h"
00025
00026 namespace Jack
00027 {
00028
00033 class SERVER_EXPORT JackTimedDriver : public JackAudioDriver
00034 {
00035 protected:
00036
00037 int fCycleCount;
00038 jack_time_t fAnchorTimeUsec;
00039
00040 int FirstCycle(jack_time_t cur_time);
00041 int CurrentCycle(jack_time_t cur_time);
00042
00043 void ProcessWait();
00044
00045 public:
00046
00047 JackTimedDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table)
00048 : JackAudioDriver(name, alias, engine, table), fCycleCount(0), fAnchorTimeUsec(0)
00049 {}
00050 virtual ~JackTimedDriver()
00051 {}
00052
00053
00054 bool IsFixedBufferSize()
00055 {
00056 return false;
00057 }
00058
00059 int Start();
00060
00061 };
00062
00063 class SERVER_EXPORT JackWaiterDriver : public JackTimedDriver
00064 {
00065
00066 public:
00067
00068 JackWaiterDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table)
00069 : JackTimedDriver(name, alias, engine, table)
00070 {}
00071 virtual ~JackWaiterDriver()
00072 {}
00073
00074 virtual int ProcessNull();
00075
00076 };
00077
00078 }
00079
00080 #endif