[ros-diffs] [janderwald] 39822: - Add missing guids, interfaces, structs to get CMIDriver compile

janderwald at svn.reactos.org janderwald at svn.reactos.org
Sun Mar 1 13:45:33 CET 2009


Author: janderwald
Date: Sun Mar  1 15:45:32 2009
New Revision: 39822

URL: http://svn.reactos.org/svn/reactos?rev=39822&view=rev
Log:
- Add missing guids, interfaces, structs to get CMIDriver compile

Modified:
    trunk/reactos/include/ddk/drmk.h
    trunk/reactos/include/ddk/ntstrsafe.h
    trunk/reactos/include/ddk/portcls.h
    trunk/reactos/include/ddk/stdunk.h
    trunk/reactos/include/ddk/winddk.h
    trunk/reactos/include/psdk/guiddef.h
    trunk/reactos/include/psdk/ks.h
    trunk/reactos/include/psdk/ksmedia.h
    trunk/reactos/include/psdk/mmreg.h

Modified: trunk/reactos/include/ddk/drmk.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/drmk.h?rev=39822&r1=39821&r2=39822&view=diff
==============================================================================
--- trunk/reactos/include/ddk/drmk.h [iso-8859-1] (original)
+++ trunk/reactos/include/ddk/drmk.h [iso-8859-1] Sun Mar  1 15:45:32 2009
@@ -23,6 +23,7 @@
     BOOL DigitalOutputDisable;
 } DRMRIGHTS, *PDRMRIGHTS;
 
+typedef const DRMRIGHTS *PCDRMRIGHTS;
 
 /* ===============================================================
     Digital Rights Management Functions
@@ -76,4 +77,31 @@
 }
 #endif
 
+
+
+DEFINE_GUID(IID_IDrmAudioStream,
+    0x1915c967, 0x3299, 0x48cb, 0xa3, 0xe4, 0x69, 0xfd, 0x1d, 0x1b, 0x30, 0x6e);
+
+DECLARE_INTERFACE_(IDrmAudioStream, IUnknown)
+{
+    STDMETHOD_(NTSTATUS, QueryInterface)(THIS_
+        REFIID InterfaceId,
+        PVOID* Interface
+        ) PURE;
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+    STDMETHOD_(ULONG,Release)(THIS) PURE;
+    STDMETHOD_(NTSTATUS,SetContentId)(THIS_
+        IN ULONG ContentId,
+        IN PCDRMRIGHTS DrmRights) PURE;
+};
+
+typedef IDrmAudioStream *PDRMAUDIOSTREAM;
+
+#define IMP_IDrmAudioStream                 \
+    STDMETHODIMP_(NTSTATUS) SetContentId    \
+    (   IN      ULONG	    ContentId,      \
+        IN      PCDRMRIGHTS DrmRights       \
+    );
+
+
 #endif

Modified: trunk/reactos/include/ddk/ntstrsafe.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ntstrsafe.h?rev=39822&r1=39821&r2=39822&view=diff
==============================================================================
--- trunk/reactos/include/ddk/ntstrsafe.h [iso-8859-1] (original)
+++ trunk/reactos/include/ddk/ntstrsafe.h [iso-8859-1] Sun Mar  1 15:45:32 2009
@@ -394,6 +394,19 @@
     return Status;
 }
 
+
+NTSTATUS
+NTAPI
+RtlStringCbPrintfW(
+    LPWSTR pszDest,
+    IN size_t cbDest,
+    IN LPCWSTR pszFormat,
+    ...)
+{
+    UNIMPLEMENTED
+    return STATUS_NOT_IMPLEMENTED;
+}
+
 FORCEINLINE
 NTSTATUS
 NTAPI

Modified: trunk/reactos/include/ddk/portcls.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/portcls.h?rev=39822&r1=39821&r2=39822&view=diff
==============================================================================
--- trunk/reactos/include/ddk/portcls.h [iso-8859-1] (original)
+++ trunk/reactos/include/ddk/portcls.h [iso-8859-1] Sun Mar  1 15:45:32 2009
@@ -164,6 +164,7 @@
 /* HACK */
 /* typedef PVOID CM_RESOURCE_TYPE; */
 
+#define _100NS_UNITS_PER_SECOND 10000000L
 #define PORT_CLASS_DEVICE_EXTENSION_SIZE ( 64 * sizeof(ULONG_PTR) )
 
 
@@ -236,42 +237,47 @@
 
 struct _PCPROPERTY_REQUEST;
 
