summaryrefslogtreecommitdiffstats
path: root/OpenAL32
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2009-10-25 05:03:22 -0700
committerChris Robinson <[email protected]>2009-10-25 05:03:22 -0700
commitb0a82aa420c4bbeb465a0ee0300517f25b2ca6af (patch)
tree28da8e4fdfbbe73eba691583d91ec9674957640d /OpenAL32
parentc003d6032de251ed58874fc712714e4725bbde9a (diff)
Store the buffer format and frequency in the source when updated
Diffstat (limited to 'OpenAL32')
-rw-r--r--OpenAL32/Include/alSource.h2
-rw-r--r--OpenAL32/alSource.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h
index 663a9e35..7f18eee3 100644
--- a/OpenAL32/Include/alSource.h
+++ b/OpenAL32/Include/alSource.h
@@ -52,6 +52,8 @@ typedef struct ALsource
ALuint position_fraction;
struct ALbuffer *Buffer;
+ ALenum Format;
+ ALuint Frequency;
struct ALbufferlistitem *queue; // Linked list of buffers in queue
ALuint BuffersInQueue; // Number of buffers in queue
diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c
index b606d9fd..85b9c966 100644
--- a/OpenAL32/alSource.c
+++ b/OpenAL32/alSource.c
@@ -535,6 +535,9 @@ ALAPI ALvoid ALAPIENTRY alSourcei(ALuint source,ALenum eParam,ALint lValue)
// Source is now in STATIC mode
pSource->lSourceType = AL_STATIC;
+ pSource->Format = buffer->format;
+ pSource->Frequency = buffer->frequency;
+
// Add the selected buffer to the queue
pALBufferListItem = malloc(sizeof(ALbufferlistitem));
pALBufferListItem->buffer = buffer;
@@ -1586,6 +1589,9 @@ ALAPI ALvoid ALAPIENTRY alSourceQueueBuffers( ALuint source, ALsizei n, const AL
// Change Source Type
ALSource->lSourceType = AL_STREAMING;
+ ALSource->Format = iFormat;
+ ALSource->Frequency = iFrequency;
+
if(buffers[0])
buffer = (ALbuffer*)ALTHUNK_LOOKUPENTRY(buffers[0]);