00001
00002
00003 #ifndef _MYTH_SIGNALING_TIMER_H_
00004 #define _MYTH_SIGNALING_TIMER_H_
00005
00006 #include <stdint.h>
00007
00008 #include <QMutex>
00009
00010 #include "mythbaseexp.h"
00011 #include "mthread.h"
00012
00019 class MBASE_PUBLIC MythSignalingTimer : private QObject, private MThread
00020 {
00021 Q_OBJECT
00022
00023 public:
00024 MythSignalingTimer(QObject *parent, const char *slot);
00025 ~MythSignalingTimer();
00026
00027 virtual void stop(void);
00028 virtual void start(int msec);
00029
00030 virtual bool blockSignals(bool block)
00031 { return QObject::blockSignals(block); }
00032
00033 signals:
00034 void timeout(void);
00035
00036 private:
00037 virtual void run(void);
00038
00039 QMutex startStopLock;
00040 volatile bool dorun;
00041 volatile bool running;
00042 volatile uint64_t microsec;
00043 };
00044
00045 #endif // _MYTH_SIGNALING_TIMER_H_