Author: janderwald
Date: Sun Oct 17 22:38:34 2010
New Revision: 49191
URL:
http://svn.reactos.org/svn/reactos?rev=49191&view=rev
Log:
[WDMAUD.DRV]
- Kernel streaming pins need to transit states from Run -> Pause -> Acquire ->
Stop.
- Fixes SB Live playback hang on last tone when stopping playback
Modified:
trunk/reactos/dll/win32/wdmaud.drv/legacy.c
Modified: trunk/reactos/dll/win32/wdmaud.drv/legacy.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wdmaud.drv/legac…
==============================================================================
--- trunk/reactos/dll/win32/wdmaud.drv/legacy.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/wdmaud.drv/legacy.c [iso-8859-1] Sun Oct 17 22:38:34 2010
@@ -282,6 +282,25 @@
/* First stop the stream */
if (DeviceType != MIXER_DEVICE_TYPE)
{
+ DeviceInfo.u.State = KSSTATE_PAUSE;
+ SyncOverlappedDeviceIoControl(KernelHandle,
+ IOCTL_SETDEVICE_STATE,
+ (LPVOID) &DeviceInfo,
+ sizeof(WDMAUD_DEVICE_INFO),
+ (LPVOID) &DeviceInfo,
+ sizeof(WDMAUD_DEVICE_INFO),
+ NULL);
+
+ DeviceInfo.u.State = KSSTATE_ACQUIRE;
+ SyncOverlappedDeviceIoControl(KernelHandle,
+ IOCTL_SETDEVICE_STATE,
+ (LPVOID) &DeviceInfo,
+ sizeof(WDMAUD_DEVICE_INFO),
+ (LPVOID) &DeviceInfo,
+ sizeof(WDMAUD_DEVICE_INFO),
+ NULL);
+
+
DeviceInfo.u.State = KSSTATE_STOP;
SyncOverlappedDeviceIoControl(KernelHandle,
IOCTL_SETDEVICE_STATE,