1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #ifndef TIZEN_TIMER_H
24 #define TIZEN_TIMER_H
25 
26 #include <FBase.h>
27 
28 #include "common/timer.h"
29 #include "common/list.h"
30 
31 using namespace Tizen::Base::Runtime;
32 
33 struct TimerSlot: public EventDrivenThread, public ITimerEventListener {
34 	TimerSlot(Common::TimerManager::TimerProc callback, uint32 interval, void *refCon);
35 	~TimerSlot();
36 
37 	bool OnStart(void);
38 	void OnStop(void);
39 	void OnTimerExpired(Timer &timer);
40 
41 	Timer *_timer;
42 	Common::TimerManager::TimerProc _callback;
43 	uint32 _interval;	// in microseconds
44 	void *_refCon;
45 };
46 
47 class TizenTimerManager : public Common::TimerManager {
48 public:
49 	TizenTimerManager();
50 	~TizenTimerManager();
51 
52 	bool installTimerProc(TimerProc proc, int32 interval, void *refCon, const Common::String &id);
53 	void removeTimerProc(TimerProc proc);
54 
55 private:
56 	Common::List<TimerSlot *> _timers;
57 };
58 
59 #endif
60