00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef TMDLHDMITX_TYPES_H
00036 #define TMDLHDMITX_TYPES_H
00037
00038
00039
00040
00041
00042 #include "tmNxTypes.h"
00043
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057 #define TMDL_ERR_DLHDMITX_BASE CID_DL_HDMITX
00058 #define TMDL_ERR_DLHDMITX_COMP (TMDL_ERR_DLHDMITX_BASE | TM_ERR_COMP_UNIQUE_START)
00059
00060 #define TMDL_ERR_DLHDMITX_COMPATIBILITY (TMDL_ERR_DLHDMITX_BASE + TM_ERR_COMPATIBILITY)
00061 #define TMDL_ERR_DLHDMITX_MAJOR_VERSION (TMDL_ERR_DLHDMITX_BASE + TM_ERR_MAJOR_VERSION)
00062 #define TMDL_ERR_DLHDMITX_COMP_VERSION (TMDL_ERR_DLHDMITX_BASE + TM_ERR_COMP_VERSION)
00063 #define TMDL_ERR_DLHDMITX_BAD_UNIT_NUMBER (TMDL_ERR_DLHDMITX_BASE + TM_ERR_BAD_UNIT_NUMBER)
00064 #define TMDL_ERR_DLHDMITX_BAD_INSTANCE (TMDL_ERR_DLHDMITX_BASE + TM_ERR_BAD_INSTANCE)
00065 #define TMDL_ERR_DLHDMITX_BAD_HANDLE (TMDL_ERR_DLHDMITX_BASE + TM_ERR_BAD_HANDLE)
00066 #define TMDL_ERR_DLHDMITX_BAD_PARAMETER (TMDL_ERR_DLHDMITX_BASE + TM_ERR_BAD_PARAMETER)
00067 #define TMDL_ERR_DLHDMITX_NO_RESOURCES (TMDL_ERR_DLHDMITX_BASE + TM_ERR_NO_RESOURCES)
00068 #define TMDL_ERR_DLHDMITX_RESOURCE_OWNED (TMDL_ERR_DLHDMITX_BASE + TM_ERR_RESOURCE_OWNED)
00069 #define TMDL_ERR_DLHDMITX_RESOURCE_NOT_OWNED (TMDL_ERR_DLHDMITX_BASE + TM_ERR_RESOURCE_NOT_OWNED)
00070 #define TMDL_ERR_DLHDMITX_INCONSISTENT_PARAMS (TMDL_ERR_DLHDMITX_BASE + TM_ERR_INCONSISTENT_PARAMS)
00071 #define TMDL_ERR_DLHDMITX_NOT_INITIALIZED (TMDL_ERR_DLHDMITX_BASE + TM_ERR_NOT_INITIALIZED)
00072 #define TMDL_ERR_DLHDMITX_NOT_SUPPORTED (TMDL_ERR_DLHDMITX_BASE + TM_ERR_NOT_SUPPORTED)
00073 #define TMDL_ERR_DLHDMITX_INIT_FAILED (TMDL_ERR_DLHDMITX_BASE + TM_ERR_INIT_FAILED)
00074 #define TMDL_ERR_DLHDMITX_BUSY (TMDL_ERR_DLHDMITX_BASE + TM_ERR_BUSY)
00075 #define TMDL_ERR_DLHDMITX_I2C_READ (TMDL_ERR_DLHDMITX_BASE + TM_ERR_READ)
00076 #define TMDL_ERR_DLHDMITX_I2C_WRITE (TMDL_ERR_DLHDMITX_BASE + TM_ERR_WRITE)
00077 #define TMDL_ERR_DLHDMITX_FULL (TMDL_ERR_DLHDMITX_BASE + TM_ERR_FULL)
00078 #define TMDL_ERR_DLHDMITX_NOT_STARTED (TMDL_ERR_DLHDMITX_BASE + TM_ERR_NOT_STARTED)
00079 #define TMDL_ERR_DLHDMITX_ALREADY_STARTED (TMDL_ERR_DLHDMITX_BASE + TM_ERR_ALREADY_STARTED)
00080 #define TMDL_ERR_DLHDMITX_ASSERTION (TMDL_ERR_DLHDMITX_BASE + TM_ERR_ASSERTION)
00081 #define TMDL_ERR_DLHDMITX_INVALID_STATE (TMDL_ERR_DLHDMITX_BASE + TM_ERR_INVALID_STATE)
00082 #define TMDL_ERR_DLHDMITX_OPERATION_NOT_PERMITTED (TMDL_ERR_DLHDMITX_BASE + TM_ERR_OPERATION_NOT_PERMITTED)
00083 #define TMDL_ERR_DLHDMITX_RESOLUTION_UNKNOWN (TMDL_ERR_DLHDMITX_BASE + TM_ERR_BAD_FORMAT)
00084
00085 #define TMDL_DLHDMITX_HDCP_SECURE (TMDL_ERR_DLHDMITX_COMP + 0x0001)
00086 #define TMDL_DLHDMITX_HDCP_NOT_SECURE (TMDL_ERR_DLHDMITX_COMP + 0x0002)
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 typedef enum
00097 {
00098 TMDL_HDMITX_HDCP_ACTIVE = 0,
00099 TMDL_HDMITX_HDCP_INACTIVE = 1,
00100 TMDL_HDMITX_HPD_ACTIVE = 2,
00101 TMDL_HDMITX_HPD_INACTIVE = 3,
00102 TMDL_HDMITX_RX_KEYS_RECEIVED = 4,
00103 TMDL_HDMITX_RX_DEVICE_ACTIVE = 5,
00104 TMDL_HDMITX_RX_DEVICE_INACTIVE = 6,
00105 TMDL_HDMITX_EDID_RECEIVED = 7,
00106 TMDL_HDMITX_VS_RPT_RECEIVED = 8,
00107 #ifdef HDMI_TX_REPEATER_ISR_MODE
00108 TMDL_HDMITX_B_STATUS = 9,
00109 #endif
00110 TMDL_HDMITX_DEBUG_EVENT_1 = 10
00111 } tmdlHdmiTxEvent_t;
00112
00113
00114
00115
00116 typedef enum
00117 {
00118 TMDL_HDMITX_EVENT_ENABLED,
00119 TMDL_HDMITX_EVENT_DISABLED
00120 } tmdlHdmiTxEventStatus_t;
00121
00122
00123
00124
00125
00126
00127 typedef void (*ptmdlHdmiTxCallback_t) (tmdlHdmiTxEvent_t event);
00128
00129
00130
00131
00132 typedef enum
00133 {
00134 TMDL_HDMITX_DEVICE_UNKNOWN,
00135 TMDL_HDMITX_DEVICE_TDA9984,
00136 TMDL_HDMITX_DEVICE_TDA9989,
00137 TMDL_HDMITX_DEVICE_TDA9981,
00138 TMDL_HDMITX_DEVICE_TDA9983,
00139 TMDL_HDMITX_DEVICE_TDA19989
00140
00141 } tmdlHdmiTxDeviceVersion_t;
00142
00143
00144
00145
00146 typedef enum
00147 {
00148 TMDL_HDMITX_HDMI_VERSION_UNKNOWN,
00149 TMDL_HDMITX_HDMI_VERSION_1_1,
00150 TMDL_HDMITX_HDMI_VERSION_1_2a,
00151 TMDL_HDMITX_HDMI_VERSION_1_3a
00152 } tmdlHdmiTxHdmiVersion_t;
00153
00154
00155
00156
00157 typedef enum
00158 {
00159 TMDL_HDMITX_COLORDEPTH_24 = 0,
00160 TMDL_HDMITX_COLORDEPTH_30 = 1,
00161 TMDL_HDMITX_COLORDEPTH_36 = 2,
00162 TMDL_HDMITX_COLORDEPTH_48 = 3
00163 } tmdlHdmiTxColorDepth_t;
00164
00165
00166
00167
00168 typedef enum
00169 {
00170 TMDL_HDMITX_EDID_READ = 0,
00171 TMDL_HDMITX_EDID_READ_INCOMPLETE = 1,
00172 TMDL_HDMITX_EDID_ERROR_CHK_BLOCK_0 = 2,
00173 TMDL_HDMITX_EDID_ERROR_CHK = 3,
00174 TMDL_HDMITX_EDID_NOT_READ = 4,
00175 TMDL_HDMITX_EDID_STATUS_INVALID = 5
00176 } tmdlHdmiTxEdidStatus_t;
00177
00178
00179
00180
00181 typedef struct
00182 {
00183 Bool HBR;
00184 Bool DST;
00185 Bool oneBitAudio;
00186 } tmdlHdmiTxAudioPacket_t;
00187
00188
00189
00190
00191 typedef enum
00192 {
00193 TMDL_HDMITX_AFMT_SPDIF = 0,
00194 TMDL_HDMITX_AFMT_I2S = 1,
00195 TMDL_HDMITX_AFMT_OBA = 2,
00196 TMDL_HDMITX_AFMT_DST = 3,
00197 TMDL_HDMITX_AFMT_HBR = 4
00198 } tmdlHdmiTxAudioFormat_t;
00199
00200
00201
00202
00203 typedef enum
00204 {
00205 TMDL_HDMITX_AFS_32K = 0,
00206 TMDL_HDMITX_AFS_44K = 1,
00207 TMDL_HDMITX_AFS_48K = 2,
00208 TMDL_HDMITX_AFS_88K = 3,
00209 TMDL_HDMITX_AFS_96K = 4,
00210 TMDL_HDMITX_AFS_176K = 5,
00211 TMDL_HDMITX_AFS_192K = 6
00212 } tmdlHdmiTxAudioRate_t;
00213
00214
00215
00216
00217 typedef enum
00218 {
00219 TMDL_HDMITX_I2SQ_16BITS = 16,
00220 TMDL_HDMITX_I2SQ_32BITS = 32,
00221 TMDL_HDMITX_I2SQ_OTHERS = 0
00222 } tmdlHdmiTxAudioI2SQualifier_t;
00223
00224
00225
00226
00227 typedef enum
00228 {
00229 TMDL_HDMITX_I2SFOR_PHILIPS_L = 0,
00230 TMDL_HDMITX_I2SFOR_OTH_L = 2,
00231 TMDL_HDMITX_I2SFOR_OTH_R = 3,
00232 TMDL_HDMITX_I2SFOR_INVALID = 4
00233 } tmdlHdmiTxAudioI2SFormat_t;
00234
00235
00236
00237
00238 typedef enum
00239 {
00240 TMDL_HDMITX_DSTRATE_SINGLE = 0,
00241 TMDL_HDMITX_DSTRATE_DOUBLE = 1
00242 } tmdlHdmiTxDstRate_t;
00243
00244
00245
00246
00247 typedef struct
00248 {
00249 tmdlHdmiTxDeviceVersion_t deviceVersion;
00250 tmdlHdmiTxHdmiVersion_t hdmiVersion;
00251 tmdlHdmiTxAudioPacket_t audioPacket;
00252 tmdlHdmiTxColorDepth_t colorDepth;
00253 Bool hdcp;
00254 Bool scaler;
00255 } tmdlHdmiTxCapabilities_t;
00256
00257
00258
00259
00260 typedef struct
00261 {
00262 Bool simplayHd;
00263 Bool repeaterEnable;
00264 UInt8 *pEdidBuffer;
00265 UInt32 edidBufferSize;
00266 } tmdlHdmiTxInstanceSetupInfo_t;
00267
00268
00269
00270
00271 typedef enum
00272 {
00273 TMDL_HDMITX_VFMT_NULL = 0,
00274 TMDL_HDMITX_VFMT_NO_CHANGE = 0,
00275 TMDL_HDMITX_VFMT_MIN = 1,
00276 TMDL_HDMITX_VFMT_TV_MIN = 1,
00277 TMDL_HDMITX_VFMT_01_640x480p_60Hz = 1,
00278 TMDL_HDMITX_VFMT_02_720x480p_60Hz = 2,
00279 TMDL_HDMITX_VFMT_03_720x480p_60Hz = 3,
00280 TMDL_HDMITX_VFMT_04_1280x720p_60Hz = 4,
00281 TMDL_HDMITX_VFMT_05_1920x1080i_60Hz = 5,
00282 TMDL_HDMITX_VFMT_06_720x480i_60Hz = 6,
00283 TMDL_HDMITX_VFMT_07_720x480i_60Hz = 7,
00284 TMDL_HDMITX_VFMT_08_720x240p_60Hz = 8,
00285 TMDL_HDMITX_VFMT_09_720x240p_60Hz = 9,
00286 TMDL_HDMITX_VFMT_10_720x480i_60Hz = 10,
00287 TMDL_HDMITX_VFMT_11_720x480i_60Hz = 11,
00288 TMDL_HDMITX_VFMT_12_720x240p_60Hz = 12,
00289 TMDL_HDMITX_VFMT_13_720x240p_60Hz = 13,
00290 TMDL_HDMITX_VFMT_14_1440x480p_60Hz = 14,
00291 TMDL_HDMITX_VFMT_15_1440x480p_60Hz = 15,
00292 TMDL_HDMITX_VFMT_16_1920x1080p_60Hz = 16,
00293 TMDL_HDMITX_VFMT_17_720x576p_50Hz = 17,
00294 TMDL_HDMITX_VFMT_18_720x576p_50Hz = 18,
00295 TMDL_HDMITX_VFMT_19_1280x720p_50Hz = 19,
00296 TMDL_HDMITX_VFMT_20_1920x1080i_50Hz = 20,
00297 TMDL_HDMITX_VFMT_21_720x576i_50Hz = 21,
00298 TMDL_HDMITX_VFMT_22_720x576i_50Hz = 22,
00299 TMDL_HDMITX_VFMT_23_720x288p_50Hz = 23,
00300 TMDL_HDMITX_VFMT_24_720x288p_50Hz = 24,
00301 TMDL_HDMITX_VFMT_25_720x576i_50Hz = 25,
00302 TMDL_HDMITX_VFMT_26_720x576i_50Hz = 26,
00303 TMDL_HDMITX_VFMT_27_720x288p_50Hz = 27,
00304 TMDL_HDMITX_VFMT_28_720x288p_50Hz = 28,
00305 TMDL_HDMITX_VFMT_29_1440x576p_50Hz = 29,
00306 TMDL_HDMITX_VFMT_30_1440x576p_50Hz = 30,
00307 TMDL_HDMITX_VFMT_31_1920x1080p_50Hz = 31,
00308 TMDL_HDMITX_VFMT_32_1920x1080p_24Hz = 32,
00309 TMDL_HDMITX_VFMT_33_1920x1080p_25Hz = 33,
00310 TMDL_HDMITX_VFMT_34_1920x1080p_30Hz = 34,
00311 TMDL_HDMITX_VFMT_35_2880x480p_60Hz = 35,
00312 TMDL_HDMITX_VFMT_36_2880x480p_60Hz = 36,
00313 TMDL_HDMITX_VFMT_37_2880x576p_50Hz = 37,
00314 TMDL_HDMITX_VFMT_38_2880x576p_50Hz = 38,
00315
00316 TMDL_HDMITX_VFMT_TV_MAX = 38,
00317 TMDL_HDMITX_VFMT_TV_NO_REG_MIN = 32,
00318 TMDL_HDMITX_VFMT_TV_NUM = 39,
00319
00320 TMDL_HDMITX_VFMT_PC_MIN = 128,
00321 TMDL_HDMITX_VFMT_PC_640x480p_60Hz = 128,
00322 TMDL_HDMITX_VFMT_PC_800x600p_60Hz = 129,
00323 TMDL_HDMITX_VFMT_PC_1152x960p_60Hz = 130,
00324 TMDL_HDMITX_VFMT_PC_1024x768p_60Hz = 131,
00325 TMDL_HDMITX_VFMT_PC_1280x768p_60Hz = 132,
00326 TMDL_HDMITX_VFMT_PC_1280x1024p_60Hz = 133,
00327 TMDL_HDMITX_VFMT_PC_1360x768p_60Hz = 134,
00328 TMDL_HDMITX_VFMT_PC_1400x1050p_60Hz = 135,
00329 TMDL_HDMITX_VFMT_PC_1600x1200p_60Hz = 136,
00330 TMDL_HDMITX_VFMT_PC_1024x768p_70Hz = 137,
00331 TMDL_HDMITX_VFMT_PC_640x480p_72Hz = 138,
00332 TMDL_HDMITX_VFMT_PC_800x600p_72Hz = 139,
00333 TMDL_HDMITX_VFMT_PC_640x480p_75Hz = 140,
00334 TMDL_HDMITX_VFMT_PC_1024x768p_75Hz = 141,
00335 TMDL_HDMITX_VFMT_PC_800x600p_75Hz = 142,
00336 TMDL_HDMITX_VFMT_PC_1024x864p_75Hz = 143,
00337 TMDL_HDMITX_VFMT_PC_1280x1024p_75Hz = 144,
00338 TMDL_HDMITX_VFMT_PC_640x350p_85Hz = 145,
00339 TMDL_HDMITX_VFMT_PC_640x400p_85Hz = 146,
00340 TMDL_HDMITX_VFMT_PC_720x400p_85Hz = 147,
00341 TMDL_HDMITX_VFMT_PC_640x480p_85Hz = 148,
00342 TMDL_HDMITX_VFMT_PC_800x600p_85Hz = 149,
00343 TMDL_HDMITX_VFMT_PC_1024x768p_85Hz = 150,
00344 TMDL_HDMITX_VFMT_PC_1152x864p_85Hz = 151,
00345 TMDL_HDMITX_VFMT_PC_1280x960p_85Hz = 152,
00346 TMDL_HDMITX_VFMT_PC_1280x1024p_85Hz = 153,
00347 TMDL_HDMITX_VFMT_PC_1024x768i_87Hz = 154,
00348 TMDL_HDMITX_VFMT_PC_MAX = 154,
00349 TMDL_HDMITX_VFMT_PC_NUM = (1+154-128)
00350 } tmdlHdmiTxVidFmt_t;
00351
00352
00353
00354
00355 typedef struct
00356 {
00357 tmdlHdmiTxVidFmt_t videoFormat;
00358 Bool nativeVideoFormat;
00359 } tmdlHdmiTxShortVidDesc_t;
00360
00361
00362
00363
00364 typedef enum
00365 {
00366 TMDL_HDMITX_P_ASPECT_RATIO_UNDEFINED = 0,
00367 TMDL_HDMITX_P_ASPECT_RATIO_6_5 = 1,
00368 TMDL_HDMITX_P_ASPECT_RATIO_5_4 = 2,
00369 TMDL_HDMITX_P_ASPECT_RATIO_4_3 = 3,
00370 TMDL_HDMITX_P_ASPECT_RATIO_16_10 = 4,
00371 TMDL_HDMITX_P_ASPECT_RATIO_5_3 = 5,
00372 TMDL_HDMITX_P_ASPECT_RATIO_16_9 = 6,
00373 TMDL_HDMITX_P_ASPECT_RATIO_9_5 = 7
00374 } tmdlHdmiTxPictAspectRatio_t;
00375
00376
00377
00378
00379 typedef enum
00380 {
00381 TMDL_HDMITX_VFREQ_24Hz = 0,
00382 TMDL_HDMITX_VFREQ_25Hz = 1,
00383 TMDL_HDMITX_VFREQ_30Hz = 2,
00384 TMDL_HDMITX_VFREQ_50Hz = 3,
00385 TMDL_HDMITX_VFREQ_59Hz = 4,
00386 TMDL_HDMITX_VFREQ_60Hz = 5,
00387 #ifndef FORMAT_PC
00388 TMDL_HDMITX_VFREQ_INVALID = 6,
00389 TMDL_HDMITX_VFREQ_NUM = 6
00390 #else
00391 TMDL_HDMITX_VFREQ_70Hz = 6,
00392 TMDL_HDMITX_VFREQ_72Hz = 7,
00393 TMDL_HDMITX_VFREQ_75Hz = 8,
00394 TMDL_HDMITX_VFREQ_85Hz = 9,
00395 TMDL_HDMITX_VFREQ_87Hz = 10,
00396 TMDL_HDMITX_VFREQ_INVALID = 11,
00397 TMDL_HDMITX_VFREQ_NUM = 11
00398 #endif
00399 } tmdlHdmiTxVfreq_t;
00400
00401
00402
00403
00404 typedef struct
00405 {
00406 UInt16 width;
00407 UInt16 height;
00408 Bool interlaced;
00409 tmdlHdmiTxVfreq_t vfrequency;
00410 tmdlHdmiTxPictAspectRatio_t aspectRatio;
00411 } tmdlHdmiTxVidFmtSpecs_t;
00412
00413
00414
00415
00416 typedef enum
00417 {
00418 TMDL_HDMITX_VINMODE_CCIR656 = 0,
00419 TMDL_HDMITX_VINMODE_RGB444 = 1,
00420 TMDL_HDMITX_VINMODE_YUV444 = 2,
00421 TMDL_HDMITX_VINMODE_YUV422 = 3,
00422 TMDL_HDMITX_VINMODE_NO_CHANGE = 4,
00423 TMDL_HDMITX_VINMODE_INVALID = 5
00424 } tmdlHdmiTxVinMode_t;
00425
00426
00427
00428
00429 typedef enum
00430 {
00431 TMDL_HDMITX_SYNCSRC_EMBEDDED = 0,
00432 TMDL_HDMITX_SYNCSRC_EXT_VREF = 1,
00433 TMDL_HDMITX_SYNCSRC_EXT_VS = 2
00434 } tmdlHdmiTxSyncSource_t;
00435
00436
00437
00438
00439 typedef enum
00440 {
00441 TMDL_HDMITX_PIXRATE_DOUBLE = 0,
00442 TMDL_HDMITX_PIXRATE_SINGLE = 1,
00443 TMDL_HDMITX_PIXRATE_SINGLE_REPEATED = 2
00444 } tmdlHdmiTxPixRate_t;
00445
00446
00447
00448
00449 typedef struct
00450 {
00451 tmdlHdmiTxVidFmt_t format;
00452 tmdlHdmiTxVinMode_t mode;
00453 tmdlHdmiTxSyncSource_t syncSource;
00454 tmdlHdmiTxPixRate_t pixelRate;
00455 } tmdlHdmiTxVideoInConfig_t;
00456
00457
00458
00459
00460 typedef enum
00461 {
00462 TMDL_HDMITX_VOUTMODE_RGB444 = 0,
00463 TMDL_HDMITX_VOUTMODE_YUV422 = 1,
00464 TMDL_HDMITX_VOUTMODE_YUV444 = 2
00465 } tmdlHdmiTxVoutMode_t;
00466
00467
00468
00469
00470 typedef enum
00471 {
00472 TMDL_HDMITX_VQR_DEFAULT = 0,
00473 TMDL_HDMITX_RGB_FULL = 1,
00474 TMDL_HDMITX_RGB_LIMITED = 2
00475 } tmdlHdmiTxVQR_t;
00476
00477
00478
00479
00480
00481 typedef struct
00482 {
00483 tmdlHdmiTxVidFmt_t format;
00484 tmdlHdmiTxVoutMode_t mode;
00485 tmdlHdmiTxColorDepth_t colorDepth;
00486 tmdlHdmiTxVQR_t dviVqr;
00487 } tmdlHdmiTxVideoOutConfig_t;
00488
00489
00490
00491
00492 typedef struct
00493 {
00494 tmdlHdmiTxAudioFormat_t format;
00495 tmdlHdmiTxAudioRate_t rate;
00496 tmdlHdmiTxAudioI2SFormat_t i2sFormat;
00497 tmdlHdmiTxAudioI2SQualifier_t i2sQualifier;
00498 tmdlHdmiTxDstRate_t dstRate;
00499 UInt8 channelAllocation;
00500 } tmdlHdmiTxAudioInConfig_t;
00501
00502
00503
00504
00505 typedef enum
00506 {
00507 TMDL_HDMITX_SINK_DVI = 0,
00508 TMDL_HDMITX_SINK_HDMI = 1,
00509 TMDL_HDMITX_SINK_EDID = 2
00510 } tmdlHdmiTxSinkType_t;
00511
00512
00513
00514
00515 typedef struct
00516 {
00517 Bool nextField;
00518 UInt8 GBD_Profile;
00519 UInt8 affectedGamutSeqNum;
00520 Bool noCurrentGBD;
00521 UInt8 currentGamutSeqNum;
00522 UInt8 packetSequence;
00523 UInt8 payload[28];
00524 } tmdlHdmiTxGamutData_t;
00525
00526
00527
00528
00529 typedef UInt8 tmdlHdmiTxGenericPacket[28];
00530
00531
00532
00533
00534 typedef struct
00535 {
00536 UInt8 acpType;
00537 UInt8 acpData[28];
00538 } tmdlHdmiTxAcpPktData_t;
00539
00540
00541
00542
00543 typedef struct
00544 {
00545 UInt8 colorIndicator;
00546 UInt8 activeInfoPresent;
00547 UInt8 barInformationDataValid;
00548 UInt8 scanInformation;
00549 UInt8 colorimetry;
00550 UInt8 pictureAspectRatio;
00551 UInt8 activeFormatAspectRatio;
00552 UInt8 nonUniformPictureScaling;
00553 UInt8 videoFormatIdentificationCode;
00554 UInt8 pixelRepetitionFactor;
00555 UInt16 lineNumberEndTopBar;
00556 UInt16 lineNumberStartBottomBar;
00557 UInt16 lineNumberEndLeftBar;
00558 UInt16 lineNumberStartRightBar;
00559 } tmdlHdmiTxAviIfData_t;
00560
00561
00562
00563
00564 typedef struct
00565 {
00566 Bool avMute;
00567 } tmdlHdmiTxGcpPktData_t;
00568
00569
00570
00571
00572 typedef struct
00573 {
00574 UInt8 codingType;
00575 UInt8 channelCount;
00576 UInt8 samplefrequency;
00577 UInt8 sampleSize;
00578 UInt8 channelAllocation;
00579 Bool downmixInhibit;
00580 UInt8 levelShiftValue;
00581 } tmdlHdmiTxAudIfData_t;
00582
00583
00584
00585
00586 typedef struct
00587 {
00588 Bool isrcCont;
00589 Bool isrcValid;
00590 UInt8 isrcStatus;
00591 UInt8 UPC_EAN_ISRC[16];
00592 } tmdlHdmiTxIsrc1PktData_t;
00593
00594
00595
00596
00597 typedef struct
00598 {
00599 UInt8 UPC_EAN_ISRC[16];
00600 } tmdlHdmiTxIsrc2PktData_t;
00601
00602
00603
00604
00605 typedef struct
00606 {
00607 UInt32 bitRate;
00608 UInt32 frameType;
00609 Bool fieldRepeat;
00610 } tmdlHdmiTxMpsIfData_t;
00611
00612
00613
00614
00615 typedef struct
00616 {
00617 UInt8 vendorName[8];
00618 UInt8 productDesc[16];
00619 UInt32 sourceDevInfo;
00620 } tmdlHdmiTxSpdIfData_t;
00621
00622
00623
00624
00625 typedef struct
00626 {
00627 UInt8 version;
00628 UInt8 vsData[27];
00629 } tmdlHdmiTxVsPktData_t;
00630
00631
00632
00633
00634 typedef struct
00635 {
00636 UInt8 format;
00637 UInt8 channels;
00638 UInt8 supportedFreqs;
00639 UInt8 supportedRes;
00640 UInt8 maxBitrate;
00641 } tmdlHdmiTxEdidAudioDesc_t;
00642
00643
00644
00645
00646 typedef struct
00647 {
00648 UInt16 pixelClock;
00649 UInt16 hActivePixels;
00650 UInt16 hBlankPixels;
00651 UInt16 vActiveLines;
00652 UInt16 vBlankLines;
00653 UInt16 hSyncOffset;
00654 UInt16 hSyncWidth;
00655 UInt16 vSyncOffset;
00656 UInt16 vSyncWidth;
00657 UInt16 hImageSize;
00658 UInt16 vImageSize;
00659 UInt16 hBorderPixels;
00660 UInt16 vBorderPixels;
00661 UInt8 flags;
00662 } tmdlHdmiTxEdidVideoTimings_t;
00663
00664
00665 #define EDID_MONITOR_DESCRIPTOR_SIZE 13
00666
00667
00668
00669
00670 typedef struct
00671 {
00672 Bool descRecord;
00673 UInt8 monitorName[EDID_MONITOR_DESCRIPTOR_SIZE];
00674 } tmdlHdmiTxEdidFirstMD_t;
00675
00676
00677
00678
00679 typedef struct
00680 {
00681 Bool descRecord;
00682 UInt8 minVerticalRate;
00683 UInt8 maxVerticalRate;
00684 UInt8 minHorizontalRate;
00685 UInt8 maxHorizontalRate;
00686 UInt8 maxSupportedPixelClk;
00687 } tmdlHdmiTxEdidSecondMD_t;
00688
00689
00690
00691
00692 typedef struct
00693 {
00694 Bool descRecord;
00695 UInt8 otherDescriptor[EDID_MONITOR_DESCRIPTOR_SIZE];
00696 } tmdlHdmiTxEdidOtherMD_t;
00697
00698
00699
00700
00701 typedef enum
00702 {
00703 TMDL_HDMITX_PATTERN_OFF = 0,
00704 TMDL_HDMITX_PATTERN_CBAR4 = 1,
00705 TMDL_HDMITX_PATTERN_CBAR8 = 2,
00706 TMDL_HDMITX_PATTERN_BLUE = 3,
00707 TMDL_HDMITX_PATTERN_BLACK = 4,
00708 TMDL_HDMITX_PATTERN_INVALID = 5
00709 } tmdlHdmiTxTestPattern_t;
00710
00711
00712
00713
00714 typedef enum
00715 {
00716 TMDL_HDMITX_HDCP_CHECK_NOT_STARTED = 0,
00717 TMDL_HDMITX_HDCP_CHECK_IN_PROGRESS = 1,
00718 TMDL_HDMITX_HDCP_CHECK_PASS = 2,
00719 TMDL_HDMITX_HDCP_CHECK_FAIL_FIRST = 3,
00720 TMDL_HDMITX_HDCP_CHECK_FAIL_DRIVER_STATE = 3,
00721 TMDL_HDMITX_HDCP_CHECK_FAIL_DEVICE_T0 = 4,
00722 TMDL_HDMITX_HDCP_CHECK_FAIL_DEVICE_RI = 5,
00723 TMDL_HDMITX_HDCP_CHECK_FAIL_DEVICE_FSM = 6,
00724 TMDL_HDMITX_HDCP_CHECK_NUM = 7
00725 }tmdlHdmiTxHdcpCheck_t;
00726
00727
00728
00729
00730 typedef enum
00731 {
00732 TMDL_HDMITX_HDCP_OPTION_FORCE_PJ_IGNORED = 0x01,
00733 TMDL_HDMITX_HDCP_OPTION_FORCE_SLOW_DDC = 0x02,
00734 TMDL_HDMITX_HDCP_OPTION_FORCE_NO_1_1 = 0x04,
00735 TMDL_HDMITX_HDCP_OPTION_FORCE_REPEATER = 0x08,
00736 TMDL_HDMITX_HDCP_OPTION_FORCE_NO_REPEATER = 0x10,
00737 TMDL_HDMITX_HDCP_OPTION_FORCE_V_EQU_VBAR = 0x20,
00738 TMDL_HDMITX_HDCP_OPTION_FORCE_VSLOW_DDC = 0x40,
00739 TMDL_HDMITX_HDCP_OPTION_DEFAULT = 0x00,
00740 TMDL_HDMITX_HDCP_OPTION_MASK = 0x7F,
00741 TMDL_HDMITX_HDCP_OPTION_MASK_BAD = 0x80
00742 }tmdlHdmiTxHdcpOptions_t;
00743
00744 #ifndef NO_HDCP
00745
00746 typedef enum
00747 {
00748 TMDL_HDMITX_KSV_LIST_MAX_DEVICES = 128,
00749 TMDL_HDMITX_KSV_BYTES_PER_DEVICE = 5
00750 } tmdlHdmiTxHdcpHandleSHA_1;
00751
00752
00753
00754
00755 typedef struct
00756 {
00757 tmdlHdmiTxHdcpCheck_t hdcpCheckState;
00758 UInt8 hdcpErrorState;
00759 Bool bKsvSecure;
00760 UInt8 hdcpBksv[TMDL_HDMITX_KSV_BYTES_PER_DEVICE];
00761 UInt8 hdcpKsvList[TMDL_HDMITX_KSV_BYTES_PER_DEVICE *
00762 TMDL_HDMITX_KSV_LIST_MAX_DEVICES];
00763
00764 UInt8 hdcpKsvDevices;
00765
00766 UInt8 hdcpDeviceDepth;
00767 Bool hdcpMaxCascExceeded;
00768 Bool hdcpMaxDevsExceeded;
00769 } tmdlHdmiTxHdcpInfo_t;
00770 #endif
00771
00772
00773
00774
00775 typedef enum
00776 {
00777 TMDL_HDMITX_HDCP_OK = 0,
00778 TMDL_HDMITX_HDCP_BKSV_RCV_FAIL,
00779 TMDL_HDMITX_HDCP_BKSV_CHECK_FAIL,
00780 TMDL_HDMITX_HDCP_BCAPS_RCV_FAIL,
00781 TMDL_HDMITX_HDCP_AKSV_SEND_FAIL,
00782 TMDL_HDMITX_HDCP_R0_RCV_FAIL,
00783 TMDL_HDMITX_HDCP_R0_CHECK_FAIL,
00784 TMDL_HDMITX_HDCP_BKSV_NOT_SECURE,
00785 TMDL_HDMITX_HDCP_RI_RCV_FAIL,
00786 TMDL_HDMITX_HDCP_RPT_RI_RCV_FAIL,
00787 TMDL_HDMITX_HDCP_RI_CHECK_FAIL,
00788 TMDL_HDMITX_HDCP_RPT_RI_CHECK_FAIL,
00789 TMDL_HDMITX_HDCP_RPT_BCAPS_RCV_FAIL,
00790 TMDL_HDMITX_HDCP_RPT_BCAPS_READY_TIMEOUT,
00791 TMDL_HDMITX_HDCP_RPT_V_RCV_FAIL,
00792 TMDL_HDMITX_HDCP_RPT_BSTATUS_RCV_FAIL,
00793 TMDL_HDMITX_HDCP_RPT_KSVLIST_RCV_FAIL,
00794 TMDL_HDMITX_HDCP_RPT_KSVLIST_NOT_SECURE,
00795 TMDL_HDMITX_HDCP_UNKNOWN_STATUS
00796
00797 }tmdlHdmiTxHdcpStatus_t;
00798
00799
00800
00801
00802
00803 typedef struct
00804 {
00805 Bool latency_available;
00806 Bool Ilatency_available;
00807 UInt8 Edidvideo_latency;
00808 UInt8 Edidaudio_latency;
00809 UInt8 EdidIvideo_latency;
00810 UInt8 EdidIaudio_latency;
00811
00812 } tmdlHdmiTxEdidLatency_t;
00813
00814
00815
00816
00817
00818 typedef enum
00819 {
00820 TMDL_HDMITX_HOTPLUG_INACTIVE = 0,
00821 TMDL_HDMITX_HOTPLUG_ACTIVE = 1,
00822 TMDL_HDMITX_HOTPLUG_INVALID = 2
00823 } tmdlHdmiTxHotPlug_t;
00824
00825
00826
00827
00828
00829 typedef enum
00830 {
00831 TMDL_HDMITX_RX_SENSE_INACTIVE = 0,
00832 TMDL_HDMITX_RX_SENSE_ACTIVE = 1,
00833 TMDL_HDMITX_RX_SENSE_INVALID = 2
00834 } tmdlHdmiTxRxSense_t;
00835
00836
00837 #ifdef __cplusplus
00838 }
00839 #endif
00840
00841 #endif
00842
00843
00844
00845
00846