diff options
author | Chris Robinson <[email protected]> | 2013-10-28 11:26:26 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2013-10-28 11:26:26 -0700 |
commit | 2912d130c26056f21e938bbd776bbe8583c055cd (patch) | |
tree | db62c19bd4d9c96adbb9daf9b1d4067eef652e5b /Alc | |
parent | 034935b2e16a5886377018de973e90490102ca90 (diff) |
Separate compatibility declarations
Diffstat (limited to 'Alc')
-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 |
4 files changed, 56 insertions, 0 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" |