+typedef struct _PCPROPERTY_REQUEST PCPROPERTY_REQUEST, *PPCPROPERTY_REQUEST;
+
 typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)(
-    IN  struct _PCPROPERTY_REQUEST* PropertyRequest);
-
-typedef struct _PCPROPERTY_ITEM
-{
-    const GUID* Set;
-    ULONG Id;
-    ULONG Flags;
-    PCPFNPROPERTY_HANDLER Handler;
-} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
-
-typedef struct _PCPROPERTY_REQUEST
-{
-    PUNKNOWN MajorTarget;
-    PUNKNOWN MinorTarget;
-    ULONG Node;
-    const PCPROPERTY_ITEM* PropertyItem;
-    ULONG Verb;
-    ULONG InstanceSize;
-    PVOID Instance;
-    ULONG ValueSize;
-    PVOID Value;
-    PIRP Irp;
-} PCPROPERTY_REQUEST, *PPCPROPERTY_REQUEST;
-
-#define PCPROPERTY_ITEM_FLAG_DEFAULTVALUES KSPROPERTY_TYPE_DEFAULTVALUES
+    IN  PPCPROPERTY_REQUEST PropertyRequest);
+
+typedef struct
+{
+    const GUID *            Set;
+    ULONG                   Id;
+    ULONG                   Flags;
 #define PCPROPERTY_ITEM_FLAG_GET            KSPROPERTY_TYPE_GET
 #define PCPROPERTY_ITEM_FLAG_SET            KSPROPERTY_TYPE_SET
 #define PCPROPERTY_ITEM_FLAG_BASICSUPPORT   KSPROPERTY_TYPE_BASICSUPPORT
-#define PCPROPERTY_ITEM_FLAG_SERIALIZESIZE  KSPROPERTY_TYPE_SERIALIZESIZE
+//not supported #define PCPROPERTY_ITEM_FLAG_RELATIONS      KSPROPERTY_TYPE_RELATIONS
 #define PCPROPERTY_ITEM_FLAG_SERIALIZERAW   KSPROPERTY_TYPE_SERIALIZERAW
 #define PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW KSPROPERTY_TYPE_UNSERIALIZERAW
-#define PCPROPERTY_ITEM_FLAG_SERIALIZE      ( PCPROPERTY_ITEM_FLAG_SERIALIZERAW \
-                                            | PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW \
-                                            | PCPROPERTY_ITEM_FLAG_SERIALIZESIZE)
-
+#define PCPROPERTY_ITEM_FLAG_SERIALIZESIZE  KSPROPERTY_TYPE_SERIALIZESIZE
+#define PCPROPERTY_ITEM_FLAG_SERIALIZE\
+        (PCPROPERTY_ITEM_FLAG_SERIALIZERAW\
+        |PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW\
+        |PCPROPERTY_ITEM_FLAG_SERIALIZESIZE\
+        )
+#define PCPROPERTY_ITEM_FLAG_DEFAULTVALUES  KSPROPERTY_TYPE_DEFAULTVALUES
+    PCPFNPROPERTY_HANDLER   Handler;
+}
+PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
+
+
+typedef struct _PCPROPERTY_REQUEST
+{
+    PUNKNOWN                MajorTarget;
+    PUNKNOWN                MinorTarget;
+    ULONG                   Node;
+    const PCPROPERTY_ITEM * PropertyItem;
+    ULONG                   Verb;
+    ULONG                   InstanceSize;
+    PVOID                   Instance;
+    ULONG                   ValueSize;
+    PVOID                   Value;
+    PIRP                    Irp;
+}PCPROPERTY_REQUEST, *PPCPROPERTY_REQUEST;
 
 struct _PCEVENT_REQUEST;
 
@@ -381,6 +387,16 @@
     const GUID* Categories;
 } PCFILTER_DESCRIPTOR, *PPCFILTER_DESCRIPTOR;
 
