Main Page   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

gapeaudiodriver.cpp

00001 #include "gapeaudiodriver.h"
00002 
00003 class GapeHelperThread : public QThread {
00004     public:
00005 
00006         GapeHelperThread(GapeUnit* u)
00007         : stopped(false),
00008         paused(false) {
00009             unit = u;
00010         }
00011 
00012         ~GapeHelperThread() {
00013             stop();
00014         }
00015 
00016         void pause() {
00017             paused = true;
00018         }
00019 
00020         void unPause(){
00021             paused = false;
00022             wait.wakeOne();
00023         }
00024 
00025         bool isPaused() {
00026             return paused;
00027         }
00028 
00029     protected:
00030         void run() {
00031             while (true) {
00032                 if (paused) wait.wait();
00033                 if (stopped) break;
00034                 unit->receiveTick(NULL,0);
00035             }
00036         }
00037 
00038     private:
00039         void stop() {
00040             stopped = true;
00041             wait.wakeAll();
00042         }
00043 
00044         bool stopped, paused;
00045         GapeUnit* unit;
00046         QWaitCondition wait;
00047 };
00048 
00049 
00050 GapeAudioDriver::GapeAudioDriver()
00051 : GapeUnit(NULL) {
00052     thread = new GapeHelperThread(this);
00053 }
00054 
00055 GapeAudioDriver::~GapeAudioDriver() {
00056     delete thread;
00057 }
00058 
00059 void GapeAudioDriver::start() {
00060     thread->start();
00061     //thread.wait();
00062 }
00063 
00064 void GapeAudioDriver::pause() {
00065     thread->pause();
00066 }
00067 
00068 void GapeAudioDriver::unPause(){
00069     thread->unPause();
00070 }
00071 
00072 bool GapeAudioDriver::isPaused() {
00073     return thread->isPaused();
00074 }

Generated at Thu Jun 21 13:28:49 2001 for GAPE by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001