From a0b117b9481a1a3091a6d0c1fe0deacf17e20529 Mon Sep 17 00:00:00 2001 From: John Emmas Date: Fri, 19 Aug 2016 10:19:32 +0100 Subject: [PATCH] 'roundf()' wasn't introduced in MSVC until VS2013 - so for the time being, let's emulate it using 'floorf()' --- libs/pbd/msvc/msvc_pbd.cc | 18 ++++++++++++++++++ libs/pbd/pbd/msvc_pbd.h | 1 + msvc_extra_headers/ardourext/misc.h.input | 1 + 3 files changed, 20 insertions(+) diff --git a/libs/pbd/msvc/msvc_pbd.cc b/libs/pbd/msvc/msvc_pbd.cc index f49ac5393c..68596e3463 100644 --- a/libs/pbd/msvc/msvc_pbd.cc +++ b/libs/pbd/msvc/msvc_pbd.cc @@ -223,6 +223,24 @@ ssize_t ret; return (ret); } +//*************************************************************** +// +// roundf() +// +// Emulates roundf() using floorf(). +// +// Returns: +// +// On Success: The largest integer that is less than or +// equal to 'x'. +// On Failure: None +// +LIBPBD_API float PBD_APICALLTYPE +roundf(float x) +{ + return (floorf(x)); +} + //*************************************************************** // // round() diff --git a/libs/pbd/pbd/msvc_pbd.h b/libs/pbd/pbd/msvc_pbd.h index 5a6b550242..1a017fcb8a 100644 --- a/libs/pbd/pbd/msvc_pbd.h +++ b/libs/pbd/pbd/msvc_pbd.h @@ -230,6 +230,7 @@ LIBPBD_API int __cdecl gettimeofday(struct timeval *__restrict tv, __ LIBPBD_API ssize_t PBD_APICALLTYPE pread(int handle, void *buf, size_t nbytes, off_t offset); LIBPBD_API ssize_t PBD_APICALLTYPE pwrite(int handle, const void *buf, size_t nbytes, off_t offset); LIBPBD_API int PBD_APICALLTYPE poll(struct pollfd *fds, nfds_t nfds, int timeout); +LIBPBD_API float PBD_APICALLTYPE roundf(float x); LIBPBD_API double PBD_APICALLTYPE round(double x); LIBPBD_API double PBD_APICALLTYPE trunc(double x); diff --git a/msvc_extra_headers/ardourext/misc.h.input b/msvc_extra_headers/ardourext/misc.h.input index 11ba638494..6b6533b510 100644 --- a/msvc_extra_headers/ardourext/misc.h.input +++ b/msvc_extra_headers/ardourext/misc.h.input @@ -253,6 +253,7 @@ inline int64_t abs(int64_t val) throw() #if !defined(LIBPBD_API) || defined(PBD_IS_IN_WIN_STATIC_LIB) extern double round(double x); +extern float roundf(float x); // Emulate some C99 math functions which MSVC itself didn't // implement until later in life.