/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2019-2020. All rights reserved. * Description: sif IAPI function define * Author: Hisilicon * Create: 2019-04-16 */ #ifndef __UAPI_SIF_H__ #define __UAPI_SIF_H__ #include "td_type.h" #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif /* __cplusplus */ #define UAPI_SIF_STANDARD_MAX UAPI_SIF_STANDARD_UNKNOW /* Audio Standard Type of An SIF */ /* CNcomment:音频第二伴音中频制式 */ typedef enum { /* Audio standard BG */ /* CNcomment:音频伴音制式BG */ UAPI_SIF_STANDARD_BG = 0x00, /* Audio standard BG A2 */ /* CNcomment:音频伴音制式BG A2 */ UAPI_SIF_STANDARD_BG_A2, /* Audio standard BG NICAM */ /* CNcomment:音频伴音制式BG NICAM */ UAPI_SIF_STANDARD_BG_NICAM, /* Audio standard I */ /* CNcomment:音频伴音制式I */ UAPI_SIF_STANDARD_I, /* Audio standard DK */ /* CNcomment:音频伴音制式DK */ UAPI_SIF_STANDARD_DK, /* Audio standard DK1 A2 */ /* CNcomment:音频伴音制式DK1 A2 */ UAPI_SIF_STANDARD_DK1_A2, /* Audio standard DK2 A2 */ /* CNcomment:音频伴音制式DK2 A2 */ UAPI_SIF_STANDARD_DK2_A2, /* Audio standard DK3 A2 */ /* CNcomment:音频伴音制式DK3 A2 */ UAPI_SIF_STANDARD_DK3_A2, /* Audio standard DK NICAM */ /* CNcomment:音频伴音制式DK NICAM */ UAPI_SIF_STANDARD_DK_NICAM, /* Audio standard L */ /* CNcomment:音频伴音制式L */ UAPI_SIF_STANDARD_L, /* Audio standard M */ /* CNcomment:音频伴音制式M */ UAPI_SIF_STANDARD_M, /* Audio standard M BTSC */ /* CNcomment:音频伴音制式M BTSC */ UAPI_SIF_STANDARD_M_BTSC, /* Audio standard M A2 */ /* CNcomment:音频伴音制式M A2 */ UAPI_SIF_STANDARD_M_A2, /* Audio standard M EIA J */ /* CNcomment:音频伴音制式M EIA J */ UAPI_SIF_STANDARD_M_EIA_J, UAPI_SIF_STANDARD_NOTSTANDARD, UAPI_SIF_STANDARD_UNKNOW } uapi_sif_standard_type; /* Audio mode type */ /* CNcomment:音频伴音模式 */ typedef enum { /* Audio Mode MONO */ /* CNcomment:音频伴音模式MONO */ UAPI_SIF_OUTMODE_MONO = 0x0, /* Audio Mode G Stereo */ /* CNcomment:音频伴音模式Stereo */ UAPI_SIF_OUTMODE_STEREO, /* Audio Mode Dual A */ /* CNcomment:音频伴音模式Dual A */ UAPI_SIF_OUTMODE_DUAL_A, /* Audio Mode Dual B */ /* CNcomment:音频伴音模式Dual B */ UAPI_SIF_OUTMODE_DUAL_B, /* Audio Mode Dual AB */ /* CNcomment:音频伴音模式Dual AB */ UAPI_SIF_OUTMODE_DUAL_AB, /* Audio Mode BTSC MONO */ /* CNcomment:音频伴音模式BTSC MONO */ UAPI_SIF_OUTMODE_BTSC_MONO, /* Audio Mode BTSC STEREO */ /* CNcomment:音频伴音模式BTSC STEREO */ UAPI_SIF_OUTMODE_BTSC_STEREO, /* Audio Mode BTSC SAP */ /* CNcomment:音频伴音模式BTSC SAP */ UAPI_SIF_OUTMODE_BTSC_SAP, /* Audio Mode NICAM Forced MONO */ /* CNcomment:音频伴音模式Forced Mono */ UAPI_SIF_OUTMODE_NICAM_FORCED_MONO, /* Audio Mode NICAM MONO */ /* CNcomment:音频伴音模式NICAM MONO */ UAPI_SIF_OUTMODE_NICAM_MONO, /* Audio Mode NICAM Stereo */ /* CNcomment:音频伴音模式NICAM Stereo */ UAPI_SIF_OUTMODE_NICAM_STEREO, /* Audio Mode NICAM DUAL A */ /* CNcomment:音频伴音模式NICAM DUAL A */ UAPI_SIF_OUTMODE_NICAM_DUAL_A, /* Audio Mode NICAM DUAL B */ /* CNcomment:音频伴音模式NICAM DUAL B */ UAPI_SIF_OUTMODE_NICAM_DUAL_B, /* Audio Mode NICAM DUAL AB */ /* CNcomment:音频伴音模式NICAM DUAL AB */ UAPI_SIF_OUTMODE_NICAM_DUAL_AB, UAPI_SIF_OUTMODE_MAX } uapi_sif_outmode; /* Audio Carrier Status of An Sif */ /* CNcomment:音频载波状态 */ typedef enum { /* Audio AAOS Status MONO */ /* CNcomment:音频载波状态MONO */ UAPI_SIF_AAOS_MODE_MONO = 0, /* Audio AAOS Status STEREO */ /* CNcomment:音频载波状态STEREO */ UAPI_SIF_AAOS_MODE_STEREO, /* Audio AAOS Status DUAL */ /* CNcomment:音频载波状态DUAL */ UAPI_SIF_AAOS_MODE_DUAL, /* Audio AAOS Status MONO_SAP */ /* CNcomment:音频载波状态MONO_SAP */ UAPI_SIF_AAOS_MODE_MONO_SAP, /* Audio AAOS Status STEREO_SAP */ /* CNcomment:音频载波状态STEREO_SAP */ UAPI_SIF_AAOS_MODE_STEREO_SAP, /* Audio AAOS Status NICAM_MONO */ /* CNcomment:音频载波状态NICAM_MONO */ UAPI_SIF_AAOS_MODE_NICAM_MONO, /* Audio AAOS Status NICAM_STEREO */ /* CNcomment:音频载波状态NICAM_STEREO */ UAPI_SIF_AAOS_MODE_NICAM_STEREO, /* Audio AAOS Status NICAM_DUAL */ /* CNcomment:音频载波状态NICAM_DUAL */ UAPI_SIF_AAOS_MODE_NICAM_DUAL, /* Audio AAOS Status NICAM_FM_MOMO */ /* CNcomment:音频载波状态NICAM_FM_MOMO */ UAPI_SIF_AAOS_MODE_NICAM_FM_MOMO, UAPI_SIF_AAOS_MODE_MAX } uapi_sif_aaos_mode; /* Atuo Standard Detect Ctl of an SIF */ /* CNcomment:自动制式检测控制参数 */ typedef enum { /* Audio Detect Ctl BTSC */ /* CNcomment:音频制式检测控制BTSC,America M */ UAPI_SIF_SYSCTL_BTSC = 0, /* Audio Detect Ctl EIA J */ /* CNcomment:音频制式检测控制EIAJ,Japan M */ UAPI_SIF_SYSCTL_EIAJ, /* Audio Detect Ctl Korea */ /* CNcomment:音频制式检测控制FM Korea,Korea M */ UAPI_SIF_SYSCTL_M_KOREA, /* Audio Detect Ctl PAL */ /* CNcomment:音频制式检测控制PAL */ UAPI_SIF_SYSCTL_PAL_SUM, /* Audio Detect Ctl L/L' */ /* CNcomment:音频制式检测控制L/L' */ UAPI_SIF_SYSCTL_SECAM_L, /* Audio Detect Ctl FM-Stereo Radio US */ /* CNcomment:音频制式检测控制FM-Stereo Radio US */ UAPI_SIF_SYSCTL_FM_US, /* Audio Detect Ctl FM-Stereo Radio Europe */ /* CNcomment:音频制式检测控制FM-Stereo Radio Europe' */ UAPI_SIF_SYSCTL_FM_EUROPE, UAPI_SIF_SYSCTL_MAX } uapi_sif_sysctl; /* Freqency error threshold of an SIF */ /* CNcomment:频率偏移阈值 */ typedef enum { /* Freqency error threshold 10K */ /* CNcomment:频率偏移阈值 10K */ UAPI_SIF_FREQ_ERR_THRESHOLD_10K = 0, /* Freqency error threshold 20K */ /* CNcomment:频率偏移阈值 20K */ UAPI_SIF_FREQ_ERR_THRESHOLD_20K, /* Freqency error threshold 27K */ /* CNcomment:频率偏移阈值 27K */ UAPI_SIF_FREQ_ERR_THRESHOLD_27K, /* Freqency error threshold 30K */ /* CNcomment:频率偏移阈值 30K */ UAPI_SIF_FREQ_ERR_THRESHOLD_30K, /* Freqency error threshold 40K */ /* CNcomment:频率偏移阈值 40K */ UAPI_SIF_FREQ_ERR_THRESHOLD_40K, /* Freqency error threshold 50K */ /* CNcomment:频率偏移阈值 50K */ UAPI_SIF_FREQ_ERR_THRESHOLD_50K, UAPI_SIF_FREQ_ERR_THRESHOLD_MAX } uapi_sif_freq_err_threshold; /* Over Devaiton Parameter of an SIF */ /* CNcomment:过调制 */ typedef enum { /* Over Devaiton 50K */ /* CNcomment:过调制 50K */ UAPI_SIF_OVER_DEVIATION_50K = 0x0, /* Over Devaiton 100K */ /* CNcomment:过调制 100K */ UAPI_SIF_OVER_DEVIATION_100K, /* Over Devaiton 200K */ /* CNcomment:过调制 200K */ UAPI_SIF_OVER_DEVIATION_200K, /* Over Devaiton 384K */ /* CNcomment:过调制 384K */ UAPI_SIF_OVER_DEVIATION_384K, /* Over Devaiton 540K */ /* CNcomment:过调制 540K */ UAPI_SIF_OVER_DEVIATION_540K, UAPI_SIF_OVER_DEVIATION_MAX } uapi_sif_over_deviation; /* Attributes of an SIF */ /* CNcomment:SIF模块属性 */ typedef struct { /* Auto Mute */ /* CNcomment:自动静音 */ td_bool auto_mute; /* Prescale level */ /* CNcomment:前置增益水平 */ td_u32 prescale_level; /* SIF output mode */ /* CNcomment:SIF信号输出模式 */ uapi_sif_outmode out_mode; /* Freqency error Threshold */ /* CNcomment:频率偏移阈值 */ uapi_sif_freq_err_threshold freq_threshold; /* Carrier Magnitude Threshold */ /* CNcomment:载波幅度阈值 */ td_u32 carri_mgntude_threshold; /* FM Quality Threshold */ /* CNcomment:FM质量阈值 */ td_u32 carri_fm_qual_threshold; /* AM Noise Threshold */ /* CNcomment:AM噪声阈值 */ td_u32 carri_am_noise_threshold; /* NICAM Noise Threshold */ /* CNcomment:NICAM噪声阈值 */ td_u32 carri_nicam_noise_threshold; } uapi_sif_attr; /* Attributes of Carrier */ /* CNcomment:载波属性 */ typedef struct { uapi_sif_standard_type standard_type; /* Standard Type */ /* CNcomment:载波伴音制式 */ td_u32 carrier_freq; /* Carrier Frequency */ /* CNcomment:载波频率 */ } uapi_sif_carrier_attr; /* ID of an SIF device */ /* CNcomment:SIF序号 */ typedef enum { UAPI_SIF_ID_0 = 0, /* ID 0f SIF 0 */ /* CNcomment:SIF0 */ UAPI_SIF_ID_MAX } uapi_sif_id; /* Priority list of standard */ /* CNcomment:制式的优先级列表 */ typedef struct { td_u32 list_len; uapi_sif_standard_type priority_list[UAPI_SIF_STANDARD_MAX]; } uapi_sif_standard_priority_list; /* \brief Initializes an SIF device. CNcomment:初始化SIF模块 CNend \attention \n Before calling the SIF module, you must call this application programming interface (API). CNcomment:调用SIF模块要求首先调用该接口 CNend \param N/A \retval ::TD_SUCCESS Success CNcomment:成功 CNend \see \n N/A */ td_s32 uapi_sif_init(td_void); /* \brief Deinitializes an SIF device. CNcomment:去初始化设备 CNend \attention \n N/A \param N/A \retval ::TD_SUCCESS Success CNcomment:成功 CNend \see \n N/A */ td_s32 uapi_sif_de_init(td_void); /* \brief Open an SIF device. CNcomment:打开SIF设备 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_open(uapi_sif_id sif); /* \brief Close an SIF device. CNcomment:关闭SIF设备 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_close(uapi_sif_id sif); /* \brief Set The Attribute SIF device. CNcomment:设置SIF设备属性 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[in] sif_attr Attribute of an SIF device CNcomment:SIF设备属性 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_set_attr(uapi_sif_id sif, const uapi_sif_attr *sif_attr); /* \brief Get The Default Attribute SIF device. CNcomment:获取SIF设备默认属性 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[out] sif_attr Default Attribute of an SIF device CNcomment:SIF设备属性 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_get_default_attr(uapi_sif_id sif, uapi_sif_attr *sif_attr); /* \brief Get The Attribute SIF device. CNcomment:获取SIF设备属性 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[out] sif_attr Attribute of an SIF device CNcomment:SIF设备属性 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_get_attr(uapi_sif_id sif, uapi_sif_attr *sif_attr); /* \brief Start The SIF device. CNcomment:启动SIF设备 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_start(uapi_sif_id sif); /* \brief Stop The SIF device. CNcomment:停止SIF设备 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_stop(uapi_sif_id sif); /* \brief Set The Audio Standard. CNcomment:设置音频伴音制式 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[in] sif_standard Audio Standard of an SIF device CNcomment:SIF音频伴音制式 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_set_standard(uapi_sif_id sif, uapi_sif_standard_type sif_standard); /* \brief Start The Auto Standard Detect. CNcomment:启动自动制式检测 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[in] sif_det_ctl Auto Standard Detect of an SIF device CNcomment:SIF自动制式检测控制 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_start_auto_standard_detection(uapi_sif_id sif, uapi_sif_sysctl sif_det_ctl); /* \brief Get The Audio Standard Detect Complete Flag. CNcomment:获取自动制式检测完成标志 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[out] asd_complete Audio Standard Detect Complete Flag of an SIF device CNcomment:SIF模块制式检测完成标志 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_get_detect_complete(uapi_sif_id sif, td_bool *asd_complete); /* \brief Get The Audio Standard . CNcomment:获取伴音制式 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[out] sif_standard Audio Standard of an SIF device CNcomment:SIF模块音频伴音制式 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_get_user_setting_standard(uapi_sif_id sif, uapi_sif_standard_type *sif_standard); /* \brief Get The Result of Auto Standard Detect. CNcomment:获取自动制式检测结果 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[out] sif_auto_standard The Result of Auto Standard Detect of an SIF device CNcomment:SIF模块自动伴音制式检测结果 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_get_asd_result(uapi_sif_id sif, uapi_sif_standard_type *sif_auto_standard); /* \brief Set Audio Mode of SIF. CNcomment:设置音频伴音模式 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[in] sif_outmode Aduio Standard of an SIF device CNcomment:SIF模块伴音模式 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_set_sound_mode(uapi_sif_id sif, uapi_sif_outmode sif_outmode); /* \brief Get Audio Mode of SIF. CNcomment:获取音频伴音模式 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[out] sif_outmode Aduio Mode of an SIF device CNcomment:SIF模块伴音模式 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_get_sound_mode(uapi_sif_id sif, uapi_sif_aaos_mode *sif_outmode); /* \brief Set Over Demulation Parameter of SIF. CNcomment:设置音频过调制参数 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[in] over_deviation Over Devation Parameter of an SIF device CNcomment:SIF模块过调制参数 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_set_over_deviation(uapi_sif_id sif, uapi_sif_over_deviation over_deviation); /* \brief Get Over Demulation Parameter of SIF. CNcomment:获取音频过调制参数 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[in] over_deviation Over Devation Parameter of an SIF device CNcomment:SIF模块过调制参数 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_get_over_deviation(uapi_sif_id sif, uapi_sif_over_deviation *over_deviation); /* \brief Set Carrier Shift Parameter of SIF. CNcomment:设置音频频移 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[in] carri_shift Carrier Shift Parameter of an SIF device CNcomment:SIF模块频移参数 CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_set_carri_shift(uapi_sif_id sif, td_u32 carri_shift); /* \brief Get The Audio carrier attribution. CNcomment:获取伴音载波属性 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[in] carrier_attr Attribution of Audio Carrier CNcomment:伴音载波属性CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_get_standard_try(uapi_sif_id sif, uapi_sif_carrier_attr *carrier_attr); /* \brief Set the standard list for try interface. CNcomment:设置制式识别优先级列表给Try接口 CNend \attention \n N/A \param[in] sif ID of an SIF device CNcomment:SIF设备号 CNend \param[in] priority_list STANDARD PRIORITY LIST CNcomment:制式优先级列表CNend \retval ::TD_SUCCESS Success CNcomment:成功 CNend \retval ::TD_FAILURE FAILURE CNcomment:失败 CNend \see \n N/A */ td_s32 uapi_sif_set_standard_try_priority(uapi_sif_id sif, const uapi_sif_standard_priority_list *priority_list); #ifdef __cplusplus #if __cplusplus } #endif #endif /* __cplusplus */ #endif /* __UAPI_SIF_H__ */