From 551f2767e067468ca282bfe64a7fc072b087b034 Mon Sep 17 00:00:00 2001 From: skarg Date: Wed, 29 Jul 2009 18:05:07 +0000 Subject: [PATCH] Ran fixup script. --- bacnet-stack/ports/linux/timer.c | 268 ++++++++++++++-------------- bacnet-stack/ports/linux/timer.h | 126 ++++++------- bacnet-stack/ports/win32/timer.c | 296 +++++++++++++++---------------- bacnet-stack/ports/win32/timer.h | 160 ++++++++--------- 4 files changed, 425 insertions(+), 425 deletions(-) diff --git a/bacnet-stack/ports/linux/timer.c b/bacnet-stack/ports/linux/timer.c index f3b75e76..7a4e2db2 100644 --- a/bacnet-stack/ports/linux/timer.c +++ b/bacnet-stack/ports/linux/timer.c @@ -1,134 +1,134 @@ -/************************************************************************** -* -* Copyright (C) 2009 Steve Karg -* -* Permission is hereby granted, free of charge, to any person obtaining -* a copy of this software and associated documentation files (the -* "Software"), to deal in the Software without restriction, including -* without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to -* permit persons to whom the Software is furnished to do so, subject to -* the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* -*********************************************************************/ -#include -#include -#include -#include -#include "timer.h" - -/* counter for the various timers */ -static volatile uint32_t Millisecond_Counter[MAX_MILLISECOND_TIMERS]; - -/* start time for the clock */ -static struct timespec start; -uint32_t timeGetTime(void) -{ - struct timespec now; - uint32_t ticks; - - clock_gettime(CLOCK_MONOTONIC,&now); - - ticks = (now.tv_sec-start.tv_sec)*1000+ - (now.tv_nsec-start.tv_nsec)/1000000; - - return ticks; -} - -/************************************************************************* -* Description: returns the current millisecond count -* Returns: none -* Notes: none -*************************************************************************/ -uint32_t timer_milliseconds( - unsigned index) -{ - uint32_t now = timeGetTime(); - uint32_t delta_time = 0; - - if (index < MAX_MILLISECOND_TIMERS) { - if (Millisecond_Counter[index] <= now) { - delta_time = now - Millisecond_Counter[index]; - } else { - delta_time = (UINT32_MAX - Millisecond_Counter[index]) + now + 1; - } - } - - return delta_time; -} - -/************************************************************************* -* Description: compares the current time count with a value -* Returns: true if the time has elapsed -* Notes: none -*************************************************************************/ -bool timer_elapsed_milliseconds( - unsigned index, - uint32_t value) -{ - return (timer_milliseconds(index) >= value); -} - -/************************************************************************* -* Description: compares the current time count with a value -* Returns: true if the time has elapsed -* Notes: none -*************************************************************************/ -bool timer_elapsed_seconds( - unsigned index, - uint32_t seconds) -{ - return ((timer_milliseconds(index)/1000) >= seconds); -} - -/************************************************************************* -* Description: compares the current time count with a value -* Returns: true if the time has elapsed -* Notes: none -*************************************************************************/ -bool timer_elapsed_minutes( - unsigned index, - uint32_t minutes) -{ - return ((timer_milliseconds(index)/(1000*60)) >= minutes); -} - -/************************************************************************* -* Description: Sets the timer counter to zero. -* Returns: none -* Notes: none -*************************************************************************/ -uint32_t timer_reset( - unsigned index) -{ - uint32_t timer_value = 0; - - if (index < MAX_MILLISECOND_TIMERS) { - timer_value = timer_milliseconds(index); - Millisecond_Counter[index] = timeGetTime(); - } - - return timer_value; -} - -/************************************************************************* -* Description: Initialization for timer -* Returns: none -* Notes: none -*************************************************************************/ -void timer_init( - void) -{ - clock_gettime(CLOCK_MONOTONIC,&start); -} +/************************************************************************** +* +* Copyright (C) 2009 Steve Karg +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* +*********************************************************************/ +#include +#include +#include +#include +#include "timer.h" + +/* counter for the various timers */ +static volatile uint32_t Millisecond_Counter[MAX_MILLISECOND_TIMERS]; + +/* start time for the clock */ +static struct timespec start; +uint32_t timeGetTime(void) +{ + struct timespec now; + uint32_t ticks; + + clock_gettime(CLOCK_MONOTONIC,&now); + + ticks = (now.tv_sec-start.tv_sec)*1000+ + (now.tv_nsec-start.tv_nsec)/1000000; + + return ticks; +} + +/************************************************************************* +* Description: returns the current millisecond count +* Returns: none +* Notes: none +*************************************************************************/ +uint32_t timer_milliseconds( + unsigned index) +{ + uint32_t now = timeGetTime(); + uint32_t delta_time = 0; + + if (index < MAX_MILLISECOND_TIMERS) { + if (Millisecond_Counter[index] <= now) { + delta_time = now - Millisecond_Counter[index]; + } else { + delta_time = (UINT32_MAX - Millisecond_Counter[index]) + now + 1; + } + } + + return delta_time; +} + +/************************************************************************* +* Description: compares the current time count with a value +* Returns: true if the time has elapsed +* Notes: none +*************************************************************************/ +bool timer_elapsed_milliseconds( + unsigned index, + uint32_t value) +{ + return (timer_milliseconds(index) >= value); +} + +/************************************************************************* +* Description: compares the current time count with a value +* Returns: true if the time has elapsed +* Notes: none +*************************************************************************/ +bool timer_elapsed_seconds( + unsigned index, + uint32_t seconds) +{ + return ((timer_milliseconds(index)/1000) >= seconds); +} + +/************************************************************************* +* Description: compares the current time count with a value +* Returns: true if the time has elapsed +* Notes: none +*************************************************************************/ +bool timer_elapsed_minutes( + unsigned index, + uint32_t minutes) +{ + return ((timer_milliseconds(index)/(1000*60)) >= minutes); +} + +/************************************************************************* +* Description: Sets the timer counter to zero. +* Returns: none +* Notes: none +*************************************************************************/ +uint32_t timer_reset( + unsigned index) +{ + uint32_t timer_value = 0; + + if (index < MAX_MILLISECOND_TIMERS) { + timer_value = timer_milliseconds(index); + Millisecond_Counter[index] = timeGetTime(); + } + + return timer_value; +} + +/************************************************************************* +* Description: Initialization for timer +* Returns: none +* Notes: none +*************************************************************************/ +void timer_init( + void) +{ + clock_gettime(CLOCK_MONOTONIC,&start); +} diff --git a/bacnet-stack/ports/linux/timer.h b/bacnet-stack/ports/linux/timer.h index 2d821cc7..75a30c27 100644 --- a/bacnet-stack/ports/linux/timer.h +++ b/bacnet-stack/ports/linux/timer.h @@ -1,63 +1,63 @@ -/************************************************************************** -* -* Copyright (C) 2009 Steve Karg -* -* Permission is hereby granted, free of charge, to any person obtaining -* a copy of this software and associated documentation files (the -* "Software"), to deal in the Software without restriction, including -* without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to -* permit persons to whom the Software is furnished to do so, subject to -* the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*********************************************************************/ -#ifndef TIMER_H -#define TIMER_H - -#include -#include - -/* Timer Module */ -#ifndef MAX_MILLISECOND_TIMERS - #define TIMER_SILENCE 0 - #define MAX_MILLISECOND_TIMERS 1 -#endif - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - uint32_t timeGetTime(void); - - void timer_init( - void); - uint32_t timer_milliseconds( - unsigned index); - bool timer_elapsed_milliseconds( - unsigned index, - uint32_t value); - bool timer_elapsed_seconds( - unsigned index, - uint32_t value); - bool timer_elapsed_minutes( - unsigned index, - uint32_t seconds); - uint32_t timer_milliseconds_set( - unsigned index, - uint32_t value); - uint32_t timer_reset( - unsigned index); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ -#endif +/************************************************************************** +* +* Copyright (C) 2009 Steve Karg +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*********************************************************************/ +#ifndef TIMER_H +#define TIMER_H + +#include +#include + +/* Timer Module */ +#ifndef MAX_MILLISECOND_TIMERS + #define TIMER_SILENCE 0 + #define MAX_MILLISECOND_TIMERS 1 +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + uint32_t timeGetTime(void); + + void timer_init( + void); + uint32_t timer_milliseconds( + unsigned index); + bool timer_elapsed_milliseconds( + unsigned index, + uint32_t value); + bool timer_elapsed_seconds( + unsigned index, + uint32_t value); + bool timer_elapsed_minutes( + unsigned index, + uint32_t seconds); + uint32_t timer_milliseconds_set( + unsigned index, + uint32_t value); + uint32_t timer_reset( + unsigned index); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif diff --git a/bacnet-stack/ports/win32/timer.c b/bacnet-stack/ports/win32/timer.c index 59e1f21b..587619ac 100644 --- a/bacnet-stack/ports/win32/timer.c +++ b/bacnet-stack/ports/win32/timer.c @@ -1,148 +1,148 @@ -/************************************************************************** -* -* Copyright (C) 2009 Steve Karg -* Multimedia Timer contribution by Cameron Crothers, 2008 -* -* Permission is hereby granted, free of charge, to any person obtaining -* a copy of this software and associated documentation files (the -* "Software"), to deal in the Software without restriction, including -* without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to -* permit persons to whom the Software is furnished to do so, subject to -* the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* -*********************************************************************/ -#include -#include -#include -#define WIN32_LEAN_AND_MEAN -#define STRICT 1 -#include -#include -#include "timer.h" - -/* counter for the various timers */ -static volatile uint32_t Millisecond_Counter[MAX_MILLISECOND_TIMERS]; - -/************************************************************************* -* Description: simulate the gettimeofday Linux function -* Returns: none -* Notes: none -*************************************************************************/ -int gettimeofday( - struct timeval *tp, - void *tzp) -{ - struct _timeb timebuffer; - - _ftime(&timebuffer); - tp->tv_sec = timebuffer.time; - tp->tv_usec = timebuffer.millitm * 1000; - - return 0; -} - -/************************************************************************* -* Description: returns the current millisecond count -* Returns: none -* Notes: none -*************************************************************************/ -uint32_t timer_milliseconds( - unsigned index) -{ - uint32_t now = timeGetTime(); - uint32_t delta_time = 0; - - - if (index < MAX_MILLISECOND_TIMERS) { - if (Millisecond_Counter[index] <= now) { - delta_time = now - Millisecond_Counter[index]; - } else { - delta_time = (UINT32_MAX - Millisecond_Counter[index]) + now + 1; - } - } - - return delta_time; -} - -/************************************************************************* -* Description: compares the current time count with a value -* Returns: true if the time has elapsed -* Notes: none -*************************************************************************/ -bool timer_elapsed_milliseconds( - unsigned index, - uint32_t value) -{ - return (timer_milliseconds(index) >= value); -} - -/************************************************************************* -* Description: compares the current time count with a value -* Returns: true if the time has elapsed -* Notes: none -*************************************************************************/ -bool timer_elapsed_seconds( - unsigned index, - uint32_t seconds) -{ - return ((timer_milliseconds(index)/1000) >= seconds); -} - -/************************************************************************* -* Description: compares the current time count with a value -* Returns: true if the time has elapsed -* Notes: none -*************************************************************************/ -bool timer_elapsed_minutes( - unsigned index, - uint32_t minutes) -{ - return ((timer_milliseconds(index)/(1000*60)) >= minutes); -} - -/************************************************************************* -* Description: Sets the timer counter to zero. -* Returns: none -* Notes: none -*************************************************************************/ -uint32_t timer_reset( - unsigned index) -{ - uint32_t timer_value = timer_milliseconds(index); - if (index < MAX_MILLISECOND_TIMERS) { - Millisecond_Counter[index] = timeGetTime(); - } - return timer_value; -} - -/************************************************************************* -* Description: Initialization for timer -* Returns: none -* Notes: none -*************************************************************************/ -void timer_init( - void) -{ - TIMECAPS tc; - uint32_t period; - - /* set timer resolution */ - if (timeGetDevCaps(&tc, sizeof(TIMECAPS)) != TIMERR_NOERROR) { - fprintf(stderr, "Failed to get timer resolution parameters\n"); - } - /* configure for 1ms resolution - if possible */ - period = min(max(tc.wPeriodMin, 1), tc.wPeriodMax); - timeBeginPeriod(period); -} +/************************************************************************** +* +* Copyright (C) 2009 Steve Karg +* Multimedia Timer contribution by Cameron Crothers, 2008 +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* +*********************************************************************/ +#include +#include +#include +#define WIN32_LEAN_AND_MEAN +#define STRICT 1 +#include +#include +#include "timer.h" + +/* counter for the various timers */ +static volatile uint32_t Millisecond_Counter[MAX_MILLISECOND_TIMERS]; + +/************************************************************************* +* Description: simulate the gettimeofday Linux function +* Returns: none +* Notes: none +*************************************************************************/ +int gettimeofday( + struct timeval *tp, + void *tzp) +{ + struct _timeb timebuffer; + + _ftime(&timebuffer); + tp->tv_sec = timebuffer.time; + tp->tv_usec = timebuffer.millitm * 1000; + + return 0; +} + +/************************************************************************* +* Description: returns the current millisecond count +* Returns: none +* Notes: none +*************************************************************************/ +uint32_t timer_milliseconds( + unsigned index) +{ + uint32_t now = timeGetTime(); + uint32_t delta_time = 0; + + + if (index < MAX_MILLISECOND_TIMERS) { + if (Millisecond_Counter[index] <= now) { + delta_time = now - Millisecond_Counter[index]; + } else { + delta_time = (UINT32_MAX - Millisecond_Counter[index]) + now + 1; + } + } + + return delta_time; +} + +/************************************************************************* +* Description: compares the current time count with a value +* Returns: true if the time has elapsed +* Notes: none +*************************************************************************/ +bool timer_elapsed_milliseconds( + unsigned index, + uint32_t value) +{ + return (timer_milliseconds(index) >= value); +} + +/************************************************************************* +* Description: compares the current time count with a value +* Returns: true if the time has elapsed +* Notes: none +*************************************************************************/ +bool timer_elapsed_seconds( + unsigned index, + uint32_t seconds) +{ + return ((timer_milliseconds(index)/1000) >= seconds); +} + +/************************************************************************* +* Description: compares the current time count with a value +* Returns: true if the time has elapsed +* Notes: none +*************************************************************************/ +bool timer_elapsed_minutes( + unsigned index, + uint32_t minutes) +{ + return ((timer_milliseconds(index)/(1000*60)) >= minutes); +} + +/************************************************************************* +* Description: Sets the timer counter to zero. +* Returns: none +* Notes: none +*************************************************************************/ +uint32_t timer_reset( + unsigned index) +{ + uint32_t timer_value = timer_milliseconds(index); + if (index < MAX_MILLISECOND_TIMERS) { + Millisecond_Counter[index] = timeGetTime(); + } + return timer_value; +} + +/************************************************************************* +* Description: Initialization for timer +* Returns: none +* Notes: none +*************************************************************************/ +void timer_init( + void) +{ + TIMECAPS tc; + uint32_t period; + + /* set timer resolution */ + if (timeGetDevCaps(&tc, sizeof(TIMECAPS)) != TIMERR_NOERROR) { + fprintf(stderr, "Failed to get timer resolution parameters\n"); + } + /* configure for 1ms resolution - if possible */ + period = min(max(tc.wPeriodMin, 1), tc.wPeriodMax); + timeBeginPeriod(period); +} diff --git a/bacnet-stack/ports/win32/timer.h b/bacnet-stack/ports/win32/timer.h index 45b31782..7a42b021 100644 --- a/bacnet-stack/ports/win32/timer.h +++ b/bacnet-stack/ports/win32/timer.h @@ -1,80 +1,80 @@ -/************************************************************************** -* -* Copyright (C) 2009 Steve Karg -* -* Permission is hereby granted, free of charge, to any person obtaining -* a copy of this software and associated documentation files (the -* "Software"), to deal in the Software without restriction, including -* without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to -* permit persons to whom the Software is furnished to do so, subject to -* the following conditions: -* -* The above copyright notice and this permission notice shall be included -* in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*********************************************************************/ -#ifndef TIMER_H -#define TIMER_H - -#include -#include - -#define WIN32_LEAN_AND_MEAN -#define STRICT 1 -#include -#if defined(__BORLANDC__) -#include -#else -#include -#endif -#include -#if defined(__BORLANDC__) -#define _timeb timeb -#define _ftime(param) ftime(param) -#endif - -/* Timer Module */ -#ifndef MAX_MILLISECOND_TIMERS - #define TIMER_SILENCE 0 - #define MAX_MILLISECOND_TIMERS 1 -#endif - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - int gettimeofday( - struct timeval *tp, - void *tzp); - - void timer_init( - void); - uint32_t timer_milliseconds( - unsigned index); - bool timer_elapsed_milliseconds( - unsigned index, - uint32_t value); - bool timer_elapsed_seconds( - unsigned index, - uint32_t value); - bool timer_elapsed_minutes( - unsigned index, - uint32_t seconds); - uint32_t timer_milliseconds_set( - unsigned index, - uint32_t value); - uint32_t timer_reset( - unsigned index); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ -#endif +/************************************************************************** +* +* Copyright (C) 2009 Steve Karg +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*********************************************************************/ +#ifndef TIMER_H +#define TIMER_H + +#include +#include + +#define WIN32_LEAN_AND_MEAN +#define STRICT 1 +#include +#if defined(__BORLANDC__) +#include +#else +#include +#endif +#include +#if defined(__BORLANDC__) +#define _timeb timeb +#define _ftime(param) ftime(param) +#endif + +/* Timer Module */ +#ifndef MAX_MILLISECOND_TIMERS + #define TIMER_SILENCE 0 + #define MAX_MILLISECOND_TIMERS 1 +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + int gettimeofday( + struct timeval *tp, + void *tzp); + + void timer_init( + void); + uint32_t timer_milliseconds( + unsigned index); + bool timer_elapsed_milliseconds( + unsigned index, + uint32_t value); + bool timer_elapsed_seconds( + unsigned index, + uint32_t value); + bool timer_elapsed_minutes( + unsigned index, + uint32_t seconds); + uint32_t timer_milliseconds_set( + unsigned index, + uint32_t value); + uint32_t timer_reset( + unsigned index); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif