[PORTCLS]
[reactos.git] / reactos / drivers / wdm / audio / backpln / portcls / interfaces.hpp
index 7aefc88..8e3f705 100644 (file)
@@ -106,7 +106,7 @@ DEFINE_GUID(IID_IIrpTargetFactory, 0xB4C90A62, 0x5791, 0x11D0, 0xF9, 0x86, 0x00,
         IN PDEVICE_OBJECT DeviceObject,                    \
         IN PIRP Irp)PURE;                                  \
                                                            \
-    STDMETHOD_(NTSTATUS, Close)(THIS_                      \
+    virtual NTSTATUS Close(                      \
         IN PDEVICE_OBJECT DeviceObject,                    \
         IN PIRP Irp)PURE;                                  \
                                                            \
@@ -319,12 +319,11 @@ DECLARE_INTERFACE_(IIrpQueue, IUnknown)
     DEFINE_ABSTRACT_UNKNOWN()
 
     STDMETHOD_(NTSTATUS, Init)(THIS_
-        IN KSPIN_CONNECT *ConnectDetails,
-        IN PKSDATAFORMAT DataFormat,
-        IN PDEVICE_OBJECT DeviceObject,
+        IN PKSPIN_CONNECT ConnectDetails,
+        IN PKSPIN_DESCRIPTOR Descriptor,
         IN ULONG FrameSize,
         IN ULONG Alignment,
-        IN PVOID SilenceBuffer) PURE;
+        IN ULONG TagSupportEnabled) PURE;
 
     STDMETHOD_(NTSTATUS, AddMapping)(THIS_
         IN PIRP Irp,
@@ -337,17 +336,10 @@ DECLARE_INTERFACE_(IIrpQueue, IUnknown)
     STDMETHOD_(VOID, UpdateMapping)(THIS_
         IN ULONG BytesWritten) PURE;
 
-    STDMETHOD_(ULONG, NumMappings)(THIS) PURE;
-
     STDMETHOD_(ULONG, NumData)(THIS) PURE;
 
-    STDMETHOD_(BOOL, MinimumDataAvailable)(THIS) PURE;
-
     STDMETHOD_(BOOL, CancelBuffers)(THIS) PURE;
 
-    STDMETHOD_(VOID, UpdateFormat)(THIS_
-        IN PKSDATAFORMAT DataFormat) PURE;
-
     STDMETHOD_(NTSTATUS, GetMappingWithTag)(THIS_
         IN PVOID Tag,
         OUT PPHYSICAL_ADDRESS  PhysicalAddress,
@@ -358,22 +350,23 @@ DECLARE_INTERFACE_(IIrpQueue, IUnknown)
     STDMETHOD_(NTSTATUS, ReleaseMappingWithTag)(THIS_
         IN PVOID Tag) PURE;
 
-    STDMETHOD_(BOOL, HasLastMappingFailed)(THIS) PURE;
+    STDMETHOD_(BOOLEAN, HasLastMappingFailed)(THIS) PURE;
     STDMETHOD_(ULONG, GetCurrentIrpOffset)(THIS) PURE;
-    STDMETHOD_(VOID, SetMinimumDataThreshold)(THIS_
-        IN ULONG MinimumDataThreshold) PURE;
-    STDMETHOD_(ULONG, GetMinimumDataThreshold)(THIS) PURE;
+
+    STDMETHOD_(BOOLEAN, GetAcquiredTagRange)(THIS_
+        IN PVOID * FirstTag,
+        IN PVOID * LastTag) PURE;
+
 };
 
 
 #define IMP_IIrpQueue                                  \
     STDMETHODIMP_(NTSTATUS) Init(THIS_                 \
-        IN KSPIN_CONNECT *ConnectDetails,              \
-        IN PKSDATAFORMAT DataFormat,                   \
-        IN PDEVICE_OBJECT DeviceObject,                \
+        IN PKSPIN_CONNECT ConnectDetails,              \
+        IN PKSPIN_DESCRIPTOR Descriptor,               \
         IN ULONG FrameSize,                            \
         IN ULONG Alignment,                            \
-        IN PVOID SilenceBuffer);                       \
+        IN ULONG TagSupportEnabled);                   \
                                                        \
     STDMETHODIMP_(NTSTATUS) AddMapping(THIS_           \
         IN PIRP Irp,                                   \
@@ -386,17 +379,10 @@ DECLARE_INTERFACE_(IIrpQueue, IUnknown)
     STDMETHODIMP_(VOID) UpdateMapping(THIS_            \
         IN ULONG BytesWritten);                        \
                                                        \
-    STDMETHODIMP_(ULONG) NumMappings(THIS);            \
-                                                       \
     STDMETHODIMP_(ULONG) NumData(THIS);                \
                                                        \
-    STDMETHODIMP_(BOOL) MinimumDataAvailable(THIS);    \
-                                                       \
     STDMETHODIMP_(BOOL) CancelBuffers(THIS);           \
                                                        \
-    STDMETHODIMP_(VOID) UpdateFormat(THIS_             \
-        IN PKSDATAFORMAT DataFormat);                  \
-                                                       \
     STDMETHODIMP_(NTSTATUS) GetMappingWithTag(THIS_    \
         IN PVOID Tag,                                  \
         OUT PPHYSICAL_ADDRESS  PhysicalAddress,        \
@@ -407,11 +393,13 @@ DECLARE_INTERFACE_(IIrpQueue, IUnknown)
     STDMETHODIMP_(NTSTATUS) ReleaseMappingWithTag(     \
         IN PVOID Tag);                                 \
                                                        \
-    STDMETHODIMP_(BOOL) HasLastMappingFailed(THIS);    \
+    STDMETHODIMP_(BOOLEAN) HasLastMappingFailed(THIS); \
     STDMETHODIMP_(ULONG) GetCurrentIrpOffset(THIS);    \
-    STDMETHODIMP_(VOID) SetMinimumDataThreshold(       \
-        IN ULONG MinimumDataThreshold);                \
-    STDMETHODIMP_(ULONG) GetMinimumDataThreshold(VOID)
+    STDMETHODIMP_(BOOLEAN) GetAcquiredTagRange(THIS_      \
+        IN PVOID * FirstTag,                           \
+        IN PVOID * LastTag);
+
+
 
 /*****************************************************************************
  * IKsWorkSink
@@ -613,6 +601,8 @@ DECLARE_INTERFACE_(IIrpStreamVirtual, IIrpStream)
 #undef INTERFACE
 #define INTERFACE IPortFilterWavePci
 
+struct IPortPinWavePci;
+
 DECLARE_INTERFACE_(IPortFilterWavePci, IIrpTarget)
 {
     DEFINE_ABSTRACT_UNKNOWN()
@@ -621,6 +611,9 @@ DECLARE_INTERFACE_(IPortFilterWavePci, IIrpTarget)
 
     STDMETHOD_(NTSTATUS, Init)(THIS_
         IN PPORTWAVEPCI Port)PURE;
+
+    STDMETHOD_(NTSTATUS, FreePin)(THIS_
+        IN struct IPortPinWavePci* Pin)PURE;
 };
 
 typedef IPortFilterWavePci *PPORTFILTERWAVEPCI;
@@ -628,7 +621,10 @@ typedef IPortFilterWavePci *PPORTFILTERWAVEPCI;
 #define IMP_IPortFilterPci           \
     IMP_IIrpTarget;                         \
     STDMETHODIMP_(NTSTATUS) Init(THIS_      \
-        IN PPORTWAVEPCI Port)
+        IN PPORTWAVEPCI Port);              \
+    STDMETHODIMP_(NTSTATUS) FreePin(THIS_   \
+        IN struct IPortPinWavePci* Pin)
+
 
 /*****************************************************************************
  * IPortPinWavePci
@@ -892,6 +888,38 @@ typedef IPortPinDMus *PPORTPINDMUS;
  *****************************************************************************
  */
 
+#ifdef _MSC_VER
+
+#define IMP_IDmaChannelEx                                                 \
+    STDMETHODIMP_(NTSTATUS) AllocateBuffer(                               \
+        IN  ULONG BufferSize,                                             \
+        IN  PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL);        \
+                                                                          \
+    STDMETHODIMP_(void) FreeBuffer(void);                                 \
+    STDMETHODIMP_(ULONG) TransferCount(void);                             \
+    STDMETHODIMP_(ULONG) MaximumBufferSize(void);                         \
+    STDMETHODIMP_(ULONG) AllocatedBufferSize(void);                       \
+    STDMETHODIMP_(ULONG) BufferSize(void);                                \
+                                                                          \
+    STDMETHODIMP_(void) SetBufferSize(                                    \
+        IN  ULONG BufferSize);                                            \
+                                                                          \
+    STDMETHODIMP_(PVOID) SystemAddress(void);                             \
+    STDMETHODIMP_(PHYSICAL_ADDRESS) PhysicalAddress();                    \
+    STDMETHODIMP_(PADAPTER_OBJECT) GetAdapterObject(void);                \
+                                                                          \
+    STDMETHODIMP_(void) CopyTo(                                           \
+        IN  PVOID Destination,                                            \
+        IN  PVOID Source,                                                 \
+        IN  ULONG ByteCount);                                             \
+                                                                          \
+    STDMETHODIMP_(void) CopyFrom(                                         \
+        IN  PVOID Destination,                                            \
+        IN  PVOID Source,                                                 \
+        IN  ULONG ByteCount)
+
+#else
+
 #define IMP_IDmaChannelEx                                                 \
     STDMETHODIMP_(NTSTATUS) AllocateBuffer(                               \
         IN  ULONG BufferSize,                                             \
@@ -921,6 +949,11 @@ typedef IPortPinDMus *PPORTPINDMUS;
         IN  PVOID Source,                                                 \
         IN  ULONG ByteCount)
 
+
+
+#endif
+
+
 #define IMP_IDmaChannelSlaveEx                 \
     IMP_IDmaChannelEx;                         \
     STDMETHODIMP_(NTSTATUS) Start(             \
@@ -939,6 +972,37 @@ typedef IPortPinDMus *PPORTPINDMUS;
         IN  PDEVICE_DESCRIPTION DeviceDescription, \
         IN  PDEVICE_OBJECT DeviceObject)
 
+#ifdef _MSC_VER
+
+#define DEFINE_ABSTRACT_DMACHANNEL_EX() \
+    STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \
+        IN  ULONG BufferSize, \
+        IN  PPHYSICAL_ADDRESS PhysicalAddressConstraint OPTIONAL) PURE; \
+\
+    STDMETHOD_(void, FreeBuffer)( THIS ) PURE; \
+    STDMETHOD_(ULONG, TransferCount)( THIS ) PURE; \
+    STDMETHOD_(ULONG, MaximumBufferSize)( THIS ) PURE; \
+    STDMETHOD_(ULONG, AllocatedBufferSize)( THIS ) PURE; \
+    STDMETHOD_(ULONG, BufferSize)( THIS ) PURE; \
+\
+    STDMETHOD_(void, SetBufferSize)( THIS_ \
+        IN  ULONG BufferSize) PURE; \
+\
+    STDMETHOD_(PVOID, SystemAddress)( THIS ) PURE; \
+    STDMETHOD_(PHYSICAL_ADDRESS, PhysicalAddress)( THIS) PURE;  \
+    STDMETHOD_(PADAPTER_OBJECT, GetAdapterObject)( THIS ) PURE; \
+\
+    STDMETHOD_(void, CopyTo)( THIS_ \
+        IN  PVOID Destination, \
+        IN  PVOID Source, \
+        IN  ULONG ByteCount) PURE; \
+\
+    STDMETHOD_(void, CopyFrom)( THIS_ \
+        IN  PVOID Destination, \
+        IN  PVOID Source, \
+        IN  ULONG ByteCount) PURE;
+#else
+
 #define DEFINE_ABSTRACT_DMACHANNEL_EX() \
     STDMETHOD_(NTSTATUS, AllocateBuffer)( THIS_ \
         IN  ULONG BufferSize, \
@@ -968,6 +1032,7 @@ typedef IPortPinDMus *PPORTPINDMUS;
         IN  PVOID Source, \
         IN  ULONG ByteCount) PURE;
 
+#endif
 #undef INTERFACE
 #define INTERFACE IDmaChannelInit