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: */