diff options
author | Chris Robinson <[email protected]> | 2010-05-12 00:38:04 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2010-05-12 00:38:04 -0700 |
commit | d678f1d88bbb2eceef98cb414b580b22b7881b68 (patch) | |
tree | 49e808f419fafae85fd77c70d26c74c47cb16b56 | |
parent | f0ce1bff3eddbe9d081585abe1aaa2810371b692 (diff) |
Store looping locally when mixing a source
-rw-r--r-- | Alc/ALu.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -934,6 +934,7 @@ static void MixSomeSources(ALCcontext *ALContext, float (*DryBuffer)[OUTPUTCHANN ALuint Frequency; resampler_t Resampler; ALuint BuffersPlayed; + ALboolean Looping; ALfloat Pitch; ALenum State; ALsizei pos; @@ -990,6 +991,7 @@ next_source: BuffersPlayed = ALSource->BuffersPlayed; DataPosInt = ALSource->position; DataPosFrac = ALSource->position_fraction; + Looping = ALSource->bLooping; /* Compute 18.14 fixed point step */ Pitch = (ALSource->Params.Pitch*Frequency) / DeviceFreq; @@ -1053,7 +1055,7 @@ next_source: memcpy(&Data[DataSize*Channels], NextBuf->data, ulExtraSamples); } } - else if(ALSource->bLooping) + else if(Looping) { ALbuffer *NextBuf = ALSource->queue->buffer; if(NextBuf && NextBuf->size) @@ -1359,7 +1361,7 @@ next_source: BuffersPlayed++; DataPosInt -= DataSize; } - else if(ALSource->bLooping) + else if(Looping) { BufferListItem = ALSource->queue; BuffersPlayed = 0; |