Mercurial > sdl-ios-xcode
annotate touchTest/Iphone Test/touchTestIPhone2/touchTestIPhone/include/SDL_timer.h @ 4683:15dfe42edbfd
Fixed gestureMulti. Disabled dollar gesture temporarily.
author | Jim Grandpre <jim.tla@gmail.com> |
---|---|
date | Wed, 04 Aug 2010 23:17:30 -0400 |
parents | 31607094315c |
children |
rev | line source |
---|---|
4677
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
1 /* |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
2 SDL - Simple DirectMedia Layer |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
3 Copyright (C) 1997-2010 Sam Lantinga |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
4 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
5 This library is free software; you can redistribute it and/or |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
7 License as published by the Free Software Foundation; either |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
9 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
10 This library is distributed in the hope that it will be useful, |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
13 Lesser General Public License for more details. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
14 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
18 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
19 Sam Lantinga |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
20 slouken@libsdl.org |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
21 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
22 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
23 #ifndef _SDL_timer_h |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
24 #define _SDL_timer_h |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
25 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
26 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
27 * \file SDL_timer.h |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
28 * |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
29 * Header for the SDL time management routines. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
30 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
31 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
32 #include "SDL_stdinc.h" |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
33 #include "SDL_error.h" |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
34 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
35 #include "begin_code.h" |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
36 /* Set up for C function definitions, even when using C++ */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
37 #ifdef __cplusplus |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
38 /* *INDENT-OFF* */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
39 extern "C" { |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
40 /* *INDENT-ON* */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
41 #endif |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
42 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
43 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
44 * This is the OS scheduler timeslice, in milliseconds. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
45 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
46 #define SDL_TIMESLICE 10 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
47 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
48 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
49 * This is the maximum resolution of the SDL timer on all platforms. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
50 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
51 #define TIMER_RESOLUTION 10 /**< Experimentally determined */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
52 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
53 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
54 * Get the number of milliseconds since the SDL library initialization. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
55 * |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
56 * Note that this value wraps if the program runs for more than ~49 days. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
57 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
58 extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void); |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
59 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
60 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
61 * Wait a specified number of milliseconds before returning. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
62 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
63 extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms); |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
64 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
65 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
66 * Function prototype for the timer callback function. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
67 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
68 typedef Uint32(SDLCALL * SDL_TimerCallback) (Uint32 interval); |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
69 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
70 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
71 * Set a callback to run after the specified number of milliseconds has |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
72 * elapsed. The callback function is passed the current timer interval |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
73 * and returns the next timer interval. If the returned value is the |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
74 * same as the one passed in, the periodic alarm continues, otherwise a |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
75 * new alarm is scheduled. If the callback returns 0, the periodic alarm |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
76 * is cancelled. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
77 * |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
78 * To cancel a currently running timer, call |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
79 * \code SDL_SetTimer(0, NULL); \endcode |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
80 * |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
81 * The timer callback function may run in a different thread than your |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
82 * main code, and so shouldn't call any functions from within itself. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
83 * |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
84 * The maximum resolution of this timer is 10 ms, which means that if |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
85 * you request a 16 ms timer, your callback will run approximately 20 ms |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
86 * later on an unloaded system. If you wanted to set a flag signaling |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
87 * a frame update at 30 frames per second (every 33 ms), you might set a |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
88 * timer for 30 ms: |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
89 * \code |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
90 * SDL_SetTimer((33/10)*10, flag_update); |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
91 * \endcode |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
92 * |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
93 * If you use this function, you need to pass ::SDL_INIT_TIMER to SDL_Init(). |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
94 * |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
95 * Under UNIX, you should not use raise or use SIGALRM and this function |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
96 * in the same program, as it is implemented using setitimer(). You also |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
97 * should not use this function in multi-threaded applications as signals |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
98 * to multi-threaded apps have undefined behavior in some implementations. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
99 * |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
100 * \return 0 if successful, or -1 if there was an error. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
101 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
102 extern DECLSPEC int SDLCALL SDL_SetTimer(Uint32 interval, |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
103 SDL_TimerCallback callback); |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
104 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
105 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
106 * \name Peter timers |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
107 * New timer API, supports multiple timers |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
108 * Written by Stephane Peter <megastep@lokigames.com> |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
109 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
110 /*@{*/ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
111 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
112 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
113 * Function prototype for the new timer callback function. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
114 * |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
115 * The callback function is passed the current timer interval and returns |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
116 * the next timer interval. If the returned value is the same as the one |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
117 * passed in, the periodic alarm continues, otherwise a new alarm is |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
118 * scheduled. If the callback returns 0, the periodic alarm is cancelled. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
119 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
120 typedef Uint32(SDLCALL * SDL_NewTimerCallback) (Uint32 interval, void *param); |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
121 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
122 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
123 * Definition of the timer ID type. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
124 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
125 typedef struct _SDL_TimerID *SDL_TimerID; |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
126 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
127 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
128 * Add a new timer to the pool of timers already running. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
129 * \return A timer ID, or NULL when an error occurs. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
130 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
131 extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval, |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
132 SDL_NewTimerCallback |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
133 callback, void *param); |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
134 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
135 /** |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
136 * Remove one of the multiple timers knowing its ID. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
137 * \return A boolean value indicating success or failure. |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
138 */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
139 extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID t); |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
140 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
141 /*@}*//*Peter timers*/ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
142 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
143 /* Ends C function definitions when using C++ */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
144 #ifdef __cplusplus |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
145 /* *INDENT-OFF* */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
146 } |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
147 /* *INDENT-ON* */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
148 #endif |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
149 #include "close_code.h" |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
150 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
151 #endif /* _SDL_timer_h */ |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
152 |
31607094315c
Added Iphone project. Iphone multi-touch is now functional.
jimtla
parents:
diff
changeset
|
153 /* vi: set ts=4 sw=4 expandtab: */ |