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/…
==============================================================================
--- 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/…
==============================================================================
--- 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))