xref: /reactos/sdk/include/dxsdk/bdatypes.h (revision c2c66aff)
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_ */
331