=?UTF-8?Q?J=C3=B6rg=20H=C3=B6hle=20?=: winmm: Separate WINMM_Pause and WINMM_Reset.

Alexandre Julliard julliard at winehq.org
Mon Sep 26 16:15:12 CDT 2011


Module: wine
Branch: master
Commit: afa5751015b71371954ee7b6593ab16710a34126
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=afa5751015b71371954ee7b6593ab16710a34126

Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date:   Thu Sep 22 20:36:31 2011 +0200

winmm: Separate WINMM_Pause and WINMM_Reset.

---

 dlls/winmm/waveform.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/dlls/winmm/waveform.c b/dlls/winmm/waveform.c
index 8567352..1593047 100644
--- a/dlls/winmm/waveform.c
+++ b/dlls/winmm/waveform.c
@@ -1671,17 +1671,18 @@ static LRESULT WINMM_Reset(HWAVE hwave)
     WINMM_CBInfo cb_info;
     WINMM_Device *device = WINMM_GetDeviceFromHWAVE(hwave);
     WAVEHDR *first;
-    MMRESULT mr;
+    HRESULT hr;
 
     TRACE("(%p)\n", hwave);
 
     if(!WINMM_ValidateAndLock(device))
         return MMSYSERR_INVALHANDLE;
 
-    mr = WINMM_Pause(hwave);
-    if(mr != MMSYSERR_NOERROR){
+    hr = IAudioClient_Stop(device->client);
+    if(FAILED(hr)){
         LeaveCriticalSection(&device->lock);
-        return mr;
+        ERR("Stop failed: %08x\n", hr);
+        return MMSYSERR_ERROR;
     }
     device->stopped = TRUE;
 
@@ -1694,6 +1695,7 @@ static LRESULT WINMM_Reset(HWAVE hwave)
     device->played_frames = 0;
     device->loop_counter = 0;
     device->last_clock_pos = 0;
+    IAudioClient_Reset(device->client);
 
     cb_info = device->cb_info;
 




More information about the wine-cvs mailing list