Go to the documentation of this file.00001 #ifndef QRK_CYCLE_TIMER_H
00002 #define QRK_CYCLE_TIMER_H
00003
00013 #include <memory>
00014 #include <cstdio>
00015
00016
00017 namespace qrk
00018 {
00020 class CycleTimer
00021 {
00022 public:
00023 enum {
00024 DefaultFps = 60,
00025 };
00026
00027 CycleTimer(void);
00028 ~CycleTimer(void);
00029
00030
00044 size_t waitMsec(void);
00045
00046
00052 void reset(void);
00053
00054
00060 void setStrictCycle(bool on);
00061
00062
00070 void setCycleFps(size_t fps);
00071
00072
00078 size_t cycleFps(void) const;
00079
00080
00088 void setCycleMsec(size_t delay_msec);
00089
00090
00096 size_t cycleMsec(void) const;
00097
00098
00104 int toNextCycleMsec(void);
00105
00106 private:
00107 CycleTimer(const CycleTimer& rhs);
00108 CycleTimer& operator = (const CycleTimer& rhs);
00109
00110 struct pImpl;
00111 std::auto_ptr<pImpl> pimpl;
00112 };
00113 }
00114
00115 #endif