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