/*-------------------------------------------------------------------------------------------------------------------- (C) Copyright 2018 ASR Ltd. All Rights Reserved -------------------------------------------------------------------------------------------------------------------*/ /****************************************************************************** * MODULE IMPLEMENTATION FILE ******************************************************************************* * Title: Header for Audio HAL * * Filename: AudioHAL.h * * Authors: Jackie Fan * * Description: Header file for Audio HAL. * * Last Updated: * * Notes: ******************************************************************************/ #ifndef _AUDIOHAL_H_ #define _AUDIOHAL_H_ #ifdef __cplusplus extern "C"{ #endif #include "gbl_types.h" #include "audio_def.h" /****************************************************************** CP audio local enumerations *******************************************************************/ //ICAT EXPORTED ENUM typedef enum{ HEAD_PHONE_INIT = 0, HEAD_PHONE_OUT, // 1 HEAD_TYPE_UNKNOWN, // 2 HEAD_PHONE_TYPE3, // 3 HEAD_PHONE_TYPE4, // 4 HEAD_PHONE_TYPE_C_REVERSE, // 5 HEAD_PHONE_TYPE_C, // 6 HEAD_PHONE_ERROR = 0xFFFF }HEADPHONE_STATE; //ICAT EXPORTED ENUM typedef enum{ HOOK_KEY_EVENT_NULL = 0, VOL_UP_PRESS, // 1 VOL_DOWN_PRESS, // 2 HOOK_KEY_PRESS, // 3 VOL_UP_RELEASE, // 4 VOL_DOWN_RELEASE, // 5 HOOK_KEY_RELEASE, // 6 HEADPHONE_EVENT_ERROR = 0xFFFF }HEADPHONE_EVENT; #define AUDIOHAL_STREAM_SUPPORT #if FEATURE_AUDIO_HAL_STREAM == 0 #undef AUDIOHAL_STREAM_SUPPORT #endif //AudioHAL task flags: #define AUDIO_RESAMPLE_FLAGS_PLAYBACK (0x01) #define AUDIO_RESAMPLE_FLAGS_RECORD (0x02) #define AUDIO_HEADSET_FLAG (0x04) #define AUDIO_CODEC_UPDATE_EVENT (0x08) #define AUDIO_VOICE_CALL_START (0x10) #define AUDIO_VOICE_CALL_END (0x20) #define AUDIO_MEDIA_STOP (0x40) #define AUDIO_MEDIA_START (0x80) #define AUDIO_GETVOICE_EVENT (0x100) #define AUDIO_PMIC_CHECK (0x200) #define AUDIO_POC_DATA_EVENT (0x400) #define AUDIO_DTMFDETECTION_EVENT (0x800) #define AUDIO_EXTRA_EVENT (0x1000) #define AUDIOHAL_FLAGS_MASK (AUDIO_RESAMPLE_FLAGS_PLAYBACK\ | AUDIO_RESAMPLE_FLAGS_RECORD\ | AUDIO_HEADSET_FLAG\ | AUDIO_CODEC_UPDATE_EVENT\ | AUDIO_VOICE_CALL_END\ | AUDIO_VOICE_CALL_START\ | AUDIO_MEDIA_START\ | AUDIO_MEDIA_STOP\ | AUDIO_PMIC_CHECK\ | AUDIO_POC_DATA_EVENT\ | AUDIO_DTMFDETECTION_EVENT\ | AUDIO_GETVOICE_EVENT\ | AUDIO_EXTRA_EVENT) /****************************************************************** Enumerations shared with upper layer *******************************************************************/ #define AUDIOHAL_VOLCNT 9 //0~8 //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_ERR_NO = 0, //No error AUDIOHAL_ERR_RESOURCE_RESET, AUDIOHAL_ERR_RESOURCE_BUSY, AUDIOHAL_ERR_RESOURCE_TIMEOUT, AUDIOHAL_ERR_RESOURCE_NOT_ENABLED, AUDIOHAL_ERR_BAD_PARAMETER, AUDIOHAL_ERR_UART_RX_OVERFLOW, AUDIOHAL_ERR_UART_TX_OVERFLOW, AUDIOHAL_ERR_UART_PARITY, AUDIOHAL_ERR_UART_FRAMING, AUDIOHAL_ERR_UART_BREAK_INT, AUDIOHAL_ERR_TIM_RTC_NOT_VALID, AUDIOHAL_ERR_TIM_RTC_ALARM_NOT_ENABLED, AUDIOHAL_ERR_TIM_RTC_ALARM_NOT_DISABLED, AUDIOHAL_ERR_COMMUNICATION_FAILED, /* Must be at the end */ AUDIOHAL_ERR_QTY, AUDIOHAL_ERR_ENUM_32_BIT = 0x7FFFFFFF //32bit enum compiling enforcement } AUDIOHAL_ERR_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_ITF_RECEIVER = 0, AUDIOHAL_ITF_EARPIECE, AUDIOHAL_ITF_HEADPHONE = AUDIOHAL_ITF_EARPIECE, AUDIOHAL_ITF_LOUDSPEAKER, AUDIOHAL_ITF_LOUDSPEAKER_AND_HEADPHONE, //AUDIOHAL_ITF_LOUDSPEAKER_AND_HEADPHONE = AUDIOHAL_ITF_LOUDSPEAKER_AND_EARPIECE, AUDIOHAL_ITF_BLUETOOTH, AUDIOHAL_ITF_FM, AUDIOHAL_ITF_FM2SPK, AUDIOHAL_ITF_TV, AUDIOHAL_ITF_BLUETOOTH_WB, AUDIOHAL_ITF_HS_LEFT, AUDIOHAL_ITF_HS_RIGHT, AUDIOHAL_ITF_VAD, AUDIOHAL_ITF_FM2RCV, AUDIOHAL_ITF_QTY, AUDIOHAL_ITF_NONE = 255, } AUDIOHAL_ITF_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_SPK_RECEIVER = 0, AUDIOHAL_SPK_EARPIECE, AUDIOHAL_SPK_LOUDSPEAKER, AUDIOHAL_SPK_LOUDSPEAKER_EARPIECE, //Output on both hands-free loud speaker and earpiece AUDIOHAL_SPK_QTY, AUDIOHAL_SPK_DISABLE = 255, } AUDIOHAL_SPK_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_SPEAKER_STEREO = 0, AUDIOHAL_SPEAKER_MONO_RIGHT, AUDIOHAL_SPEAKER_MONO_LEFT, AUDIOHAL_SPEAKER_STEREO_NA, //Output is mono only AUDIOHAL_SPEAKER_QTY, AUDIOHAL_SPEAKER_DISABLE = 255, } AUDIOHAL_SPEAKER_TYPE_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_MIC_RECEIVER = 0, AUDIOHAL_MIC_EARPIECE, AUDIOHAL_MIC_LOUDSPEAKER, AUDIOHAL_MIC_QTY, AUDIOHAL_MIC_DISABLE = 255, } AUDIOHAL_MIC_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_SPK_MUTE = 0, AUDIOHAL_SPK_VOL_1, AUDIOHAL_SPK_VOL_2, AUDIOHAL_SPK_VOL_3, AUDIOHAL_SPK_VOL_4, AUDIOHAL_SPK_VOL_5, AUDIOHAL_SPK_VOL_6, AUDIOHAL_SPK_VOL_7, AUDIOHAL_SPK_VOL_8, AUDIOHAL_SPK_VOL_9, AUDIOHAL_SPK_VOL_10, AUDIOHAL_SPK_VOL_11, // 11 AUDIOHAL_SPK_VOL_QTY // 12 } AUDIOHAL_SPK_LEVEL_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_MIC_MUTE = 0, AUDIOHAL_MIC_ENABLE, AUDIOHAL_MIC_VOL_QTY, } AUDIOHAL_MIC_LEVEL_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_SIDE_MUTE = 0, AUDIOHAL_SIDE_VOL_1, AUDIOHAL_SIDE_VOL_2, AUDIOHAL_SIDE_VOL_3, AUDIOHAL_SIDE_VOL_4, AUDIOHAL_SIDE_VOL_5, AUDIOHAL_SIDE_VOL_6, AUDIOHAL_SIDE_VOL_7, AUDIOHAL_SIDE_VOL_TEST, AUDIOHAL_SIDE_VOL_QTY, } AUDIOHAL_SIDE_LEVEL_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_FREQ_8000HZ = 8000, AUDIOHAL_FREQ_11025HZ = 11025, AUDIOHAL_FREQ_12000HZ = 12000, AUDIOHAL_FREQ_16000HZ = 16000, AUDIOHAL_FREQ_22050HZ = 22050, AUDIOHAL_FREQ_24000HZ = 24000, AUDIOHAL_FREQ_32000HZ = 32000, AUDIOHAL_FREQ_44100HZ = 44100, AUDIOHAL_FREQ_48000HZ = 48000, AUDIOHAL_FREQ_64000HZ = 64000, AUDIOHAL_FREQ_88200HZ = 88200, AUDIOHAL_FREQ_96000HZ = 96000, } AUDIOHAL_FREQ_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_MONO = 1, AUDIOHAL_STEREO = 2, } AUDIOHAL_CH_NB_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_DTMF_0 = 0, AUDIOHAL_DTMF_1, AUDIOHAL_DTMF_2, AUDIOHAL_DTMF_3, AUDIOHAL_DTMF_4, AUDIOHAL_DTMF_5, AUDIOHAL_DTMF_6, AUDIOHAL_DTMF_7, AUDIOHAL_DTMF_8, AUDIOHAL_DTMF_9, AUDIOHAL_DTMF_A, AUDIOHAL_DTMF_B, AUDIOHAL_DTMF_C, AUDIOHAL_DTMF_D, AUDIOHAL_DTMF_S, //* key AUDIOHAL_DTMF_P, //# key AUDIOHAL_COMFORT_425, AUDIOHAL_COMFORT_950, AUDIOHAL_COMFORT_1400, AUDIOHAL_COMFORT_1800, } AUDIOHAL_TONE_TYPE_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_TONE_0DB = 0, AUDIOHAL_TONE_M3DB, // -3 dB AUDIOHAL_TONE_M9DB, // -9 dB AUDIOHAL_TONE_M15DB, // -15 dB AUDIOHAL_TONE_QTY } AUDIOHAL_TONE_ATTENUATION_T; //ICAT EXPORTED ENUM typedef enum{ AUDIOHAL_HEADPHONE_PLUG_OUT = 0, AUDIOHAL_HEADPHONE_PLUG_IN = 1 }AUDIOHAL_HEADPHONE_PLUG_T; //ICAT EXPORTED ENUM typedef enum{ AUDIOHAL_HEADPHONE_TYPE_NULL = 0, AUDIOHAL_HEADPHONE_TYPE_UNKNOWN = 1, AUDIOHAL_HEADPHONE_TYPE_3 = 3, //HEAD_PHONE_TYPE3 AUDIOHAL_HEADPHONE_TYPE_4 = 4 //HEAD_PHONE_TYPE4 }AUDIOHAL_HEADPHONE_TYPE_T; //ICAT EXPORTED ENUM typedef enum{ AUDIOHAL_HEADPHONE_EVENT_NULL = 0, AUDIOHAL_HEADPHONE_EVENT_VOLUME_UP = 1, AUDIOHAL_HEADPHONE_EVENT_VOLUME_DOWN= 2, AUDIOHAL_HEADPHONE_EVENT_HOOK_KEY = 3, AUDIOHAL_HEADPHONE_EVENT_TYPE_C_REVERSE = 7 }AUDIOHAL_HEADPHONE_EVENT_T; //ICAT EXPORTED ENUM typedef enum { AUDIOHAL_PORT_VOICE = 0, AUDIOHAL_PORT_SSPA = AUDIOHAL_PORT_VOICE, AUDIOHAL_PORT_HW_SSP0 = 1, AUDIOHAL_PORT_SSP1 = AUDIOHAL_PORT_HW_SSP0, AUDIOHAL_PORT_HW_SSP1 = 2, AUDIOHAL_PORT_SSP2 = AUDIOHAL_PORT_HW_SSP1, AUDIOHAL_PORT_HW_SSP2 = 3, AUDIOHAL_PORT_SSP3 = AUDIOHAL_PORT_HW_SSP2, AUDIOHAL_PORT_QTY }AUDIOHAL_DEVICE_PORT_T; typedef void (*AUDIOHAL_HANDLER_T) (void); typedef void (*AUDIOHAL_HeadsetReport_T) (UINT32 plug, UINT32 type, UINT32 event); typedef void (*AUDIOHAL_SpeakerPA_T) (UINT32 on); typedef void (*AUDIOHAL_Codec_T) (UINT32 on); typedef void (*AUDIOHAL_BT_CALLBACK_T) (UINT32 on); typedef void (*AUDIOHAL_KWS_CB_T)(unsigned int key); typedef int (*AUDIO_EXTRA_CB)(short* dataPtr, UINT16 dataSize); //ICAT EXPORTED STRUCT typedef struct { UINT32 * startAddress; UINT16 length; AUDIOHAL_FREQ_T sampleRate; AUDIOHAL_CH_NB_T channelNb; //BOOL voiceQuality; //BOOL playSyncWithRecord; INT voiceQuality; INT playSyncWithRecord; AUDIOHAL_HANDLER_T halfHandler; AUDIOHAL_HANDLER_T endHandler; } AUDIOHAL_STREAM_T; typedef struct { BOOL isVoice; BOOL isMaster; AUDIOHAL_FREQ_T samplerate; AUDIOHAL_CH_NB_T channelNb; } AUDIOHAL_AIF_CONFIG; typedef struct { AUDIOHAL_SPK_LEVEL_T spkLevel; AUDIOHAL_MIC_LEVEL_T micLevel; AUDIOHAL_SIDE_LEVEL_T sideLevel; AUDIOHAL_TONE_ATTENUATION_T toneLevel; } AUDIOHAL_AIF_LEVEL_T; typedef struct { AUDIOHAL_SPK_T spkSel; AUDIOHAL_SPEAKER_TYPE_T spkType; //Kind of speaker(stereo/mono/etc) AUDIOHAL_MIC_T micSel; AUDIOHAL_AIF_LEVEL_T * level; } AUDIOHAL_AIF_DEVICE_CFG_T; ///////////////////////Control API for MMI/////////////////////////// #if 0 typedef union { UINT32 reg; struct { BOOL auxMicSel:1; BOOL spkSel:1; BOOL spkmonoSel:1; BOOL rcvSel:1; BOOL headSel:1; BOOL fmSel:1; }; } AUDIOHAL_AUD_SEL_T; typedef union { UINT32 reg; struct { UINT32 MicGain:4; BOOL MicMute:1; }; } AUDIOHAL_MIC_CFG_T; typedef union { UINT32 reg; struct { UINT32 SpkGain:4; BOOL SpkMute:1; }; } AUDIOHAL_SPK_CFG_T; BOOL AudioHAL_AudOpen(unsigned int user); BOOL AudioHAL_AudClose(void); BOOL AudioHAL_AudEarpieceDetectInit(void); void AudioHAL_AudForceReceiverMicSelection(BOOL on); void AudioHAL_AudForcePowerDown(void); void AudioHAL_AudSetVoiceMode(BOOL isVoiceMode); void AudioHAL_AudSetAdcVolume(UINT32 vol); void AudioHAL_AudSetDacVolume(UINT32 vol); void AudioHAL_AudSetHeadGain(UINT32 gain); void AudioHAL_AudSetRcvGain(UINT32 gain); void AudioHAL_AudSetMicCfg(UINT32 cfg); void AudioHAL_AudSetSpkCfg(UINT32 cfg); void AudioHAL_AudSetSelcfg(UINT32 selCfg); AUDIOHAL_SPK_CFG_T AudioHAL_AudGetSpkCfg(void); UINT32 AudioHAL_AudGetHeadGain(void); UINT32 AudioHAL_AudGetRcvGain(void); BOOL AudioHAL_AudMuteOutput(BOOL mute); void AudioHAL_AudLcdPowerOnCallback(void); void AudioHAL_AudLcdPowerOffCallback(void); #endif ///////////////////////Control API for CP Audio/////////////////////////// int AudioHAL_Init(void); void AudioHAL_TaskInit(void); void AudioHAL_ReloadFDI(void); int AudioHAL_UpdateCodecGain(void); void AudioHAL_HeadsetOps(UINT16 plug, UINT16 state, UINT16 event); void AudioHAL_StreamStart(BOOL onoff); ///////////////////////Control API for MMI/////////////////////////// AUDIOHAL_ERR_T AudioHAL_AifLoopBack(unsigned char loop); AUDIOHAL_ERR_T AudioHAL_AifConfigure(AUDIOHAL_AIF_CONFIG * config); AUDIOHAL_ERR_T AudioHAL_AifOpen(AUDIOHAL_ITF_T itf, AUDIOHAL_AIF_DEVICE_CFG_T *config); AUDIOHAL_ERR_T AudioHAL_AifTone(AUDIOHAL_TONE_TYPE_T tone, AUDIOHAL_TONE_ATTENUATION_T attenuation, BOOL start); AUDIOHAL_ERR_T AudioHAL_AifTonePause(BOOL pause); AUDIOHAL_ERR_T AudioHAL_AifDTMF(BOOL start, int f1, int f2); void AudioHAL_AifClose(void); void AudioHAL_AifHeadsetDetection(unsigned char input); void AudioHAL_AifBindHeadsetDetectionCB(AUDIOHAL_HeadsetReport_T cb); void AudioHAL_AifBindSpeakerPA_CB(AUDIOHAL_SpeakerPA_T cb); void AudioHAL_AifBindCodec_CB(AUDIOHAL_SpeakerPA_T cb); void AudioHAL_AifGetHeadsetInfo(UINT32* plug, UINT32* type); void AudioHAL_AifSetVolume(UINT32 vol); void AudioHAL_AifSetMute(BOOL onoff); void AudioHAL_AifSetDspRxMute(BOOL onoff); void AudioHAL_AifSetSideTone(UINT32 vol); void AudioHAL_AifSwitch(AUDIOHAL_ITF_T itf); #ifdef QUECTEL_OPEN_CPU //add loudspk pa cb // august add 20221104, add receiver callback void AudioHAL_AifBindReceiver_CB(AUDIOHAL_SpeakerPA_T cb); #endif UINT32 AudioHAL_AifGetVolume(void); AUDIOHAL_ITF_T AudioHAL_AifGetOpenedDevice(void); ///////////////////////Stream API for MMI/////////////////////////// AUDIOHAL_ERR_T AUDIOHAL_GetBufferSize(AUDIOHAL_FREQ_T rate, AUDIOHAL_CH_NB_T chan, int* min, int* max); AUDIOHAL_ERR_T AudioHAL_AifPlayStream(AUDIOHAL_STREAM_T *playedStream); AUDIOHAL_ERR_T AudioHAL_AifRecordStream(AUDIOHAL_STREAM_T *recordedStream); AUDIOHAL_ERR_T AudioHAL_AifPause(BOOL pause); void AudioHAL_AifStopPlay(void); void AudioHAL_AifStopRecord(void); AUDIOHAL_ERR_T AudioHAL_AifDrain(void); AUDIOHAL_ERR_T AudioHAL_SetResBufCnt(unsigned int bufCnt); UINT16 AudioHAL_vibration_setGain(UINT16 gain); void AudioHAL_vibration_control(UINT16 onoff); void AudioHAL_spkProSet(void); int AudioHal_AifPlay2Farend(int farend); /********************************************************************** * * Function: AudioHAL_DRCReset * * Description: set media stream drc and cutoff freq * * gain: index: 0: cutoff freq - 200Hz 1: cutoff freq - 400Hz 2: cutoff freq - 500Hz 3: cutoff freq - 700Hz n(n>3, n <= 1500): cutoff freq - n N(N>1500): cutoff freq - 1500 * return value: commit gain * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 12-Jul-2020 ChaoLiu Initial version **********************************************************************/ UINT16 AudioHAL_DRCReset(UINT16 gain, UINT16 index); void AudioHAL_set_close_delay(unsigned int cnt); void AudioHAL_FadingControl(int on); signed short AudioHAL_SetFadingStep(signed short step); /********************************************************************** * * Function: AudioHAL_AifSetPhoneStatus * * Description: set phone voice call status * * status: 0: let audio hal decide Voice Call status 1: in Media Audio play status 2: in Voice Call status * return value: AUDIOHAL_ERR_NO: success AUDIOHAL_ERR_BAD_PARAMETER: status large than 2 * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 22-Oct-2004 yg Initial version **********************************************************************/ AUDIOHAL_ERR_T AudioHAL_AifSetPhoneStatus(unsigned int status); /********************************************************************** * * Function: AudioHAL_SetUsedMIC * * Description: set used mic * * status: 0(default): let audio hal decide which mic to use 1: use mic1 2: use mic2 * return value: 0: success -1:large than 2 * NOTE: need to disable Headset detection * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 7-April-2020 Chaoliu Initial version **********************************************************************/ int AudioHAL_SetUsedMIC(int mic); int AudioHAL_sspaSetFormat(unsigned short pcmFormat) ; int AudioHAL_sspaSetFormat2(unsigned short pcmFormat2) ; /********************************************************************** * * Function: AudioHAL_sspaSetDelay * * Description: set PCM interface SSPA's data delay * * status: 0: no delay; 1: 1 bitclk delay; (default) * return value: 0: success -1:fail * NOTE: * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 7-April-2020 Chaoliu Initial version **********************************************************************/ int AudioHAL_sspaSetDelay(unsigned int delay) ; /********************************************************************** * * Function: AudioHAL_sspaSetSampleRate * * Description: set PCM interface SSPA's sample Rate * * status: 1: 8k; 2: 16k; 6: 48k * return value: 0: success -1:fail * NOTE: * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 7-April-2020 Chaoliu Initial version **********************************************************************/ int AudioHAL_sspaSetSampleRate(unsigned int rate); /********************************************************************** * * Function: AudioHAL_sspaSetBCLKType * * Description: set PCM interface SSPA's bitclk frequency * * status: 0: 32fs; 1: 64fs; 2: 128fs; 3: 256fs; 4: 512fs; 5: 1024fs; 6: 2048fs; * return value: 0: success -1:fail * NOTE: * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 7-April-2020 Chaoliu Initial version **********************************************************************/ int AudioHAL_sspaSetBCLKType(unsigned int type) ; /********************************************************************** * * Function: AudioHAL_sspaSetBCLKInvert * * Description: set PCM interface SSPA's bitclk INVERT * * status: 0: keep default; 1: invert; * return value: 0: success -1:fail * NOTE: * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 7-April-2020 Chaoliu Initial version **********************************************************************/; int AudioHAL_sspaSetBCLKInvert(unsigned int invert) ; /********************************************************************** * * Function: AudioHAL_sspaSetI2S * * Description: set PCM interface SSPA's PCM/I2S format * * status: 0: PCM; 1: I2S; * return value: 0: success -1:fail * NOTE: * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 7-April-2020 Chaoliu Initial version **********************************************************************/ int AudioHAL_sspaSetI2S(unsigned int i2s) ; /********************************************************************** * * Function: AudioHAL_btsco_formatSet * * Description: set PCM format for BT SCO (PCM) * * slave: 0: sspa as master; 1: sspa as slave; * delay: 0: no delay; 1: 1 bitclk delay; (default) * invert: 0: keep default; 1: invert; * rsv: for future usage * return value: 0: success -1:fail * NOTE: * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 7-April-2020 Chaoliu Initial version **********************************************************************/ int AudioHAL_btsco_formatSet(unsigned int slave, unsigned int delay, unsigned int invert, void* rsv); /********************************************************************** * * Function: AudioHAL_sspaSetSlave * * Description: set PCM interface SSPA's slave mode * * slave: 0: sspa as master(default) 1: sspa as slave * return value: 0: success -1:fail * NOTE: * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 29-NOV-2021 Chaoliu Initial version **********************************************************************/ int AudioHAL_sspaSetSlave(unsigned int slave) ; /********************************************************************** * * Function: AudioHAL_sspaSetSyncClkInvert * * Description: set PCM interface SSPA's Sync Clock INVERT * * invert: 0: keep default; 1: invert; * return value: 0: success -1:fail * NOTE: * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 29-NOV-2021 Chaoliu Initial version **********************************************************************/ int AudioHAL_sspaSetFrameClkInvert(unsigned int invert) ; /********************************************************************** * * Function: AudioHAL_sspaSetSyncClkWidth * * Description: set PCM interface SSPA's sync clock width * * length: 1~0x10 1: sync frame width is 1 bitclk; 2: sync frame width is 2 bitclk; .......................... 0x10: sync frame width is 16 bitclk; * return value: 0: success -1:fail * NOTE: * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 29-NOV-2021 Chaoliu Initial version **********************************************************************/ int AudioHAL_sspaSetFrameClkWidth(unsigned int width); void AudioHAL_AifSetTxDSPGain(signed char db); char AudioHAL_AifGetTxDSPGain(void); void AudioHAL_AifSetTxCodecGain(short pgaStage1, short pgaStage2); short AudioHAL_AifGetTxCodecGainStage1(void); short AudioHAL_AifGetTxCodecGainStage2(void); void AudioHAL_NeedChargePump(int need); int AudioHAL_EnableHSDetect(int isNormalClosed); int AudioHAL_AifSet_VAD(int on); int AudioHAL_AifGet_VAD(void); int AudioHAL_AifBindKWS_CB(AUDIOHAL_KWS_CB_T cb); int AudioHAL_AifControlMCLK(unsigned int type, unsigned int on); /********************************************************************** * * Function: AudioHAL_AifSetFMCodecGain * * Description: set FM codec DAC gain * * gainIdx: 0: 6db; 1: 3db; 2: 0db; 3: -3db; 4: -6db; typedef enum { ACMCODEC_DAC_GAIN_6dB = 0, ACMCODEC_DAC_GAIN_3dB, ACMCODEC_DAC_GAIN_0dB, ACMCODEC_DAC_GAIN_M3dB, ACMCODEC_DAC_GAIN_M6dB, ACMCODEC_DAC_GAIN_CNT, ACMCODEC_DAC_GAIN_ENUM_16_BIT = 0x7FFF //16bit enum compiling enforcement } ACMCODEC_DAC_GAIN; * return value: 0: success -1:fail * NOTE: * * -------------------------------------------------------------------- * Revision History * * Date Who Version Description * -------------------------------------------------------------------- * 7-April-2020 Chaoliu Initial version **********************************************************************/ void AudioHAL_AifSetFMCodecGain(unsigned char gainIdx); AUDIOHAL_ERR_T AudioHAL_AifSetDevicePort(AUDIOHAL_DEVICE_PORT_T port); AUDIOHAL_DEVICE_PORT_T AudioHAL_AifGetDevicePort(void); int AudioHAL_start_bt_hfp_hfMode(int start); #ifdef __cplusplus } #endif #endif /* _AUDIOHAL_H_ */