Combine two loops into one

This commit is contained in:
Chris Robinson
2010-04-23 07:23:38 -07:00
parent 8646647b3e
commit 52663e8a44
+7 -12
View File
@@ -1795,28 +1795,23 @@ static ALvoid GetSourceOffset(ALsource *Source, ALenum name, ALfloat *offset, AL
// Get Current BytesPlayed (NOTE : This is the byte offset into the *current* buffer)
readPos = Source->position * Channels * Bytes;
// Add byte length of any processed buffers in the queue
TotalBufferDataSize = 0;
BufferList = Source->queue;
for(i = 0;i < Source->BuffersPlayed && BufferList;i++)
for(i = 0;BufferList;i++)
{
if(BufferList->buffer)
readPos += BufferList->buffer->size;
{
if(i < Source->BuffersPlayed)
readPos += BufferList->buffer->size;
TotalBufferDataSize += BufferList->buffer->size;
}
BufferList = BufferList->next;
}
if(Source->state == AL_PLAYING)
writePos = readPos + ((ALuint)(updateLen*BufferFreq) * Channels * Bytes);
else
writePos = readPos;
TotalBufferDataSize = 0;
BufferList = Source->queue;
while(BufferList)
{
if(BufferList->buffer)
TotalBufferDataSize += BufferList->buffer->size;
BufferList = BufferList->next;
}
if(Source->bLooping)
{
readPos %= TotalBufferDataSize;