25 #include "../cl_shared.h"
32 #define UI_TIMER_SLOT_NUMBER 10
55 ui_firstTimer = timer->
next;
72 if (current !=
nullptr) {
79 current = current->
next;
83 newTimer->
prev = prev;
84 newTimer->
next = current;
85 if (current !=
nullptr) {
86 current->
prev = newTimer;
88 if (prev !=
nullptr) {
89 prev->
next = newTimer;
91 ui_firstTimer = newTimer;
129 if (ui_timerSlots[
i].callback !=
nullptr)
131 timer = ui_timerSlots +
i;
134 if (timer ==
nullptr)
138 timer->
delay = firstDelay;
141 timer->
prev =
nullptr;
142 timer->
next =
nullptr;
154 assert(ui_firstTimer != timer && timer->
prev ==
nullptr && timer->
next ==
nullptr);
168 timer->
prev =
nullptr;
169 timer->
next =
nullptr;
179 timer->
prev =
nullptr;
180 timer->
next =
nullptr;
181 timer->
owner =
nullptr;
188 ui_firstTimer =
nullptr;
191 #ifdef COMPILE_UNITTESTS
197 const uiTimer_t* UI_PrivateGetFirstTimer (
void)
static uiTimer_t ui_timerSlots[UI_TIMER_SLOT_NUMBER]
Timer slot. Only one.
static void UI_InsertTimerInActiveList(uiTimer_t *first, uiTimer_t *newTimer)
Insert a timer in a sorted linked list of timers. List are ordered from smaller to bigger nextTime va...
uiTimer_t * UI_AllocTimer(uiNode_t *node, int firstDelay, timerCallback_t callback)
Allocate a new time for a node.
void Com_Error(int code, const char *fmt,...)
static void UI_RemoveTimerFromActiveList(uiTimer_t *timer)
Remove a timer from the active linked list.
void UI_HandleTimers(void)
Internal function to handle timers.
void UI_TimerRelease(uiTimer_t *timer)
Release the timer. It no more exists.
void UI_TimerStop(uiTimer_t *timer)
Stop a timer.
Atomic structure used to define most of the UI.
void(* timerCallback_t)(uiNode_t *node, struct uiTimer_s *timer)
void UI_ResetTimers(void)
static uiTimer_t * ui_firstTimer
First timer from the timer list. This list is ordered from smaller to bigger nextTime value...
#define UI_TIMER_SLOT_NUMBER
Number max of timer slot.
void UI_TimerStart(uiTimer_t *timer)
Restart a timer.
int CL_Milliseconds(void)