]> Dogcows Code - chaz/openbox/blob - openbox/timer.h
merge the C branch into HEAD
[chaz/openbox] / openbox / timer.h
1 #ifndef __timer_h
2 #define __timer_h
3
4 #include <glib.h>
5
6 /*! Data type of Timer callback */
7 typedef void (*TimeoutHandler)(void *data);
8
9 typedef struct Timer {
10 /*! Milliseconds between timer firings */
11 long delay;
12 /*! Callback for timer expiry */
13 TimeoutHandler action;
14 /*! Data sent to callback */
15 void *data;
16 /*! We overload the delete operator to just set this to true */
17 gboolean del_me;
18 /*! The time the last fire should've been at */
19 GTimeVal last;
20 /*! When this timer will next trigger */
21 GTimeVal timeout;
22 } Timer;
23
24 /*! Initializes the timer subsection */
25 void timer_startup();
26 /*! Destroys the timer subsection */
27 void timer_shutdown();
28
29 /* Creates a new timer with a given delay */
30 Timer *timer_start(long delay, TimeoutHandler cb, void *data);
31 /* Stops and frees a timer */
32 void timer_stop(Timer *self);
33
34 /*! Dispatch all pending timers. Sets wait to the amount of time to wait for
35 the next timer, or NULL if there are no timers to wait for */
36 void timer_dispatch(GTimeVal **wait);
37
38 #endif
This page took 0.035937 seconds and 4 git commands to generate.