Jack2 1.9.10
|
00001 /* 00002 Copyright (C) 2001 Paul Davis 00003 Copyright (C) 2004-2008 Grame 00004 00005 This program is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation; either version 2 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 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 // BufferSize can be changed 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 } // end of namespace 00079 00080 #endif