Mercurial > sdl-ios-xcode
diff src/timer/amigaos/SDL_systimer.c @ 1662:782fd950bd46 SDL-1.3
Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid.
The code is now run through a consistent indent format:
indent -i4 -nut -nsc -br -ce
The headers are being converted to automatically generate doxygen documentation.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 28 May 2006 13:04:16 +0000 |
parents | 92947e3a18db |
children | 4da1ee79c9af |
line wrap: on
line diff
--- a/src/timer/amigaos/SDL_systimer.c Sun May 21 17:27:13 2006 +0000 +++ b/src/timer/amigaos/SDL_systimer.c Sun May 28 13:04:16 2006 +0000 @@ -59,145 +59,142 @@ #if !defined(__PPC__) || defined(STORMC4_WOS) || defined(MORPHOS) static clock_t start; -void SDL_StartTicks(void) +void +SDL_StartTicks (void) { - /* Set first ticks value */ - start=clock(); + /* Set first ticks value */ + start = clock (); } -Uint32 SDL_GetTicks (void) +Uint32 +SDL_GetTicks (void) { - clock_t ticks; + clock_t ticks; - ticks=clock()-start; + ticks = clock () - start; #ifdef __SASC // CLOCKS_PER_SEC == 1000 ! - return(ticks); + return (ticks); #else // CLOCKS_PER_SEC != 1000 ! - return ticks*(1000/CLOCKS_PER_SEC); + return ticks * (1000 / CLOCKS_PER_SEC); #endif } -void SDL_Delay (Uint32 ms) +void +SDL_Delay (Uint32 ms) { // Do a busy wait if time is less than 50ms - if(ms<50) - { - clock_t to_wait=clock(); + if (ms < 50) { + clock_t to_wait = clock (); #ifndef __SASC - ms*=(CLOCKS_PER_SEC/1000); + ms *= (CLOCKS_PER_SEC / 1000); #endif - to_wait+=ms; + to_wait += ms; - while(clock()<to_wait); - } - else - { - Delay(ms/20); - } + while (clock () < to_wait); + } else { + Delay (ms / 20); + } } #else ULONG MY_CLOCKS_PER_SEC; -void PPC_TimerInit(void); +void PPC_TimerInit (void); APTR MyTimer; ULONG start[2]; -void SDL_StartTicks(void) +void +SDL_StartTicks (void) { - /* Set first ticks value */ - if(!MyTimer) - PPC_TimerInit(); + /* Set first ticks value */ + if (!MyTimer) + PPC_TimerInit (); - PPCGetTimerObject(MyTimer,PPCTIMERTAG_CURRENTTICKS,start); - start[1]>>=10; - start[1]|=((result[0]&0x3ff)<<22); - start[0]>>=10; + PPCGetTimerObject (MyTimer, PPCTIMERTAG_CURRENTTICKS, start); + start[1] >>= 10; + start[1] |= ((result[0] & 0x3ff) << 22); + start[0] >>= 10; } -Uint32 SDL_GetTicks (void) +Uint32 +SDL_GetTicks (void) { - ULONG result[2]; - PPCGetTimerObject(MyTimer,PPCTIMERTAG_CURRENTTICKS,result); + ULONG result[2]; + PPCGetTimerObject (MyTimer, PPCTIMERTAG_CURRENTTICKS, result); -// PPCAsr64p(result,10); +// PPCAsr64p(result,10); // Non va, la emulo: - result[1]>>=10; - result[1]|=((result[0]&0x3ff)<<22); + result[1] >>= 10; + result[1] |= ((result[0] & 0x3ff) << 22); // Non mi interessa piu' result[0] - return result[1]*1000/MY_CLOCKS_PER_SEC; + return result[1] * 1000 / MY_CLOCKS_PER_SEC; } -void SDL_Delay (Uint32 ms) +void +SDL_Delay (Uint32 ms) { // Do a busy wait if time is less than 50ms - if(ms<50) - { - ULONG to_wait[2],actual[2]; - PPCGetTimerObject(MyTimer,PPCTIMERTAG_CURRENTTICKS,result); - actual[1]=0; - to_wait[1]+=ms*1000/MY_CLOCKS_PER_SEC; + if (ms < 50) { + ULONG to_wait[2], actual[2]; + PPCGetTimerObject (MyTimer, PPCTIMERTAG_CURRENTTICKS, result); + actual[1] = 0; + to_wait[1] += ms * 1000 / MY_CLOCKS_PER_SEC; - while(actual[1]<to_wait[1]) - { - PPCGetTimerObject(MyTimer,PPCTIMERTAG_CURRENTTICKS,actual); - } - } - else - { - Delay(ms/50); - } + while (actual[1] < to_wait[1]) { + PPCGetTimerObject (MyTimer, PPCTIMERTAG_CURRENTTICKS, actual); + } + } else { + Delay (ms / 50); + } } -void PPC_TimerInit(void) +void +PPC_TimerInit (void) { - struct TagItem tags[]= - { - PPCTIMERTAG_CPU,TRUE, - TAG_DONE,0 - }; + struct TagItem tags[] = { + PPCTIMERTAG_CPU, TRUE, + TAG_DONE, 0 + }; - if(MyTimer=PPCCreateTimerObject(tags)) - { - ULONG result[2]; + if (MyTimer = PPCCreateTimerObject (tags)) { + ULONG result[2]; - PPCGetTimerObject(MyTimer,PPCTIMERTAG_TICKSPERSEC,result); - D(bug("Timer inizializzato, TPS: %lu - %lu\n",result[0],result[1])); -// PPCAsr64p(result,10); - result[1]>>=10; - result[1]|=((result[0]&0x3ff)<<22); - result[0]>>=10; - - D(bug("Shiftato TPS: %lu - %lu\n",result[0],result[1])); - MY_CLOCKS_PER_SEC=result[1]; + PPCGetTimerObject (MyTimer, PPCTIMERTAG_TICKSPERSEC, result); + D (bug + ("Timer inizializzato, TPS: %lu - %lu\n", result[0], result[1])); +// PPCAsr64p(result,10); + result[1] >>= 10; + result[1] |= ((result[0] & 0x3ff) << 22); + result[0] >>= 10; - PPCGetTimerObject(MyTimer,PPCTIMERTAG_CURRENTTICKS,result); + D (bug ("Shiftato TPS: %lu - %lu\n", result[0], result[1])); + MY_CLOCKS_PER_SEC = result[1]; + + PPCGetTimerObject (MyTimer, PPCTIMERTAG_CURRENTTICKS, result); - D(bug("Current ticks: %lu - %lu\n",result[0],result[1])); - result[1]>>=10; - result[1]|=((result[0]&0x3ff)<<22); - result[0]>>=10; -// PPCAsr64p(result,10); - D(bug("Shiftato: %lu - %lu\n",result[0],result[1])); - } - else - { - D(bug("Errore nell'inizializzazione del timer!\n")); - } + D (bug ("Current ticks: %lu - %lu\n", result[0], result[1])); + result[1] >>= 10; + result[1] |= ((result[0] & 0x3ff) << 22); + result[0] >>= 10; +// PPCAsr64p(result,10); + D (bug ("Shiftato: %lu - %lu\n", result[0], result[1])); + } else { + D (bug ("Errore nell'inizializzazione del timer!\n")); + } } #endif @@ -208,60 +205,65 @@ static int timer_alive = 0; static SDL_Thread *timer_thread = NULL; -static int RunTimer(void *unused) +static int +RunTimer (void *unused) { - D(bug("SYSTimer: Entering RunTimer loop...")); + D (bug ("SYSTimer: Entering RunTimer loop...")); - if(GfxBase==NULL) - GfxBase=(struct GfxBase *)OpenLibrary("graphics.library",37); + if (GfxBase == NULL) + GfxBase = (struct GfxBase *) OpenLibrary ("graphics.library", 37); - while ( timer_alive ) { - if ( SDL_timer_running ) { - SDL_ThreadedTimerCheck(); - } - if(GfxBase) - WaitTOF(); // Check the timer every fifth of seconds. Was SDL_Delay(1)->BusyWait! - else - Delay(1); - } - D(bug("SYSTimer: EXITING RunTimer loop...")); - return(0); + while (timer_alive) { + if (SDL_timer_running) { + SDL_ThreadedTimerCheck (); + } + if (GfxBase) + WaitTOF (); // Check the timer every fifth of seconds. Was SDL_Delay(1)->BusyWait! + else + Delay (1); + } + D (bug ("SYSTimer: EXITING RunTimer loop...")); + return (0); } /* This is only called if the event thread is not running */ -int SDL_SYS_TimerInit(void) +int +SDL_SYS_TimerInit (void) { - D(bug("Creating thread for the timer (NOITIMER)...\n")); + D (bug ("Creating thread for the timer (NOITIMER)...\n")); - timer_alive = 1; - timer_thread = SDL_CreateThread(RunTimer, NULL); - if ( timer_thread == NULL ) - { - D(bug("Creazione del thread fallita...\n")); + timer_alive = 1; + timer_thread = SDL_CreateThread (RunTimer, NULL); + if (timer_thread == NULL) { + D (bug ("Creazione del thread fallita...\n")); - return(-1); - } - return(SDL_SetTimerThreaded(1)); + return (-1); + } + return (SDL_SetTimerThreaded (1)); } -void SDL_SYS_TimerQuit(void) +void +SDL_SYS_TimerQuit (void) { - timer_alive = 0; - if ( timer_thread ) { - SDL_WaitThread(timer_thread, NULL); - timer_thread = NULL; - } + timer_alive = 0; + if (timer_thread) { + SDL_WaitThread (timer_thread, NULL); + timer_thread = NULL; + } } -int SDL_SYS_StartTimer(void) +int +SDL_SYS_StartTimer (void) { - SDL_SetError("Internal logic error: AmigaOS uses threaded timer"); - return(-1); + SDL_SetError ("Internal logic error: AmigaOS uses threaded timer"); + return (-1); } -void SDL_SYS_StopTimer(void) +void +SDL_SYS_StopTimer (void) { - return; + return; } #endif /* SDL_TIMER_AMIGA */ +/* vi: set ts=4 sw=4 expandtab: */