[ros-diffs] [janderwald] 45585: [PORTCLS] - Reset play position when an audio stream is stopped -- Fixes playback in looped mode (DirectSound) when a buffer is played&stopped more than once

janderwald at svn.reactos.org janderwald at svn.reactos.org
Fri Feb 12 11:12:46 CET 2010


Author: janderwald
Date: Fri Feb 12 11:12:46 2010
New Revision: 45585

URL: http://svn.reactos.org/svn/reactos?rev=45585&view=rev
Log:
[PORTCLS]
- Reset play position when an audio stream is stopped
-- Fixes playback in looped mode (DirectSound) when a buffer is played&stopped more than once

Modified:
    trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp

Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp?rev=45585&r1=45584&r2=45585&view=diff
==============================================================================
--- trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp [iso-8859-1] (original)
+++ trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp [iso-8859-1] Fri Feb 12 11:12:46 2010
@@ -450,10 +450,14 @@
                 // FIXME
                 // complete with successful state
                 Pin->m_IrpQueue->CancelBuffers();
+                Pin->m_Position.PlayOffset = 0;
+                Pin->m_Position.WriteOffset = 0;
             }
             else if (Pin->m_State == KSSTATE_STOP)
             {
                 Pin->m_IrpQueue->CancelBuffers();
+                Pin->m_Position.PlayOffset = 0;
+                Pin->m_Position.WriteOffset = 0;
             }
             // store result
             Irp->IoStatus.Information = sizeof(KSSTATE);




More information about the Ros-diffs mailing list