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

Annotation of /api/include/bdatypes.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide 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 bearsoft 1.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