src/timer/haiku/SDL_systimer.c
changeset 7981 6d538bc1b395
parent 7649 4f801cd08f3f
child 8093 b43765095a6f
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/timer/haiku/SDL_systimer.c	Thu Nov 14 11:51:24 2013 -0500
     1.3 @@ -0,0 +1,74 @@
     1.4 +/*
     1.5 +  Simple DirectMedia Layer
     1.6 +  Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
     1.7 +
     1.8 +  This software is provided 'as-is', without any express or implied
     1.9 +  warranty.  In no event will the authors be held liable for any damages
    1.10 +  arising from the use of this software.
    1.11 +
    1.12 +  Permission is granted to anyone to use this software for any purpose,
    1.13 +  including commercial applications, and to alter it and redistribute it
    1.14 +  freely, subject to the following restrictions:
    1.15 +
    1.16 +  1. The origin of this software must not be misrepresented; you must not
    1.17 +     claim that you wrote the original software. If you use this software
    1.18 +     in a product, an acknowledgment in the product documentation would be
    1.19 +     appreciated but is not required.
    1.20 +  2. Altered source versions must be plainly marked as such, and must not be
    1.21 +     misrepresented as being the original software.
    1.22 +  3. This notice may not be removed or altered from any source distribution.
    1.23 +*/
    1.24 +#include "SDL_config.h"
    1.25 +
    1.26 +#ifdef SDL_TIMER_HAIKU
    1.27 +
    1.28 +#include <os/kernel/OS.h>
    1.29 +
    1.30 +#include "SDL_timer.h"
    1.31 +
    1.32 +static bigtime_t start;
    1.33 +static SDL_bool ticks_started = SDL_FALSE;
    1.34 +
    1.35 +void
    1.36 +SDL_InitTicks(void)
    1.37 +{
    1.38 +    if (ticks_started) {
    1.39 +        return;
    1.40 +    }
    1.41 +    ticks_started = SDL_TRUE;
    1.42 +
    1.43 +    /* Set first ticks value */
    1.44 +    start = system_time();
    1.45 +}
    1.46 +
    1.47 +Uint32
    1.48 +SDL_GetTicks(void)
    1.49 +{
    1.50 +    if (!ticks_started) {
    1.51 +        SDL_InitTicks();
    1.52 +    }
    1.53 +
    1.54 +    return ((system_time() - start) / 1000);
    1.55 +}
    1.56 +
    1.57 +Uint64
    1.58 +SDL_GetPerformanceCounter(void)
    1.59 +{
    1.60 +    return system_time();
    1.61 +}
    1.62 +
    1.63 +Uint64
    1.64 +SDL_GetPerformanceFrequency(void)
    1.65 +{
    1.66 +    return 1000000;
    1.67 +}
    1.68 +
    1.69 +void
    1.70 +SDL_Delay(Uint32 ms)
    1.71 +{
    1.72 +    snooze(ms * 1000);
    1.73 +}
    1.74 +
    1.75 +#endif /* SDL_TIMER_HAIKU */
    1.76 +
    1.77 +/* vi: set ts=4 sw=4 expandtab: */