From 43eae548e0ab0efdbbdd686fabf1728f9dac8e79 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Thu, 20 Aug 2009 11:39:54 +0000 Subject: [PATCH] - Add types for bda driver svn path=/trunk/; revision=42797 --- reactos/include/dxsdk/bdamedia.h | 161 +++++++++++++++++++++++++++++++ reactos/include/psdk/ks.h | 44 +++++++++ 2 files changed, 205 insertions(+) diff --git a/reactos/include/dxsdk/bdamedia.h b/reactos/include/dxsdk/bdamedia.h index e6181126506..ed8dc90f636 100644 --- a/reactos/include/dxsdk/bdamedia.h +++ b/reactos/include/dxsdk/bdamedia.h @@ -14,4 +14,165 @@ typedef struct _KSP_BDA_NODE_PIN { ULONG ulOutputPinId; } KSP_BDA_NODE_PIN, *PKSP_BDA_NODE_PIN; +typedef struct _KSM_BDA_PIN +{ + KSMETHOD Method; + union + { + ULONG PinId; + ULONG PinType; + }; + ULONG Reserved; +} KSM_BDA_PIN, * PKSM_BDA_PIN; + +typedef struct _KSM_BDA_PIN_PAIR +{ + KSMETHOD Method; + union + { + ULONG InputPinId; + ULONG InputPinType; + }; + union + { + ULONG OutputPinId; + ULONG OutputPinType; + }; +} KSM_BDA_PIN_PAIR, * PKSM_BDA_PIN_PAIR; + +/* ------------------------------------------------------------ + BDA Topology Property Set {A14EE835-0A23-11d3-9CC7-00C04F7971E0} +*/ + +#define STATIC_KSPROPSETID_BdaTopology \ + 0xa14ee835, 0x0a23, 0x11d3, 0x9c, 0xc7, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0 +DEFINE_GUIDSTRUCT("A14EE835-0A23-11d3-9CC7-00C04F7971E0", KSPROPSETID_BdaTopology); +#define KSPROPSETID_BdaTopology DEFINE_GUIDNAMED(KSPROPSETID_BdaTopology) + +typedef enum { + KSPROPERTY_BDA_NODE_TYPES, + KSPROPERTY_BDA_PIN_TYPES, + KSPROPERTY_BDA_TEMPLATE_CONNECTIONS, + KSPROPERTY_BDA_NODE_METHODS, + KSPROPERTY_BDA_NODE_PROPERTIES, + KSPROPERTY_BDA_NODE_EVENTS, + KSPROPERTY_BDA_CONTROLLING_PIN_ID, + KSPROPERTY_BDA_NODE_DESCRIPTORS + }KSPROPERTY_BDA_TOPOLOGY; + +#define DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(GetHandler, SetHandler)\ + DEFINE_KSPROPERTY_ITEM(\ + KSPROPERTY_BDA_NODE_TYPES,\ + (GetHandler),\ + sizeof(KSPROPERTY),\ + 0,\ + FALSE,\ + NULL, 0, NULL, NULL, 0) + +#define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(GetHandler, SetHandler)\ + DEFINE_KSPROPERTY_ITEM(\ + KSPROPERTY_BDA_PIN_TYPES,\ + (GetHandler),\ + sizeof(KSPROPERTY),\ + 0,\ + FALSE,\ + NULL, 0, NULL, NULL, 0) + +#define DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(GetHandler, SetHandler)\ + DEFINE_KSPROPERTY_ITEM(\ + KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,\ + (GetHandler),\ + sizeof(KSPROPERTY),\ + sizeof( BDA_TEMPLATE_CONNECTION),\ + FALSE,\ + NULL, 0, NULL, NULL, 0) + +#define DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(GetHandler, SetHandler)\ + DEFINE_KSPROPERTY_ITEM(\ + KSPROPERTY_BDA_NODE_METHODS,\ + (GetHandler),\ + sizeof(KSP_NODE),\ + 0,\ + FALSE,\ + NULL, 0, NULL, NULL, 0) + +#define DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(GetHandler, SetHandler)\ + DEFINE_KSPROPERTY_ITEM(\ + KSPROPERTY_BDA_NODE_PROPERTIES,\ + (GetHandler),\ + sizeof(KSP_NODE),\ + 0,\ + FALSE,\ + NULL, 0, NULL, NULL, 0) + +#define DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(GetHandler, SetHandler)\ + DEFINE_KSPROPERTY_ITEM(\ + KSPROPERTY_BDA_NODE_EVENTS,\ + (GetHandler),\ + sizeof(KSP_NODE),\ + 0,\ + FALSE,\ + NULL, 0, NULL, NULL, 0) + +#define DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(GetHandler, SetHandler)\ + DEFINE_KSPROPERTY_ITEM(\ + KSPROPERTY_BDA_CONTROLLING_PIN_ID,\ + (GetHandler),\ + sizeof(KSP_BDA_NODE_PIN),\ + sizeof( ULONG),\ + FALSE,\ + NULL, 0, NULL, NULL, 0) + +#define DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(GetHandler, SetHandler)\ + DEFINE_KSPROPERTY_ITEM(\ + KSPROPERTY_BDA_NODE_DESCRIPTORS,\ + (GetHandler),\ + sizeof(KSPROPERTY),\ + 0,\ + FALSE,\ + NULL, 0, NULL, NULL, 0) + +/* ------------------------------------------------------------ + BDA Device Configuration Method Set {71985F45-1CA1-11d3-9CC8-00C04F7971E0} +*/ + +#define STATIC_KSMETHODSETID_BdaDeviceConfiguration \ + 0x71985f45, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0 +DEFINE_GUIDSTRUCT("71985F45-1CA1-11d3-9CC8-00C04F7971E0", KSMETHODSETID_BdaDeviceConfiguration); +#define KSMETHODSETID_BdaDeviceConfiguration DEFINE_GUIDNAMED(KSMETHODSETID_BdaDeviceConfiguration) + +typedef enum { + KSMETHOD_BDA_CREATE_PIN_FACTORY = 0, + KSMETHOD_BDA_DELETE_PIN_FACTORY, + KSMETHOD_BDA_CREATE_TOPOLOGY +} KSMETHOD_BDA_DEVICE_CONFIGURATION; + +#define DEFINE_KSMETHOD_ITEM_BDA_CREATE_PIN_FACTORY(MethodHandler, SupportHandler)\ + DEFINE_KSMETHOD_ITEM(\ + KSMETHOD_BDA_CREATE_PIN_FACTORY,\ + KSMETHOD_TYPE_READ,\ + (MethodHandler),\ + sizeof(KSM_BDA_PIN),\ + sizeof(ULONG),\ + SupportHandler) + +#define DEFINE_KSMETHOD_ITEM_BDA_DELETE_PIN_FACTORY(MethodHandler, SupportHandler)\ + DEFINE_KSMETHOD_ITEM(\ + KSMETHOD_BDA_DELETE_PIN_FACTORY,\ + KSMETHOD_TYPE_NONE,\ + (MethodHandler),\ + sizeof(KSM_BDA_PIN),\ + 0,\ + SupportHandler) + +#define DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(MethodHandler, SupportHandler)\ + DEFINE_KSMETHOD_ITEM(\ + KSMETHOD_BDA_CREATE_TOPOLOGY,\ + KSMETHOD_TYPE_WRITE,\ + (MethodHandler),\ + sizeof(KSM_BDA_PIN_PAIR),\ + 0,\ + SupportHandler) + + #endif diff --git a/reactos/include/psdk/ks.h b/reactos/include/psdk/ks.h index 9ca87643cc0..0124acacd68 100644 --- a/reactos/include/psdk/ks.h +++ b/reactos/include/psdk/ks.h @@ -1808,6 +1808,30 @@ typedef struct ULONG Flags; } KSMETHOD_ITEM, *PKSMETHOD_ITEM; +#ifndef _MSC_VER + +#define DEFINE_KSMETHOD_ITEM(MethodId, Flags,\ + MethodHandler,\ + MinMethod, MinData, SupportHandler)\ +{\ + MethodId, {(PFNKSHANDLER)MethodHandler}, MinMethod, MinData,\ + SupportHandler, Flags\ +} + +#else + +#define DEFINE_KSMETHOD_ITEM(MethodId, Flags,\ + MethodHandler,\ + MinMethod, MinData, SupportHandler)\ +{\ + MethodId, (PFNKSHANDLER)MethodHandler, MinMethod, MinData,\ + SupportHandler, Flags\ +} + + + +#endif + typedef struct { @@ -1818,6 +1842,12 @@ typedef struct }; } KSFASTMETHOD_ITEM, *PKSFASTMETHOD_ITEM; +#define DEFINE_KSFASTMETHOD_ITEM(MethodId, MethodHandler)\ +{\ + MethodId, (PFNKSFASTHANDLER)MethodHandler\ +} + + typedef struct { const GUID* Set; @@ -1827,6 +1857,20 @@ typedef struct const KSFASTMETHOD_ITEM*FastIoTable; } KSMETHOD_SET, *PKSMETHOD_SET; + +#define DEFINE_KSMETHOD_SET(Set,\ + MethodsCount,\ + MethodItem,\ + FastIoCount,\ + FastIoTable)\ +{\ + Set,\ + MethodsCount,\ + MethodItem,\ + FastIoCount,\ + FastIoTable\ +} + #endif /* =============================================================== Nodes