diff options
Diffstat (limited to 'OpenAL32')
-rw-r--r-- | OpenAL32/Include/alSource.h | 2 | ||||
-rw-r--r-- | OpenAL32/alSource.c | 6 |
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]); |