2 * Copyright (C) 2009 Sony Computer Entertainment Inc.
3 * Copyright 2009 Sony Corp.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #if defined(HAVE_CONFIG_H)
31 * ui_timer_init - Initialize the timer for use.
32 * @seconds: The final timeout value in seconds.
35 void ui_timer_init(struct waitset *waitset, struct ui_timer *timer,
38 pb_log("%s: %u\n", __func__, seconds);
39 timer->timeout = seconds;
40 timer->waitset = waitset;
44 * ui_timer_kick - Kickstart the next timer interval.
47 static int timer_cb(void *arg)
49 struct ui_timer *timer = arg;
51 timer->handle_timeout(timer);
56 void ui_timer_kick(struct ui_timer *timer)
58 if (timer->update_display)
59 timer->update_display(timer, timer->timeout);
62 waiter_remove(timer->waiter);
64 timer->waiter = waiter_register_timeout(timer->waitset,
65 timer->timeout * 1000, timer_cb, timer);
69 * ui_timer_disable - Stop and disable the timer.
72 void ui_timer_disable(struct ui_timer *timer)
77 pb_log("%s\n", __func__);
78 waiter_remove(timer->waiter);