aboutsummaryrefslogtreecommitdiffstats
path: root/router/al.cpp
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2023-05-03 16:17:49 +0200
committerSven Gothel <[email protected]>2023-05-03 16:17:49 +0200
commitec167fd05661a5b02dd406c87081f84a0f8dd77d (patch)
tree9c4669e471c9969bda59265381b18d2d416db060 /router/al.cpp
parent0d14d30808cfe7b9e3413353e3eef8a0f201399a (diff)
parentd3875f333fb6abe2f39d82caca329414871ae53b (diff)
Merge branch 'v1.23.1'
Resolved Conflicts: CMakeLists.txt
Diffstat (limited to 'router/al.cpp')
-rw-r--r--router/al.cpp51
1 files changed, 45 insertions, 6 deletions
diff --git a/router/al.cpp b/router/al.cpp
index 4c8b0006..06c314eb 100644
--- a/router/al.cpp
+++ b/router/al.cpp
@@ -11,31 +11,31 @@ std::atomic<DriverIface*> CurrentCtxDriver{nullptr};
#define DECL_THUNK1(R,n,T1) AL_API R AL_APIENTRY n(T1 a) \
{ \
- DriverIface *iface = ThreadCtxDriver; \
+ DriverIface *iface = GetThreadDriver(); \
if(!iface) iface = CurrentCtxDriver.load(std::memory_order_acquire); \
return iface->n(a); \
}
#define DECL_THUNK2(R,n,T1,T2) AL_API R AL_APIENTRY n(T1 a, T2 b) \
{ \
- DriverIface *iface = ThreadCtxDriver; \
+ DriverIface *iface = GetThreadDriver(); \
if(!iface) iface = CurrentCtxDriver.load(std::memory_order_acquire); \
return iface->n(a, b); \
}
#define DECL_THUNK3(R,n,T1,T2,T3) AL_API R AL_APIENTRY n(T1 a, T2 b, T3 c) \
{ \
- DriverIface *iface = ThreadCtxDriver; \
+ DriverIface *iface = GetThreadDriver(); \
if(!iface) iface = CurrentCtxDriver.load(std::memory_order_acquire); \
return iface->n(a, b, c); \
}
#define DECL_THUNK4(R,n,T1,T2,T3,T4) AL_API R AL_APIENTRY n(T1 a, T2 b, T3 c, T4 d) \
{ \
- DriverIface *iface = ThreadCtxDriver; \
+ DriverIface *iface = GetThreadDriver(); \
if(!iface) iface = CurrentCtxDriver.load(std::memory_order_acquire); \
return iface->n(a, b, c, d); \
}
#define DECL_THUNK5(R,n,T1,T2,T3,T4,T5) AL_API R AL_APIENTRY n(T1 a, T2 b, T3 c, T4 d, T5 e) \
{ \
- DriverIface *iface = ThreadCtxDriver; \
+ DriverIface *iface = GetThreadDriver(); \
if(!iface) iface = CurrentCtxDriver.load(std::memory_order_acquire); \
return iface->n(a, b, c, d, e); \
}
@@ -46,7 +46,7 @@ std::atomic<DriverIface*> CurrentCtxDriver{nullptr};
*/
AL_API ALenum AL_APIENTRY alGetError(void)
{
- DriverIface *iface = ThreadCtxDriver;
+ DriverIface *iface = GetThreadDriver();
if(!iface) iface = CurrentCtxDriver.load(std::memory_order_acquire);
return iface ? iface->alGetError() : AL_NO_ERROR;
}
@@ -130,3 +130,42 @@ DECL_THUNK3(void, alGetBufferi, ALuint, ALenum, ALint*)
DECL_THUNK5(void, alGetBuffer3i, ALuint, ALenum, ALint*, ALint*, ALint*)
DECL_THUNK3(void, alGetBufferiv, ALuint, ALenum, ALint*)
DECL_THUNK5(void, alBufferData, ALuint, ALenum, const ALvoid*, ALsizei, ALsizei)
+
+/* EFX 1.0. Required here to be exported from libOpenAL32.dll.a/OpenAL32.lib
+ * with the router enabled.
+ */
+DECL_THUNK2(void, alGenFilters, ALsizei, ALuint*)
+DECL_THUNK2(void, alDeleteFilters, ALsizei, const ALuint*)
+DECL_THUNK1(ALboolean, alIsFilter, ALuint)
+DECL_THUNK3(void, alFilterf, ALuint, ALenum, ALfloat)
+DECL_THUNK3(void, alFilterfv, ALuint, ALenum, const ALfloat*)
+DECL_THUNK3(void, alFilteri, ALuint, ALenum, ALint)
+DECL_THUNK3(void, alFilteriv, ALuint, ALenum, const ALint*)
+DECL_THUNK3(void, alGetFilterf, ALuint, ALenum, ALfloat*)
+DECL_THUNK3(void, alGetFilterfv, ALuint, ALenum, ALfloat*)
+DECL_THUNK3(void, alGetFilteri, ALuint, ALenum, ALint*)
+DECL_THUNK3(void, alGetFilteriv, ALuint, ALenum, ALint*)
+
+DECL_THUNK2(void, alGenEffects, ALsizei, ALuint*)
+DECL_THUNK2(void, alDeleteEffects, ALsizei, const ALuint*)
+DECL_THUNK1(ALboolean, alIsEffect, ALuint)
+DECL_THUNK3(void, alEffectf, ALuint, ALenum, ALfloat)
+DECL_THUNK3(void, alEffectfv, ALuint, ALenum, const ALfloat*)
+DECL_THUNK3(void, alEffecti, ALuint, ALenum, ALint)
+DECL_THUNK3(void, alEffectiv, ALuint, ALenum, const ALint*)
+DECL_THUNK3(void, alGetEffectf, ALuint, ALenum, ALfloat*)
+DECL_THUNK3(void, alGetEffectfv, ALuint, ALenum, ALfloat*)
+DECL_THUNK3(void, alGetEffecti, ALuint, ALenum, ALint*)
+DECL_THUNK3(void, alGetEffectiv, ALuint, ALenum, ALint*)
+
+DECL_THUNK2(void, alGenAuxiliaryEffectSlots, ALsizei, ALuint*)
+DECL_THUNK2(void, alDeleteAuxiliaryEffectSlots, ALsizei, const ALuint*)
+DECL_THUNK1(ALboolean, alIsAuxiliaryEffectSlot, ALuint)
+DECL_THUNK3(void, alAuxiliaryEffectSlotf, ALuint, ALenum, ALfloat)
+DECL_THUNK3(void, alAuxiliaryEffectSlotfv, ALuint, ALenum, const ALfloat*)
+DECL_THUNK3(void, alAuxiliaryEffectSloti, ALuint, ALenum, ALint)
+DECL_THUNK3(void, alAuxiliaryEffectSlotiv, ALuint, ALenum, const ALint*)
+DECL_THUNK3(void, alGetAuxiliaryEffectSlotf, ALuint, ALenum, ALfloat*)
+DECL_THUNK3(void, alGetAuxiliaryEffectSlotfv, ALuint, ALenum, ALfloat*)
+DECL_THUNK3(void, alGetAuxiliaryEffectSloti, ALuint, ALenum, ALint*)
+DECL_THUNK3(void, alGetAuxiliaryEffectSlotiv, ALuint, ALenum, ALint*)