f806c5829b
* pre-commit: Update and enable clang-format check There is newer version from clang-format so use that. We do not yet want 18 as that is little bit too new. * Format some thing by hand which clang-format "breaks" Clang-format will format some things little bit off in some cases. Format some things by hand so we get cleaner end result. * Run clang-format with ``` pre-commit run --all-files clang-format ``` We have already in previously checked places where clang-format does not make good format and ignored those (hopefully most of the things). --------- Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
/**************************************************************************
|
|
*
|
|
* Copyright (C) 2009 Steve Karg <skarg@users.sourceforge.net>
|
|
* Multimedia Timer contribution by Cameron Crothers, 2008
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
*********************************************************************/
|
|
#include <stdio.h>
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
#include <limits.h>
|
|
#include <time.h>
|
|
#include "bacport.h"
|
|
#include "bacnet/basic/sys/mstimer.h"
|
|
|
|
/* Windows timer period - in milliseconds */
|
|
static unsigned long Timer_Period = 1;
|
|
|
|
/**
|
|
* @brief returns the current millisecond count
|
|
* @return millisecond counter
|
|
*/
|
|
unsigned long mstimer_now(void)
|
|
{
|
|
return timeGetTime();
|
|
}
|
|
|
|
/**
|
|
* @brief Shut down for timer
|
|
*/
|
|
static void timer_cleanup(void)
|
|
{
|
|
timeEndPeriod(Timer_Period);
|
|
}
|
|
|
|
/**
|
|
* @brief Initialization for timer
|
|
*/
|
|
void mstimer_init(void)
|
|
{
|
|
TIMECAPS tc;
|
|
|
|
/* 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 */
|
|
Timer_Period = min(max(tc.wPeriodMin, 1L), tc.wPeriodMax);
|
|
if (Timer_Period != 1L) {
|
|
fprintf(
|
|
stderr,
|
|
"Failed to set timer to 1ms. "
|
|
"Time period set to %ums\n",
|
|
(unsigned)Timer_Period);
|
|
}
|
|
timeBeginPeriod(Timer_Period);
|
|
atexit(timer_cleanup);
|
|
}
|