+#define DEFINE_PCAUTOMATION_TABLE_PROP(AutomationTable,PropertyTable)\
+const PCAUTOMATION_TABLE AutomationTable =\
+{\
+    sizeof(PropertyTable[0]),\
+    SIZEOF_ARRAY(PropertyTable),\
+    (const PCPROPERTY_ITEM *) PropertyTable,\
+    0,0,NULL,\
+    0,0,NULL,\
+    0\
+}
 
 /* ===============================================================
     IResourceList Interface
@@ -1011,6 +1027,10 @@
 DEFINE_GUIDSTRUCT("0xB4C90A25-5791-11d0-86f9-00a0c911b544", IID_IPort);
 #define IID_IPort DEFINE_GUIDNAMED(IID_IPort)
 #endif
+
+DEFINE_GUID(IID_IMiniport,
+    0xb4c90a24L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44);
+
 DEFINE_GUID(IID_IPort,
     0xb4c90a25L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44);
 
@@ -1360,6 +1380,9 @@
 #undef INTERFACE
 #define INTERFACE IMiniportWaveCyclicStream
 
+DEFINE_GUID(IID_IMiniportWaveCyclicStream,
+0xb4c90a28L, 0x5791, 0x11d0, 0x86, 0xf9, 0x00, 0xa0, 0xc9, 0x11, 0xb5, 0x44);
+
 DECLARE_INTERFACE_(IMiniportWaveCyclicStream,IUnknown)
 {
     DEFINE_ABSTRACT_UNKNOWN()
@@ -1386,6 +1409,29 @@
 };
 
 typedef IMiniportWaveCyclicStream *PMINIPORTWAVECYCLICSTREAM;
+
+#define IMP_IMiniportWaveCyclicStream\
+    STDMETHODIMP_(NTSTATUS) SetFormat\
+    (   IN      PKSDATAFORMAT   DataFormat\
+    );\
+    STDMETHODIMP_(ULONG) SetNotificationFreq\
+    (   IN      ULONG           Interval,\
+        OUT     PULONG          FrameSize\
+    );\
+    STDMETHODIMP_(NTSTATUS) SetState\
+    (   IN      KSSTATE         State\
+    );\
+    STDMETHODIMP_(NTSTATUS) GetPosition\
+    (   OUT     PULONG          Position\
+    );\
+    STDMETHODIMP_(NTSTATUS) NormalizePhysicalPosition\
+    (   IN OUT PLONGLONG        PhysicalPosition\
+    );\
+    STDMETHODIMP_(void) Silence\
+    (   IN      PVOID           Buffer,\
+        IN      ULONG           ByteCount\
+    )
+
 
 /* ===============================================================
     IMiniportWaveCyclic Interface
@@ -1420,6 +1466,24 @@
 
 typedef IMiniportWaveCyclic *PMINIPORTWAVECYCLIC;
 #undef INTERFACE
+
+#define IMP_IMiniportWaveCyclic\
+    IMP_IMiniport;\
+    STDMETHODIMP_(NTSTATUS) Init\
+    (   IN      PUNKNOWN        UnknownAdapter,\
+        IN      PRESOURCELIST   ResourceList,\
+        IN      PPORTWAVECYCLIC Port\
+    );\
+    STDMETHODIMP_(NTSTATUS) NewStream\
+    (   OUT     PMINIPORTWAVECYCLICSTREAM * Stream,\
+        IN      PUNKNOWN                    OuterUnknown    OPTIONAL,\
+        IN      POOL_TYPE                   PoolType,\
+        IN      ULONG                       Pin,\
+        IN      BOOLEAN                     Capture,\
+        IN      PKSDATAFORMAT               DataFormat,\
+        OUT     PDMACHANNEL *               DmaChannel,\
+        OUT     PSERVICEGROUP *             ServiceGroup\
+    )
 
 
 /* ===============================================================
@@ -1547,7 +1611,19 @@
         IN PDEVICE_CAPABILITIES PowerDeviceCaps) PURE;
 };
 
-#define IMP_IAdapterPowerManagement
+#define IMP_IAdapterPowerManagement                       \
+    STDMETHODIMP_(void) PowerChangeState                  \
+    (   IN      POWER_STATE     NewState                  \
+    );                                                    \
+    STDMETHODIMP_(NTSTATUS) QueryPowerChangeState         \
+    (   IN      POWER_STATE     NewStateQuery             \
+    );                                                    \
+    STDMETHODIMP_(NTSTATUS) QueryDeviceCapabilities       \
+    (   IN      PDEVICE_CAPABILITIES    PowerDeviceCaps   \
+    )
+
+typedef IAdapterPowerManagement *PADAPTERPOWERMANAGEMENT;
+
 
 /* ===============================================================
     IPowerNotify Interface

Modified: trunk/reactos/include/ddk/stdunk.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/stdunk.h?rev=39822&r1=39821&r2=39822&view=diff
==============================================================================
--- trunk/reactos/include/ddk/stdunk.h [iso-8859-1] (original)
+++ trunk/reactos/include/ddk/stdunk.h [iso-8859-1] Sun Mar  1 15:45:32 2009
@@ -164,8 +164,8 @@
     Custom "new" and "delete" C++ operators
 */
 
-#ifndef ALLOCATION_OPERATORS_DEFINED
-#define ALLOCATION_OPERATORS_DEFINED
+#ifndef _NEW_DELETE_OPERATORS_
+#define _NEW_DELETE_OPERATORS_
 
 inline PVOID
 KCOM_New(

Modified: trunk/reactos/include/ddk/winddk.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/winddk.h?rev=39822&r1=39821&r2=39822&view=diff
==============================================================================
--- trunk/reactos/include/ddk/winddk.h [iso-8859-1] (original)
+++ trunk/reactos/include/ddk/winddk.h [iso-8859-1] Sun Mar  1 15:45:32 2009
@@ -95,10 +95,15 @@
 
 #ifndef __IID_ALIGNED__
     #define __IID_ALIGNED__
-
-    #define IsEqualGUIDAligned(guid1, guid2) \
-        ( (*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && \
-            (*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1)) )
+    #ifdef __cplusplus
+        inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
+        {
+            return ((*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) && (*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1)));
+        }
+    #else
+        #define IsEqualGUIDAligned(guid1, guid2) \
+            ((*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && (*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1)))
+    #endif 
 #endif
 
 /*

Modified: trunk/reactos/include/psdk/guiddef.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/guiddef.h?rev=39822&r1=39821&r2=39822&view=diff
==============================================================================
--- trunk/reactos/include/psdk/guiddef.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/guiddef.h [iso-8859-1] Sun Mar  1 15:45:32 2009
@@ -109,6 +109,8 @@
 
 #if defined(__cplusplus) && !defined(CINTERFACE)
 #include <string.h>
+#if !defined _SYS_GUID_OPERATOR_EQ_ && !defined _NO_SYS_GUID_OPERATOR_EQ_
+#define _SYS_GUID_OPERATOR_EQ_
 inline bool operator==(const GUID& guidOne, const GUID& guidOther)
 {
     return !memcmp(&guidOne,&guidOther,sizeof(GUID));
@@ -118,5 +120,6 @@
     return !(guidOne == guidOther);
 }
 #endif
+#endif
 
 #endif /* _GUIDDEF_H_ */

Modified: trunk/reactos/include/psdk/ks.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/ks.h?rev=39822&r1=39821&r2=39822&view=diff
==============================================================================
--- trunk/reactos/include/psdk/ks.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/ks.h [iso-8859-1] Sun Mar  1 15:45:32 2009
@@ -56,6 +56,11 @@
 #if defined(_NTDDK_)
 typedef PVOID PKSWORKER;
 #endif
+
+#ifndef SIZEOF_ARRAY
+    #define SIZEOF_ARRAY(a)        (sizeof(a)/sizeof((a)[0]))
+#endif
+
 /* ===============================================================
     GUID definition helpers
 */
