[ros-diffs] [janderwald] 41498: - Use interval of 10ms for the periodic timer IPortPinWaveRT - Initialize a periodic timer for IPortPinWavePci - Might fix Vortex AU8820C0 card

janderwald at svn.reactos.org janderwald at svn.reactos.org
Sun Jun 21 02:16:33 CEST 2009


Author: janderwald
Date: Sun Jun 21 04:16:32 2009
New Revision: 41498

URL: http://svn.reactos.org/svn/reactos?rev=41498&view=rev
Log:
- Use interval of 10ms for the periodic timer IPortPinWaveRT
- Initialize a periodic timer for IPortPinWavePci
- Might fix Vortex AU8820C0 card

Modified:
    trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.c
    trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavert.c

Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.c?rev=41498&r1=41497&r2=41498&view=diff
==============================================================================
--- trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.c [iso-8859-1] Sun Jun 21 04:16:32 2009
@@ -34,6 +34,8 @@
     ULONG PreCompleted;
     ULONG PostCompleted;
 
+    ULONG Delay;
+
 }IPortPinWavePciImpl;
 
 
@@ -136,7 +138,13 @@
         {
             /* reset start stream */
             This->IrpQueue->lpVtbl->CancelBuffers(This->IrpQueue); //FIX function name
+            This->ServiceGroup->lpVtbl->CancelDelayedService(This->ServiceGroup);
             DPRINT1("Stopping PreCompleted %u PostCompleted %u\n", This->PreCompleted, This->PostCompleted);
+        }
+        if (This->State == KSSTATE_RUN)
+        {
+            /* start the notification timer */
+            This->ServiceGroup->lpVtbl->RequestDelayedService(This->ServiceGroup, This->Delay);
         }
     }
 }
@@ -743,6 +751,9 @@
         This->ServiceGroup->lpVtbl->SupportDelayedService(This->ServiceGroup);
     }
 
+    /* delay of 10 milisec */
+    This->Delay = Int32x32To64(10, -10000);
+
     This->IrpQueue = IPortWavePciStream_GetIrpQueue(This->WaveStream);
 
     Status = This->Stream->lpVtbl->GetAllocatorFraming(This->Stream, &AllocatorFraming);
@@ -752,9 +763,8 @@
         return Status;
     }
 
-	DPRINT("OptionFlags %x RequirementsFlag %x PoolType %x Frames %lu FrameSize %lu FileAlignment %lu\n",
-			AllocatorFraming.OptionsFlags, AllocatorFraming.RequirementsFlags, AllocatorFraming.PoolType, AllocatorFraming.Frames, AllocatorFraming.FrameSize, AllocatorFraming.FileAlignment);
-
+    DPRINT("OptionFlags %x RequirementsFlag %x PoolType %x Frames %lu FrameSize %lu FileAlignment %lu\n",
+           AllocatorFraming.OptionsFlags, AllocatorFraming.RequirementsFlags, AllocatorFraming.PoolType, AllocatorFraming.Frames, AllocatorFraming.FrameSize, AllocatorFraming.FileAlignment);
 
     Status = This->IrpQueue->lpVtbl->Init(This->IrpQueue, ConnectDetails, This->Format, DeviceObject, AllocatorFraming.FrameSize, AllocatorFraming.FileAlignment);
     if (!NT_SUCCESS(Status))

Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavert.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavert.c?rev=41498&r1=41497&r2=41498&view=diff
==============================================================================
--- trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavert.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavert.c [iso-8859-1] Sun Jun 21 04:16:32 2009
@@ -1040,8 +1040,8 @@
         goto cleanup;
 
     This->Stream->lpVtbl->GetHWLatency(This->Stream, &Latency);
-    /* minimum delay of 10 milisec */
-    This->Delay = Int32x32To64(min(max(Latency.ChipsetDelay + Latency.CodecDelay + Latency.FifoSize, 10), 10), -10000);
+    /* delay of 10 milisec */
+    This->Delay = Int32x32To64(10, -10000);
 
     Status = This->Stream->lpVtbl->AllocateAudioBuffer(This->Stream, 16384 * 11, &This->Mdl, &This->CommonBufferSize, &This->CommonBufferOffset, &This->CacheType);
     if (!NT_SUCCESS(Status))



More information about the Ros-diffs mailing list