Sync with trunk head
[reactos.git] / drivers / wdm / audio / backpln / portcls / pin_wavecyclic.cpp
index e36e9b9..ff02905 100644 (file)
@@ -347,7 +347,6 @@ PinWaveCyclicAudioPosition(
             DPRINT("Play %lu Write %lu\n", Position->PlayOffset, Position->WriteOffset);
         }
 
-
         Irp->IoStatus.Information = sizeof(KSAUDIO_POSITION);
         return STATUS_SUCCESS;
     }
@@ -543,9 +542,6 @@ PinWaveCyclicDataFormat(
             // free old format
             FreeItem(Pin->m_Format, TAG_PORTCLASS);
 
-            // update irp queue with new format
-            Pin->m_IrpQueue->UpdateFormat((PKSDATAFORMAT)NewDataFormat);
-
             // store new format
             Pin->m_Format = NewDataFormat;
             Irp->IoStatus.Information = NewDataFormat->FormatSize;
@@ -783,29 +779,32 @@ CPortPinWaveCyclic::RequestService()
 
     PC_ASSERT_IRQL(DISPATCH_LEVEL);
 
-    Status = m_IrpQueue->GetMapping(&Buffer, &BufferSize);
-    if (!NT_SUCCESS(Status))
+    if (m_State == KSSTATE_RUN)
     {
-        return;
-    }
+        Status = m_IrpQueue->GetMapping(&Buffer, &BufferSize);
+        if (!NT_SUCCESS(Status))
+        {
+            return;
+        }
 
-    Status = m_Stream->GetPosition(&Position);
-    DPRINT("Position %u Buffer %p BufferSize %u ActiveIrpOffset %u Capture %u\n", Position, Buffer, m_CommonBufferSize, BufferSize, m_Capture);
+        Status = m_Stream->GetPosition(&Position);
+        DPRINT("Position %u Buffer %p BufferSize %u ActiveIrpOffset %u Capture %u\n", Position, Buffer, m_CommonBufferSize, BufferSize, m_Capture);
 
-    OldOffset = m_Position.PlayOffset;
+        OldOffset = m_Position.PlayOffset;
 
-    if (Position < m_CommonBufferOffset)
-    {
-        UpdateCommonBufferOverlap(Position, m_FrameSize);
-    }
-    else if (Position >= m_CommonBufferOffset)
-    {
-        UpdateCommonBuffer(Position, m_FrameSize);
-    }
+        if (Position < m_CommonBufferOffset)
+        {
+            UpdateCommonBufferOverlap(Position, m_FrameSize);
+        }
+        else if (Position >= m_CommonBufferOffset)
+        {
+            UpdateCommonBuffer(Position, m_FrameSize);
+        }
 
-    NewOffset = m_Position.PlayOffset;
+        NewOffset = m_Position.PlayOffset;
 
-    GeneratePositionEvents(OldOffset, NewOffset);
+        GeneratePositionEvents(OldOffset, NewOffset);
+    }
 }
 
 NTSTATUS
@@ -1242,7 +1241,7 @@ CPortPinWaveCyclic::Init(
     m_Stream->Silence(SilenceBuffer, m_FrameSize);
     m_Stream->Silence(m_CommonBuffer, m_CommonBufferSize);
 
-    Status = m_IrpQueue->Init(ConnectDetails, DataFormat, DeviceObject, m_FrameSize, 0, SilenceBuffer);
+    Status = m_IrpQueue->Init(ConnectDetails, m_FrameSize, 0, SilenceBuffer);
     if (!NT_SUCCESS(Status))
     {
        m_IrpQueue->Release();