aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2013-10-28 11:06:04 -0700
committerChris Robinson <[email protected]>2013-10-28 11:06:04 -0700
commit034935b2e16a5886377018de973e90490102ca90 (patch)
treeed163dea3eb8fcc9ed988573cd079ba4af642b72 /OpenAL32
parentc1cdd3095bf2334298b6965f5e4f49510a826bd6 (diff)
Modify how VCALL is handled
Now instead of specifying the arguments as a third argument to the macro, like VCALL(object,function,(arg1, arg2)); they are specified separately after the macro, like VCALL(object,function)(arg1, arg2); Also, VCALL_NOARGS has been removed in favor of VCALL0, which behaves like above but expects an empty argument list (a separate macro is needed to work around preprocessor limitations).
Diffstat (limited to 'OpenAL32')
-rw-r--r--OpenAL32/Include/alMain.h12
-rw-r--r--OpenAL32/alAuxEffectSlot.c8
-rw-r--r--OpenAL32/alEffect.c16
-rw-r--r--OpenAL32/alState.c2
4 files changed, 19 insertions, 19 deletions
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index 74c5b0e6..b103848c 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -99,20 +99,20 @@ static const union {
#define SET_VTABLE1(T1, obj) ((obj)->vtbl = GET_VTABLE1(T1))
#define SET_VTABLE2(T1, T2, obj) (STATIC_CAST(T2, obj)->vtbl = GET_VTABLE2(T1, T2))
+
/* Helper to extract an argument list for VCALL. Not used directly. */
-#define EXTRACT_VCALL_ARGS(...) __VA_ARGS__
+#define EXTRACT_VCALL_ARGS(...) __VA_ARGS__))
/* Call a "virtual" method on an object, with arguments. */
-#define VCALL(obj, func, args) ((obj)->vtbl->func((obj), EXTRACT_VCALL_ARGS args))
+#define VCALL(obj, func) ((obj)->vtbl->func((obj), EXTRACT_VCALL_ARGS
/* Call a "virtual" method on an object, with no arguments. */
-#define VCALL0(obj, func, args) ((obj)->vtbl->func((obj)))
-#define VCALL_NOARGS(obj, func) ((obj)->vtbl->func((obj)))
+#define VCALL0(obj, func) ((obj)->vtbl->func((obj) EXTRACT_VCALL_ARGS
#define DELETE_OBJ(obj) do { \
if((obj) != NULL) \
{ \
- VCALL_NOARGS((obj),Destruct); \
- VCALL_NOARGS((obj),Delete); \
+ VCALL0((obj),Destruct)(); \
+ VCALL0((obj),Delete)(); \
} \
} while(0)
diff --git a/OpenAL32/alAuxEffectSlot.c b/OpenAL32/alAuxEffectSlot.c
index ae706231..6c454f74 100644
--- a/OpenAL32/alAuxEffectSlot.c
+++ b/OpenAL32/alAuxEffectSlot.c
@@ -466,14 +466,14 @@ ALenum InitializeEffect(ALCdevice *Device, ALeffectslot *EffectSlot, ALeffect *e
ERR("Failed to find factory for effect type 0x%04x\n", newtype);
return AL_INVALID_ENUM;
}
- State = VCALL_NOARGS(factory,create);
+ State = VCALL0(factory,create)();
if(!State)
return AL_OUT_OF_MEMORY;
SetMixerFPUMode(&oldMode);
ALCdevice_Lock(Device);
- if(VCALL(State,deviceUpdate,(Device)) == AL_FALSE)
+ if(VCALL(State,deviceUpdate)(Device) == AL_FALSE)
{
ALCdevice_Unlock(Device);
RestoreFPUMode(&oldMode);
@@ -497,7 +497,7 @@ ALenum InitializeEffect(ALCdevice *Device, ALeffectslot *EffectSlot, ALeffect *e
* object was changed, it needs an update before its Process method can
* be called. */
EffectSlot->NeedsUpdate = AL_FALSE;
- VCALL(EffectSlot->EffectState,update,(Device, EffectSlot));
+ VCALL(EffectSlot->EffectState,update)(Device, EffectSlot);
ALCdevice_Unlock(Device);
RestoreFPUMode(&oldMode);
@@ -528,7 +528,7 @@ ALenum InitEffectSlot(ALeffectslot *slot)
slot->EffectType = AL_EFFECT_NULL;
factory = getFactoryByType(AL_EFFECT_NULL);
- if(!(slot->EffectState=VCALL_NOARGS(factory,create)))
+ if(!(slot->EffectState=VCALL0(factory,create)()))
return AL_OUT_OF_MEMORY;
slot->Gain = 1.0;
diff --git a/OpenAL32/alEffect.c b/OpenAL32/alEffect.c
index 7ed4e58e..550baaaa 100644
--- a/OpenAL32/alEffect.c
+++ b/OpenAL32/alEffect.c
@@ -164,7 +164,7 @@ AL_API ALvoid AL_APIENTRY alEffecti(ALuint effect, ALenum param, ALint value)
else
{
/* Call the appropriate handler */
- VCALL(ALEffect,setParami,(Context, param, value));
+ VCALL(ALEffect,setParami)(Context, param, value);
}
}
@@ -193,7 +193,7 @@ AL_API ALvoid AL_APIENTRY alEffectiv(ALuint effect, ALenum param, const ALint *v
else
{
/* Call the appropriate handler */
- VCALL(ALEffect,setParamiv,(Context, param, values));
+ VCALL(ALEffect,setParamiv)(Context, param, values);
}
ALCcontext_DecRef(Context);
@@ -214,7 +214,7 @@ AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat value)
else
{
/* Call the appropriate handler */
- VCALL(ALEffect,setParamf,(Context, param, value));
+ VCALL(ALEffect,setParamf)(Context, param, value);
}
ALCcontext_DecRef(Context);
@@ -235,7 +235,7 @@ AL_API ALvoid AL_APIENTRY alEffectfv(ALuint effect, ALenum param, const ALfloat
else
{
/* Call the appropriate handler */
- VCALL(ALEffect,setParamfv,(Context, param, values));
+ VCALL(ALEffect,setParamfv)(Context, param, values);
}
ALCcontext_DecRef(Context);
@@ -260,7 +260,7 @@ AL_API ALvoid AL_APIENTRY alGetEffecti(ALuint effect, ALenum param, ALint *value
else
{
/* Call the appropriate handler */
- VCALL(ALEffect,getParami,(Context, param, value));
+ VCALL(ALEffect,getParami)(Context, param, value);
}
}
@@ -289,7 +289,7 @@ AL_API ALvoid AL_APIENTRY alGetEffectiv(ALuint effect, ALenum param, ALint *valu
else
{
/* Call the appropriate handler */
- VCALL(ALEffect,getParamiv,(Context, param, values));
+ VCALL(ALEffect,getParamiv)(Context, param, values);
}
ALCcontext_DecRef(Context);
@@ -310,7 +310,7 @@ AL_API ALvoid AL_APIENTRY alGetEffectf(ALuint effect, ALenum param, ALfloat *val
else
{
/* Call the appropriate handler */
- VCALL(ALEffect,getParamf,(Context, param, value));
+ VCALL(ALEffect,getParamf)(Context, param, value);
}
ALCcontext_DecRef(Context);
@@ -331,7 +331,7 @@ AL_API ALvoid AL_APIENTRY alGetEffectfv(ALuint effect, ALenum param, ALfloat *va
else
{
/* Call the appropriate handler */
- VCALL(ALEffect,getParamfv,(Context, param, values));
+ VCALL(ALEffect,getParamfv)(Context, param, values);
}
ALCcontext_DecRef(Context);
diff --git a/OpenAL32/alState.c b/OpenAL32/alState.c
index cd8f0a56..fe817c5c 100644
--- a/OpenAL32/alState.c
+++ b/OpenAL32/alState.c
@@ -582,7 +582,7 @@ AL_API ALvoid AL_APIENTRY alDeferUpdatesSOFT(void)
while(slot != slot_end)
{
if(ExchangeInt(&(*slot)->NeedsUpdate, AL_FALSE))
- VCALL((*slot)->EffectState,update,(context->Device, *slot));
+ VCALL((*slot)->EffectState,update)(context->Device, *slot);
slot++;
}