src/Timer.hh
author nireco
Sun, 07 Dec 2008 18:23:18 +0000
changeset 248 e40ef56dc62c
parent 205 905028e58ed1
child 283 7540b0859579
permissions -rw-r--r--
scrolling looks like it works
205
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
     1
#ifndef TIMER_HH
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
     2
#define TIMER_HH
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
     3
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
     4
#include <ClanLib/core.h>
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
     5
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
     6
typedef unsigned long TimeMS;
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
     7
typedef uint32_t TickCount;
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
     8
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
     9
class Timer : public CL_KeepAlive {
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    10
    protected:
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    11
        // the target tick interval
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    12
        TimeMS interval;
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    13
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    14
        // number of ticks
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    15
        TickCount ticks;
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    16
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    17
        bool enabled;
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    18
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    19
        // time of last tick
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    20
        TimeMS last_tick;
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    21
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    22
        CL_Signal_v1<TimeMS> _sig_tick;
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    23
        
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    24
    public:
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    25
        /*
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    26
         * Interval is in milliseconds
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    27
         */
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    28
        Timer (TimeMS interval);
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    29
        
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    30
        /*
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    31
         * Returns the tick counter
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    32
         */
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    33
        TickCount get_ticks (void);
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    34
        
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    35
        /*
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    36
         * Start the timer, this should be called once keepalive starts getting called
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    37
         */
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    38
        void start (void);
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    39
        
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    40
    private:
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    41
        void keep_alive (void);
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    42
    
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    43
    public:
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    44
        CL_Signal_v1<TimeMS>& sig_tick (void) { return _sig_tick; }
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    45
};
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    46
905028e58ed1 implement a new tick-timer that doesn't suck
terom
parents:
diff changeset
    47
#endif