| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- #ifndef ROUTER_ROUTER_H
- #define ROUTER_ROUTER_H
- #define WIN32_LEAN_AND_MEAN
- #include <windows.h>
- #include <winnt.h>
- #include <stdio.h>
- #include "AL/alc.h"
- #include "AL/al.h"
- #include "AL/alext.h"
- #include "atomic.h"
- #include "rwlock.h"
- #include "threads.h"
- #ifndef UNUSED
- #if defined(__cplusplus)
- #define UNUSED(x)
- #elif defined(__GNUC__)
- #define UNUSED(x) UNUSED_##x __attribute__((unused))
- #elif defined(__LCLINT__)
- #define UNUSED(x) /*@unused@*/ x
- #else
- #define UNUSED(x) x
- #endif
- #endif
- #define MAKE_ALC_VER(major, minor) (((major)<<8) | (minor))
- typedef struct DriverIface {
- WCHAR Name[32];
- HMODULE Module;
- int ALCVer;
- LPALCCREATECONTEXT alcCreateContext;
- LPALCMAKECONTEXTCURRENT alcMakeContextCurrent;
- LPALCPROCESSCONTEXT alcProcessContext;
- LPALCSUSPENDCONTEXT alcSuspendContext;
- LPALCDESTROYCONTEXT alcDestroyContext;
- LPALCGETCURRENTCONTEXT alcGetCurrentContext;
- LPALCGETCONTEXTSDEVICE alcGetContextsDevice;
- LPALCOPENDEVICE alcOpenDevice;
- LPALCCLOSEDEVICE alcCloseDevice;
- LPALCGETERROR alcGetError;
- LPALCISEXTENSIONPRESENT alcIsExtensionPresent;
- LPALCGETPROCADDRESS alcGetProcAddress;
- LPALCGETENUMVALUE alcGetEnumValue;
- LPALCGETSTRING alcGetString;
- LPALCGETINTEGERV alcGetIntegerv;
- LPALCCAPTUREOPENDEVICE alcCaptureOpenDevice;
- LPALCCAPTURECLOSEDEVICE alcCaptureCloseDevice;
- LPALCCAPTURESTART alcCaptureStart;
- LPALCCAPTURESTOP alcCaptureStop;
- LPALCCAPTURESAMPLES alcCaptureSamples;
- PFNALCSETTHREADCONTEXTPROC alcSetThreadContext;
- PFNALCGETTHREADCONTEXTPROC alcGetThreadContext;
- LPALENABLE alEnable;
- LPALDISABLE alDisable;
- LPALISENABLED alIsEnabled;
- LPALGETSTRING alGetString;
- LPALGETBOOLEANV alGetBooleanv;
- LPALGETINTEGERV alGetIntegerv;
- LPALGETFLOATV alGetFloatv;
- LPALGETDOUBLEV alGetDoublev;
- LPALGETBOOLEAN alGetBoolean;
- LPALGETINTEGER alGetInteger;
- LPALGETFLOAT alGetFloat;
- LPALGETDOUBLE alGetDouble;
- LPALGETERROR alGetError;
- LPALISEXTENSIONPRESENT alIsExtensionPresent;
- LPALGETPROCADDRESS alGetProcAddress;
- LPALGETENUMVALUE alGetEnumValue;
- LPALLISTENERF alListenerf;
- LPALLISTENER3F alListener3f;
- LPALLISTENERFV alListenerfv;
- LPALLISTENERI alListeneri;
- LPALLISTENER3I alListener3i;
- LPALLISTENERIV alListeneriv;
- LPALGETLISTENERF alGetListenerf;
- LPALGETLISTENER3F alGetListener3f;
- LPALGETLISTENERFV alGetListenerfv;
- LPALGETLISTENERI alGetListeneri;
- LPALGETLISTENER3I alGetListener3i;
- LPALGETLISTENERIV alGetListeneriv;
- LPALGENSOURCES alGenSources;
- LPALDELETESOURCES alDeleteSources;
- LPALISSOURCE alIsSource;
- LPALSOURCEF alSourcef;
- LPALSOURCE3F alSource3f;
- LPALSOURCEFV alSourcefv;
- LPALSOURCEI alSourcei;
- LPALSOURCE3I alSource3i;
- LPALSOURCEIV alSourceiv;
- LPALGETSOURCEF alGetSourcef;
- LPALGETSOURCE3F alGetSource3f;
- LPALGETSOURCEFV alGetSourcefv;
- LPALGETSOURCEI alGetSourcei;
- LPALGETSOURCE3I alGetSource3i;
- LPALGETSOURCEIV alGetSourceiv;
- LPALSOURCEPLAYV alSourcePlayv;
- LPALSOURCESTOPV alSourceStopv;
- LPALSOURCEREWINDV alSourceRewindv;
- LPALSOURCEPAUSEV alSourcePausev;
- LPALSOURCEPLAY alSourcePlay;
- LPALSOURCESTOP alSourceStop;
- LPALSOURCEREWIND alSourceRewind;
- LPALSOURCEPAUSE alSourcePause;
- LPALSOURCEQUEUEBUFFERS alSourceQueueBuffers;
- LPALSOURCEUNQUEUEBUFFERS alSourceUnqueueBuffers;
- LPALGENBUFFERS alGenBuffers;
- LPALDELETEBUFFERS alDeleteBuffers;
- LPALISBUFFER alIsBuffer;
- LPALBUFFERF alBufferf;
- LPALBUFFER3F alBuffer3f;
- LPALBUFFERFV alBufferfv;
- LPALBUFFERI alBufferi;
- LPALBUFFER3I alBuffer3i;
- LPALBUFFERIV alBufferiv;
- LPALGETBUFFERF alGetBufferf;
- LPALGETBUFFER3F alGetBuffer3f;
- LPALGETBUFFERFV alGetBufferfv;
- LPALGETBUFFERI alGetBufferi;
- LPALGETBUFFER3I alGetBuffer3i;
- LPALGETBUFFERIV alGetBufferiv;
- LPALBUFFERDATA alBufferData;
- LPALDOPPLERFACTOR alDopplerFactor;
- LPALDOPPLERVELOCITY alDopplerVelocity;
- LPALSPEEDOFSOUND alSpeedOfSound;
- LPALDISTANCEMODEL alDistanceModel;
- } DriverIface;
- extern DriverIface *DriverList;
- extern int DriverListSize;
- extern altss_t ThreadCtxDriver;
- typedef ATOMIC(DriverIface*) atomic_DriverIfacePtr;
- extern atomic_DriverIfacePtr CurrentCtxDriver;
- typedef struct PtrIntMap {
- ALvoid **keys;
- /* Shares memory with keys. */
- ALint *values;
- ALsizei size;
- ALsizei capacity;
- RWLock lock;
- } PtrIntMap;
- #define PTRINTMAP_STATIC_INITIALIZE { NULL, NULL, 0, 0, RWLOCK_STATIC_INITIALIZE }
- void InitPtrIntMap(PtrIntMap *map);
- void ResetPtrIntMap(PtrIntMap *map);
- ALenum InsertPtrIntMapEntry(PtrIntMap *map, ALvoid *key, ALint value);
- ALint RemovePtrIntMapKey(PtrIntMap *map, ALvoid *key);
- ALint LookupPtrIntMapKey(PtrIntMap *map, ALvoid *key);
- void InitALC(void);
- void ReleaseALC(void);
- enum LogLevel {
- LogLevel_None = 0,
- LogLevel_Error = 1,
- LogLevel_Warn = 2,
- LogLevel_Trace = 3,
- };
- extern enum LogLevel LogLevel;
- extern FILE *LogFile;
- #define TRACE(...) do { \
- if(LogLevel >= LogLevel_Trace) \
- { \
- fprintf(LogFile, "AL Router (II): " __VA_ARGS__); \
- fflush(LogFile); \
- } \
- } while(0)
- #define WARN(...) do { \
- if(LogLevel >= LogLevel_Warn) \
- { \
- fprintf(LogFile, "AL Router (WW): " __VA_ARGS__); \
- fflush(LogFile); \
- } \
- } while(0)
- #define ERR(...) do { \
- if(LogLevel >= LogLevel_Error) \
- { \
- fprintf(LogFile, "AL Router (EE): " __VA_ARGS__); \
- fflush(LogFile); \
- } \
- } while(0)
- #endif /* ROUTER_ROUTER_H */
|