#ifndef TIMER_HH
#define TIMER_HH
#include <ClanLib/core.h>
typedef unsigned long TimeMS;
typedef uint32_t TickCount;
class Timer : public CL_KeepAlive {
protected:
// the target tick interval
TimeMS interval;
// number of ticks
TickCount ticks;
bool enabled;
// time of last tick
TimeMS last_tick;
CL_Signal_v1<TimeMS> _sig_tick;
public:
/*
* Interval is in milliseconds
*/
Timer (TimeMS interval);
/*
* Returns the tick counter
*/
TickCount get_ticks (void);
/*
* Start the timer, this should be called once keepalive starts getting called
*/
void start (void);
private:
void keep_alive (void);
public:
CL_Signal_v1<TimeMS>& sig_tick (void) { return _sig_tick; }
};
#endif