1252565ff6a111cab4db8a062558876acee8ff59
[reactos.git] / reactos / include / dxsdk / bdamedia.h
1 #ifndef BDAMEDIA_H__
2 #define BDAMEDIA_H__
3
4 typedef struct _KSP_BDA_NODE_PIN {
5 KSPROPERTY Property;
6 ULONG ulNodeType;
7 ULONG ulInputPinId;
8 ULONG ulOutputPinId;
9 } KSP_BDA_NODE_PIN, *PKSP_BDA_NODE_PIN;
10
11 typedef struct _KSM_BDA_PIN
12 {
13 KSMETHOD Method;
14 union
15 {
16 ULONG PinId;
17 ULONG PinType;
18 };
19 ULONG Reserved;
20 } KSM_BDA_PIN, * PKSM_BDA_PIN;
21
22 typedef struct _KSM_BDA_PIN_PAIR
23 {
24 KSMETHOD Method;
25 union
26 {
27 ULONG InputPinId;
28 ULONG InputPinType;
29 };
30 union
31 {
32 ULONG OutputPinId;
33 ULONG OutputPinType;
34 };
35 } KSM_BDA_PIN_PAIR, * PKSM_BDA_PIN_PAIR;
36
37 /* ------------------------------------------------------------
38 BDA Topology Property Set {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
39 */
40
41 #define STATIC_KSPROPSETID_BdaTopology \
42 0xa14ee835, 0x0a23, 0x11d3, 0x9c, 0xc7, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
43 DEFINE_GUIDSTRUCT("A14EE835-0A23-11d3-9CC7-00C04F7971E0", KSPROPSETID_BdaTopology);
44 #define KSPROPSETID_BdaTopology DEFINE_GUIDNAMED(KSPROPSETID_BdaTopology)
45
46 typedef enum {
47 KSPROPERTY_BDA_NODE_TYPES,
48 KSPROPERTY_BDA_PIN_TYPES,
49 KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,
50 KSPROPERTY_BDA_NODE_METHODS,
51 KSPROPERTY_BDA_NODE_PROPERTIES,
52 KSPROPERTY_BDA_NODE_EVENTS,
53 KSPROPERTY_BDA_CONTROLLING_PIN_ID,
54 KSPROPERTY_BDA_NODE_DESCRIPTORS
55 }KSPROPERTY_BDA_TOPOLOGY;
56
57 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(GetHandler, SetHandler)\
58 DEFINE_KSPROPERTY_ITEM(\
59 KSPROPERTY_BDA_NODE_TYPES,\
60 (GetHandler),\
61 sizeof(KSPROPERTY),\
62 0,\
63 FALSE,\
64 NULL, 0, NULL, NULL, 0)
65
66 #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(GetHandler, SetHandler)\
67 DEFINE_KSPROPERTY_ITEM(\
68 KSPROPERTY_BDA_PIN_TYPES,\
69 (GetHandler),\
70 sizeof(KSPROPERTY),\
71 0,\
72 FALSE,\
73 NULL, 0, NULL, NULL, 0)
74
75 #define DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(GetHandler, SetHandler)\
76 DEFINE_KSPROPERTY_ITEM(\
77 KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,\
78 (GetHandler),\
79 sizeof(KSPROPERTY),\
80 sizeof( BDA_TEMPLATE_CONNECTION),\
81 FALSE,\
82 NULL, 0, NULL, NULL, 0)
83
84 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(GetHandler, SetHandler)\
85 DEFINE_KSPROPERTY_ITEM(\
86 KSPROPERTY_BDA_NODE_METHODS,\
87 (GetHandler),\
88 sizeof(KSP_NODE),\
89 0,\
90 FALSE,\
91 NULL, 0, NULL, NULL, 0)
92
93 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(GetHandler, SetHandler)\
94 DEFINE_KSPROPERTY_ITEM(\
95 KSPROPERTY_BDA_NODE_PROPERTIES,\
96 (GetHandler),\
97 sizeof(KSP_NODE),\
98 0,\
99 FALSE,\
100 NULL, 0, NULL, NULL, 0)
101
102 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(GetHandler, SetHandler)\
103 DEFINE_KSPROPERTY_ITEM(\
104 KSPROPERTY_BDA_NODE_EVENTS,\
105 (GetHandler),\
106 sizeof(KSP_NODE),\
107 0,\
108 FALSE,\
109 NULL, 0, NULL, NULL, 0)
110
111 #define DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(GetHandler, SetHandler)\
112 DEFINE_KSPROPERTY_ITEM(\
113 KSPROPERTY_BDA_CONTROLLING_PIN_ID,\
114 (GetHandler),\
115 sizeof(KSP_BDA_NODE_PIN),\
116 sizeof( ULONG),\
117 FALSE,\
118 NULL, 0, NULL, NULL, 0)
119
120 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(GetHandler, SetHandler)\
121 DEFINE_KSPROPERTY_ITEM(\
122 KSPROPERTY_BDA_NODE_DESCRIPTORS,\
123 (GetHandler),\
124 sizeof(KSPROPERTY),\
125 0,\
126 FALSE,\
127 NULL, 0, NULL, NULL, 0)
128
129 /* ------------------------------------------------------------
130 BDA Device Configuration Method Set {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
131 */
132
133 #define STATIC_KSMETHODSETID_BdaDeviceConfiguration \
134 0x71985f45, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
135 DEFINE_GUIDSTRUCT("71985F45-1CA1-11d3-9CC8-00C04F7971E0", KSMETHODSETID_BdaDeviceConfiguration);
136 #define KSMETHODSETID_BdaDeviceConfiguration DEFINE_GUIDNAMED(KSMETHODSETID_BdaDeviceConfiguration)
137
138 typedef enum {
139 KSMETHOD_BDA_CREATE_PIN_FACTORY = 0,
140 KSMETHOD_BDA_DELETE_PIN_FACTORY,
141 KSMETHOD_BDA_CREATE_TOPOLOGY
142 } KSMETHOD_BDA_DEVICE_CONFIGURATION;
143
144 #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_PIN_FACTORY(MethodHandler, SupportHandler)\
145 DEFINE_KSMETHOD_ITEM(\
146 KSMETHOD_BDA_CREATE_PIN_FACTORY,\
147 KSMETHOD_TYPE_READ,\
148 (MethodHandler),\
149 sizeof(KSM_BDA_PIN),\
150 sizeof(ULONG),\
151 SupportHandler)
152
153 #define DEFINE_KSMETHOD_ITEM_BDA_DELETE_PIN_FACTORY(MethodHandler, SupportHandler)\
154 DEFINE_KSMETHOD_ITEM(\
155 KSMETHOD_BDA_DELETE_PIN_FACTORY,\
156 KSMETHOD_TYPE_NONE,\
157 (MethodHandler),\
158 sizeof(KSM_BDA_PIN),\
159 0,\
160 SupportHandler)
161
162 #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(MethodHandler, SupportHandler)\
163 DEFINE_KSMETHOD_ITEM(\
164 KSMETHOD_BDA_CREATE_TOPOLOGY,\
165 KSMETHOD_TYPE_WRITE,\
166 (MethodHandler),\
167 sizeof(KSM_BDA_PIN_PAIR),\
168 0,\
169 SupportHandler)
170
171 /* ------------------------------------------------------------
172 BDA Pin Control Property {0DED49D5-A8B7-4d5d-97A1-12B0C195874D}
173 */
174
175 #define STATIC_KSPROPSETID_BdaPinControl \
176 0xded49d5, 0xa8b7, 0x4d5d, 0x97, 0xa1, 0x12, 0xb0, 0xc1, 0x95, 0x87, 0x4d
177 DEFINE_GUIDSTRUCT("0DED49D5-A8B7-4d5d-97A1-12B0C195874D", KSPROPSETID_BdaPinControl);
178 #define KSPROPSETID_BdaPinControl DEFINE_GUIDNAMED(KSPROPSETID_BdaPinControl)
179
180 typedef enum {
181 KSPROPERTY_BDA_PIN_ID = 0,
182 KSPROPERTY_BDA_PIN_TYPE
183 } KSPROPERTY_BDA_PIN_CONTROL;
184
185 #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_ID(GetHandler, SetHandler)\
186 DEFINE_KSPROPERTY_ITEM(\
187 KSPROPERTY_BDA_PIN_ID,\
188 (GetHandler),\
189 sizeof( KSPROPERTY),\
190 sizeof( ULONG),\
191 FALSE,\
192 NULL, 0, NULL, NULL, 0)
193
194 #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPE(GetHandler, SetHandler)\
195 DEFINE_KSPROPERTY_ITEM(\
196 KSPROPERTY_BDA_PIN_TYPE,\
197 (GetHandler),\
198 sizeof( KSPROPERTY),\
199 sizeof( ULONG),\
200 FALSE,\
201 NULL, 0, NULL, NULL, 0)
202
203
204 /* ------------------------------------------------------------
205 BDA Change Sync Method Set {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
206 */
207
208 #define STATIC_KSMETHODSETID_BdaChangeSync \
209 0xfd0a5af3, 0xb41d, 0x11d2, {0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0}
210 DEFINE_GUIDSTRUCT("FD0A5AF3-B41D-11d2-9C95-00C04F7971E0", KSMETHODSETID_BdaChangeSync);
211 #define KSMETHODSETID_BdaChangeSync DEFINE_GUIDNAMED(KSMETHODSETID_BdaChangeSync)
212
213 typedef enum {
214 KSMETHOD_BDA_START_CHANGES = 0,
215 KSMETHOD_BDA_CHECK_CHANGES,
216 KSMETHOD_BDA_COMMIT_CHANGES,
217 KSMETHOD_BDA_GET_CHANGE_STATE
218 } KSMETHOD_BDA_CHANGE_SYNC;
219
220 #define DEFINE_KSMETHOD_ITEM_BDA_START_CHANGES(MethodHandler, SupportHandler)\
221 DEFINE_KSMETHOD_ITEM(\
222 KSMETHOD_BDA_START_CHANGES,\
223 KSMETHOD_TYPE_NONE,\
224 (MethodHandler),\
225 sizeof(KSMETHOD),\
226 0,\
227 SupportHandler)
228
229 #define DEFINE_KSMETHOD_ITEM_BDA_CHECK_CHANGES(MethodHandler, SupportHandler)\
230 DEFINE_KSMETHOD_ITEM(\
231 KSMETHOD_BDA_CHECK_CHANGES,\
232 KSMETHOD_TYPE_NONE,\
233 (MethodHandler),\
234 sizeof(KSMETHOD),\
235 0,\
236 SupportHandler)
237
238 #define DEFINE_KSMETHOD_ITEM_BDA_COMMIT_CHANGES(MethodHandler, SupportHandler)\
239 DEFINE_KSMETHOD_ITEM(\
240 KSMETHOD_BDA_COMMIT_CHANGES,\
241 KSMETHOD_TYPE_NONE,\
242 (MethodHandler),\
243 sizeof(KSMETHOD),\
244 0,\
245 SupportHandler)
246
247 #define DEFINE_KSMETHOD_ITEM_BDA_GET_CHANGE_STATE(MethodHandler, SupportHandler)\
248 DEFINE_KSMETHOD_ITEM(\
249 KSMETHOD_BDA_GET_CHANGE_STATE,\
250 KSMETHOD_TYPE_READ,\
251 (MethodHandler),\
252 sizeof(KSMETHOD),\
253 0,\
254 SupportHandler)
255
256
257
258 #endif