Add .gitattributes and .gitignore files and normalize line endings in the repository...
[reactos.git] / sdk / include / dxsdk / bdatypes.h
1 /*
2 * bdatypes.h
3 *
4 * This file is part of the ReactOS DXSDK package.
5 *
6 * THIS SOFTWARE IS NOT COPYRIGHTED
7 *
8 * This source code is offered for use in the public domain. You may
9 * use, modify or distribute it freely.
10 *
11 * This code is distributed in the hope that it will be useful but
12 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
13 * DISCLAIMED. This includes but is not limited to warranties of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 *
16 */
17
18 #ifndef _BDATYPES_
19 #define _BDATYPES_ 1
20
21 #define MIN_DIMENSION 1
22
23 #ifdef __midl
24 #define V1_ENUM [v1_enum]
25 #else
26 #define V1_ENUM
27 #endif
28
29 #define BDA_FREQUENCY_NOT_SET -1
30 #define BDA_FREQUENCY_NOT_DEFINED 0
31 #define BDA_RANGE_NOT_SET -1
32 #define BDA_RANGE_NOT_DEFINED 0
33 #define BDA_CHAN_BANDWITH_NOT_SET -1
34 #define BDA_CHAN_BANDWITH_NOT_DEFINED 0
35 #define BDA_FREQUENCY_MULTIPLIER_NOT_SET -1
36 #define BDA_FREQUENCY_MULTIPLIER_NOT_DEFINED 0
37
38 typedef struct _BDA_TEMPLATE_CONNECTION {
39 ULONG FromNodeType;
40 ULONG FromNodePinType;
41 ULONG ToNodeType;
42 ULONG ToNodePinType;
43 } BDA_TEMPLATE_CONNECTION, *PBDA_TEMPLATE_CONNECTION;
44
45 typedef struct _BDA_TEMPLATE_PIN_JOINT {
46 ULONG uliTemplateConnection;
47 ULONG ulcInstancesMax;
48 } BDA_TEMPLATE_PIN_JOINT, *PBDA_TEMPLATE_PIN_JOINT;
49
50 typedef struct tagKS_BDA_FRAME_INFO {
51 ULONG ExtendedHeaderSize;
52 DWORD dwFrameFlags;
53 ULONG ulEvent;
54 ULONG ulChannelNumber;
55 ULONG ulSubchannelNumber;
56 ULONG ulReason;
57 } KS_BDA_FRAME_INFO, *PKS_BDA_FRAME_INFO;
58
59 typedef enum {
60 BDA_EVENT_SIGNAL_LOSS = 0,
61 BDA_EVENT_SIGNAL_LOCK,
62 BDA_EVENT_DATA_START,
63 BDA_EVENT_DATA_STOP,
64 BDA_EVENT_CHANNEL_ACQUIRED,
65 BDA_EVENT_CHANNEL_LOST,
66 BDA_EVENT_CHANNEL_SOURCE_CHANGED,
67 BDA_EVENT_CHANNEL_ACTIVATED,
68 BDA_EVENT_CHANNEL_DEACTIVATED,
69 BDA_EVENT_SUBCHANNEL_ACQUIRED,
70 BDA_EVENT_SUBCHANNEL_LOST,
71 BDA_EVENT_SUBCHANNEL_SOURCE_CHANGED,
72 BDA_EVENT_SUBCHANNEL_ACTIVATED,
73 BDA_EVENT_SUBCHANNEL_DEACTIVATED,
74 BDA_EVENT_ACCESS_GRANTED,
75 BDA_EVENT_ACCESS_DENIED,
76 BDA_EVENT_OFFER_EXTENDED,
77 BDA_EVENT_PURCHASE_COMPLETED,
78 BDA_EVENT_SMART_CARD_INSERTED,
79 BDA_EVENT_SMART_CARD_REMOVED
80 } BDA_EVENT_ID, *PBDA_EVENT_ID;
81
82 typedef struct _BDA_ETHERNET_ADDRESS {
83 BYTE rgbAddress[6];
84 } BDA_ETHERNET_ADDRESS, *PBDA_ETHERNET_ADDRESS;
85
86 typedef struct _BDA_ETHERNET_ADDRESS_LIST {
87 ULONG ulcAddresses;
88 BDA_ETHERNET_ADDRESS rgAddressl[MIN_DIMENSION];
89 } BDA_ETHERNET_ADDRESS_LIST, *PBDA_ETHERNET_ADDRESS_LIST;
90
91 typedef enum {
92 BDA_PROMISCUOUS_MULTICAST = 0,
93 BDA_FILTERED_MULTICAST,
94 BDA_NO_MULTICAST
95 } BDA_MULTICAST_MODE, *PBDA_MULTICAST_MODE;
96
97 typedef struct _BDA_IPv4_ADDRESS {
98 BYTE rgbAddress[4];
99 } BDA_IPv4_ADDRESS, *PBDA_IPv4_ADDRESS;
100
101 typedef struct _BDA_IPv4_ADDRESS_LIST {
102 ULONG ulcAddresses;
103 BDA_IPv4_ADDRESS rgAddressl[MIN_DIMENSION];
104 } BDA_IPv4_ADDRESS_LIST, *PBDA_IPv4_ADDRESS_LIST;
105
106 typedef struct _BDA_IPv6_ADDRESS {
107 BYTE rgbAddress[6];
108 } BDA_IPv6_ADDRESS, *PBDA_IPv6_ADDRESS;
109
110 typedef struct _BDA_IPv6_ADDRESS_LIST {
111 ULONG ulcAddresses;
112 BDA_IPv6_ADDRESS rgAddressl[MIN_DIMENSION];
113 } BDA_IPv6_ADDRESS_LIST, *PBDA_IPv6_ADDRESS_LIST;
114
115 typedef enum {
116 BDA_CHANGES_COMPLETE = 0,
117 BDA_CHANGES_PENDING
118 } BDA_CHANGE_STATE, *PBDA_CHANGE_STATE;
119
120 typedef enum {
121 BDA_SIGNAL_UNAVAILABLE = 0,
122 BDA_SIGNAL_INACTIVE,
123 BDA_SIGNAL_ACTIVE
124 } BDA_SIGNAL_STATE, *PBDA_SIGNAL_STATE;
125
126 typedef struct _BDANODE_DESCRIPTOR {
127 ULONG ulBdaNodeType;
128 GUID guidFunction;
129 GUID guidName;
130 } BDANODE_DESCRIPTOR, *PBDANODE_DESCRIPTOR;
131
132 typedef enum {
133 MEDIA_TRANSPORT_PACKET,
134 MEDIA_ELEMENTARY_STREAM,
135 MEDIA_MPEG2_PSI,
136 MEDIA_TRANSPORT_PAYLOAD
137 } MEDIA_SAMPLE_CONTENT;
138
139 typedef struct _BDA_TABLE_SECTION {
140 ULONG ulPrimarySectionId;
141 ULONG ulSecondarySectionId;
142 ULONG ulcbSectionLength;
143 ULONG argbSectionData[MIN_DIMENSION];
144 } BDA_TABLE_SECTION, *PBDA_TABLE_SECTION;
145
146 typedef struct {
147 ULONG ulPID;
148 MEDIA_SAMPLE_CONTENT MediaSampleContent ;
149 } PID_MAP;
150
151 typedef struct _BDA_PID_MAP {
152 MEDIA_SAMPLE_CONTENT MediaSampleContent;
153 ULONG ulcPIDs;
154 ULONG aulPIDs[MIN_DIMENSION];
155 } BDA_PID_MAP, *PBDA_PID_MAP;
156
157 typedef struct _BDA_PID_UNMAP {
158 ULONG ulcPIDs;
159 ULONG aulPIDs[MIN_DIMENSION];
160 } BDA_PID_UNMAP, *PBDA_PID_UNMAP;
161
162 typedef enum DVBSystemType {
163 DVB_Cable,
164 DVB_Terrestrial,
165 DVB_Satellite,
166 } DVBSystemType;
167
168 typedef struct _BDA_CA_MODULE_UI {
169 ULONG ulFormat;
170 ULONG ulbcDesc;
171 ULONG ulDesc[MIN_DIMENSION];
172 } BDA_CA_MODULE_UI, *PBDA_CA_MODULE_UI;
173
174 typedef struct _BDA_PROGRAM_PID_LIST {
175 ULONG ulProgramNumber;
176 ULONG ulcPIDs;
177 ULONG ulPID[MIN_DIMENSION];
178 } BDA_PROGRAM_PID_LIST, *PBDA_PROGRAM_PID_LIST;
179
180 V1_ENUM enum {
181 BDA_UNDEFINED_CHANNEL = -1,
182 };
183
184 typedef V1_ENUM enum ComponentCategory {
185 CategoryNotSet = -1,
186 CategoryOther = 0,
187 CategoryVideo,
188 CategoryAudio,
189 CategoryText,
190 CategoryData,
191 } ComponentCategory;
192
193 typedef enum ComponentStatus {
194 StatusActive,
195 StatusInactive,
196 StatusUnavailable,
197 } ComponentStatus;
198
199 typedef enum ATSCComponentTypeFlags {
200 ATSCCT_AC3 = 0x00000001,
201 } ATSCComponentTypeFlags;
202
203 typedef V1_ENUM enum MPEG2StreamType {
204 BDA_UNITIALIZED_MPEG2STREAMTYPE = -1,
205 Reserved1 = 0x0,
206 ISO_IEC_11172_2_VIDEO = Reserved1 + 1,
207 ISO_IEC_13818_2_VIDEO = ISO_IEC_11172_2_VIDEO + 1,
208 ISO_IEC_11172_3_AUDIO = ISO_IEC_13818_2_VIDEO + 1,
209 ISO_IEC_13818_3_AUDIO = ISO_IEC_11172_3_AUDIO + 1,
210 ISO_IEC_13818_1_PRIVATE_SECTION = ISO_IEC_13818_3_AUDIO + 1,
211 ISO_IEC_13818_1_PES = ISO_IEC_13818_1_PRIVATE_SECTION + 1,
212 ISO_IEC_13522_MHEG = ISO_IEC_13818_1_PES + 1,
213 ANNEX_A_DSM_CC = ISO_IEC_13522_MHEG + 1,
214 ITU_T_REC_H_222_1 = ANNEX_A_DSM_CC + 1,
215 ISO_IEC_13818_6_TYPE_A = ITU_T_REC_H_222_1 + 1,
216 ISO_IEC_13818_6_TYPE_B = ISO_IEC_13818_6_TYPE_A + 1,
217 ISO_IEC_13818_6_TYPE_C = ISO_IEC_13818_6_TYPE_B + 1,
218 ISO_IEC_13818_6_TYPE_D = ISO_IEC_13818_6_TYPE_C + 1,
219 ISO_IEC_13818_1_AUXILIARY = ISO_IEC_13818_6_TYPE_D + 1,
220 ISO_IEC_13818_1_RESERVED = ISO_IEC_13818_1_AUXILIARY + 1,
221 USER_PRIVATE = ISO_IEC_13818_1_RESERVED + 1
222 } MPEG2StreamType;
223
224 typedef struct _MPEG2_TRANSPORT_STRIDE {
225 DWORD dwOffset;
226 DWORD dwPacketLength;
227 DWORD dwStride;
228 } MPEG2_TRANSPORT_STRIDE, *PMPEG2_TRANSPORT_STRIDE;
229
230 typedef V1_ENUM enum BinaryConvolutionCodeRate {
231 BDA_BCC_RATE_NOT_SET = -1,
232 BDA_BCC_RATE_NOT_DEFINED = 0,
233 BDA_BCC_RATE_1_2 = 1,
234 BDA_BCC_RATE_2_3,
235 BDA_BCC_RATE_3_4,
236 BDA_BCC_RATE_3_5,
237 BDA_BCC_RATE_4_5,
238 BDA_BCC_RATE_5_6,
239 BDA_BCC_RATE_5_11,
240 BDA_BCC_RATE_7_8,
241 BDA_BCC_RATE_MAX,
242 } BinaryConvolutionCodeRate;
243
244 typedef V1_ENUM enum SpectralInversion {
245 BDA_SPECTRAL_INVERSION_NOT_SET = -1,
246 BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
247 BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
248 BDA_SPECTRAL_INVERSION_NORMAL,
249 BDA_SPECTRAL_INVERSION_INVERTED,
250 BDA_SPECTRAL_INVERSION_MAX
251 } SpectralInversion;
252
253 typedef V1_ENUM enum FECMethod {
254 BDA_FEC_METHOD_NOT_SET = -1,
255 BDA_FEC_METHOD_NOT_DEFINED = 0,
256 BDA_FEC_VITERBI = 1,
257 BDA_FEC_RS_204_188,
258 BDA_FEC_MAX,
259 } FECMethod;
260
261 typedef V1_ENUM enum ModulationType {
262 BDA_MOD_NOT_SET = -1,
263 BDA_MOD_NOT_DEFINED = 0,
264 BDA_MOD_16QAM = 1,
265 BDA_MOD_32QAM,
266 BDA_MOD_64QAM,
267 BDA_MOD_80QAM,
268 BDA_MOD_96QAM,
269 BDA_MOD_112QAM,
270 BDA_MOD_128QAM,
271 BDA_MOD_160QAM,
272 BDA_MOD_192QAM,
273 BDA_MOD_224QAM,
274 BDA_MOD_256QAM,
275 BDA_MOD_320QAM,
276 BDA_MOD_384QAM,
277 BDA_MOD_448QAM,
278 BDA_MOD_512QAM,
279 BDA_MOD_640QAM,
280 BDA_MOD_768QAM,
281 BDA_MOD_896QAM,
282 BDA_MOD_1024QAM,
283 BDA_MOD_QPSK,
284 BDA_MOD_BPSK,
285 BDA_MOD_OQPSK,
286 BDA_MOD_8VSB,
287 BDA_MOD_16VSB,
288 BDA_MOD_ANALOG_AMPLITUDE,
289 BDA_MOD_ANALOG_FREQUENCY,
290 BDA_MOD_MAX,
291 } ModulationType;
292
293 typedef V1_ENUM enum TransmissionMode {
294 BDA_XMIT_MODE_NOT_SET = -1,
295 BDA_XMIT_MODE_NOT_DEFINED = 0,
296 BDA_XMIT_MODE_2K = 1,
297 BDA_XMIT_MODE_8K,
298 BDA_XMIT_MODE_MAX,
299 } TransmissionMode;
300
301 typedef V1_ENUM enum Polarisation {
302 BDA_POLARISATION_NOT_SET = -1,
303 BDA_POLARISATION_NOT_DEFINED = 0,
304 BDA_POLARISATION_LINEAR_H = 1,
305 BDA_POLARISATION_LINEAR_V,
306 BDA_POLARISATION_CIRCULAR_L,
307 BDA_POLARISATION_CIRCULAR_R,
308 BDA_POLARISATION_MAX,
309 } Polarisation;
310
311 typedef V1_ENUM enum GuardInterval {
312 BDA_GUARD_NOT_SET = -1,
313 BDA_GUARD_NOT_DEFINED = 0,
314 BDA_GUARD_1_32 = 1,
315 BDA_GUARD_1_16,
316 BDA_GUARD_1_8,
317 BDA_GUARD_1_4,
318 BDA_GUARD_MAX,
319 } GuardInterval;
320
321 typedef V1_ENUM enum HierarchyAlpha {
322 BDA_HALPHA_NOT_SET = -1,
323 BDA_HALPHA_NOT_DEFINED = 0,
324 BDA_HALPHA_1 = 1,
325 BDA_HALPHA_2,
326 BDA_HALPHA_4,
327 BDA_HALPHA_MAX,
328 } HierarchyAlpha;
329
330 #endif /* _BDATYPES_ */