diff options
Diffstat (limited to 'OpenAL32/alSource.c')
-rw-r--r-- | OpenAL32/alSource.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c index 5cc6c34b..e79f0fc3 100644 --- a/OpenAL32/alSource.c +++ b/OpenAL32/alSource.c @@ -2986,10 +2986,17 @@ ALvoid SetSourceState(ALsource *Source, ALCcontext *Context, ALenum state) voice->Source = Source; } - /* Clear previous samples if playback is discontinuous. */ if(discontinuity) + { + /* Clear previous samples if playback is discontinuous. */ memset(voice->PrevSamples, 0, sizeof(voice->PrevSamples)); + /* Clear the stepping value so the mixer knows not to mix this + * until the update gets applied. + */ + voice->Step = 0; + } + voice->Moving = AL_FALSE; for(i = 0;i < MAX_INPUT_CHANNELS;i++) { |