summaryrefslogtreecommitdiffstats
path: root/OpenAL32
diff options
context:
space:
mode:
Diffstat (limited to 'OpenAL32')
-rw-r--r--OpenAL32/alEffect.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/OpenAL32/alEffect.c b/OpenAL32/alEffect.c
index fe5897c9..f41c769e 100644
--- a/OpenAL32/alEffect.c
+++ b/OpenAL32/alEffect.c
@@ -21,6 +21,7 @@
#include "config.h"
#include <stdlib.h>
+#include <math.h>
#include "AL/al.h"
#include "AL/alc.h"
@@ -666,14 +667,24 @@ ALvoid AL_APIENTRY alEffectfv(ALuint effect, ALenum param, ALfloat *pflValues)
break;
case AL_EAXREVERB_REFLECTIONS_PAN:
- ALEffect->Reverb.ReflectionsPan[0] = pflValues[0];
- ALEffect->Reverb.ReflectionsPan[1] = pflValues[1];
- ALEffect->Reverb.ReflectionsPan[2] = pflValues[2];
+ if(!isnan(pflValues[0]) && !isnan(pflValues[1]) && !isnan(pflValues[2]))
+ {
+ ALEffect->Reverb.ReflectionsPan[0] = pflValues[0];
+ ALEffect->Reverb.ReflectionsPan[1] = pflValues[1];
+ ALEffect->Reverb.ReflectionsPan[2] = pflValues[2];
+ }
+ else
+ alSetError(AL_INVALID_VALUE);
break;
case AL_EAXREVERB_LATE_REVERB_PAN:
- ALEffect->Reverb.LateReverbPan[0] = pflValues[0];
- ALEffect->Reverb.LateReverbPan[1] = pflValues[1];
- ALEffect->Reverb.LateReverbPan[2] = pflValues[2];
+ if(!isnan(pflValues[0]) && !isnan(pflValues[1]) && !isnan(pflValues[2]))
+ {
+ ALEffect->Reverb.LateReverbPan[0] = pflValues[0];
+ ALEffect->Reverb.LateReverbPan[1] = pflValues[1];
+ ALEffect->Reverb.LateReverbPan[2] = pflValues[2];
+ }
+ else
+ alSetError(AL_INVALID_VALUE);
break;
default: