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