diff options
Diffstat (limited to 'sound/mixer.cpp')
-rw-r--r-- | sound/mixer.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/sound/mixer.cpp b/sound/mixer.cpp index e44b459ca4..9aaae1176c 100644 --- a/sound/mixer.cpp +++ b/sound/mixer.cpp @@ -109,7 +109,11 @@ int SoundMixer::play_mp3_cdtrack(PlayingSoundHandle *handle, FILE * file, mad_ti void SoundMixer::mix(int16 *buf, uint len) { - + if (_paused) { + memset(buf, 0, 2 * len * sizeof(int16)); + return; + } + if (_premix_proc) { int i; _premix_proc(_premix_param, buf, len); @@ -117,16 +121,10 @@ void SoundMixer::mix(int16 *buf, uint len) buf[2 * i] = buf[2 * i + 1] = buf[i]; } } else { - /* no premixer available, zero the buf out */ + // no premixer available, zero the buf out memset(buf, 0, 2 * len * sizeof(int16)); } - /* Arisme : moved to let iMUSE generate the events */ - if (_paused) { - memset(buf, 0, 2 * len * sizeof(int16)); - return; - } - _syst->lock_mutex(_mutex); /* now mix all channels */ for (int i = 0; i != NUM_CHANNELS; i++) |