Mercurial > sdl-ios-xcode
comparison src/timer/dc/SDL_systimer.c @ 1895:c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 10 Jul 2006 21:04:37 +0000 |
parents | 92947e3a18db |
children | 99210400e8b9 |
comparison
equal
deleted
inserted
replaced
1894:c69cee13dd76 | 1895:c121d94672cb |
---|---|
34 /* | 34 /* |
35 jif = ms * HZ /1000 | 35 jif = ms * HZ /1000 |
36 ms = jif * 1000/HZ | 36 ms = jif * 1000/HZ |
37 */ | 37 */ |
38 | 38 |
39 void SDL_StartTicks(void) | 39 void |
40 SDL_StartTicks(void) | |
40 { | 41 { |
41 /* Set first ticks value */ | 42 /* Set first ticks value */ |
42 start = jiffies; | 43 start = jiffies; |
43 } | 44 } |
44 | 45 |
45 Uint32 SDL_GetTicks(void) | 46 Uint32 |
47 SDL_GetTicks(void) | |
46 { | 48 { |
47 return((jiffies-start)*1000/HZ); | 49 return ((jiffies - start) * 1000 / HZ); |
48 } | 50 } |
49 | 51 |
50 void SDL_Delay(Uint32 ms) | 52 void |
53 SDL_Delay(Uint32 ms) | |
51 { | 54 { |
52 thd_sleep(ms); | 55 thd_sleep(ms); |
53 } | 56 } |
54 | 57 |
55 /* Data to handle a single periodic alarm */ | 58 /* Data to handle a single periodic alarm */ |
56 static int timer_alive = 0; | 59 static int timer_alive = 0; |
57 static SDL_Thread *timer = NULL; | 60 static SDL_Thread *timer = NULL; |
58 | 61 |
59 static int RunTimer(void *unused) | 62 static int |
63 RunTimer(void *unused) | |
60 { | 64 { |
61 while ( timer_alive ) { | 65 while (timer_alive) { |
62 if ( SDL_timer_running ) { | 66 if (SDL_timer_running) { |
63 SDL_ThreadedTimerCheck(); | 67 SDL_ThreadedTimerCheck(); |
64 } | 68 } |
65 SDL_Delay(10); | 69 SDL_Delay(10); |
66 } | 70 } |
67 return(0); | 71 return (0); |
68 } | 72 } |
69 | 73 |
70 /* This is only called if the event thread is not running */ | 74 /* This is only called if the event thread is not running */ |
71 int SDL_SYS_TimerInit(void) | 75 int |
76 SDL_SYS_TimerInit(void) | |
72 { | 77 { |
73 timer_alive = 1; | 78 timer_alive = 1; |
74 timer = SDL_CreateThread(RunTimer, NULL); | 79 timer = SDL_CreateThread(RunTimer, NULL); |
75 if ( timer == NULL ) | 80 if (timer == NULL) |
76 return(-1); | 81 return (-1); |
77 return(SDL_SetTimerThreaded(1)); | 82 return (SDL_SetTimerThreaded(1)); |
78 } | 83 } |
79 | 84 |
80 void SDL_SYS_TimerQuit(void) | 85 void |
86 SDL_SYS_TimerQuit(void) | |
81 { | 87 { |
82 timer_alive = 0; | 88 timer_alive = 0; |
83 if ( timer ) { | 89 if (timer) { |
84 SDL_WaitThread(timer, NULL); | 90 SDL_WaitThread(timer, NULL); |
85 timer = NULL; | 91 timer = NULL; |
86 } | 92 } |
87 } | 93 } |
88 | 94 |
89 int SDL_SYS_StartTimer(void) | 95 int |
96 SDL_SYS_StartTimer(void) | |
90 { | 97 { |
91 SDL_SetError("Internal logic error: DC uses threaded timer"); | 98 SDL_SetError("Internal logic error: DC uses threaded timer"); |
92 return(-1); | 99 return (-1); |
93 } | 100 } |
94 | 101 |
95 void SDL_SYS_StopTimer(void) | 102 void |
103 SDL_SYS_StopTimer(void) | |
96 { | 104 { |
97 return; | 105 return; |
98 } | 106 } |
99 | 107 |
100 #endif /* SDL_TIMER_DC */ | 108 #endif /* SDL_TIMER_DC */ |
109 /* vi: set ts=4 sw=4 expandtab: */ |