/[cvs]/api/include/bdatypes.h
ViewVC logotype

Contents of /api/include/bdatypes.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (vendor branch)
Sun Jul 1 20:47:59 2001 UTC (22 years, 10 months ago) by bearsoft
Branch: lazy, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
First import

1 //------------------------------------------------------------------------------
2 // File: BDATypes.h
3 //
4 // Desc: Typedefs and enums needed by both the WDM drivers and the user mode
5 // COM interfaces.
6 //
7 // Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
8 //------------------------------------------------------------------------------
9
10
11 #ifndef _BDATYPES_
12
13 #define _BDATYPES_ 1
14
15 /* Utility Macros */
16
17 #define MIN_DIMENSION 1
18 #define NATURAL 4
19 #define CACHE_LINE 128
20 #define PAGE 4096
21 #define ALIGN( pointer, size) (((ULONG)(pointer) + (ULONG)(size) - 1) & ~((ULONG)(size) - 1))
22 #define BDA_STRING_CONST(x) {sizeof(L##x)-2, sizeof(L##x), L##x}
23
24
25 #ifdef __midl
26 #define V1_ENUM [v1_enum]
27 #else
28 #define V1_ENUM
29 #endif
30
31 //===========================================================================
32 //
33 // BDA Topology Structures
34 //
35 //===========================================================================
36
37 typedef struct _BDA_TEMPLATE_CONNECTION
38 {
39 ULONG FromNodeType;
40 ULONG FromNodePinType;
41 ULONG ToNodeType;
42 ULONG ToNodePinType;
43 }BDA_TEMPLATE_CONNECTION, *PBDA_TEMPLATE_CONNECTION;
44
45
46 typedef struct _BDA_TEMPLATE_PIN_JOINT
47 {
48 ULONG uliTemplateConnection;
49 ULONG ulcInstancesMax;
50 }BDA_TEMPLATE_PIN_JOINT, *PBDA_TEMPLATE_PIN_JOINT;
51
52
53
54 //===========================================================================
55 //
56 // BDA Events
57 //
58 //===========================================================================
59
60 // In-band Event IDs
61 //
62 typedef enum {
63 BDA_EVENT_SIGNAL_LOSS = 0,
64 BDA_EVENT_SIGNAL_LOCK,
65 BDA_EVENT_DATA_START,
66 BDA_EVENT_DATA_STOP,
67 BDA_EVENT_CHANNEL_ACQUIRED,
68 BDA_EVENT_CHANNEL_LOST,
69 BDA_EVENT_CHANNEL_SOURCE_CHANGED,
70 BDA_EVENT_CHANNEL_ACTIVATED,
71 BDA_EVENT_CHANNEL_DEACTIVATED,
72 BDA_EVENT_SUBCHANNEL_ACQUIRED,
73 BDA_EVENT_SUBCHANNEL_LOST,
74 BDA_EVENT_SUBCHANNEL_SOURCE_CHANGED,
75 BDA_EVENT_SUBCHANNEL_ACTIVATED,
76 BDA_EVENT_SUBCHANNEL_DEACTIVATED,
77 BDA_EVENT_ACCESS_GRANTED,
78 BDA_EVENT_ACCESS_DENIED,
79 BDA_EVENT_OFFER_EXTENDED,
80 BDA_EVENT_PURCHASE_COMPLETED,
81 BDA_EVENT_SMART_CARD_INSERTED,
82 BDA_EVENT_SMART_CARD_REMOVED
83 } BDA_EVENT_ID, *PBDA_EVENT_ID;
84
85
86
87 //===========================================================================
88 //
89 // KSSTREAM_HEADER extensions for BDA
90 //
91 //===========================================================================
92
93 typedef struct tagKS_BDA_FRAME_INFO {
94 ULONG ExtendedHeaderSize; // Size of this extended header
95 DWORD dwFrameFlags; //
96 ULONG ulEvent; //
97 ULONG ulChannelNumber; //
98 ULONG ulSubchannelNumber; //
99 ULONG ulReason; //
100 } KS_BDA_FRAME_INFO, *PKS_BDA_FRAME_INFO;
101
102
103 //------------------------------------------------------------
104 //
105 // BDA Network Ethernet Filter Property Set
106 //
107 // {71985F43-1CA1-11d3-9CC8-00C04F7971E0}
108 //
109 typedef struct _BDA_ETHERNET_ADDRESS {
110 BYTE rgbAddress[6];
111 } BDA_ETHERNET_ADDRESS, *PBDA_ETHERNET_ADDRESS;
112
113 typedef struct _BDA_ETHERNET_ADDRESS_LIST {
114 ULONG ulcAddresses;
115 BDA_ETHERNET_ADDRESS rgAddressl[MIN_DIMENSION];
116 } BDA_ETHERNET_ADDRESS_LIST, * PBDA_ETHERNET_ADDRESS_LIST;
117
118 typedef enum {
119 BDA_PROMISCUOUS_MULTICAST = 0,
120 BDA_FILTERED_MULTICAST,
121 BDA_NO_MULTICAST
122 } BDA_MULTICAST_MODE, *PBDA_MULTICAST_MODE;
123
124
125 //------------------------------------------------------------
126 //
127 // BDA Network IPv4 Filter Property Set
128 //
129 // {71985F44-1CA1-11d3-9CC8-00C04F7971E0}
130 //
131 typedef struct _BDA_IPv4_ADDRESS {
132 BYTE rgbAddress[4];
133 } BDA_IPv4_ADDRESS, *PBDA_IPv4_ADDRESS;
134
135 typedef struct _BDA_IPv4_ADDRESS_LIST {
136 ULONG ulcAddresses;
137 BDA_IPv4_ADDRESS rgAddressl[MIN_DIMENSION];
138 } BDA_IPv4_ADDRESS_LIST, * PBDA_IPv4_ADDRESS_LIST;
139
140
141 //------------------------------------------------------------
142 //
143 // BDA Network IPv4 Filter Property Set
144 //
145 // {E1785A74-2A23-4fb3-9245-A8F88017EF33}
146 //
147 typedef struct _BDA_IPv6_ADDRESS {
148 BYTE rgbAddress[6];
149 } BDA_IPv6_ADDRESS, *PBDA_IPv6_ADDRESS;
150
151 typedef struct _BDA_IPv6_ADDRESS_LIST {
152 ULONG ulcAddresses;
153 BDA_IPv6_ADDRESS rgAddressl[MIN_DIMENSION];
154 } BDA_IPv6_ADDRESS_LIST, * PBDA_IPv6_ADDRESS_LIST;
155
156
157 //------------------------------------------------------------
158 //
159 //
160 // BDA Signal Property Set
161 //
162 // {D2F1644B-B409-11d2-BC69-00A0C9EE9E16}
163 //
164 typedef enum {
165 BDA_SIGNAL_UNAVAILABLE = 0,
166 BDA_SIGNAL_INACTIVE,
167 BDA_SIGNAL_ACTIVE
168 } BDA_SIGNAL_STATE, * PBDA_SIGNAL_STATE;
169
170
171 //------------------------------------------------------------
172 //
173 //
174 // BDA Change Sync Method Set
175 //
176 // {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
177 //
178 typedef enum
179 {
180 BDA_CHANGES_COMPLETE = 0,
181 BDA_CHANGES_PENDING
182
183 } BDA_CHANGE_STATE, * PBDA_CHANGE_STATE;
184
185
186 //------------------------------------------------------------
187 //
188 //
189 // BDA Device Configuration Method Set
190 //
191 // {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
192 //
193
194
195 //------------------------------------------------------------
196 //
197 //
198 // BDA Topology Property Set
199 //
200 // {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
201 //
202
203 typedef struct _BDANODE_DESCRIPTOR
204 {
205 ULONG ulBdaNodeType; // The node type as it is used
206 // in the BDA template topology
207
208 GUID guidFunction; // GUID from BdaMedia.h describing
209 // the node's function (e.g.
210 // KSNODE_BDA_RF_TUNER)
211
212 GUID guidName; // GUID that can be use to look up
213 // a displayable name for the node.
214 } BDANODE_DESCRIPTOR, *PBDANODE_DESCRIPTOR;
215
216
217 //------------------------------------------------------------
218 //
219 //
220 // BDA Void Transform Property Set
221 //
222 // {71985F46-1CA1-11d3-9CC8-00C04F7971E0}
223 //
224
225
226 //------------------------------------------------------------
227 //
228 //
229 // BDA Null Transform Property Set
230 //
231 // {DDF15B0D-BD25-11d2-9CA0-00C04F7971E0}
232 //
233
234
235 //------------------------------------------------------------
236 //
237 //
238 // BDA Frequency Filter Property Set
239 //
240 // {71985F47-1CA1-11d3-9CC8-00C04F7971E0}
241 //
242
243
244 //------------------------------------------------------------
245 //
246 //
247 // BDA Autodemodulate Property Set
248 //
249 // {DDF15B12-BD25-11d2-9CA0-00C04F7971E0}
250 //
251
252
253 //------------------------------------------------------------
254 //
255 //
256 // BDA PmtProcessor Property Set
257 //
258 // {516B99C5-971C-4aaf-B3F3-D9FDA8A15E16}
259 //
260
261 typedef struct _BDA_PMT
262 {
263 ULONG ulTableID;
264 ULONG ulcbSectionLength;
265 ULONG argbSectionData[MIN_DIMENSION];
266 } BDA_PMT, *PBDA_PMT;
267
268 //------------------------------------------------------------
269 //
270 //
271 // BDA Descriptor Property Set
272 //
273 // {DE6A1C9E-87DF-48aa-95AA-289B7AA4F49F}
274 //
275
276 typedef struct _BDA_CAT_DESCRIPTOR
277 {
278 ULONG ulTag;
279 ULONG ulcbLength;
280 ULONG argbData[MIN_DIMENSION];
281 } BDA_CAT_DESCRIPTOR, *PBDA_CAT_DESCRIPTOR;
282
283 typedef struct _BDA_ES_DESCRIPTOR
284 {
285 ULONG ulProgramNum;
286 ULONG ulContentPID;
287 ULONG ulTag;
288 ULONG ulcbLength;
289 ULONG argbData[MIN_DIMENSION];
290 } BDA_ES_DESCRIPTOR, *PBDA_ES_DESCRIPTOR;
291
292 typedef struct _BDA_PROGRAM_DESCRIPTOR
293 {
294 ULONG ulProgramNum;
295 ULONG ulTag;
296 ULONG ulcbLength;
297 ULONG argbData[MIN_DIMENSION];
298 } BDA_PROGRAM_DESCRIPTOR, *PBDA_PROGRAM_DESCRIPTOR;
299
300
301 //------------------------------------------------------------
302 //
303 //
304 // BDA EsMap Property Set
305 //
306 // {FA14A8B3-6068-48ef-96DD-53010B985A7D}
307 //
308
309 typedef enum
310 {
311 ES_MAP_STATE_GOOD_FLOW = 0,
312 ES_MAP_STATE_NO_CONTENT,
313 ES_MAP_STATE_NO_ECM,
314 ES_MAP_STATE_BAD_MAP
315 } BDA_ES_MAP_STATE, *PBDA_ES_MAP_STATE;
316
317 typedef struct _BDA_ES_MAP
318 {
319 ULONG ulContentPID;
320 ULONG ulProgramNum;
321 ULONG ulStreamType;
322 BDA_ES_MAP_STATE mapState;
323 } BDA_ES_MAP, *PBDA_ES_MAP;
324
325
326 //------------------------------------------------------------
327 //
328 //
329 // BDA PID Filter Property Set
330 //
331 // {D0A67D65-08DF-4fec-8533-E5B550410B85}
332 //
333
334 //---------------------------------------------------------------------
335 // From IEnumPIDMap interface
336 //---------------------------------------------------------------------
337
338 typedef enum {
339 MEDIA_TRANSPORT_PACKET, // complete TS packet e.g. pass-through mode
340 MEDIA_ELEMENTARY_STREAM, // PES payloads; audio/video only
341 MEDIA_MPEG2_PSI, // PAT, PMT, CAT, Private
342 MEDIA_TRANSPORT_PAYLOAD // gathered TS packet payloads (PES packets, etc...)
343 } MEDIA_SAMPLE_CONTENT ;
344
345 typedef struct {
346 ULONG ulPID ;
347 MEDIA_SAMPLE_CONTENT MediaSampleContent ;
348 } PID_MAP ;
349
350 typedef struct _BDA_PID_MAP
351 {
352 MEDIA_SAMPLE_CONTENT MediaSampleContent;
353 ULONG ulcPIDs;
354 ULONG aulPIDs[MIN_DIMENSION];
355 } BDA_PID_MAP, *PBDA_PID_MAP;
356
357 typedef struct _BDA_PID_UNMAP
358 {
359 ULONG ulcPIDs;
360 ULONG aulPIDs[MIN_DIMENSION];
361 } BDA_PID_UNMAP, *PBDA_PID_UNMAP;
362
363
364 //------------------------------------------------------------
365 //
366 //
367 // BDA CA Property Set
368 //
369 // {B0693766-5278-4ec6-B9E1-3CE40560EF5A}
370 //
371 typedef struct _BDA_CA_MODULE_UI
372 {
373 ULONG ulFormat;
374 ULONG ulbcDesc;
375 ULONG ulDesc[MIN_DIMENSION];
376 } BDA_CA_MODULE_UI, *PBDA_CA_MODULE_UI;
377
378
379 //------------------------------------------------------------
380 //
381 //
382 // BDA CA Event Set
383 //
384 // {488C4CCC-B768-4129-8EB1-B00A071F9068}
385 //
386
387
388
389 //=============================================================
390 //
391 //
392 // BDA Tuning Model enumerations
393 //
394 //
395 //=============================================================
396
397 // system type for particular DVB Tuning Space instance
398 typedef enum DVBSystemType {
399 DVB_Cable,
400 DVB_Terrestrial,
401 DVB_Satellite,
402 } DVBSystemType;
403
404 //------------------------------------------------------------
405 //
406 // BDA Channel Tune Request
407
408 V1_ENUM enum {
409 BDA_UNDEFINED_CHANNEL = -1,
410 };
411
412
413 //------------------------------------------------------------
414 //
415 // BDA Component(substream)
416 //
417
418 typedef V1_ENUM enum ComponentCategory
419 {
420 CategoryNotSet = -1,
421 CategoryOther = 0,
422 CategoryVideo,
423 CategoryAudio,
424 CategoryText,
425 CategoryData,
426 } ComponentCategory;
427
428 // Component Status
429 typedef enum ComponentStatus
430 {
431 StatusActive,
432 StatusInactive,
433 StatusUnavailable,
434 } ComponentStatus;
435
436
437 //------------------------------------------------------------
438 //
439 // BDA MPEG2 Component Type
440 //
441 // from the MPEG2 specification
442 typedef V1_ENUM enum MPEG2StreamType {
443 BDA_UNITIALIZED_MPEG2STREAMTYPE = -1,
444 Reserved1 = 0x0,
445 ISO_IEC_11172_2_VIDEO = Reserved1 + 1,
446 ISO_IEC_13818_2_VIDEO = ISO_IEC_11172_2_VIDEO + 1,
447 ISO_IEC_11172_3_AUDIO = ISO_IEC_13818_2_VIDEO + 1,
448 ISO_IEC_13818_3_AUDIO = ISO_IEC_11172_3_AUDIO + 1,
449 ISO_IEC_13818_1_PRIVATE_SECTION = ISO_IEC_13818_3_AUDIO + 1,
450 ISO_IEC_13818_1_PES = ISO_IEC_13818_1_PRIVATE_SECTION + 1,
451 ISO_IEC_13522_MHEG = ISO_IEC_13818_1_PES + 1,
452 ANNEX_A_DSM_CC = ISO_IEC_13522_MHEG + 1,
453 ITU_T_REC_H_222_1 = ANNEX_A_DSM_CC + 1,
454 ISO_IEC_13818_6_TYPE_A = ITU_T_REC_H_222_1 + 1,
455 ISO_IEC_13818_6_TYPE_B = ISO_IEC_13818_6_TYPE_A + 1,
456 ISO_IEC_13818_6_TYPE_C = ISO_IEC_13818_6_TYPE_B + 1,
457 ISO_IEC_13818_6_TYPE_D = ISO_IEC_13818_6_TYPE_C + 1,
458 ISO_IEC_13818_1_AUXILIARY = ISO_IEC_13818_6_TYPE_D + 1,
459 ISO_IEC_13818_1_RESERVED = ISO_IEC_13818_1_AUXILIARY + 1,
460 USER_PRIVATE = ISO_IEC_13818_1_RESERVED + 1
461 } MPEG2StreamType;
462
463
464 //------------------------------------------------------------
465 //
466 // BDA ATSC Component Type
467 //
468 //
469 // ATSC made AC3 Audio a descriptor instead of
470 // defining a user private stream type.
471 typedef enum ATSCComponentTypeFlags {
472 // bit flags for various component type properties
473 ATSCCT_AC3 = 0x00000001,
474 } ATSCComponentTypeFlags;
475
476
477 //------------------------------------------------------------
478 //
479 // BDA Locators
480 //
481
482
483 typedef V1_ENUM enum BinaryConvolutionCodeRate {
484 BDA_BCC_RATE_NOT_SET = -1,
485 BDA_BCC_RATE_NOT_DEFINED = 0,
486 BDA_BCC_RATE_1_2 = 1, // 1/2
487 BDA_BCC_RATE_2_3, // 2/3
488 BDA_BCC_RATE_3_4, // 3/4
489 BDA_BCC_RATE_3_5,
490 BDA_BCC_RATE_4_5,
491 BDA_BCC_RATE_5_6, // 5/6
492 BDA_BCC_RATE_5_11,
493 BDA_BCC_RATE_7_8, // 7/8
494 BDA_BCC_RATE_MAX,
495 } BinaryConvolutionCodeRate;
496
497 typedef V1_ENUM enum FECMethod {
498 BDA_FEC_METHOD_NOT_SET = -1,
499 BDA_FEC_METHOD_NOT_DEFINED = 0,
500 BDA_FEC_VITERBI = 1, // FEC is a Viterbi Binary Convolution.
501 BDA_FEC_RS_204_188, // The FEC is Reed-Solomon 204/188 (outer FEC)
502 BDA_FEC_MAX,
503 } FECMethod;
504
505 typedef V1_ENUM enum ModulationType {
506 BDA_MOD_NOT_SET = -1,
507 BDA_MOD_NOT_DEFINED = 0,
508 BDA_MOD_16QAM = 1,
509 BDA_MOD_32QAM,
510 BDA_MOD_64QAM,
511 BDA_MOD_80QAM,
512 BDA_MOD_96QAM,
513 BDA_MOD_112QAM,
514 BDA_MOD_128QAM,
515 BDA_MOD_160QAM,
516 BDA_MOD_192QAM,
517 BDA_MOD_224QAM,
518 BDA_MOD_256QAM,
519 BDA_MOD_320QAM,
520 BDA_MOD_384QAM,
521 BDA_MOD_448QAM,
522 BDA_MOD_512QAM,
523 BDA_MOD_640QAM,
524 BDA_MOD_768QAM,
525 BDA_MOD_896QAM,
526 BDA_MOD_1024QAM,
527 BDA_MOD_QPSK,
528 BDA_MOD_BPSK,
529 BDA_MOD_OQPSK,
530 BDA_MOD_8VSB,
531 BDA_MOD_16VSB,
532 BDA_MOD_ANALOG_AMPLITUDE, // std am
533 BDA_MOD_ANALOG_FREQUENCY, // std fm
534 BDA_MOD_MAX,
535 } ModulationType;
536
537 typedef V1_ENUM enum SpectralInversion {
538 BDA_SPECTRAL_INVERSION_NOT_SET = -1,
539 BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
540 BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
541 BDA_SPECTRAL_INVERSION_NORMAL,
542 BDA_SPECTRAL_INVERSION_INVERTED,
543 BDA_SPECTRAL_INVERSION_MAX
544 } SpectralInversion;
545
546 typedef V1_ENUM enum Polarisation {
547 BDA_POLARISATION_NOT_SET = -1,
548 BDA_POLARISATION_NOT_DEFINED = 0,
549 BDA_POLARISATION_LINEAR_H = 1, // Linear horizontal polarisation
550 BDA_POLARISATION_LINEAR_V, // Linear vertical polarisation
551 BDA_POLARISATION_CIRCULAR_L, // Circular left polarisation
552 BDA_POLARISATION_CIRCULAR_R, // Circular right polarisation
553 BDA_POLARISATION_MAX,
554 } Polarisation;
555
556 typedef V1_ENUM enum GuardInterval {
557 BDA_GUARD_NOT_SET = -1,
558 BDA_GUARD_NOT_DEFINED = 0,
559 BDA_GUARD_1_32 = 1, // Guard interval is 1/32
560 BDA_GUARD_1_16, // Guard interval is 1/16
561 BDA_GUARD_1_8, // Guard interval is 1/8
562 BDA_GUARD_1_4, // Guard interval is 1/4
563 BDA_GUARD_MAX,
564 } GuardInterval;
565
566 typedef V1_ENUM enum HierarchyAlpha {
567 BDA_HALPHA_NOT_SET = -1,
568 BDA_HALPHA_NOT_DEFINED = 0,
569 BDA_HALPHA_1 = 1, // Hierarchy alpha is 1.
570 BDA_HALPHA_2, // Hierarchy alpha is 2.
571 BDA_HALPHA_4, // Hierarchy alpha is 4.
572 BDA_HALPHA_MAX,
573 } HierarchyAlpha;
574
575 typedef V1_ENUM enum TransmissionMode {
576 BDA_XMIT_MODE_NOT_SET = -1,
577 BDA_XMIT_MODE_NOT_DEFINED = 0,
578 BDA_XMIT_MODE_2K = 1, // Transmission uses 1705 carriers (use a 2K FFT)
579 BDA_XMIT_MODE_8K, // Transmission uses 6817 carriers (use an 8K FFT)
580 BDA_XMIT_MODE_MAX,
581 } TransmissionMode;
582
583 #endif // not defined _BDATYPES_
584
585 // end of file -- bdatypes.h

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26