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/p... ============================================================================== --- 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/p... ============================================================================== --- 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))