Home | History | Annotate | Download | only in include
      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_1_4,
    242   BDA_BCC_RATE_1_3,
    243   BDA_BCC_RATE_2_5,
    244   BDA_BCC_RATE_6_7,
    245   BDA_BCC_RATE_8_9,
    246   BDA_BCC_RATE_9_10,
    247   BDA_BCC_RATE_MAX
    248 } BinaryConvolutionCodeRate;
    249 
    250 typedef V1_ENUM enum SpectralInversion {
    251   BDA_SPECTRAL_INVERSION_NOT_SET = -1,
    252   BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
    253   BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
    254   BDA_SPECTRAL_INVERSION_NORMAL,
    255   BDA_SPECTRAL_INVERSION_INVERTED,
    256   BDA_SPECTRAL_INVERSION_MAX
    257 } SpectralInversion;
    258 
    259 typedef V1_ENUM enum FECMethod {
    260   BDA_FEC_METHOD_NOT_SET       = -1,
    261   BDA_FEC_METHOD_NOT_DEFINED   = 0,
    262   BDA_FEC_VITERBI              = 1,
    263   BDA_FEC_RS_204_188           = 2,
    264   BDA_FEC_LDPC,
    265   BDA_FEC_BCH,
    266   BDA_FEC_RS_147_130,
    267   BDA_FEC_MAX
    268 } FECMethod;
    269 
    270 typedef V1_ENUM enum ModulationType {
    271   BDA_MOD_NOT_SET            = -1,
    272   BDA_MOD_NOT_DEFINED        = 0,
    273   BDA_MOD_16QAM              = 1,
    274   BDA_MOD_32QAM,
    275   BDA_MOD_64QAM,
    276   BDA_MOD_80QAM,
    277   BDA_MOD_96QAM,
    278   BDA_MOD_112QAM,
    279   BDA_MOD_128QAM,
    280   BDA_MOD_160QAM,
    281   BDA_MOD_192QAM,
    282   BDA_MOD_224QAM,
    283   BDA_MOD_256QAM,
    284   BDA_MOD_320QAM,
    285   BDA_MOD_384QAM,
    286   BDA_MOD_448QAM,
    287   BDA_MOD_512QAM,
    288   BDA_MOD_640QAM,
    289   BDA_MOD_768QAM,
    290   BDA_MOD_896QAM,
    291   BDA_MOD_1024QAM,
    292   BDA_MOD_QPSK,
    293   BDA_MOD_BPSK,
    294   BDA_MOD_OQPSK,
    295   BDA_MOD_8VSB,
    296   BDA_MOD_16VSB,
    297   BDA_MOD_ANALOG_AMPLITUDE,
    298   BDA_MOD_ANALOG_FREQUENCY,
    299   BDA_MOD_8PSK,
    300   BDA_MOD_RF,
    301   BDA_MOD_16APSK,
    302   BDA_MOD_32APSK,
    303   BDA_MOD_NBC_QPSK,
    304   BDA_MOD_NBC_8PSK,
    305   BDA_MOD_DIRECTV,
    306   BDA_MOD_ISDB_T_TMCC,
    307   BDA_MOD_ISDB_S_TMCC,
    308   BDA_MOD_MAX
    309 } ModulationType;
    310 
    311 typedef enum tagScanModulationTypes {
    312   BDA_SCAN_MOD_16QAM                            = 0x00000001,
    313   BDA_SCAN_MOD_32QAM                            = 0x00000002,
    314   BDA_SCAN_MOD_64QAM                            = 0x00000004,
    315   BDA_SCAN_MOD_80QAM                            = 0x00000008,
    316   BDA_SCAN_MOD_96QAM                            = 0x00000010,
    317   BDA_SCAN_MOD_112QAM                           = 0x00000020,
    318   BDA_SCAN_MOD_128QAM                           = 0x00000040,
    319   BDA_SCAN_MOD_160QAM                           = 0x00000080,
    320   BDA_SCAN_MOD_192QAM                           = 0x00000100,
    321   BDA_SCAN_MOD_224QAM                           = 0x00000200,
    322   BDA_SCAN_MOD_256QAM                           = 0x00000400,
    323   BDA_SCAN_MOD_320QAM                           = 0x00000800,
    324   BDA_SCAN_MOD_384QAM                           = 0x00001000,
    325   BDA_SCAN_MOD_448QAM                           = 0x00002000,
    326   BDA_SCAN_MOD_512QAM                           = 0x00004000,
    327   BDA_SCAN_MOD_640QAM                           = 0x00008000,
    328   BDA_SCAN_MOD_768QAM                           = 0x00010000,
    329   BDA_SCAN_MOD_896QAM                           = 0x00020000,
    330   BDA_SCAN_MOD_1024QAM                          = 0x00040000,
    331   BDA_SCAN_MOD_QPSK                             = 0x00080000,
    332   BDA_SCAN_MOD_BPSK                             = 0x00100000,
    333   BDA_SCAN_MOD_OQPSK                            = 0x00200000,
    334   BDA_SCAN_MOD_8VSB                             = 0x00400000,
    335   BDA_SCAN_MOD_16VSB                            = 0x00800000,
    336   BDA_SCAN_MOD_AM_RADIO                         = 0x01000000,
    337   BDA_SCAN_MOD_FM_RADIO                         = 0x02000000,
    338   BDA_SCAN_MOD_8PSK                             = 0x04000000,
    339   BDA_SCAN_MOD_RF                               = 0x08000000, /* analog TV */
    340   ScanModulationTypesMask_MCE_DigitalCable      = BDA_MOD_64QAM | BDA_MOD_256QAM,
    341   ScanModulationTypesMask_MCE_TerrestrialATSC   = BDA_MOD_8VSB,
    342   ScanModulationTypesMask_MCE_AnalogTv          = BDA_MOD_RF,
    343   ScanModulationTypesMask_MCE_All_TV            = 0xffffffff,
    344 } ScanModulationTypes;
    345 
    346 typedef V1_ENUM enum TransmissionMode {
    347   BDA_XMIT_MODE_NOT_SET          = -1,
    348   BDA_XMIT_MODE_NOT_DEFINED      = 0,
    349   BDA_XMIT_MODE_2K,
    350   BDA_XMIT_MODE_8K,
    351   BDA_XMIT_MODE_4K,
    352   BDA_XMIT_MODE_2K_INTERLEAVED,
    353   BDA_XMIT_MODE_4K_INTERLEAVED,
    354   BDA_XMIT_MODE_MAX
    355 } TransmissionMode;
    356 
    357 
    358 typedef V1_ENUM enum Polarisation {
    359   BDA_POLARISATION_NOT_SET = -1,
    360   BDA_POLARISATION_NOT_DEFINED = 0,
    361   BDA_POLARISATION_LINEAR_H = 1,
    362   BDA_POLARISATION_LINEAR_V,
    363   BDA_POLARISATION_CIRCULAR_L,
    364   BDA_POLARISATION_CIRCULAR_R,
    365   BDA_POLARISATION_MAX,
    366 } Polarisation;
    367 
    368 typedef V1_ENUM enum GuardInterval {
    369   BDA_GUARD_NOT_SET = -1,
    370   BDA_GUARD_NOT_DEFINED = 0,
    371   BDA_GUARD_1_32 = 1,
    372   BDA_GUARD_1_16,
    373   BDA_GUARD_1_8,
    374   BDA_GUARD_1_4,
    375   BDA_GUARD_MAX,
    376 } GuardInterval;
    377 
    378 typedef V1_ENUM enum HierarchyAlpha {
    379   BDA_HALPHA_NOT_SET = -1,
    380   BDA_HALPHA_NOT_DEFINED = 0,
    381   BDA_HALPHA_1 = 1,
    382   BDA_HALPHA_2,
    383   BDA_HALPHA_4,
    384   BDA_HALPHA_MAX,
    385 } HierarchyAlpha;
    386 
    387 typedef enum _BDA_Comp_Flags {
    388   BDACOMP_NOT_DEFINED             = 0x00000000,
    389   BDACOMP_EXCLUDE_TS_FROM_TR      = 0x00000001,
    390   BDACOMP_INCLUDE_LOCATOR_IN_TR   = 0x00000002
    391 } BDA_Comp_Flags;
    392 
    393 #if (_WIN32_WINNT >= 0x0601)
    394 
    395 typedef enum _BDA_CONDITIONALACCESS_MMICLOSEREASON {
    396   CONDITIONALACCESS_UNSPECIFIED                 = 0,
    397   CONDITIONALACCESS_CLOSED_ITSELF,
    398   CONDITIONALACCESS_TUNER_REQUESTED_CLOSE,
    399   CONDITIONALACCESS_DIALOG_TIMEOUT,
    400   CONDITIONALACCESS_DIALOG_FOCUS_CHANGE,
    401   CONDITIONALACCESS_DIALOG_USER_DISMISSED,
    402   CONDITIONALACCESS_DIALOG_USER_NOT_AVAILABLE
    403 } BDA_CONDITIONALACCESS_MMICLOSEREASON;
    404 
    405 typedef enum BDA_CONDITIONALACCESS_REQUESTTYPE {
    406   CONDITIONALACCESS_ACCESS_UNSPECIFIED                        = 0,
    407   CONDITIONALACCESS_ACCESS_NOT_POSSIBLE,
    408   CONDITIONALACCESS_ACCESS_POSSIBLE,
    409   CONDITIONALACCESS_ACCESS_POSSIBLE_NO_STREAMING_DISRUPTION
    410 } BDA_CONDITIONALACCESS_REQUESTTYPE;
    411 
    412 typedef enum MUX_PID_TYPE {
    413   PID_OTHER                  = -1,
    414   PID_ELEMENTARY_STREAM,
    415   PID_MPEG2_SECTION_PSI_SI
    416 } MUX_PID_TYPE;
    417 
    418 typedef enum Pilot {
    419   BDA_PILOT_NOT_SET       = -1,
    420   BDA_PILOT_NOT_DEFINED   = 0,
    421   BDA_PILOT_OFF           = 1,
    422   BDA_PILOT_ON,
    423   BDA_PILOT_MAX
    424 } Pilot;
    425 
    426 typedef enum RollOff {
    427   BDA_ROLL_OFF_NOT_SET       = -1,
    428   BDA_ROLL_OFF_NOT_DEFINED   = 0,
    429   BDA_ROLL_OFF_20            = 1,
    430   BDA_ROLL_OFF_25,
    431   BDA_ROLL_OFF_35,
    432   BDA_ROLL_OFF_MAX
    433 } RollOff;
    434 
    435 typedef enum _LNB_Source {
    436   BDA_LNB_SOURCE_NOT_SET       = -1,
    437   BDA_LNB_SOURCE_NOT_DEFINED   = 0,
    438   BDA_LNB_SOURCE_A             = 1,
    439   BDA_LNB_SOURCE_B             = 2,
    440   BDA_LNB_SOURCE_C             = 3,
    441   BDA_LNB_SOURCE_D             = 4,
    442   BDA_LNB_SOURCE_MAX           = 5
    443 } LNB_Source;
    444 
    445 typedef struct _BDA_ISDBCAS_EMG_REQ {
    446   BYTE bCLA;
    447   BYTE bINS;
    448   BYTE bP1;
    449   BYTE bP2;
    450   BYTE bLC;
    451   BYTE bCardId;
    452   BYTE bProtocol;
    453   BYTE bCABroadcasterGroupId;
    454   BYTE bMessageControl;
    455   BYTE bMessageCode[MIN_DIMENSION];
    456 } BDA_ISDBCAS_EMG_REQ, *PBDA_ISDBCAS_EMG_REQ;
    457 
    458 typedef struct _BDA_MUX_PIDLISTITEM {
    459   USHORT       usPIDNumber;
    460   USHORT       usProgramNumber;
    461   MUX_PID_TYPE ePIDType;
    462 } BDA_MUX_PIDLISTITEM, *PBDA_MUX_PIDLISTITEM;
    463 
    464 #endif /*(_WIN32_WINNT >= 0x0601)*/
    465 
    466 #endif /* _BDATYPES_ */
    467 
    468