- added object support (untested)
[supertux.git] / src / timer.h
1 //
2 // C Interface: timer
3 //
4 // Description: 
5 //
6 //
7 // Author: Tobias Glaesser <tobi.web@gmx.de>, (C) 2004
8 //
9 // Copyright: See COPYING file that comes with this distribution
10 //
11 //
12
13 #ifndef SUPERTUX_TIMER_H
14 #define SUPERTUX_TIMER_H
15
16 /* Timer type */
17 struct timer_type
18 {
19   unsigned int period;
20   unsigned int time;
21   unsigned int (*get_ticks) (void);  
22 };
23
24 extern unsigned int st_pause_ticks, st_pause_count;
25
26 unsigned int st_get_ticks(void);
27 void st_pause_ticks_init(void);
28 void st_pause_ticks_start(void);
29 void st_pause_ticks_stop(void);
30 void timer_init(timer_type* ptimer, bool st_ticks);
31 void timer_start(timer_type* ptimer, unsigned int period);
32 void timer_stop(timer_type* ptimer);
33 /*======================================================================
34      int timer_check(timer_type* ptimer);
35     
36      param : pointer to a timer which needs to be checked
37      return: NO  = the timer is not started
38                    or it is over
39              YES = otherwise
40 ======================================================================*/
41 int timer_check(timer_type* ptimer);
42 int timer_started(timer_type* ptimer);
43 /*======================================================================
44      int timer_get_left(timer_type* ptimer);
45
46      param : pointer to a timer that you want to get the time left
47      return: the time left (in millisecond)
48      note  : the returned value can be negative
49 ======================================================================*/
50 int timer_get_left(timer_type* ptimer);
51 int timer_get_gone(timer_type* ptimer);
52 void timer_fwrite(timer_type* ptimer, FILE* fi);
53 void timer_fread(timer_type* ptimer, FILE* fi);
54
55 #endif /*SUPERTUX_TIMER_H*/
56