summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--OpenAL32/alSource.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c
index 480e77fe..5dbea314 100644
--- a/OpenAL32/alSource.c
+++ b/OpenAL32/alSource.c
@@ -1177,7 +1177,6 @@ static ALenum GetSourcei64v(const ALsource *Source, ALCcontext *Context, SrcIntP
case AL_SOURCE_RELATIVE:
case AL_LOOPING:
- case AL_BUFFER:
case AL_SOURCE_STATE:
case AL_BUFFERS_QUEUED:
case AL_BUFFERS_PROCESSED:
@@ -1187,10 +1186,23 @@ static ALenum GetSourcei64v(const ALsource *Source, ALCcontext *Context, SrcIntP
case AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO:
case AL_DIRECT_CHANNELS_SOFT:
case AL_DISTANCE_MODEL:
+ if((err=GetSourceiv(Source, Context, (int)prop, ivals)) == AL_NO_ERROR)
+ *values = ivals[0];
+ return err;
+
+ case siBuffer:
case siDirectFilter:
+ if((err=GetSourceiv(Source, Context, (int)prop, ivals)) == AL_NO_ERROR)
+ *values = ((ALuint*)ivals)[0];
+ return err;
+
case siAuxSendFilter:
if((err=GetSourceiv(Source, Context, (int)prop, ivals)) == AL_NO_ERROR)
- *values = ivals[0];
+ {
+ values[0] = ((ALuint*)ivals)[0];
+ values[1] = ((ALuint*)ivals)[1];
+ values[2] = ((ALuint*)ivals)[2];
+ }
return err;
}