- Add types for bda driver
[reactos.git] / reactos / include / dxsdk / bdamedia.h
1 #ifndef BDAMEDIA_H__
2 #define BDAMEDIA_H__
3
4 typedef enum
5 {
6 KSPROPERTY_BDA_PIN_ID = 0,
7 KSPROPERTY_BDA_PIN_TYPE
8 } KSPROPERTY_BDA_PIN_CONTROL;
9
10 typedef struct _KSP_BDA_NODE_PIN {
11 KSPROPERTY Property;
12 ULONG ulNodeType;
13 ULONG ulInputPinId;
14 ULONG ulOutputPinId;
15 } KSP_BDA_NODE_PIN, *PKSP_BDA_NODE_PIN;
16
17 typedef struct _KSM_BDA_PIN
18 {
19 KSMETHOD Method;
20 union
21 {
22 ULONG PinId;
23 ULONG PinType;
24 };
25 ULONG Reserved;
26 } KSM_BDA_PIN, * PKSM_BDA_PIN;
27
28 typedef struct _KSM_BDA_PIN_PAIR
29 {
30 KSMETHOD Method;
31 union
32 {
33 ULONG InputPinId;
34 ULONG InputPinType;
35 };
36 union
37 {
38 ULONG OutputPinId;
39 ULONG OutputPinType;
40 };
41 } KSM_BDA_PIN_PAIR, * PKSM_BDA_PIN_PAIR;
42
43 /* ------------------------------------------------------------
44 BDA Topology Property Set {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
45 */
46
47 #define STATIC_KSPROPSETID_BdaTopology \
48 0xa14ee835, 0x0a23, 0x11d3, 0x9c, 0xc7, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
49 DEFINE_GUIDSTRUCT("A14EE835-0A23-11d3-9CC7-00C04F7971E0", KSPROPSETID_BdaTopology);
50 #define KSPROPSETID_BdaTopology DEFINE_GUIDNAMED(KSPROPSETID_BdaTopology)
51
52 typedef enum {
53 KSPROPERTY_BDA_NODE_TYPES,
54 KSPROPERTY_BDA_PIN_TYPES,
55 KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,
56 KSPROPERTY_BDA_NODE_METHODS,
57 KSPROPERTY_BDA_NODE_PROPERTIES,
58 KSPROPERTY_BDA_NODE_EVENTS,
59 KSPROPERTY_BDA_CONTROLLING_PIN_ID,
60 KSPROPERTY_BDA_NODE_DESCRIPTORS
61 }KSPROPERTY_BDA_TOPOLOGY;
62
63 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(GetHandler, SetHandler)\
64 DEFINE_KSPROPERTY_ITEM(\
65 KSPROPERTY_BDA_NODE_TYPES,\
66 (GetHandler),\
67 sizeof(KSPROPERTY),\
68 0,\
69 FALSE,\
70 NULL, 0, NULL, NULL, 0)
71
72 #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(GetHandler, SetHandler)\
73 DEFINE_KSPROPERTY_ITEM(\
74 KSPROPERTY_BDA_PIN_TYPES,\
75 (GetHandler),\
76 sizeof(KSPROPERTY),\
77 0,\
78 FALSE,\
79 NULL, 0, NULL, NULL, 0)
80
81 #define DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(GetHandler, SetHandler)\
82 DEFINE_KSPROPERTY_ITEM(\
83 KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,\
84 (GetHandler),\
85 sizeof(KSPROPERTY),\
86 sizeof( BDA_TEMPLATE_CONNECTION),\
87 FALSE,\
88 NULL, 0, NULL, NULL, 0)
89
90 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(GetHandler, SetHandler)\
91 DEFINE_KSPROPERTY_ITEM(\
92 KSPROPERTY_BDA_NODE_METHODS,\
93 (GetHandler),\
94 sizeof(KSP_NODE),\
95 0,\
96 FALSE,\
97 NULL, 0, NULL, NULL, 0)
98
99 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(GetHandler, SetHandler)\
100 DEFINE_KSPROPERTY_ITEM(\
101 KSPROPERTY_BDA_NODE_PROPERTIES,\
102 (GetHandler),\
103 sizeof(KSP_NODE),\
104 0,\
105 FALSE,\
106 NULL, 0, NULL, NULL, 0)
107
108 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(GetHandler, SetHandler)\
109 DEFINE_KSPROPERTY_ITEM(\
110 KSPROPERTY_BDA_NODE_EVENTS,\
111 (GetHandler),\
112 sizeof(KSP_NODE),\
113 0,\
114 FALSE,\
115 NULL, 0, NULL, NULL, 0)
116
117 #define DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(GetHandler, SetHandler)\
118 DEFINE_KSPROPERTY_ITEM(\
119 KSPROPERTY_BDA_CONTROLLING_PIN_ID,\
120 (GetHandler),\
121 sizeof(KSP_BDA_NODE_PIN),\
122 sizeof( ULONG),\
123 FALSE,\
124 NULL, 0, NULL, NULL, 0)
125
126 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(GetHandler, SetHandler)\
127 DEFINE_KSPROPERTY_ITEM(\
128 KSPROPERTY_BDA_NODE_DESCRIPTORS,\
129 (GetHandler),\
130 sizeof(KSPROPERTY),\
131 0,\
132 FALSE,\
133 NULL, 0, NULL, NULL, 0)
134
135 /* ------------------------------------------------------------
136 BDA Device Configuration Method Set {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
137 */
138
139 #define STATIC_KSMETHODSETID_BdaDeviceConfiguration \
140 0x71985f45, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
141 DEFINE_GUIDSTRUCT("71985F45-1CA1-11d3-9CC8-00C04F7971E0", KSMETHODSETID_BdaDeviceConfiguration);
142 #define KSMETHODSETID_BdaDeviceConfiguration DEFINE_GUIDNAMED(KSMETHODSETID_BdaDeviceConfiguration)
143
144 typedef enum {
145 KSMETHOD_BDA_CREATE_PIN_FACTORY = 0,
146 KSMETHOD_BDA_DELETE_PIN_FACTORY,
147 KSMETHOD_BDA_CREATE_TOPOLOGY
148 } KSMETHOD_BDA_DEVICE_CONFIGURATION;
149
150 #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_PIN_FACTORY(MethodHandler, SupportHandler)\
151 DEFINE_KSMETHOD_ITEM(\
152 KSMETHOD_BDA_CREATE_PIN_FACTORY,\
153 KSMETHOD_TYPE_READ,\
154 (MethodHandler),\
155 sizeof(KSM_BDA_PIN),\
156 sizeof(ULONG),\
157 SupportHandler)
158
159 #define DEFINE_KSMETHOD_ITEM_BDA_DELETE_PIN_FACTORY(MethodHandler, SupportHandler)\
160 DEFINE_KSMETHOD_ITEM(\
161 KSMETHOD_BDA_DELETE_PIN_FACTORY,\
162 KSMETHOD_TYPE_NONE,\
163 (MethodHandler),\
164 sizeof(KSM_BDA_PIN),\
165 0,\
166 SupportHandler)
167
168 #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(MethodHandler, SupportHandler)\
169 DEFINE_KSMETHOD_ITEM(\
170 KSMETHOD_BDA_CREATE_TOPOLOGY,\
171 KSMETHOD_TYPE_WRITE,\
172 (MethodHandler),\
173 sizeof(KSM_BDA_PIN_PAIR),\
174 0,\
175 SupportHandler)
176
177
178 #endif