diff options
-rw-r--r-- | Alc/backends/wave.c | 1 | ||||
-rw-r--r-- | Alc/compat.h | 53 | ||||
-rw-r--r-- | Alc/helpers.c | 1 | ||||
-rw-r--r-- | Alc/threads.c | 1 | ||||
-rw-r--r-- | OpenAL32/Include/alMain.h | 54 |
5 files changed, 58 insertions, 52 deletions
diff --git a/Alc/backends/wave.c b/Alc/backends/wave.c index 6245ef43..e7698430 100644 --- a/Alc/backends/wave.c +++ b/Alc/backends/wave.c @@ -23,6 +23,7 @@ #include <stdlib.h> #include <stdio.h> #include <memory.h> +#include <errno.h> #ifdef HAVE_WINDOWS_H #include <windows.h> #endif diff --git a/Alc/compat.h b/Alc/compat.h new file mode 100644 index 00000000..21ccde7e --- /dev/null +++ b/Alc/compat.h @@ -0,0 +1,53 @@ +#ifndef AL_COMPAT_H +#define AL_COMPAT_H + +#include "AL/al.h" + +#ifdef _WIN32 + +#define WIN32_LEAN_AND_MEAN +#include <windows.h> + +typedef DWORD pthread_key_t; +int pthread_key_create(pthread_key_t *key, void (*callback)(void*)); +int pthread_key_delete(pthread_key_t key); +void *pthread_getspecific(pthread_key_t key); +int pthread_setspecific(pthread_key_t key, void *val); + +#define HAVE_DYNLOAD 1 +void *LoadLib(const char *name); +void CloseLib(void *handle); +void *GetSymbol(void *handle, const char *name); + +WCHAR *strdupW(const WCHAR *str); + +typedef LONG pthread_once_t; +#define PTHREAD_ONCE_INIT 0 +void pthread_once(pthread_once_t *once, void (*callback)(void)); + +static inline int sched_yield(void) +{ SwitchToThread(); return 0; } + +#else + +#include <pthread.h> + +typedef pthread_mutex_t CRITICAL_SECTION; +void InitializeCriticalSection(CRITICAL_SECTION *cs); +void DeleteCriticalSection(CRITICAL_SECTION *cs); +void EnterCriticalSection(CRITICAL_SECTION *cs); +void LeaveCriticalSection(CRITICAL_SECTION *cs); + +ALuint timeGetTime(void); +void Sleep(ALuint t); + +#if defined(HAVE_DLFCN_H) +#define HAVE_DYNLOAD 1 +void *LoadLib(const char *name); +void CloseLib(void *handle); +void *GetSymbol(void *handle, const char *name); +#endif + +#endif + +#endif /* AL_COMPAT_H */ diff --git a/Alc/helpers.c b/Alc/helpers.c index 1eadc99c..4d715553 100644 --- a/Alc/helpers.c +++ b/Alc/helpers.c @@ -69,6 +69,7 @@ DEFINE_DEVPROPKEY(DEVPKEY_Device_FriendlyName, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, #endif #include "alMain.h" +#include "compat.h" ALuint CPUCapFlags = 0; diff --git a/Alc/threads.c b/Alc/threads.c index 40586575..1f7e3a6c 100644 --- a/Alc/threads.c +++ b/Alc/threads.c @@ -23,6 +23,7 @@ #include "threads.h" #include <stdlib.h> +#include <errno.h> #include "alMain.h" #include "alThunk.h" diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h index b103848c..ebedada8 100644 --- a/OpenAL32/Include/alMain.h +++ b/OpenAL32/Include/alMain.h @@ -15,6 +15,8 @@ #include "AL/alc.h" #include "AL/alext.h" +#include "compat.h" + #ifndef ALC_SOFT_HRTF #define ALC_SOFT_HRTF 1 #define ALC_HRTF_SOFT 0x1992 @@ -117,58 +119,6 @@ static const union { } while(0) -#ifdef _WIN32 - -#define WIN32_LEAN_AND_MEAN -#include <windows.h> - -typedef DWORD pthread_key_t; -int pthread_key_create(pthread_key_t *key, void (*callback)(void*)); -int pthread_key_delete(pthread_key_t key); -void *pthread_getspecific(pthread_key_t key); -int pthread_setspecific(pthread_key_t key, void *val); - -#define HAVE_DYNLOAD 1 -void *LoadLib(const char *name); -void CloseLib(void *handle); -void *GetSymbol(void *handle, const char *name); - -WCHAR *strdupW(const WCHAR *str); - -typedef LONG pthread_once_t; -#define PTHREAD_ONCE_INIT 0 -void pthread_once(pthread_once_t *once, void (*callback)(void)); - -static inline int sched_yield(void) -{ SwitchToThread(); return 0; } - -#else - -#include <unistd.h> -#include <assert.h> -#include <pthread.h> -#include <sys/time.h> -#include <time.h> -#include <errno.h> - -typedef pthread_mutex_t CRITICAL_SECTION; -void InitializeCriticalSection(CRITICAL_SECTION *cs); -void DeleteCriticalSection(CRITICAL_SECTION *cs); -void EnterCriticalSection(CRITICAL_SECTION *cs); -void LeaveCriticalSection(CRITICAL_SECTION *cs); - -ALuint timeGetTime(void); -void Sleep(ALuint t); - -#if defined(HAVE_DLFCN_H) -#define HAVE_DYNLOAD 1 -void *LoadLib(const char *name); -void CloseLib(void *handle); -void *GetSymbol(void *handle, const char *name); -#endif - -#endif - typedef void *volatile XchgPtr; #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) && !defined(__QNXNTO__) |