コード例 #1
0
ファイル: ui_timer.cpp プロジェクト: ibrahimmusba/ufoai
/**
 * @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;
}
コード例 #2
0
ファイル: ui_timer.c プロジェクト: chrisglass/ufoai
/**
 * @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;
}
コード例 #3
0
ファイル: ui_timer.cpp プロジェクト: ibrahimmusba/ufoai
/**
 * @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;
}
コード例 #4
0
ファイル: ui_timer.cpp プロジェクト: ibrahimmusba/ufoai
/**
 * @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);
		}
	}
}