Buffer must be flushed when audio out is paused, but Winwave audio backend has 
problem with this unlike other backends.
As a result, when user stop and restart audio files or something, the previous 
audio data are played in front of user expected sound.
So changes it to waveOutReset()
---
 audio/winwaveaudio.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/audio/winwaveaudio.c b/audio/winwaveaudio.c
index 663abb9..7de12a6 100644
--- a/audio/winwaveaudio.c
+++ b/audio/winwaveaudio.c
@@ -361,9 +361,9 @@ static int winwave_ctl_out (HWVoiceOut *hw, int cmd, ...)
 
     case VOICE_DISABLE:
         if (!wave->paused) {
-            mr = waveOutPause (wave->hwo);
+            mr = waveOutReset (wave->hwo);
             if (mr != MMSYSERR_NOERROR) {
-                winwave_logerr (mr, "waveOutPause");
+                winwave_logerr (mr, "waveOutReset");
             }
             else {
                 wave->paused = 1;
-- 
1.7.4.1


Reply via email to