@@ -600,7 +605,11 @@
     Property Sets for audio drivers - TODO
 */
 
-#define KSPROPSETID_AC3
+#define STATIC_KSPROPTYPESETID_General \
+    0x97E99BA0L, 0xBDEA, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
+DEFINE_GUIDSTRUCT("97E99BA0-BDEA-11CF-A5D6-28DB04C10000", KSPROPTYPESETID_General);
+#define KSPROPTYPESETID_General DEFINE_GUIDNAMED(KSPROPTYPESETID_General)
+
 /*
     KSPROPERTY_AC3_ALTERNATE_AUDIO
     KSPROPERTY_AC3_BIT_STREAM_MODE
@@ -618,7 +627,6 @@
     KSPROPERTY_AEC_STATUS
 */
 
-#define KSPROPSETID_Audio
 /*
     KSPROPERTY_AUDIO_3D_INTERFACE
     KSPROPERTY_AUDIO_AGC
@@ -943,6 +951,12 @@
     TODO ...
 */
 
+#define STATIC_KSDATAFORMAT_SPECIFIER_NONE\
+    0x0F6417D6L, 0xC318, 0x11D0, 0xA4, 0x3F, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
+DEFINE_GUIDSTRUCT("0F6417D6-C318-11D0-A43F-00A0C9223196", KSDATAFORMAT_SPECIFIER_NONE);
+#define KSDATAFORMAT_SPECIFIER_NONE DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_NONE)
+
+
 /* ===============================================================
     KSMEMORY_TYPE_xxx
 
@@ -1090,6 +1104,67 @@
     IN PIRP Irp);
 #endif
 
+#if defined(_NTDDK_) && !defined(__wtypes_h__)
+enum VARENUM {
+    VT_EMPTY = 0,
+    VT_NULL = 1,
+    VT_I2 = 2,
+    VT_I4 = 3,
+    VT_R4 = 4,
+    VT_R8 = 5,
+    VT_CY = 6,
+    VT_DATE = 7,
+    VT_BSTR = 8,
+    VT_DISPATCH = 9,
+    VT_ERROR = 10,
+    VT_BOOL = 11,
+    VT_VARIANT = 12,
+    VT_UNKNOWN = 13,
+    VT_DECIMAL = 14,
+    VT_I1 = 16,
+    VT_UI1 = 17,
+    VT_UI2 = 18,
+    VT_UI4 = 19,
+    VT_I8 = 20,
+    VT_UI8 = 21,
+    VT_INT = 22,
+    VT_UINT = 23,
+    VT_VOID = 24,
+    VT_HRESULT  = 25,
+    VT_PTR = 26,
+    VT_SAFEARRAY = 27,
+    VT_CARRAY = 28,
+    VT_USERDEFINED = 29,
+    VT_LPSTR = 30,
+    VT_LPWSTR = 31,
+    VT_FILETIME = 64,
+    VT_BLOB = 65,
+    VT_STREAM = 66,
+    VT_STORAGE = 67,
+    VT_STREAMED_OBJECT = 68,
+    VT_STORED_OBJECT = 69,
+    VT_BLOB_OBJECT = 70,
+    VT_CF = 71,
+    VT_CLSID = 72,
+    VT_VECTOR = 0x1000,
+    VT_ARRAY = 0x2000,
+    VT_BYREF = 0x4000,
+    VT_RESERVED = 0x8000,
+    VT_ILLEGAL = 0xffff,
+    VT_ILLEGALMASKED = 0xfff,
+    VT_TYPEMASK = 0xfff
+};
+#endif
+
+#define STATIC_KSDATAFORMAT_TYPE_WILDCARD       STATIC_GUID_NULL
+#define KSDATAFORMAT_TYPE_WILDCARD              GUID_NULL
+
+#define STATIC_KSDATAFORMAT_SUBTYPE_WILDCARD    STATIC_GUID_NULL
+#define KSDATAFORMAT_SUBTYPE_WILDCARD           GUID_NULL
+
+#define STATIC_KSDATAFORMAT_SPECIFIER_WILDCARD  STATIC_GUID_NULL
+#define KSDATAFORMAT_SPECIFIER_WILDCARD         GUID_NULL
+
 /* ===============================================================
     Framing
 */
