|
|
@@ -1,752 +0,0 @@
|
|
|
-#include "loader.h"
|
|
|
-
|
|
|
-typedef void (*alProc)(void);
|
|
|
-
|
|
|
-//
|
|
|
-// Windows --------------------------------------------------------------------
|
|
|
-//
|
|
|
-#ifdef _WIN32
|
|
|
-#define WIN32_LEAN_AND_MEAN 1
|
|
|
-#include <windows.h>
|
|
|
-
|
|
|
-static HMODULE libal;
|
|
|
-
|
|
|
-static int open_libal(void) {
|
|
|
-
|
|
|
- libal = LoadLibraryA("OpenAL32.dll");
|
|
|
- if (libal == NULL) {
|
|
|
- return -1;
|
|
|
- }
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-static void close_libal(void) {
|
|
|
-
|
|
|
- FreeLibrary(libal);
|
|
|
-}
|
|
|
-
|
|
|
-static alProc get_proc(const char *proc) {
|
|
|
-
|
|
|
- return (alProc) GetProcAddress(libal, proc);
|
|
|
-}
|
|
|
-//
|
|
|
-// Mac --------------------------------------------------------------------
|
|
|
-//
|
|
|
-#elif defined(__APPLE__)
|
|
|
-#include <dlfcn.h>
|
|
|
-
|
|
|
-static void *libal;
|
|
|
-
|
|
|
-static int open_libal(void) {
|
|
|
-
|
|
|
- libal = dlopen("/System/Library/Frameworks/OpenAL.framework/OpenAL", RTLD_LAZY | RTLD_GLOBAL);
|
|
|
- if (!libal) {
|
|
|
- return -1;
|
|
|
- }
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-static void close_libal(void) {
|
|
|
-
|
|
|
- dlclose(libal);
|
|
|
-}
|
|
|
-
|
|
|
-static void* get_proc(const char *proc) {
|
|
|
-
|
|
|
- void* res;
|
|
|
- *(void **)(&res) = dlsym(libal, proc);
|
|
|
- return res;
|
|
|
-}
|
|
|
-//
|
|
|
-// Linux --------------------------------------------------------------------
|
|
|
-//
|
|
|
-#else
|
|
|
-#include <dlfcn.h>
|
|
|
-
|
|
|
-static void *libal;
|
|
|
-
|
|
|
-static char* lib_names[] = {
|
|
|
- "libopenal.so",
|
|
|
- "libopenal.so.1",
|
|
|
- NULL
|
|
|
-};
|
|
|
-
|
|
|
-static int open_libal(void) {
|
|
|
-
|
|
|
- int i = 0;
|
|
|
- while (lib_names[i] != NULL) {
|
|
|
- libal = dlopen(lib_names[i], RTLD_LAZY | RTLD_GLOBAL);
|
|
|
- if (libal != NULL) {
|
|
|
- dlerror(); // clear errors
|
|
|
- return 0;
|
|
|
- }
|
|
|
- i++;
|
|
|
- }
|
|
|
- return -1;
|
|
|
-}
|
|
|
-
|
|
|
-static void close_libal(void) {
|
|
|
-
|
|
|
- dlclose(libal);
|
|
|
-}
|
|
|
-
|
|
|
-static alProc get_proc(const char *proc) {
|
|
|
-
|
|
|
- return dlsym(libal, proc);
|
|
|
-}
|
|
|
-#endif
|
|
|
-
|
|
|
-// Prototypes of local functions
|
|
|
-static void load_procs(void);
|
|
|
-static void load_efx_procs(void);
|
|
|
-
|
|
|
-
|
|
|
-// Pointers to functions loaded from shared library
|
|
|
-LPALENABLE palEnable;
|
|
|
-LPALDISABLE palDisable;
|
|
|
-LPALISENABLED palIsEnabled;
|
|
|
-LPALGETSTRING palGetString;
|
|
|
-LPALGETBOOLEANV palGetBooleanv;
|
|
|
-LPALGETINTEGERV palGetIntegerv;
|
|
|
-LPALGETFLOATV palGetFloatv;
|
|
|
-LPALGETDOUBLEV palGetDoublev;
|
|
|
-LPALGETBOOLEAN palGetBoolean;
|
|
|
-LPALGETINTEGER palGetInteger;
|
|
|
-LPALGETFLOAT palGetFloat;
|
|
|
-LPALGETDOUBLE palGetDouble;
|
|
|
-LPALGETERROR palGetError;
|
|
|
-LPALISEXTENSIONPRESENT palIsExtensionPresent;
|
|
|
-LPALGETPROCADDRESS palGetProcAddress;
|
|
|
-LPALGETENUMVALUE palGetEnumValue;
|
|
|
-LPALLISTENERF palListenerf;
|
|
|
-LPALLISTENER3F palListener3f;
|
|
|
-LPALLISTENERFV palListenerfv;
|
|
|
-LPALLISTENERI palListeneri;
|
|
|
-LPALLISTENER3I palListener3i;
|
|
|
-LPALLISTENERIV palListeneriv;
|
|
|
-LPALGETLISTENERF palGetListenerf;
|
|
|
-LPALGETLISTENER3F palGetListener3f;
|
|
|
-LPALGETLISTENERFV palGetListenerfv;
|
|
|
-LPALGETLISTENERI palGetListeneri;
|
|
|
-LPALGETLISTENER3I palGetListener3i;
|
|
|
-LPALGETLISTENERIV palGetListeneriv;
|
|
|
-LPALGENSOURCES palGenSources;
|
|
|
-LPALDELETESOURCES palDeleteSources;
|
|
|
-LPALISSOURCE palIsSource;
|
|
|
-LPALSOURCEF palSourcef;
|
|
|
-LPALSOURCE3F palSource3f;
|
|
|
-LPALSOURCEFV palSourcefv;
|
|
|
-LPALSOURCEI palSourcei;
|
|
|
-LPALSOURCE3I palSource3i;
|
|
|
-LPALSOURCEIV palSourceiv;
|
|
|
-LPALGETSOURCEF palGetSourcef;
|
|
|
-LPALGETSOURCE3F palGetSource3f;
|
|
|
-LPALGETSOURCEFV palGetSourcefv;
|
|
|
-LPALGETSOURCEI palGetSourcei;
|
|
|
-LPALGETSOURCE3I palGetSource3i;
|
|
|
-LPALGETSOURCEIV palGetSourceiv;
|
|
|
-LPALSOURCEPLAYV palSourcePlayv;
|
|
|
-LPALSOURCESTOPV palSourceStopv;
|
|
|
-LPALSOURCEREWINDV palSourceRewindv;
|
|
|
-LPALSOURCEPAUSEV palSourcePausev;
|
|
|
-LPALSOURCEPLAY palSourcePlay;
|
|
|
-LPALSOURCESTOP palSourceStop;
|
|
|
-LPALSOURCEREWIND palSourceRewind;
|
|
|
-LPALSOURCEPAUSE palSourcePause;
|
|
|
-LPALSOURCEQUEUEBUFFERS palSourceQueueBuffers;
|
|
|
-LPALSOURCEUNQUEUEBUFFERS palSourceUnqueueBuffers;
|
|
|
-LPALGENBUFFERS palGenBuffers;
|
|
|
-LPALDELETEBUFFERS palDeleteBuffers;
|
|
|
-LPALISBUFFER palIsBuffer;
|
|
|
-LPALBUFFERDATA palBufferData;
|
|
|
-LPALBUFFERF palBufferf;
|
|
|
-LPALBUFFER3F palBuffer3f;
|
|
|
-LPALBUFFERFV palBufferfv;
|
|
|
-LPALBUFFERI palBufferi;
|
|
|
-LPALBUFFER3I palBuffer3i;
|
|
|
-LPALBUFFERIV palBufferiv;
|
|
|
-LPALGETBUFFERF palGetBufferf;
|
|
|
-LPALGETBUFFER3F palGetBuffer3f;
|
|
|
-LPALGETBUFFERFV palGetBufferfv;
|
|
|
-LPALGETBUFFERI palGetBufferi;
|
|
|
-LPALGETBUFFER3I palGetBuffer3i;
|
|
|
-LPALGETBUFFERIV palGetBufferiv;
|
|
|
-LPALDOPPLERFACTOR palDopplerFactor;
|
|
|
-LPALDOPPLERVELOCITY palDopplerVelocity;
|
|
|
-LPALSPEEDOFSOUND palSpeedOfSound;
|
|
|
-LPALDISTANCEMODEL palDistanceModel;
|
|
|
-
|
|
|
-LPALCCREATECONTEXT palcCreateContext;
|
|
|
-LPALCMAKECONTEXTCURRENT palcMakeContextCurrent;
|
|
|
-LPALCPROCESSCONTEXT palcProcessContext;
|
|
|
-LPALCSUSPENDCONTEXT palcSuspendContext;
|
|
|
-LPALCDESTROYCONTEXT palcDestroyContext;
|
|
|
-LPALCGETCURRENTCONTEXT palcGetCurrentContext;
|
|
|
-LPALCGETCONTEXTSDEVICE palcGetContextsDevice;
|
|
|
-LPALCOPENDEVICE palcOpenDevice;
|
|
|
-LPALCCLOSEDEVICE palcCloseDevice;
|
|
|
-LPALCGETERROR palcGetError;
|
|
|
-LPALCISEXTENSIONPRESENT palcIsExtensionPresent;
|
|
|
-LPALCGETPROCADDRESS palcGetProcAddress;
|
|
|
-LPALCGETENUMVALUE palcGetEnumValue;
|
|
|
-LPALCGETSTRING palcGetString;
|
|
|
-LPALCGETINTEGERV palcGetIntegerv;
|
|
|
-LPALCCAPTUREOPENDEVICE palcCaptureOpenDevice;
|
|
|
-LPALCCAPTURECLOSEDEVICE palcCaptureCloseDevice;
|
|
|
-LPALCCAPTURESTART palcCaptureStart;
|
|
|
-LPALCCAPTURESTOP palcCaptureStop;
|
|
|
-LPALCCAPTURESAMPLES palcCaptureSamples;
|
|
|
-
|
|
|
-// Pointers to EFX extension functions
|
|
|
-LPALGENEFFECTS palGenEffects;
|
|
|
-LPALDELETEEFFECTS palDeleteEffects;
|
|
|
-LPALISEFFECT palIsEffect;
|
|
|
-LPALEFFECTI palEffecti;
|
|
|
-LPALEFFECTIV palEffectiv;
|
|
|
-LPALEFFECTF palEffectf;
|
|
|
-LPALEFFECTFV palEffectfv;
|
|
|
-LPALGETEFFECTI palGetEffecti;
|
|
|
-LPALGETEFFECTIV palGetEffectiv;
|
|
|
-LPALGETEFFECTF palGetEffectf;
|
|
|
-LPALGETEFFECTFV palGetEffectfv;
|
|
|
-
|
|
|
-LPALGENFILTERS palGenFilters;
|
|
|
-LPALDELETEFILTERS palDeleteFilters;
|
|
|
-LPALISFILTER palIsFilter;
|
|
|
-LPALFILTERI palFilteri;
|
|
|
-LPALFILTERIV palFilteriv;
|
|
|
-LPALFILTERF palFilterf;
|
|
|
-LPALFILTERFV palFilterfv;
|
|
|
-LPALGETFILTERI palGetFilteri;
|
|
|
-LPALGETFILTERIV palGetFilteriv;
|
|
|
-LPALGETFILTERF palGetFilterf;
|
|
|
-LPALGETFILTERFV palGetFilterfv;
|
|
|
-
|
|
|
-LPALGENAUXILIARYEFFECTSLOTS palGenAuxiliaryEffectsSlots;
|
|
|
-LPALDELETEAUXILIARYEFFECTSLOTS palDeleteAuxiliaryEffectsSlots;
|
|
|
-LPALISAUXILIARYEFFECTSLOT palIsAuxiliaryEffectSlot;
|
|
|
-LPALAUXILIARYEFFECTSLOTI palAuxiliaryEffectSloti;
|
|
|
-LPALAUXILIARYEFFECTSLOTIV palAuxiliaryEffectSlotiv;
|
|
|
-LPALAUXILIARYEFFECTSLOTF palAuxiliaryEffectSlotf;
|
|
|
-LPALAUXILIARYEFFECTSLOTFV palAuxiliaryEffectSlotfv;
|
|
|
-LPALGETAUXILIARYEFFECTSLOTI palGetAuxiliaryEffectSloti;
|
|
|
-LPALGETAUXILIARYEFFECTSLOTIV palGetAuxiliaryEffectSlotif;
|
|
|
-LPALGETAUXILIARYEFFECTSLOTF palGetAuxiliaryEffectSlotf;
|
|
|
-LPALGETAUXILIARYEFFECTSLOTFV palGetAuxiliaryEffectSlotfv;
|
|
|
-
|
|
|
-
|
|
|
-int al_load() {
|
|
|
-
|
|
|
- int res = open_libal();
|
|
|
- if (res) {
|
|
|
- return res;
|
|
|
- }
|
|
|
- load_procs();
|
|
|
- load_efx_procs();
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-static void load_procs(void) {
|
|
|
- palEnable = (LPALENABLE)get_proc("alEnable");
|
|
|
- palDisable = (LPALDISABLE)get_proc("alDisable");
|
|
|
- palIsEnabled = (LPALISENABLED)get_proc("alIsEnabled");
|
|
|
- palGetString = (LPALGETSTRING)get_proc("alGetString");
|
|
|
- palGetBooleanv = (LPALGETBOOLEANV)get_proc("alGetBooleanv");
|
|
|
- palGetIntegerv = (LPALGETINTEGERV)get_proc("alGetIntegerv");
|
|
|
- palGetFloatv = (LPALGETFLOATV)get_proc("alGetFloatv");
|
|
|
- palGetDoublev = (LPALGETDOUBLEV)get_proc("alGetDoublev");
|
|
|
- palGetBoolean = (LPALGETBOOLEAN)get_proc("alGetBoolean");
|
|
|
- palGetInteger = (LPALGETINTEGER)get_proc("alGetInteger");
|
|
|
- palGetFloat = (LPALGETFLOAT)get_proc("alGetFloat");
|
|
|
- palGetDouble = (LPALGETDOUBLE)get_proc("alGetDouble");
|
|
|
- palGetError = (LPALGETERROR)get_proc("alGetError");
|
|
|
- palIsExtensionPresent = (LPALISEXTENSIONPRESENT)get_proc("alIsExtensionPresent");
|
|
|
- palGetProcAddress = (LPALGETPROCADDRESS)get_proc("alGetProcAddress");
|
|
|
- palGetEnumValue = (LPALGETENUMVALUE)get_proc("alGetEnumValue");
|
|
|
- palListenerf = (LPALLISTENERF)get_proc("alListeners");
|
|
|
- palListener3f = (LPALLISTENER3F)get_proc("alListener3f");
|
|
|
- palListenerfv = (LPALLISTENERFV)get_proc("alListenerfv");
|
|
|
- palListeneri = (LPALLISTENERI)get_proc("alListeneri");
|
|
|
- palListener3i = (LPALLISTENER3I)get_proc("alListener3i");
|
|
|
- palListeneriv = (LPALLISTENERIV)get_proc("alListeneriv");
|
|
|
- palGetListenerf = (LPALGETLISTENERF)get_proc("alGetListenerf");
|
|
|
- palGetListener3f = (LPALGETLISTENER3F)get_proc("alGetListener3f");
|
|
|
- palGetListenerfv = (LPALGETLISTENERFV)get_proc("alGetListenerfv");
|
|
|
- palGetListeneri = (LPALGETLISTENERI)get_proc("alGetListeneri");
|
|
|
- palGetListener3i = (LPALGETLISTENER3I)get_proc("alGetListener3i");
|
|
|
- palGetListeneriv = (LPALGETLISTENERIV)get_proc("alGetListeneriv");
|
|
|
- palGenSources = (LPALGENSOURCES)get_proc("alGenSources");
|
|
|
- palDeleteSources = (LPALDELETESOURCES)get_proc("alDeleteSources");
|
|
|
- palIsSource = (LPALISSOURCE)get_proc("alIsSource");
|
|
|
- palSourcef = (LPALSOURCEF)get_proc("alSourcef");
|
|
|
- palSource3f = (LPALSOURCE3F)get_proc("alSource3f");
|
|
|
- palSourcefv = (LPALSOURCEFV)get_proc("alSourcefv");
|
|
|
- palSourcei = (LPALSOURCEI)get_proc("alSourcei");
|
|
|
- palSource3i = (LPALSOURCE3I)get_proc("alSource3i");
|
|
|
- palSourceiv = (LPALSOURCEIV)get_proc(" alSourceiv");
|
|
|
- palGetSourcef = (LPALGETSOURCEF)get_proc("alGetSourcef");
|
|
|
- palGetSource3f = (LPALGETSOURCE3F)get_proc("alGetSource3f");
|
|
|
- palGetSourcefv = (LPALGETSOURCEFV)get_proc("alGetSourcefv");
|
|
|
- palGetSourcei = (LPALGETSOURCEI)get_proc("alGetSourcei");
|
|
|
- palGetSource3i = (LPALGETSOURCE3I)get_proc("alGetSource3i");
|
|
|
- palGetSourceiv = (LPALGETSOURCEIV)get_proc("alGetSourceiv");
|
|
|
- palSourcePlayv = (LPALSOURCEPLAYV)get_proc("alSourcePlayv");
|
|
|
- palSourceStopv = (LPALSOURCESTOPV)get_proc("alSourceStopv");
|
|
|
- palSourceRewindv = (LPALSOURCEREWINDV)get_proc("alSourceRewindv");
|
|
|
- palSourcePausev = (LPALSOURCEPAUSEV)get_proc("alSourcePausev");
|
|
|
- palSourcePlay = (LPALSOURCEPLAY)get_proc("alSourcePlay");
|
|
|
- palSourceStop = (LPALSOURCESTOP)get_proc("alSourceStop");
|
|
|
- palSourceRewind = (LPALSOURCEREWIND)get_proc("alSourceRewind");
|
|
|
- palSourcePause = (LPALSOURCEPAUSE)get_proc("alSourcePause");
|
|
|
- palSourceQueueBuffers = (LPALSOURCEQUEUEBUFFERS)get_proc("alSourceQueueBuffers");
|
|
|
- palSourceUnqueueBuffers = (LPALSOURCEUNQUEUEBUFFERS)get_proc("alSourceUnqueueBuffers");
|
|
|
- palGenBuffers = (LPALGENBUFFERS)get_proc("alGenBuffers");
|
|
|
- palDeleteBuffers = (LPALDELETEBUFFERS)get_proc("alDeleteBuffers");
|
|
|
- palIsBuffer = (LPALISBUFFER)get_proc("alIsBuffer");
|
|
|
- palBufferData = (LPALBUFFERDATA)get_proc("alBufferData");
|
|
|
- palBufferf = (LPALBUFFERF)get_proc("alBufferf");
|
|
|
- palBuffer3f = (LPALBUFFER3F)get_proc("alBuffer3f");
|
|
|
- palBufferfv = (LPALBUFFERFV)get_proc("alBufferfv");
|
|
|
- palBufferi = (LPALBUFFERI)get_proc("alBufferi");
|
|
|
- palBuffer3i = (LPALBUFFER3I)get_proc("alBuffer3i");
|
|
|
- palBufferiv = (LPALBUFFERIV)get_proc("alBufferiv");
|
|
|
- palGetBufferf = (LPALGETBUFFERF)get_proc("alGetBufferf");
|
|
|
- palGetBuffer3f = (LPALGETBUFFER3F)get_proc("alGetBuffer3f");
|
|
|
- palGetBufferfv = (LPALGETBUFFERFV)get_proc("alGetBufferfv");
|
|
|
- palGetBufferi = (LPALGETBUFFERI)get_proc("alGetBufferi");
|
|
|
- palGetBuffer3i = (LPALGETBUFFER3I)get_proc("alGetBuffer3i");
|
|
|
- palGetBufferiv = (LPALGETBUFFERIV)get_proc("alGetBufferiv");
|
|
|
- palDopplerFactor = (LPALDOPPLERFACTOR)get_proc("alDopplerFactor");
|
|
|
- palDopplerVelocity = (LPALDOPPLERVELOCITY)get_proc("alDopplerVelocity");
|
|
|
- palSpeedOfSound = (LPALSPEEDOFSOUND)get_proc("alSpeedOfSound");
|
|
|
- palDistanceModel = (LPALDISTANCEMODEL)get_proc("alDistanceModel");
|
|
|
-
|
|
|
- palcCreateContext = (LPALCCREATECONTEXT)get_proc("alcCreateContext");
|
|
|
- palcMakeContextCurrent = (LPALCMAKECONTEXTCURRENT)get_proc("alcMakeContextCurrent");
|
|
|
- palcProcessContext = (LPALCPROCESSCONTEXT)get_proc("alcProcessContext");
|
|
|
- palcSuspendContext = (LPALCSUSPENDCONTEXT)get_proc("alcSuspendContext");
|
|
|
- palcDestroyContext = (LPALCDESTROYCONTEXT)get_proc("alcDestroyContext");
|
|
|
- palcGetCurrentContext = (LPALCGETCURRENTCONTEXT)get_proc("alcGetCurrentContext");
|
|
|
- palcGetContextsDevice = (LPALCGETCONTEXTSDEVICE)get_proc("alcGetContextsDevice");
|
|
|
- palcOpenDevice = (LPALCOPENDEVICE)get_proc("alcOpenDevice");
|
|
|
- palcCloseDevice = (LPALCCLOSEDEVICE)get_proc("alcCloseDevice");
|
|
|
- palcGetError = (LPALCGETERROR)get_proc("alcGetError");
|
|
|
- palcIsExtensionPresent = (LPALCISEXTENSIONPRESENT)get_proc("alcIsExtensionPresent");
|
|
|
- palcGetProcAddress = (LPALCGETPROCADDRESS)get_proc("alcGetProcAddress");
|
|
|
- palcGetEnumValue = (LPALCGETENUMVALUE)get_proc("alcGetEnumValue");
|
|
|
- palcGetString = (LPALCGETSTRING)get_proc("alcGetString");
|
|
|
- palcGetIntegerv = (LPALCGETINTEGERV)get_proc("alcGetIntegerv");
|
|
|
- palcCaptureOpenDevice = (LPALCCAPTUREOPENDEVICE)get_proc("alcCaptureOpenDevice");
|
|
|
- palcCaptureCloseDevice = (LPALCCAPTURECLOSEDEVICE)get_proc("alcCaptureCloseDevice");
|
|
|
- palcCaptureStart = (LPALCCAPTURESTART)get_proc("alcCaptureStart");
|
|
|
- palcCaptureStop = (LPALCCAPTURESTOP)get_proc("alcCaptureStop");
|
|
|
- palcCaptureSamples = (LPALCCAPTURESAMPLES)get_proc("alcCaptureSamples");
|
|
|
-}
|
|
|
-
|
|
|
-static void load_efx_procs(void) {
|
|
|
-
|
|
|
- palGenEffects = palGetProcAddress("alGenEffects");
|
|
|
- palDeleteEffects = palGetProcAddress("alDeleteEffects");
|
|
|
- palIsEffect = palGetProcAddress("alIsEffect");
|
|
|
- palEffecti = palGetProcAddress("alEffecti");
|
|
|
- palEffectiv = palGetProcAddress("alEffectiv");
|
|
|
- palEffectf = palGetProcAddress("alEffectf");
|
|
|
- palEffectfv = palGetProcAddress("alEffectfv");
|
|
|
- palGetEffecti = palGetProcAddress("alGetEffectiv");
|
|
|
- palGetEffectiv = palGetProcAddress("alGetEffectiv");
|
|
|
- palGetEffectf = palGetProcAddress("alGetEffectf");
|
|
|
- palGetEffectfv = palGetProcAddress("alGetEffectfv");
|
|
|
-
|
|
|
- palGenFilters = palGetProcAddress("alGenFilters");
|
|
|
- palDeleteFilters = palGetProcAddress("alDeleteFilters");
|
|
|
- palIsFilter = palGetProcAddress("alIsFilter");
|
|
|
- palFilteri = palGetProcAddress("alFilteri");
|
|
|
- palFilteriv = palGetProcAddress("alFilteriv");
|
|
|
- palFilterf = palGetProcAddress("alFilterf");
|
|
|
- palFilterfv = palGetProcAddress("alFilterfv");
|
|
|
- palGetFilteri = palGetProcAddress("GetFilteri");
|
|
|
- palGetFilteriv = palGetProcAddress("GetFilteriv");
|
|
|
- palGetFilterf = palGetProcAddress("GetFilterf");
|
|
|
- palGetFilterfv = palGetProcAddress("GetFilterfv");
|
|
|
-
|
|
|
- palGenAuxiliaryEffectsSlots = palGetProcAddress("alGenAuxiliaryEffectSlots");
|
|
|
- palDeleteAuxiliaryEffectsSlots = palGetProcAddress("alDeleteAuxiliaryEffectsSlots");
|
|
|
- palIsAuxiliaryEffectSlot = palGetProcAddress("alIsAuxiliaryEffectSlot");
|
|
|
- palAuxiliaryEffectSloti = palGetProcAddress("alAuxiliaryEffectSloti");
|
|
|
- palAuxiliaryEffectSlotiv = palGetProcAddress("alAuxiliaryEffectSlotiv");
|
|
|
- palAuxiliaryEffectSlotf = palGetProcAddress("alAuxiliaryEffectSlotf");
|
|
|
- palAuxiliaryEffectSlotfv = palGetProcAddress("alAuxiliaryEffectSlotfv");
|
|
|
- palGetAuxiliaryEffectSloti = palGetProcAddress("alGetAuxiliaryEffectSloti");
|
|
|
- palGetAuxiliaryEffectSlotif = palGetProcAddress("alGetAuxiliaryEffectSlotif");
|
|
|
- palGetAuxiliaryEffectSlotf = palGetProcAddress("alGetAuxiliaryEffectSlotf");
|
|
|
- palGetAuxiliaryEffectSlotfv = palGetProcAddress("alGetAuxiliaryEffectSlotfv");
|
|
|
-}
|
|
|
-
|
|
|
-//
|
|
|
-// Go code cannot call C function pointers directly
|
|
|
-// The following C functions call the corresponding function pointers and can be
|
|
|
-// called by Go code.
|
|
|
-//
|
|
|
-
|
|
|
-//
|
|
|
-// alc.h
|
|
|
-//
|
|
|
-ALCcontext* _alcCreateContext(ALCdevice *device, const ALCint* attrlist) {
|
|
|
- return palcCreateContext(device, attrlist);
|
|
|
-}
|
|
|
-
|
|
|
-ALCboolean _alcMakeContextCurrent(ALCcontext *context) {
|
|
|
- return palcMakeContextCurrent(context);
|
|
|
-}
|
|
|
-
|
|
|
-void _alcProcessContext(ALCcontext *context) {
|
|
|
- palcProcessContext(context);
|
|
|
-}
|
|
|
-
|
|
|
-void _alcSuspendContext(ALCcontext *context) {
|
|
|
- palcSuspendContext(context);
|
|
|
-}
|
|
|
-
|
|
|
-void _alcDestroyContext(ALCcontext *context) {
|
|
|
- palcDestroyContext(context);
|
|
|
-}
|
|
|
-
|
|
|
-ALCcontext* _alcGetCurrentContext(void) {
|
|
|
- return palcGetCurrentContext();
|
|
|
-}
|
|
|
-
|
|
|
-ALCdevice* _alcGetContextsDevice(ALCcontext *context) {
|
|
|
- return palcGetContextsDevice(context);
|
|
|
-}
|
|
|
-
|
|
|
-ALCdevice* _alcOpenDevice(const ALCchar *devicename) {
|
|
|
- return palcOpenDevice(devicename);
|
|
|
-}
|
|
|
-
|
|
|
-ALCboolean _alcCloseDevice(ALCdevice *device) {
|
|
|
- return palcCloseDevice(device);
|
|
|
-}
|
|
|
-
|
|
|
-ALCenum _alcGetError(ALCdevice *device) {
|
|
|
- return palcGetError(device);
|
|
|
-}
|
|
|
-
|
|
|
-ALCboolean _alcIsExtensionPresent(ALCdevice *device, const ALCchar *extname) {
|
|
|
- return palcIsExtensionPresent(device, extname);
|
|
|
-}
|
|
|
-
|
|
|
-void* _alcGetProcAddress(ALCdevice *device, const ALCchar *funcname) {
|
|
|
- return palcGetProcAddress(device, funcname);
|
|
|
-}
|
|
|
-
|
|
|
-ALCenum _alcGetEnumValue(ALCdevice *device, const ALCchar *enumname) {
|
|
|
- return palcGetEnumValue(device, enumname);
|
|
|
-}
|
|
|
-
|
|
|
-const ALCchar* _alcGetString(ALCdevice *device, ALCenum param) {
|
|
|
- return palcGetString(device, param);
|
|
|
-}
|
|
|
-
|
|
|
-void _alcGetIntegerv(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *values) {
|
|
|
- return palcGetIntegerv(device, param, size, values);
|
|
|
-}
|
|
|
-
|
|
|
-ALCdevice* _alcCaptureOpenDevice(const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize) {
|
|
|
- return palcCaptureOpenDevice(devicename, frequency, format, buffersize);
|
|
|
-}
|
|
|
-
|
|
|
-ALCboolean _alcCaptureCloseDevice(ALCdevice *device) {
|
|
|
- return palcCaptureCloseDevice(device);
|
|
|
-}
|
|
|
-
|
|
|
-void _alcCaptureStart(ALCdevice *device) {
|
|
|
- palcCaptureStart(device);
|
|
|
-}
|
|
|
-
|
|
|
-void _alcCaptureStop(ALCdevice *device) {
|
|
|
- palcCaptureStop(device);
|
|
|
-}
|
|
|
-
|
|
|
-void _alcCaptureSamples(ALCdevice *device, ALCvoid *buffer, ALCsizei samples) {
|
|
|
- palcCaptureSamples(device, buffer, samples);
|
|
|
-}
|
|
|
-
|
|
|
-//
|
|
|
-// al.h
|
|
|
-//
|
|
|
-void _alEnable(ALenum capability) {
|
|
|
- palEnable(capability);
|
|
|
-}
|
|
|
-
|
|
|
-void _alDisable(ALenum capability) {
|
|
|
- palDisable(capability);
|
|
|
-}
|
|
|
-
|
|
|
-ALboolean _alIsEnabled(ALenum capability) {
|
|
|
- return palIsEnabled(capability);
|
|
|
-}
|
|
|
-
|
|
|
-const ALchar* _alGetString(ALenum param) {
|
|
|
- return palGetString(param);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetBooleanv(ALenum param, ALboolean *values) {
|
|
|
- palGetBooleanv(param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetIntegerv(ALenum param, ALint *values) {
|
|
|
- palGetIntegerv(param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetFloatv(ALenum param, ALfloat *values) {
|
|
|
- palGetFloatv(param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetDoublev(ALenum param, ALdouble *values) {
|
|
|
- palGetDoublev(param, values);
|
|
|
-}
|
|
|
-
|
|
|
-ALboolean _alGetBoolean(ALenum param) {
|
|
|
- return palGetBoolean(param);
|
|
|
-}
|
|
|
-
|
|
|
-ALint _alGetInteger(ALenum param) {
|
|
|
- return palGetInteger(param);
|
|
|
-}
|
|
|
-
|
|
|
-ALfloat _alGetFloat(ALenum param) {
|
|
|
- return palGetFloat(param);
|
|
|
-}
|
|
|
-
|
|
|
-ALdouble _alGetDouble(ALenum param) {
|
|
|
- return palGetDouble(param);
|
|
|
-}
|
|
|
-
|
|
|
-ALenum _alGetError(void) {
|
|
|
- return palGetError();
|
|
|
-}
|
|
|
-
|
|
|
-ALboolean _alIsExtensionPresent(const ALchar *extname) {
|
|
|
- return palIsExtensionPresent(extname);
|
|
|
-}
|
|
|
-
|
|
|
-void* _alGetProcAddress(const ALchar *fname) {
|
|
|
- return palGetProcAddress(fname);
|
|
|
-}
|
|
|
-
|
|
|
-ALenum _alGetEnumValue(const ALchar *ename) {
|
|
|
- return palGetEnumValue(ename);
|
|
|
-}
|
|
|
-
|
|
|
-void _alListenerf(ALenum param, ALfloat value) {
|
|
|
- palListenerf(param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alListener3f(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3) {
|
|
|
- palListener3f(param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alListenerfv(ALenum param, const ALfloat *values) {
|
|
|
- palListenerfv(param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alListeneri(ALenum param, ALint value) {
|
|
|
- palListeneri(param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alListener3i(ALenum param, ALint value1, ALint value2, ALint value3) {
|
|
|
- palListener3i(param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alListeneriv(ALenum param, const ALint *values) {
|
|
|
- palListeneriv(param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetListenerf(ALenum param, ALfloat *value) {
|
|
|
- palGetListenerf(param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetListener3f(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3) {
|
|
|
- palGetListener3f(param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetListenerfv(ALenum param, ALfloat *values) {
|
|
|
- palGetListenerfv(param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetListeneri(ALenum param, ALint *value) {
|
|
|
- palGetListeneri(param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetListener3i(ALenum param, ALint *value1, ALint *value2, ALint *value3) {
|
|
|
- palGetListener3i(param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetListeneriv(ALenum param, ALint *values) {
|
|
|
- palGetListeneriv(param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGenSources(ALsizei n, ALuint *sources) {
|
|
|
- palGenSources(n, sources);
|
|
|
-}
|
|
|
-
|
|
|
-void _alDeleteSources(ALsizei n, const ALuint *sources) {
|
|
|
- palDeleteSources(n, sources);
|
|
|
-}
|
|
|
-
|
|
|
-ALboolean _alIsSource(ALuint source) {
|
|
|
- return palIsSource(source);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourcef(ALuint source, ALenum param, ALfloat value) {
|
|
|
- palSourcef(source, param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSource3f(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3) {
|
|
|
- palSource3f(source, param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourcefv(ALuint source, ALenum param, const ALfloat *values) {
|
|
|
- palSourcefv(source, param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourcei(ALuint source, ALenum param, ALint value) {
|
|
|
- palSourcei(source, param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSource3i(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3) {
|
|
|
- palSource3i(source, param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourceiv(ALuint source, ALenum param, const ALint *values) {
|
|
|
- palSourceiv(source, param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetSourcef(ALuint source, ALenum param, ALfloat *value) {
|
|
|
- palGetSourcef(source, param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetSource3f(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3) {
|
|
|
- palGetSource3f(source, param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetSourcefv(ALuint source, ALenum param, ALfloat *values) {
|
|
|
- palGetSourcefv(source, param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetSourcei(ALuint source, ALenum param, ALint *value) {
|
|
|
- palGetSourcei(source, param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetSource3i(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3) {
|
|
|
- palGetSource3i(source, param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetSourceiv(ALuint source, ALenum param, ALint *values) {
|
|
|
- palGetSourceiv(source, param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourcePlayv(ALsizei n, const ALuint *sources) {
|
|
|
- palSourcePlayv(n, sources);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourceStopv(ALsizei n, const ALuint *sources) {
|
|
|
- palSourceStopv(n, sources);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourceRewindv(ALsizei n, const ALuint *sources) {
|
|
|
- palSourceRewindv(n, sources);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourcePausev(ALsizei n, const ALuint *sources) {
|
|
|
- palSourcePausev(n, sources);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourcePlay(ALuint source) {
|
|
|
- palSourcePlay(source);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourceStop(ALuint source) {
|
|
|
- palSourceStop(source);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourceRewind(ALuint source) {
|
|
|
- palSourceRewind(source);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourcePause(ALuint source) {
|
|
|
- palSourcePause(source);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourceQueueBuffers(ALuint source, ALsizei nb, const ALuint *buffers) {
|
|
|
- palSourceQueueBuffers(source, nb, buffers);
|
|
|
-}
|
|
|
-
|
|
|
-void _alSourceUnqueueBuffers(ALuint source, ALsizei nb, ALuint *buffers) {
|
|
|
- palSourceUnqueueBuffers(source, nb, buffers);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGenBuffers(ALsizei n, ALuint *buffers) {
|
|
|
- palGenBuffers(n, buffers);
|
|
|
-}
|
|
|
-
|
|
|
-void _alDeleteBuffers(ALsizei n, const ALuint *buffers) {
|
|
|
- palDeleteBuffers(n, buffers);
|
|
|
-}
|
|
|
-
|
|
|
-ALboolean _alIsBuffer(ALuint buffer) {
|
|
|
- return palIsBuffer(buffer);
|
|
|
-}
|
|
|
-
|
|
|
-void _alBufferData(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq) {
|
|
|
- palBufferData(buffer, format, data, size, freq);
|
|
|
-}
|
|
|
-
|
|
|
-void _alBufferf(ALuint buffer, ALenum param, ALfloat value) {
|
|
|
- palBufferf(buffer, param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alBuffer3f(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3) {
|
|
|
- palBuffer3f(buffer, param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alBufferfv(ALuint buffer, ALenum param, const ALfloat *values) {
|
|
|
- palBufferfv(buffer, param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alBufferi(ALuint buffer, ALenum param, ALint value) {
|
|
|
- palBufferi(buffer, param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alBuffer3i(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3) {
|
|
|
- palBuffer3i(buffer, param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alBufferiv(ALuint buffer, ALenum param, const ALint *values) {
|
|
|
- palBufferiv(buffer, param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetBufferf(ALuint buffer, ALenum param, ALfloat *value) {
|
|
|
- palGetBufferf(buffer, param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetBuffer3f(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3) {
|
|
|
- palGetBuffer3f(buffer, param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetBufferfv(ALuint buffer, ALenum param, ALfloat *values) {
|
|
|
- palGetBufferfv(buffer, param, values);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetBufferi(ALuint buffer, ALenum param, ALint *value) {
|
|
|
- palGetBufferi(buffer, param, value);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetBuffer3i(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3) {
|
|
|
- palGetBuffer3i(buffer, param, value1, value2, value3);
|
|
|
-}
|
|
|
-
|
|
|
-void _alGetBufferiv(ALuint buffer, ALenum param, ALint *values) {
|
|
|
- palGetBufferiv(buffer, param, values);
|
|
|
-}
|
|
|
-
|