aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--al/buffer.cpp18
-rw-r--r--alc/context.cpp54
2 files changed, 15 insertions, 57 deletions
diff --git a/al/buffer.cpp b/al/buffer.cpp
index e56aa13e..28afc7c0 100644
--- a/al/buffer.cpp
+++ b/al/buffer.cpp
@@ -1474,19 +1474,12 @@ BufferSubList::~BufferSubList()
#ifdef ALSOFT_EAX
-FORCE_ALIGN ALboolean AL_APIENTRY EAXSetBufferMode(ALsizei n, const ALuint *buffers, ALint value) noexcept
-{ return EAXSetBufferModeDirect(GetContextRef().get(), n, buffers, value); }
+FORCE_ALIGN DECL_FUNC3(ALboolean, EAXSetBufferMode, ALsizei, const ALuint*, ALint)
FORCE_ALIGN ALboolean AL_APIENTRY EAXSetBufferModeDirect(ALCcontext *context, ALsizei n,
const ALuint *buffers, ALint value) noexcept
{
#define EAX_PREFIX "[EAXSetBufferMode] "
- if(!context)
- {
- ERR(EAX_PREFIX "%s\n", "No current context.");
- return AL_FALSE;
- }
-
if(!eax_g_is_enabled)
{
context->setError(AL_INVALID_OPERATION, EAX_PREFIX "%s", "EAX not enabled.");
@@ -1617,19 +1610,12 @@ FORCE_ALIGN ALboolean AL_APIENTRY EAXSetBufferModeDirect(ALCcontext *context, AL
#undef EAX_PREFIX
}
-FORCE_ALIGN ALenum AL_APIENTRY EAXGetBufferMode(ALuint buffer, ALint *pReserved) noexcept
-{ return EAXGetBufferModeDirect(GetContextRef().get(), buffer, pReserved); }
+FORCE_ALIGN DECL_FUNC2(ALenum, EAXGetBufferMode, ALuint, ALint*)
FORCE_ALIGN ALenum AL_APIENTRY EAXGetBufferModeDirect(ALCcontext *context, ALuint buffer,
ALint *pReserved) noexcept
{
#define EAX_PREFIX "[EAXGetBufferMode] "
- if(!context)
- {
- ERR(EAX_PREFIX "%s\n", "No current context.");
- return AL_NONE;
- }
-
if(!eax_g_is_enabled)
{
context->setError(AL_INVALID_OPERATION, EAX_PREFIX "%s", "EAX not enabled.");
diff --git a/alc/context.cpp b/alc/context.cpp
index 9c5a62c4..bba74a59 100644
--- a/alc/context.cpp
+++ b/alc/context.cpp
@@ -1020,48 +1020,20 @@ void ALCcontext::eaxCommit()
eax_update_sources();
}
-namespace {
-
-class EaxSetException : public EaxException {
-public:
- explicit EaxSetException(const char* message)
- : EaxException{"EAX_SET", message}
- {}
-};
-
-[[noreturn]] void eax_fail_set(const char* message)
-{
- throw EaxSetException{message};
-}
-
-class EaxGetException : public EaxException {
-public:
- explicit EaxGetException(const char* message)
- : EaxException{"EAX_GET", message}
- {}
-};
-[[noreturn]] void eax_fail_get(const char* message)
+FORCE_ALIGN ALenum AL_APIENTRY EAXSet(const GUID *a, ALuint b, ALuint c, ALvoid *d, ALuint e) noexcept
{
- throw EaxGetException{message};
+ auto context = GetContextRef();
+ if(!context) UNLIKELY return AL_INVALID_OPERATION;
+ return EAXSetDirect(context.get(), a, b, c, d, e);
}
-} // namespace
-
-
-FORCE_ALIGN ALenum AL_APIENTRY EAXSet(const GUID *property_set_id, ALuint property_id,
- ALuint property_source_id, ALvoid *property_value, ALuint property_value_size) noexcept
-{ return EAXSetDirect(GetContextRef().get(), property_set_id, property_id, property_source_id, property_value, property_value_size); }
FORCE_ALIGN ALenum AL_APIENTRY EAXSetDirect(ALCcontext *context, const GUID *property_set_id,
ALuint property_id, ALuint property_source_id, ALvoid *property_value,
ALuint property_value_size) noexcept
try
{
- if(!context)
- eax_fail_set("No current context.");
-
std::lock_guard<std::mutex> prop_lock{context->mPropLock};
-
return context->eax_eax_set(
property_set_id,
property_id,
@@ -1069,26 +1041,26 @@ try
property_value,
property_value_size);
}
-catch (...)
+catch(...)
{
eax_log_exception(__func__);
return AL_INVALID_OPERATION;
}
-FORCE_ALIGN ALenum AL_APIENTRY EAXGet(const GUID *property_set_id, ALuint property_id,
- ALuint property_source_id, ALvoid *property_value, ALuint property_value_size) noexcept
-{ return EAXGetDirect(GetContextRef().get(), property_set_id, property_id, property_source_id, property_value, property_value_size); }
+FORCE_ALIGN ALenum AL_APIENTRY EAXGet(const GUID *a, ALuint b, ALuint c, ALvoid *d, ALuint e) noexcept
+{
+ auto context = GetContextRef();
+ if(!context) UNLIKELY return AL_INVALID_OPERATION;
+ return EAXGetDirect(context.get(), a, b, c, d, e);
+}
+
FORCE_ALIGN ALenum AL_APIENTRY EAXGetDirect(ALCcontext *context, const GUID *property_set_id,
ALuint property_id, ALuint property_source_id, ALvoid *property_value,
ALuint property_value_size) noexcept
try
{
- if(!context)
- eax_fail_get("No current context.");
-
std::lock_guard<std::mutex> prop_lock{context->mPropLock};
-
return context->eax_eax_get(
property_set_id,
property_id,
@@ -1096,7 +1068,7 @@ try
property_value,
property_value_size);
}
-catch (...)
+catch(...)
{
eax_log_exception(__func__);
return AL_INVALID_OPERATION;