@@ -1204,6 +1279,22 @@
 
 typedef struct
 {
+#if defined( _KS_NO_ANONYMOUS_STRUCTURES_ )
+    struct _SIGNED {
+#else
+    struct {
+#endif    
+        LONG    SignedMinimum;
+        LONG    SignedMaximum;
+    };
+#if defined( _KS_NO_ANONYMOUS_STRUCTURES_ )
+    struct _UNSIGNED {
+#else
+    struct {
+#endif    
+        ULONG   UnsignedMinimum;
+        ULONG   UnsignedMaximum;
+    };
 } KSPROPERTY_BOUNDS_LONG, *PKSPROPERTY_BOUNDS_LONG;
 
 typedef struct
@@ -1212,6 +1303,11 @@
 
 typedef struct
 {
+    ULONG           AccessFlags;
+    ULONG           DescriptionSize;
+    KSIDENTIFIER    PropTypeSet;
+    ULONG           MembersListCount;
+    ULONG           Reserved;
 } KSPROPERTY_DESCRIPTION, *PKSPROPERTY_DESCRIPTION;
 
 typedef struct
@@ -1303,6 +1399,9 @@
 
 typedef struct
 {
+    ULONG                       SteppingDelta;
+    ULONG                       Reserved;
+    KSPROPERTY_BOUNDS_LONG      Bounds;
 } KSPROPERTY_STEPPING_LONG, *PKSPROPERTY_STEPPING_LONG;
 
 typedef struct
@@ -3062,6 +3161,14 @@
 
 #if defined(_UNKNOWN_H_) || defined(__IUnknown_INTERFACE_DEFINED__)
 
+KSDDKAPI
+PUNKNOWN
+NTAPI
+KsGetOuterUnknown(
+    IN PVOID Object
+    );
+
+
 PUNKNOWN
 NTAPI
 KsDeviceGetOuterUnknown(

Modified: trunk/reactos/include/psdk/ksmedia.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/ksmedia.h?rev=39822&r1=39821&r2=39822&view=diff
==============================================================================
--- trunk/reactos/include/psdk/ksmedia.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/ksmedia.h [iso-8859-1] Sun Mar  1 15:45:32 2009
@@ -14,6 +14,8 @@
     KS CATEGORIES
 */
 
+#define EXTRACT_WAVEFORMATEX_ID(Guid)\
+    (USHORT)((Guid)->Data1)
 
 /* Audio device (as presented by sysaudio) */
 
@@ -112,6 +114,176 @@
 
 #define STATIC_KSCATEGORY_DRM_DESCRAMBLE STATIC_KSNODETYPE_DRM_DESCRAMBLE
 #define KSCATEGORY_DRM_DESCRAMBLE KSNODETYPE_DRM_DESCRAMBLE
+
+/*
+    Nodes
+*/
+
+#define STATIC_KSNODETYPE_ADC\
+    0x4D837FE0L, 0xC555, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("4D837FE0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_ADC);
+#define KSNODETYPE_ADC DEFINE_GUIDNAMED(KSNODETYPE_ADC)
+
+#define STATIC_KSNODETYPE_3D_EFFECTS\
+    0x55515860L, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("55515860-C559-11D0-8A2B-00A0C9255AC1", KSNODETYPE_3D_EFFECTS);
+#define KSNODETYPE_3D_EFFECTS DEFINE_GUIDNAMED(KSNODETYPE_3D_EFFECTS)
+
+#define STATIC_KSNODETYPE_SUPERMIX\
+    0xE573ADC0L, 0xC555, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("E573ADC0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SUPERMIX);
+#define KSNODETYPE_SUPERMIX DEFINE_GUIDNAMED(KSNODETYPE_SUPERMIX)
+
+#define STATIC_KSNODETYPE_SRC\
+    0x9DB7B9E0L, 0xC555, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("9DB7B9E0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SRC);
+#define KSNODETYPE_SRC DEFINE_GUIDNAMED(KSNODETYPE_SRC)
+
+#define STATIC_KSNODETYPE_DAC\
+    0x507AE360L, 0xC554, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("507AE360-C554-11D0-8A2B-00A0C9255AC1", KSNODETYPE_DAC);
+#define KSNODETYPE_DAC DEFINE_GUIDNAMED(KSNODETYPE_DAC)
+
+#define STATIC_KSNODETYPE_SPDIF_INTERFACE\
+    DEFINE_USB_TERMINAL_GUID(0x0605)
+DEFINE_GUIDSTRUCT("DFF21FE5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SPDIF_INTERFACE);
+#define KSNODETYPE_SPDIF_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_SPDIF_INTERFACE)
+
+#define STATIC_KSNODETYPE_MICROPHONE\
+    DEFINE_USB_TERMINAL_GUID(0x0201)
+DEFINE_GUIDSTRUCT("DFF21BE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_MICROPHONE);
+#define KSNODETYPE_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE)
+
+#define STATIC_KSNODETYPE_CD_PLAYER\
+    DEFINE_USB_TERMINAL_GUID(0x0703)
+DEFINE_GUIDSTRUCT("DFF220E3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_CD_PLAYER);
+#define KSNODETYPE_CD_PLAYER DEFINE_GUIDNAMED(KSNODETYPE_CD_PLAYER)
+
+#define STATIC_KSNODETYPE_LINE_CONNECTOR\
+    DEFINE_USB_TERMINAL_GUID(0x0603)
+DEFINE_GUIDSTRUCT("DFF21FE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_LINE_CONNECTOR);
+#define KSNODETYPE_LINE_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LINE_CONNECTOR)
+
+#define STATIC_KSNODETYPE_ANALOG_CONNECTOR\
+    DEFINE_USB_TERMINAL_GUID(0x601)
+DEFINE_GUIDSTRUCT("DFF21FE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_ANALOG_CONNECTOR);
+#define KSNODETYPE_ANALOG_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_CONNECTOR)
+
+#define STATIC_KSNODETYPE_SPEAKER\
+    DEFINE_USB_TERMINAL_GUID(0x0301)
+DEFINE_GUIDSTRUCT("DFF21CE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SPEAKER);
+#define KSNODETYPE_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_SPEAKER)
+
+#define STATIC_KSAUDFNAME_RECORDING_CONTROL\
+    0x185FEDFAL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDFA-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_RECORDING_CONTROL);
+#define KSAUDFNAME_RECORDING_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_CONTROL)
+
+#define STATIC_KSNODETYPE_VOLUME\
+    0x3A5ACC00L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("3A5ACC00-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_VOLUME);
+#define KSNODETYPE_VOLUME DEFINE_GUIDNAMED(KSNODETYPE_VOLUME)
+
+#define STATIC_KSAUDFNAME_WAVE_VOLUME\
+    0x185FEDE5L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDE5-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_WAVE_VOLUME);
+#define KSAUDFNAME_WAVE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_VOLUME)
+
+#define STATIC_KSNODETYPE_MUTE\
+    0x02B223C0L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("02B223C0-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_MUTE);
+#define KSNODETYPE_MUTE DEFINE_GUIDNAMED(KSNODETYPE_MUTE)
+
+#define STATIC_KSAUDFNAME_WAVE_MUTE\
+    0x185FEDE6L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDE6-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_WAVE_MUTE);
+#define KSAUDFNAME_WAVE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_MUTE)
+
+#define STATIC_KSAUDFNAME_MIC_VOLUME\
+    0x185FEDEDL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDED-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_VOLUME);
+#define KSAUDFNAME_MIC_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_VOLUME)
+
+#define STATIC_KSNODETYPE_SUM\
+    0xDA441A60L, 0xC556, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("DA441A60-C556-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SUM);
+#define KSNODETYPE_SUM DEFINE_GUIDNAMED(KSNODETYPE_SUM)
+
+#define STATIC_KSAUDFNAME_MASTER_VOLUME\
+    0x185FEDE3L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDE3-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MASTER_VOLUME);
+#define KSAUDFNAME_MASTER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_VOLUME)
+
+#define STATIC_KSAUDFNAME_CD_VOLUME\
+    0x185FEDE9L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDE9-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_CD_VOLUME);
+#define KSAUDFNAME_CD_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_VOLUME)
+
+#define STATIC_KSAUDFNAME_RECORDING_SOURCE\
+    0x185FEDEFL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDEF-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_RECORDING_SOURCE);
+#define KSAUDFNAME_RECORDING_SOURCE DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_SOURCE)
+
+#define STATIC_KSAUDFNAME_LINE_IN_VOLUME\
+    0x185FEDF4L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDF4-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_LINE_IN_VOLUME);
+#define KSAUDFNAME_LINE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN_VOLUME)
+
+#define STATIC_KSAUDFNAME_AUX_VOLUME\
+    0x185FEDFCL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDFC-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_AUX_VOLUME);
+#define KSAUDFNAME_AUX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_AUX_VOLUME)
+
+#define STATIC_KSAUDFNAME_MIC_IN_VOLUME\
+    0x185FEDF5L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDF5-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_IN_VOLUME);
+#define KSAUDFNAME_MIC_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_IN_VOLUME)
+
+#define STATIC_KSNODETYPE_LOUDNESS\
+    0x41887440L, 0xC558, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("41887440-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_LOUDNESS);
+#define KSNODETYPE_LOUDNESS DEFINE_GUIDNAMED(KSNODETYPE_LOUDNESS)
+
+#define STATIC_KSAUDFNAME_MICROPHONE_BOOST\
+    0x2bc31d6aL, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
+DEFINE_GUIDSTRUCT("2BC31D6A-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_MICROPHONE_BOOST);
+#define KSAUDFNAME_MICROPHONE_BOOST DEFINE_GUIDNAMED(KSAUDFNAME_MICROPHONE_BOOST)
+
+#define STATIC_KSAUDFNAME_CD_MUTE\
+    0x185FEDEAL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDEA-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_CD_MUTE);
+#define KSAUDFNAME_CD_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_CD_MUTE)
+
+#define STATIC_KSAUDFNAME_LINE_MUTE\
+    0x185FEDECL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDEC-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_LINE_MUTE);
+#define KSAUDFNAME_LINE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_LINE_MUTE)
+
+#define STATIC_KSAUDFNAME_MIC_MUTE\
+    0x185FEDEEL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDEE-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_MUTE);
+#define KSAUDFNAME_MIC_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIC_MUTE)
+
+#define STATIC_KSAUDFNAME_AUX_MUTE\
+    0x185FEDFDL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDFD-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_AUX_MUTE);
+#define KSAUDFNAME_AUX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_AUX_MUTE)
+
+#define STATIC_KSAUDFNAME_VOLUME_CONTROL\
+    0x185FEDF7L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDF7-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_VOLUME_CONTROL);
+#define KSAUDFNAME_VOLUME_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_VOLUME_CONTROL)
+
+#define STATIC_KSNODETYPE_MUX\
+    0x2CEAF780L, 0xC556, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
+DEFINE_GUIDSTRUCT("2CEAF780-C556-11D0-8A2B-00A0C9255AC1", KSNODETYPE_MUX);
+#define KSNODETYPE_MUX DEFINE_GUIDNAMED(KSNODETYPE_MUX)
+
+#define STATIC_KSAUDFNAME_MASTER_MUTE\
+    0x185FEDE4L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
+DEFINE_GUIDSTRUCT("185FEDE4-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MASTER_MUTE);
+#define KSAUDFNAME_MASTER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_MUTE)
+
 
 /*
     Pins
@@ -132,6 +304,17 @@
     KSDATAFORMAT    DataFormat;
     WAVEFORMATEX    WaveFormatEx;
 } KSDATAFORMAT_WAVEFORMATEX, *PKSDATAFORMAT_WAVEFORMATEX;
+
+typedef struct {
+    ULONG               Flags;
+    ULONG               Control;
+    WAVEFORMATEX        WaveFormatEx;
+} KSDSOUND_BUFFERDESC, *PKSDSOUND_BUFFERDESC;
+
+typedef struct {
+    KSDATAFORMAT        DataFormat;
+    KSDSOUND_BUFFERDESC BufferDesc;
+} KSDATAFORMAT_DSOUND, *PKSDATAFORMAT_DSOUND;
 
 //#endif
 
@@ -144,6 +327,22 @@
    ULONG                    MaximumSampleFrequency;
 } KSDATARANGE_AUDIO, *PKSDATARANGE_AUDIO;
 
+#if !defined( DEFINE_WAVEFORMATEX_GUID )
+#define DEFINE_WAVEFORMATEX_GUID(x) (USHORT)(x), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
+#endif
+
+#define STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX\
+    0x00000000L, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
+DEFINE_GUIDSTRUCT("00000000-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_WAVEFORMATEX);
+#define KSDATAFORMAT_SUBTYPE_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_WAVEFORMATEX)
+
+
+#define INIT_WAVEFORMATEX_GUID(Guid, x)            \
+{                                                  \
+    *(Guid) = KSDATAFORMAT_SUBTYPE_WAVEFORMATEX;   \
+    (Guid)->Data1 = (USHORT)(x);                   \
+}
+
 // 'vids'
 #define STATIC_KSDATAFORMAT_TYPE_VIDEO \
     0x73646976L, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
@@ -156,7 +355,15 @@
 DEFINE_GUIDSTRUCT("73647561-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_AUDIO);
 #define KSDATAFORMAT_TYPE_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUDIO)
 
-
+#define STATIC_KSDATAFORMAT_SPECIFIER_DSOUND\
+    0x518590a2L, 0xa184, 0x11d0, 0x85, 0x22, 0x00, 0xc0, 0x4f, 0xd9, 0xba, 0xf3
+DEFINE_GUIDSTRUCT("518590a2-a184-11d0-8522-00c04fd9baf3", KSDATAFORMAT_SPECIFIER_DSOUND);
+#define KSDATAFORMAT_SPECIFIER_DSOUND DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DSOUND)
+
+#define STATIC_KSDATAFORMAT_SUBTYPE_ANALOG\
+    0x6dba3190L, 0x67bd, 0x11cf, 0xa0, 0xf7, 0x00, 0x20, 0xaf, 0xd1, 0x56, 0xe4
+DEFINE_GUIDSTRUCT("6dba3190-67bd-11cf-a0f7-0020afd156e4", KSDATAFORMAT_SUBTYPE_ANALOG);
+#define KSDATAFORMAT_SUBTYPE_ANALOG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ANALOG)
 
 
 // 'txts'
@@ -191,6 +398,88 @@
     0x05589f81L, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a
 DEFINE_GUIDSTRUCT("05589f81-c356-11ce-bf01-00aa0055595a", KSDATAFORMAT_SPECIFIER_WAVEFORMATEX);
 #define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
+
+#define STATIC_KSDATAFORMAT_SUBTYPE_AC3_AUDIO\
+    0xe06d802cL, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
+DEFINE_GUIDSTRUCT("e06d802c-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SUBTYPE_AC3_AUDIO);
+#define KSDATAFORMAT_SUBTYPE_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_AC3_AUDIO)
+
+#define STATIC_KSDATAFORMAT_SPECIFIER_AC3_AUDIO\
+    0xe06d80e4L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
+DEFINE_GUIDSTRUCT("e06d80e4-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SPECIFIER_AC3_AUDIO);
+#define KSDATAFORMAT_SPECIFIER_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_AC3_AUDIO)
+
+#define STATIC_KSPROPSETID_AC3\
+    0xBFABE720L, 0x6E1F, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00
+DEFINE_GUIDSTRUCT("BFABE720-6E1F-11D0-BCF2-444553540000", KSPROPSETID_AC3);
+#define KSPROPSETID_AC3 DEFINE_GUIDNAMED(KSPROPSETID_AC3)
+
+#define STATIC_KSPROPSETID_Audio\
+    0x45FFAAA0L, 0x6E1B, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00
+DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000", KSPROPSETID_Audio);
+#define KSPROPSETID_Audio DEFINE_GUIDNAMED(KSPROPSETID_Audio)
+
+typedef enum {
+    KSPROPERTY_AUDIO_LATENCY = 1,
+    KSPROPERTY_AUDIO_COPY_PROTECTION,
+    KSPROPERTY_AUDIO_CHANNEL_CONFIG,
+    KSPROPERTY_AUDIO_VOLUMELEVEL,
+    KSPROPERTY_AUDIO_POSITION,
+    KSPROPERTY_AUDIO_DYNAMIC_RANGE,
+    KSPROPERTY_AUDIO_QUALITY,
+    KSPROPERTY_AUDIO_SAMPLING_RATE,
+    KSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE,
+    KSPROPERTY_AUDIO_MIX_LEVEL_TABLE,
+    KSPROPERTY_AUDIO_MIX_LEVEL_CAPS,
+    KSPROPERTY_AUDIO_MUX_SOURCE,
+    KSPROPERTY_AUDIO_MUTE,
+    KSPROPERTY_AUDIO_BASS,
+    KSPROPERTY_AUDIO_MID,
+    KSPROPERTY_AUDIO_TREBLE,
+    KSPROPERTY_AUDIO_BASS_BOOST,
+    KSPROPERTY_AUDIO_EQ_LEVEL,
+    KSPROPERTY_AUDIO_NUM_EQ_BANDS,
+    KSPROPERTY_AUDIO_EQ_BANDS,
+    KSPROPERTY_AUDIO_AGC,
+    KSPROPERTY_AUDIO_DELAY,
+    KSPROPERTY_AUDIO_LOUDNESS,
+    KSPROPERTY_AUDIO_WIDE_MODE,
+    KSPROPERTY_AUDIO_WIDENESS,
+    KSPROPERTY_AUDIO_REVERB_LEVEL,
+    KSPROPERTY_AUDIO_CHORUS_LEVEL,
+    KSPROPERTY_AUDIO_DEV_SPECIFIC,
+    KSPROPERTY_AUDIO_DEMUX_DEST,
+    KSPROPERTY_AUDIO_STEREO_ENHANCE,
+    KSPROPERTY_AUDIO_MANUFACTURE_GUID,
+    KSPROPERTY_AUDIO_PRODUCT_GUID,
+    KSPROPERTY_AUDIO_CPU_RESOURCES,
+    KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY,
+    KSPROPERTY_AUDIO_SURROUND_ENCODE,
+    KSPROPERTY_AUDIO_3D_INTERFACE
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+    , KSPROPERTY_AUDIO_PEAKMETER
+    , KSPROPERTY_AUDIO_ALGORITHM_INSTANCE
+    , KSPROPERTY_AUDIO_FILTER_STATE
+    , KSPROPERTY_AUDIO_PREFERRED_STATUS
+    
+#endif 
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+    , KSPROPERTY_AUDIO_PEQ_MAX_BANDS
+    , KSPROPERTY_AUDIO_PEQ_NUM_BANDS
+    , KSPROPERTY_AUDIO_PEQ_BAND_CENTER_FREQ
+    , KSPROPERTY_AUDIO_PEQ_BAND_Q_FACTOR
+    , KSPROPERTY_AUDIO_PEQ_BAND_LEVEL
+    , KSPROPERTY_AUDIO_CHORUS_MODULATION_RATE
+    , KSPROPERTY_AUDIO_CHORUS_MODULATION_DEPTH
+    , KSPROPERTY_AUDIO_REVERB_TIME
+    , KSPROPERTY_AUDIO_REVERB_DELAY_FEEDBACK
+    , KSPROPERTY_AUDIO_POSITIONEX
+    , KSPROPERTY_AUDIO_MIC_ARRAY_GEOMETRY
+#endif
+
+} KSPROPERTY_AUDIO;
+
 
 /*
     SysAudio Properties
@@ -232,4 +521,36 @@
 } KSPROPERTY_SYSAUDIO_PIN;
 
 
+#define KSAUDIO_CPU_RESOURCES_NOT_HOST_CPU  0x00000000
+#define KSAUDIO_CPU_RESOURCES_HOST_CPU      0x7FFFFFFF
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+#define KSAUDIO_SPEAKER_DIRECTOUT       0
 #endif
+#define KSAUDIO_SPEAKER_MONO            (SPEAKER_FRONT_CENTER)
+#define KSAUDIO_SPEAKER_STEREO          (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT)
+#define KSAUDIO_SPEAKER_QUAD            (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
+                                         SPEAKER_BACK_LEFT  | SPEAKER_BACK_RIGHT)
+#define KSAUDIO_SPEAKER_SURROUND        (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
+                                         SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER)
+#define KSAUDIO_SPEAKER_5POINT1         (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
+                                         SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
+                                         SPEAKER_BACK_LEFT  | SPEAKER_BACK_RIGHT)
+#define KSAUDIO_SPEAKER_7POINT1         (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
+                                         SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
+                                         SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
+                                         SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER)
+
+#if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
+
+#define KSAUDIO_SPEAKER_5POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
+                                         SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
+                                         SPEAKER_SIDE_LEFT  | SPEAKER_SIDE_RIGHT)
+#define KSAUDIO_SPEAKER_7POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
+                                         SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
+                                         SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
+                                         SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
+#define KSAUDIO_SPEAKER_5POINT1_BACK     KSAUDIO_SPEAKER_5POINT1
+#define KSAUDIO_SPEAKER_7POINT1_WIDE     KSAUDIO_SPEAKER_7POINT1
+#endif 
+#endif

Modified: trunk/reactos/include/psdk/mmreg.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/mmreg.h?rev=39822&r1=39821&r2=39822&view=diff
==============================================================================
--- trunk/reactos/include/psdk/mmreg.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/mmreg.h [iso-8859-1] Sun Mar  1 15:45:32 2009
@@ -117,6 +117,7 @@
 #define  WAVE_FORMAT_G721_ADPCM			0x0040	/*  Antex Electronics Corporation  */
 #define  WAVE_FORMAT_MPEG			0x0050	/*  Microsoft Corporation  */
 #define  WAVE_FORMAT_MPEGLAYER3			0x0055
+#define  WAVE_FORMAT_DOLBY_AC3_SPDIF	0x0092 /* Sonic Foundry */
 #define  WAVE_FORMAT_CREATIVE_ADPCM		0x0200	/*  Creative Labs, Inc  */
 #define  WAVE_FORMAT_CREATIVE_FASTSPEECH8	0x0202	/*  Creative Labs, Inc  */
 #define  WAVE_FORMAT_CREATIVE_FASTSPEECH10	0x0203	/*  Creative Labs, Inc  */



More information about the Ros-diffs mailing list