00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00027 #ifndef PED_TIMER_H_INCLUDED
00028 #define PED_TIMER_H_INCLUDED
00029
00030 #include <time.h>
00031
00032 typedef struct _PedTimer PedTimer;
00033
00034 typedef void PedTimerHandler (PedTimer* timer, void* context);
00035
00036
00037
00038
00039 struct _PedTimer {
00040 float frac;
00041 time_t start;
00042 time_t now;
00043 time_t predicted_end;
00044 const char* state_name;
00045 PedTimerHandler* handler;
00046 void* context;
00047 };
00048
00049 extern PedTimer* ped_timer_new (PedTimerHandler* handler, void* context);
00050 extern void ped_timer_destroy (PedTimer* timer);
00051
00052
00053
00054
00055 extern PedTimer* ped_timer_new_nested (PedTimer* parent, float nest_frac);
00056 extern void ped_timer_destroy_nested (PedTimer* timer);
00057
00058 extern void ped_timer_touch (PedTimer* timer);
00059 extern void ped_timer_reset (PedTimer* timer);
00060 extern void ped_timer_update (PedTimer* timer, float new_frac);
00061 extern void ped_timer_set_state_name (PedTimer* timer, const char* state_name);
00062
00063 #endif
00064
00065