- Remove obsolete code
[reactos.git] / reactos / drivers / wdm / audio / backpln / portcls / port_wavepci.cpp
index be8512c..64e9009 100644 (file)
@@ -43,8 +43,6 @@ protected:
 
     PMINIPORTWAVEPCI m_Miniport;
     PDEVICE_OBJECT m_pDeviceObject;
-    BOOL m_bInitialized;
-    PRESOURCELIST m_pResourceList;
     PSERVICEGROUP m_ServiceGroup;
     PPINCOUNT m_pPinCount;
     PPOWERNOTIFY m_pPowerNotify;
@@ -64,6 +62,10 @@ protected:
 
 static GUID InterfaceGuids[3] = 
 {
+    {
+        /// KS_CATEGORY_AUDIO
+        0x6994AD04, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+    },
     {
         /// KSCATEGORY_RENDER
         0x65E8773EL, 0x8F56, 0x11D0, {0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
@@ -71,10 +73,6 @@ static GUID InterfaceGuids[3] =
     {
         /// KSCATEGORY_CAPTURE
         0x65E8773DL, 0x8F56, 0x11D0, {0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
-    },
-    {
-        /// KS_CATEGORY_AUDIO
-        0x6994AD04, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
     }
 };
 
@@ -161,8 +159,9 @@ CPortWavePci::QueryInterface(
 
     DPRINT("IPortWavePci_fnQueryInterface entered\n");
 
-    if (IsEqualGUIDAligned(refiid, IID_IPortWavePci) || 
-        IsEqualGUIDAligned(refiid, IID_IUnknown))
+    if (IsEqualGUIDAligned(refiid, IID_IPortWavePci) ||
+        IsEqualGUIDAligned(refiid, IID_IUnknown) ||
+        IsEqualGUIDAligned(refiid, IID_IPort))
     {
         *Output = PVOID(PPORTWAVEPCI(this));
         PUNKNOWN(*Output)->AddRef();
@@ -171,7 +170,7 @@ CPortWavePci::QueryInterface(
     else if (IsEqualGUIDAligned(refiid, IID_IServiceSink))
     {
         *Output = PVOID(PSERVICESINK(this));
-               PUNKNOWN(*Output)->AddRef();
+        PUNKNOWN(*Output)->AddRef();
         return STATUS_SUCCESS;
     }
     else if (IsEqualGUIDAligned(refiid, IID_IPortEvents))
@@ -183,9 +182,14 @@ CPortWavePci::QueryInterface(
     else if (IsEqualGUIDAligned(refiid, IID_ISubdevice))
     {
         *Output = PVOID(PSUBDEVICE(this));
-               PUNKNOWN(*Output)->AddRef();
+        PUNKNOWN(*Output)->AddRef();
         return STATUS_SUCCESS;
     }
+    else if (IsEqualGUIDAligned(refiid, IID_IDrmPort) ||
+             IsEqualGUIDAligned(refiid, IID_IDrmPort2))
+    {
+        return NewIDrmPort((PDRMPORT2*)Output);
+    }
     else if (IsEqualGUIDAligned(refiid, IID_IPortClsVersion))
     {
         return NewPortClsVersion((PPORTCLSVERSION*)Output);
@@ -201,7 +205,7 @@ CPortWavePci::QueryInterface(
 
     if (RtlStringFromGUID(refiid, &GuidString) == STATUS_SUCCESS)
     {
-        DPRINT1("IPortWavePci_fnQueryInterface no interface!!! iface %S\n", GuidString.Buffer);
+        DPRINT("IPortWavePci_fnQueryInterface no interface!!! iface %S\n", GuidString.Buffer);
         RtlFreeUnicodeString(&GuidString);
     }
 
@@ -227,12 +231,6 @@ CPortWavePci::Init(
             this, DeviceObject, Irp, UnknownMiniport, UnknownAdapter, ResourceList);
     PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
 
-    if (m_bInitialized)
-    {
-        DPRINT("IPortWavePci_fnInit called again\n");
-        return STATUS_SUCCESS;
-    }
-
     Status = UnknownMiniport->QueryInterface(IID_IMiniportWavePci, (PVOID*)&Miniport);
     if (!NT_SUCCESS(Status))
     {
@@ -243,25 +241,20 @@ CPortWavePci::Init(
     // Initialize port object
     m_Miniport = Miniport;
     m_pDeviceObject = DeviceObject;
-    m_bInitialized = TRUE;
-    m_pResourceList = ResourceList;
+
     InitializeListHead(&m_EventList);
     KeInitializeSpinLock(&m_EventListLock);
 
     // increment reference on miniport adapter
     Miniport->AddRef();
-    // increment reference on resource list
-    ResourceList->AddRef();
 
     Status = Miniport->Init(UnknownAdapter, ResourceList, this, &ServiceGroup);
     if (!NT_SUCCESS(Status))
     {
         DPRINT("IPortWavePci_fnInit failed with %x\n", Status);
-        m_bInitialized = FALSE;
+
         // release reference on miniport adapter
         Miniport->Release();
-        // increment reference on resource list
-        ResourceList->Release();
         return Status;
     }
 
@@ -269,9 +262,8 @@ CPortWavePci::Init(
     Status = Miniport->GetDescription(&m_pDescriptor);
     if (!NT_SUCCESS(Status))
     {
-        DPRINT1("failed to get description\n");
+        DPRINT("failed to get description\n");
         Miniport->Release();
-        m_bInitialized = FALSE;
         return Status;
     }
 
@@ -294,9 +286,8 @@ CPortWavePci::Init(
 
     if (!NT_SUCCESS(Status))
     {
-        DPRINT1("PcCreateSubdeviceDescriptor failed with %x\n", Status);
+        DPRINT("PcCreateSubdeviceDescriptor failed with %x\n", Status);
         Miniport->Release();
-        m_bInitialized = FALSE;
         return Status;
     }
 
@@ -313,6 +304,9 @@ CPortWavePci::Init(
         m_ServiceGroup->AddRef();
     }
 
+    // store for node property requests
+    m_SubDeviceDescriptor->UnknownMiniport = UnknownMiniport;
+
     // check if it supports IPinCount interface
     Status = UnknownMiniport->QueryInterface(IID_IPinCount, (PVOID*)&PinCount);
     if (NT_SUCCESS(Status))
@@ -347,18 +341,12 @@ CPortWavePci::NewRegistryKey(
     DPRINT("IPortWavePci_fnNewRegistryKey entered\n");
     PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
 
-    if (!m_bInitialized)
-    {
-        DPRINT("IPortWavePci_fnNewRegistryKey called w/o initiazed\n");
-        return STATUS_UNSUCCESSFUL;
-    }
-
     return PcNewRegistryKey(OutRegistryKey, 
                             OuterUnknown,
                             RegistryKeyType,
                             DesiredAccess,
                             m_pDeviceObject,
-                            NULL,//FIXME
+                            (ISubdevice*)this,
                             ObjectAttributes,
                             CreateOptions,
                             Disposition);
@@ -375,12 +363,6 @@ CPortWavePci::GetDeviceProperty(
     DPRINT("IPortWavePci_fnGetDeviceProperty entered\n");
     PC_ASSERT_IRQL_EQUAL(PASSIVE_LEVEL);
 
-    if (!m_bInitialized)
-    {
-        DPRINT("IPortWavePci_fnNewRegistryKey called w/o initiazed\n");
-        return STATUS_UNSUCCESSFUL;
-    }
-
     return IoGetDeviceProperty(m_pDeviceObject, DeviceRegistryProperty, BufferLength, PropertyBuffer, ReturnLength);
 }
 
@@ -420,8 +402,6 @@ NTAPI
 CPortWavePci::Notify(
     IN  PSERVICEGROUP ServiceGroup)
 {
-    //IPortWavePciImpl * This = (IPortWavePciImpl*)iface;
-
     //DPRINT("IPortWavePci_fnNotify entered %p, ServiceGroup %p\n", This, ServiceGroup);
 
     if (ServiceGroup)
@@ -438,7 +418,7 @@ NTSTATUS
 NTAPI
 CPortWavePci::NewIrpTarget(
     OUT struct IIrpTarget **OutTarget,
-    IN WCHAR * Name,
+    IN PCWSTR Name,
     IN PUNKNOWN Unknown,
     IN POOL_TYPE PoolType,
     IN PDEVICE_OBJECT DeviceObject,
@@ -478,8 +458,6 @@ NTSTATUS
 NTAPI
 CPortWavePci::ReleaseChildren()
 {
-    //IPortWavePciImpl * This = (IPortWavePciImpl*)CONTAINING_RECORD(iface, IPortWavePciImpl, lpVtblSubDevice);
-
     UNIMPLEMENTED
     return STATUS_UNSUCCESSFUL;
 }
@@ -489,7 +467,7 @@ NTAPI
 CPortWavePci::GetDescriptor(
     IN SUBDEVICE_DESCRIPTOR ** Descriptor)
 {
-    DPRINT1("ISubDevice_GetDescriptor this %p\n", this);
+    DPRINT("ISubDevice_GetDescriptor this %p\n", this);
     *Descriptor = m_SubDeviceDescriptor;
     return STATUS_SUCCESS;
 }