📄 tmbslhdmitx.h
字号:
};/** \brief Set audio input configuration in HDMI mode only \param[in] txUnit Transmitter unit number \param[in] aFmt Audio input format \param[in] chanI2s I2S channel allocation \param[in] chanDsd DSD channel allocation \param[in] clkPolDsd DSD clock polarity \param[in] swapDsd DSD data swap \param[in] layout Sample layout \param[in] latency_rd Audio FIFO read latency \return The call result: - TM_OK: the call was successful - Else a problem has been detected: - TMBSL_ERR_HDMI_BAD_UNIT_NUMBER: bad transmitter unit number - TMBSL_ERR_HDMI_BAD_PARAMETER: a parameter was out of range - TMBSL_ERR_HDMI_NOT_INITIALIZED: transmitter not initialized - TMBSL_ERR_HDMI_I2C_WRITE: failed when writing to the I2C bus - TMBSL_ERR_HDMI_OPERATION_NOT_PERMITTED: in DVI mode */tmErrorCode_ttmbslHdmiTxAudioInSetConfig( tmUnitSelect_t txUnit, tmbslHdmiTxaFmt_t aFmt, UInt8 chanI2s, UInt8 chanDsd, tmbslHdmiTxClkPolDsd_t clkPolDsd, tmbslHdmiTxSwapDsd_t swapDsd, UInt8 layout, UInt16 latency_rd);/*============================================================================*//** * tmbslHdmiTxAudioInSetCts() parameter types *//** Clock Time Stamp reference source */typedef enum{ HDMITX_CTSREF_ACLK = 0, /**< Clock input pin for I2S */ HDMITX_CTSREF_MCLK = 1, /**< Clock input pin for EXTREF */ HDMITX_CTSREF_FS64SPDIF = 2, /**< 64xsample rate, for SPDIF */ HDMITX_CTSREF_INVALID = 3 /**< Invalid value */} tmbslHdmiTxctsRef_t;/** Audio sample rate kHz indexes */typedef enum{ HDMITX_AFS_32k = 0, /**< 32kHz */ HDMITX_AFS_44_1k = 1, /**< 44.1kHz */ HDMITX_AFS_48K = 2, /**< 48kHz */ HDMITX_AFS_88_2K = 3, /**< 88.2kHz */ HDMITX_AFS_96K = 4, /**< 96kHz */ HDMITX_AFS_176_4K = 5, /**< 176.4kHz */ HDMITX_AFS_192K = 6, /**< 192kHz */ HDMITX_AFS_NOT_INDICATED = 7, /**< Not Indicated (Channel Status) */ HDMITX_AFS_INVALID = 7, /**< Invalid */ HDMITX_AFS_NUM = 7 /**< # rates */} tmbslHdmiTxafs_t;/** Vertical output frequencies */typedef enum{ HDMITX_VFREQ_24Hz = 0, /**< 24Hz */ HDMITX_VFREQ_25Hz = 1, /**< 25Hz */ HDMITX_VFREQ_30Hz = 2, /**< 30Hz */ HDMITX_VFREQ_50Hz = 3, /**< 50Hz 0 */ HDMITX_VFREQ_59Hz = 4, /**< 59.94Hz 1 */ HDMITX_VFREQ_60Hz = 5, /**< 60Hz 2 */#ifndef FORMAT_PC HDMITX_VFREQ_INVALID = 6, /**< Invalid */ HDMITX_VFREQ_NUM = 6 /**< No. of values */#else /* FORMAT_PC */ HDMITX_VFREQ_70Hz = 6, /**< 70Hz */ HDMITX_VFREQ_72Hz = 7, /**< 72Hz */ HDMITX_VFREQ_75Hz = 8, /**< 75Hz */ HDMITX_VFREQ_85Hz = 9, /**< 85Hz */ HDMITX_VFREQ_87Hz = 10, /**< 87Hz */ HDMITX_VFREQ_INVALID = 11, /**< Invalid */ HDMITX_VFREQ_NUM = 11 /**< No. of values */#endif /* FORMAT_PC */} tmbslHdmiTxVfreq_t;/** Clock Time Stamp predivider - scales N */typedef enum{ HDMITX_CTSK1 = 0, /**< k=1 */ HDMITX_CTSK2 = 1, /**< k=2 */ HDMITX_CTSK3 = 2, /**< k=3 */ HDMITX_CTSK4 = 3, /**< k=4 */ HDMITX_CTSK8 = 4, /**< k=8 */ HDMITX_CTSK_USE_CTSX = 5, /**< Calculate from ctsX factor */ HDMITX_CTSK_INVALID = 6 /**< Invalid */} tmbslHdmiTxctsK_t;/** Clock Time Stamp postdivider measured time stamp */typedef enum{ HDMITX_CTSMTS = 0, /**< =mts */ HDMITX_CTSMTS2 = 1, /**< =mts%2 */ HDMITX_CTSMTS4 = 2, /**< =mts%4 */ HDMITX_CTSMTS8 = 3, /**< =mts%8 */ HDMITX_CTSMTS_USE_CTSX = 4, /**< Calculate from ctsX factor */ HDMITX_CTSMTS_INVALID = 5 /**< Invalid */} tmbslHdmiTxctsM_t;/** Cycle Time Stamp values */enum _tmbslHdmiTxCts{ HDMITX_CTS_AUTO = 0, HDMITX_CTS_MIN = 0x000001};/** Cycle Time Stamp X factors */ enum _tmbslHdmiTxCtsX{ HDMITX_CTSX_16 = 0, HDMITX_CTSX_32 = 1, HDMITX_CTSX_48 = 2, HDMITX_CTSX_64 = 3, HDMITX_CTSX_128 = 4, HDMITX_CTSX_NUM = 5, HDMITX_CTSX_UNUSED = 5, /**< CTX value unused when K and Mts used */ HDMITX_CTSX_INVALID = 6};/** \brief Set the Clock Time Stamp generator in HDMI mode only \param[in] txUnit Transmitter unit number \param[in] ctsRef Clock Time Stamp reference source \param[in] afs Audio input sample frequency \param[in] voutFmt Video output format \param[in] voutFreq Vertical output frequency \param[in] uCts Manual Cycle Time Stamp \param[in] uCtsX Clock Time Stamp factor x \param[in] ctsK Clock Time Stamp predivider k \param[in] ctsM Clock Time Stamp postdivider m \return The call result: - TM_OK: the call was successful - Else a problem has been detected: - TMBSL_ERR_HDMI_BAD_UNIT_NUMBER: bad transmitter unit number - TMBSL_ERR_HDMI_BAD_PARAMETER: a parameter was out of range - TMBSL_ERR_HDMI_NOT_INITIALIZED: transmitter not initialized - TMBSL_ERR_HDMI_I2C_WRITE: failed when writing to the I2C bus - TMBSL_ERR_HDMI_OPERATION_NOT_PERMITTED: in DVI mode */tmErrorCode_ttmbslHdmiTxAudioInSetCts( tmUnitSelect_t txUnit, tmbslHdmiTxctsRef_t ctsRef, tmbslHdmiTxafs_t afs, tmbslHdmiTxVidFmt_t voutFmt, tmbslHdmiTxVfreq_t voutFreq, UInt32 uCts, UInt16 uCtsX, tmbslHdmiTxctsK_t ctsK, tmbslHdmiTxctsM_t ctsM);/*============================================================================*//** * tmbslHdmiTxAudioOutSetChanStatus() parameter types *//** BYTE 0: Channel Status Format information */typedef enum{ HDMITX_CSFI_PCM_2CHAN_NO_PRE = 0, /**< PCM 2 channels without pre-emphasis */ HDMITX_CSFI_PCM_2CHAN_PRE = 1, /**< PCM 2 channels with 50us/15us pre-emphasis */ HDMITX_CSFI_PCM_2CHAN_PRE_RSVD1 = 2, /**< PCM Reserved for 2 channels with pre-emphasis */ HDMITX_CSFI_PCM_2CHAN_PRE_RSVD2 = 3, /**< PCM Reserved for 2 channels with pre-emphasis */ HDMITX_CSFI_NOTPCM_DEFAULT = 4, /**< Non-PCM Default state */ HDMITX_CSFI_INVALID = 5 /**< Invalid value */} tmbslHdmiTxCSformatInfo_t;/** BYTE 0: Channel Status Copyright assertion */typedef enum{ HDMITX_CSCOPYRIGHT_PROTECTED = 0, /**< Copyright protected */ HDMITX_CSCOPYRIGHT_UNPROTECTED = 1, /**< Not copyright protected */ HDMITX_CSCOPYRIGHT_INVALID = 2 /**< Invalid value */} tmbslHdmiTxCScopyright_t;/** BYTE 3: Channel Status Clock Accuracy */typedef enum{ HDMITX_CSCLK_LEVEL_II = 0, /**< Level II */ HDMITX_CSCLK_LEVEL_I = 1, /**< Level I */ HDMITX_CSCLK_LEVEL_III = 2, /**< Level III */ HDMITX_CSCLK_NOT_MATCHED = 3, /**< Not matched to sample freq. */ HDMITX_CSCLK_INVALID = 4 /**< Invalid */} tmbslHdmiTxCSclkAcc_t;/** BYTE 4: Channel Status Maximum sample word length */typedef enum{ HDMITX_CSMAX_LENGTH_20 = 0, /**< Max word length is 20 bits */ HDMITX_CSMAX_LENGTH_24 = 1, /**< Max word length is 24 bits */ HDMITX_CSMAX_INVALID = 2 /**< Invalid value */} tmbslHdmiTxCSmaxWordLength_t;/** BYTE 4: Channel Status Sample word length */typedef enum{ HDMITX_CSWORD_DEFAULT = 0, /**< Word length is not indicated */ HDMITX_CSWORD_20_OF_24 = 1, /**< Sample length is 20 bits out of max 24 possible */ HDMITX_CSWORD_16_OF_20 = 1, /**< Sample length is 16 bits out of max 20 possible */ HDMITX_CSWORD_22_OF_24 = 2, /**< Sample length is 22 bits out of max 24 possible */ HDMITX_CSWORD_18_OF_20 = 2, /**< Sample length is 18 bits out of max 20 possible */ HDMITX_CSWORD_RESVD = 3, /**< Reserved - shall not be used */ HDMITX_CSWORD_23_OF_24 = 4, /**< Sample length is 23 bits out of max 24 possible */ HDMITX_CSWORD_19_OF_20 = 4, /**< Sample length is 19 bits out of max 20 possible */ HDMITX_CSWORD_24_OF_24 = 5, /**< Sample length is 24 bits out of max 24 possible */ HDMITX_CSWORD_20_OF_20 = 5, /**< Sample length is 20 bits out of max 20 possible */ HDMITX_CSWORD_21_OF_24 = 6, /**< Sample length is 21 bits out of max 24 possible */ HDMITX_CSWORD_17_OF_20 = 6, /**< Sample length is 17 bits out of max 20 possible */ HDMITX_CSWORD_INVALID = 7 /**< Invalid */} tmbslHdmiTxCSwordLength_t;/** BYTE 4: Channel Status Original sample frequency */typedef enum{ HDMITX_CSOFREQ_NOT_INDICATED = 0, /**< Not Indicated */ HDMITX_CSOFREQ_192k = 1, /**< 192kHz */ HDMITX_CSOFREQ_12k = 2, /**< 12kHz */ HDMITX_CSOFREQ_176_4k = 3, /**< 176.4kHz */ HDMITX_CSOFREQ_RSVD1 = 4, /**< Reserved */ HDMITX_CSOFREQ_96k = 5, /**< 96kHz */ HDMITX_CSOFREQ_8k = 6, /**< 8kHz */ HDMITX_CSOFREQ_88_2k = 7, /**< 88.2kHz */ HDMITX_CSOFREQ_16k = 8, /**< 16kHz */ HDMITX_CSOFREQ_24k = 9, /**< 24kHz */ HDMITX_CSOFREQ_11_025k = 10, /**< 11.025kHz */ HDMITX_CSOFREQ_22_05k = 11, /**< 22.05kHz */ HDMITX_CSOFREQ_32k = 12, /**< 32kHz */ HDMITX_CSOFREQ_48k = 13, /**< 48kHz */ HDMITX_CSOFREQ_RSVD2 = 14, /**< Reserved */ HDMITX_CSOFREQ_44_1k = 15, /**< 44.1kHz */ HDMITX_CSAFS_INVALID = 16 /**< Invalid value */} tmbslHdmiTxCSorigAfs_t;/** \brief Set the Channel Status Bytes 0,1,3 & 4 \param[in] txUnit Transmitter unit number \param[in] copyright Byte 0 Copyright bit (bit2) \param[in] formatInfo Byte 0 Audio sample format (bit1) and additional info (bit345) \param[in] categoryCode Byte 1 Category code (bits8-15) \param[in] sampleFreq Byte 3 Sample Frequency (bits24-27) \param[in] clockAccuracy Byte 3 Clock Accuracy (bits38-31) \param[in] maxWordLength Byte 4 Maximum word length (bit32) \param[in] wordLength Byte 4 Word length (bits33-35) \param[in] origSampleFreq Byte 4 Original Sample Frequency (bits36-39) \return The call result: - TM_OK: the call was successful - Else a problem has been detected: - TMBSL_ERR_HDMI_BAD_UNIT_NUMBER: bad transmitter unit number - TMBSL_ERR_HDMI_BAD_PARAMETER: a parameter was out of range - TMBSL_ERR_HDMI_NOT_INITIALIZED: transmitter not initialized - TMBSL_ERR_HDMI_I2C_WRITE: failed when writing to the I2C bus - TMBSL_ERR_HDMI_OPERATION_NOT_PERMITTED: in DVI mode \note The consumer use bit (bit0) and Mode bits (bits6-7) are forced to zero. Use tmbslHdmiTxAudioOutSetChanStatusMapping to set CS Byte 2. */tmErrorCode_ttmbslHdmiTxAudioOutSetChanStatus( tmUnitSelect_t txUnit, tmbslHdmiTxCSformatInfo_t formatInfo, tmbslHdmiTxCScopyright_t copyright, UInt8 categoryCode, tmbslHdmiTxafs_t sampleFreq, tmbslHdmiTxCSclkAcc_t clockAccuracy, tmbslHdmiTxCSmaxWordLength_t maxWordLength, tmbslHdmiTxCSwordLength_t wordLength, tmbslHdmiTxCSorigAfs_t origSampleFreq);/*============================================================================*//** * tmbslHdmiTxAudioOutSetChanStatusMapping() parameter types *//** Channel Status source/channel number limits */enum _tmbslHdmiTxChanStatusChanLimits{ HDMITX_CS_CHANNELS_MAX = 0x0F, HDMITX_CS_SOURCES_MAX = 0x0F};/** \brief Set the Channel Status Byte2 for Audio Port 0 \param[in] txUnit Transmitter unit number \param[in] sourceLeft L Source Number: 0 don't take into account, 1-15 \param[in] channelLeft L Channel Number: 0 don't take into account, 1-15 \param[in] sourceRight R Source Number: 0 don't take into account, 1-15 \param[in] channelRight R Channel Number: 0 don't take into account, 1-15 \return The call result:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -