diff --git a/libs/pbd/crossthread.win.cc b/libs/pbd/crossthread.win.cc index 51f9a89e9d..1d0758c911 100644 --- a/libs/pbd/crossthread.win.cc +++ b/libs/pbd/crossthread.win.cc @@ -32,7 +32,7 @@ CrossThreadChannel::CrossThreadChannel (bool non_blocking) send_address.sin_family = AF_INET; send_address.sin_addr.s_addr = inet_addr("127.0.0.1"); send_address.sin_port = htons(0); - int status = bind(send_socket, (SOCKADDR*)&send_address, + int status = ::bind(send_socket, (SOCKADDR*)&send_address, sizeof(send_address)); if (status != 0) { @@ -54,7 +54,7 @@ CrossThreadChannel::CrossThreadChannel (bool non_blocking) recv_address.sin_family = AF_INET; recv_address.sin_addr.s_addr = inet_addr("127.0.0.1"); recv_address.sin_port = htons(0); - status = bind(receive_socket, (SOCKADDR*)&recv_address, + status = ::bind(receive_socket, (SOCKADDR*)&recv_address, sizeof(recv_address)); if (status != 0) { diff --git a/libs/pbd/pbd/windows_mmcss.h b/libs/pbd/pbd/windows_mmcss.h index 43628509e2..6c61edfbe6 100644 --- a/libs/pbd/pbd/windows_mmcss.h +++ b/libs/pbd/pbd/windows_mmcss.h @@ -38,10 +38,12 @@ enum AVRT_PRIORITY { AVRT_PRIORITY_CRITICAL }; +#ifndef ERROR_INVALID_TASK_NAME enum error_codes { ERROR_INVALID_TASK_NAME = 1550, ERROR_INVALID_TASK_INDEX = 1551 }; +#endif bool LIBPBD_API initialize (); diff --git a/libs/pbd/timing.cc b/libs/pbd/timing.cc index 4a88622b9b..44b0701807 100644 --- a/libs/pbd/timing.cc +++ b/libs/pbd/timing.cc @@ -21,6 +21,7 @@ #include #include +#include namespace PBD { diff --git a/msvc_extra_headers/ardourext/float_cast.h.input b/msvc_extra_headers/ardourext/float_cast.h.input index 94433da965..73eb2c38f6 100644 --- a/msvc_extra_headers/ardourext/float_cast.h.input +++ b/msvc_extra_headers/ardourext/float_cast.h.input @@ -40,8 +40,9 @@ #include - /* Win32 doesn't seem to have these functions. - ** Therefore implement inline versions of these functions here. +#if defined(_MSC_VER) && (_MSC_VER < 1900) +/* Win32 doesn't seem to have these functions. + * Therefore implement inline versions of these functions here. */ __inline long int @@ -115,6 +116,8 @@ return intgr ; } -#endif +#endif // _MSC_VER && _MSC_VER < 1900 + +#endif // _WIN32 || WIN32 #endif // __FLOAT_CAST_H__ diff --git a/msvc_extra_headers/ardourext/misc.h.input b/msvc_extra_headers/ardourext/misc.h.input index 4c8d193eac..6018886b58 100644 --- a/msvc_extra_headers/ardourext/misc.h.input +++ b/msvc_extra_headers/ardourext/misc.h.input @@ -19,9 +19,19 @@ #ifndef __ardour_msvc_extensions_h__ #define __ardour_msvc_extensions_h__ -#ifndef _WIN32_WINNT -#define _WIN32_WINNT 0x0500 +#ifdef WINVER +#undef WINVER #endif +#if (defined(_MSC_VER) && (_MSC_VER < 1900)) /* 1900 is an arbitrary value, corresponding to VS2019 (it might need to be lowered) */ +#define WINVER 0x0500 +#else +#define WINVER 0x0601 +#endif +#ifdef _WIN32_WINNT +#undef _WIN32_WINNT +#endif +#define _WIN32_WINNT WINVER + #ifndef _CPP_VECTOR #define _CPP_VECTOR 1 #endif @@ -208,8 +218,10 @@ inline int64_t abs(int64_t val) throw() #endif // fmin() and fmax() +#if defined(_MSC_VER) && (_MSC_VER < 1900) #define fmin(a, b) min((double)a, (double)b) #define fmax(a, b) max((double)a, (double)b) +#endif // approximate POSIX pipe() #define pipe(handles) _pipe(handles, 4096, _O_BINARY) diff --git a/msvc_extra_headers/ardourext/ptw32/pthread.h.input b/msvc_extra_headers/ardourext/ptw32/pthread.h.input index 0aa4522556..b8646c321b 100644 --- a/msvc_extra_headers/ardourext/ptw32/pthread.h.input +++ b/msvc_extra_headers/ardourext/ptw32/pthread.h.input @@ -308,11 +308,13 @@ enum { #endif #ifndef HAVE_STRUCT_TIMESPEC +#if defined(_MSC_VER) && (_MSC_VER < 1900) #define HAVE_STRUCT_TIMESPEC 1 struct timespec { long tv_sec; long tv_nsec; }; +#endif /* _MSC_VER */ #endif /* HAVE_STRUCT_TIMESPEC */ #ifndef SIG_BLOCK