/** * @brief Release the timer. It no more exists */ void UI_TimerRelease (uiTimer_t *timer) { UI_RemoveTimerFromActiveList(timer); timer->prev = nullptr; timer->next = nullptr; timer->owner = nullptr; timer->callback = nullptr; }
/** * @brief Release the timer. It no more exists */ void UI_TimerRelease (uiTimer_t *timer) { UI_RemoveTimerFromActiveList(timer); timer->prev = NULL; timer->next = NULL; timer->owner = NULL; timer->callback = NULL; }
/** * @brief Stop a timer */ void UI_TimerStop (uiTimer_t *timer) { if (!timer->isRunning) return; UI_RemoveTimerFromActiveList(timer); timer->prev = nullptr; timer->next = nullptr; timer->isRunning = false; }
/** * @brief Internal function to handle timers */ void UI_HandleTimers (void) { /* is first element is out of date? */ while (ui_firstTimer && ui_firstTimer->nextTime <= CL_Milliseconds()) { uiTimer_t *timer = ui_firstTimer; /* throw event */ timer->calledTime++; timer->callback(timer->owner, timer); /* update the sorted list */ if (timer->isRunning) { UI_RemoveTimerFromActiveList(timer); timer->nextTime += timer->delay; UI_InsertTimerInActiveList(timer->next, timer); } } }