FreeCalypso > hg > freecalypso-sw
view gsm-fw/L1/audio_include/l1audio_const.h @ 992:a7b0b426f9ca
target-utils: boot ROM UART autodetection revamped
The new implementation should work with both the familiar Calypso C035
boot ROM version found in our regular targets as well as the older
Calypso F741979B version found on the vintage D-Sample board.
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Wed, 30 Dec 2015 21:28:41 +0000 |
parents | 45bf440cc677 |
children |
line wrap: on
line source
/************* Revision Controle System Header ************* * GSM Layer 1 software * L1AUDIO_CONST.H * * Filename l1audio_const.h * Copyright 2003 (C) Texas Instruments * ************* Revision Controle System Header *************/ #if (AUDIO_TASK == 1) // DRC API base address #define C_DRC_API_BASE_ADDRESS 0x161E //---------------------------------------- // LAYER 1 Synchronous audio process name. //---------------------------------------- #define NBR_AUDIO_MANAGER 37 // Number of L1S audio managers #define L1S_KEYBEEP_STATE 0 // l1s_keybeep_manager() #define L1S_TONE_STATE 1 // l1s_tone_manager() #define L1S_MELODY0_STATE 2 // l1s_melody0_manager() #define L1S_MELODY1_STATE 3 // l1s_melody1_manager() #define L1S_VM_PLAY_STATE 4 // l1s_vm_play_manager() #define L1S_VM_RECORD_STATE 5 // l1s_vm_record_manager() #define L1S_TONE_UL_STATE 6 // l1s_tone_ul_manager() #define L1S_SR_ENROLL_STATE 7 // l1s_sr_enroll_manager() #define L1S_SR_UPDATE_STATE 8 // l1s_sr_update_manager() #define L1S_SR_RECO_STATE 9 // l1s_sr_reco_manager() #define L1S_SR_PROCESSING_STATE 10 // l1s_sr_processing_manager() #define L1S_SR_SPEECH_STATE 11 // l1s_sr_speech_manager() #define L1S_AEC_STATE 12 // l1s_aec_manager() #define L1S_AUDIO_MODE_STATE 13 // l1s_audio_mode_manager() #define L1S_MELODY0_E2_STATE 14 // l1s_melody0_e2_manager() #define L1S_MELODY1_E2_STATE 15 // l1s_melody1_e2_manager() #define L1S_VM_AMR_PLAY_STATE 16 // l1s_vm_amr_play_manager() #define L1S_VM_AMR_RECORD_STATE 17 // l1s_vm_amr_record_manager() #define L1S_CPORT_STATE 18 // l1s_cport_manager() #define L1S_AUDIO_ONOFF_STATE 19 // l1s_audio_onoff_manager() #define L1S_STEREOPATH_DRV_STATE 20 // l1s_stereopath_drv_manager() #define L1S_MP3_STATE 21 // l1s_mp3_manager() #define L1S_ANR_STATE 22 // l1s_anr_manager() #define L1S_IIR_STATE 23 // l1s_iir_manager() #define L1S_LIMITER_STATE 24 // l1s_limiter_manager() #define L1S_ES_STATE 25 // l1s_es_manager() #define L1S_MIDI_STATE 26 // l1s_midi_manager() #define L1S_AGC_UL_STATE 27 // l1s_agc_ul_manager() #define L1S_AGC_DL_STATE 28 // l1s_agc_dl_manager() #define L1S_WCM_STATE 29 // l1s_wcm_manager() #define L1S_DRC_STATE 30 // l1s_drc_manager() #if (L1_AAC == 1) //added from e-sample for AAC #define L1S_AAC_STATE 31 // l1s_aac_manager() #endif #if (L1_AUDIO_MCU_ONOFF == 1) #define L1S_AUDIO_UL_ONOFF_STATE 32 // l1s_audio_ul_onoff_manager() #define L1S_AUDIO_DL_ONOFF_STATE 33 // l1s_audio_dl_onoff_manager() #endif #define L1S_PCM_DOWNLOAD_STATE 34 // l1s_pcm_download_manager() #define L1S_PCM_UPLOAD_STATE 35 // l1s_pcm_upload_manager() #define L1S_FIR_STATE 36 // l1s_fir_manager() //---------------------------------------- // MCU<->DSP communication bit field. //---------------------------------------- // bit in d_tch_mode for audio features #define B_VOICE_MEMO_DTX (TRUE_L << 5) #if (DSP >= 34) #define B_VM_VOCODER_SELECT (TRUE_L << 6) #endif // bits in d_toneskb_status #define B_TONE (TRUE_L << 0) // Indicate if the DSP tone task is running #define B_KEYBEEP (TRUE_L << 1) // Indicate if the DSP Keybeep task is running #define B_VM_RECORD_ON_GOING (TRUE_L << 2) // Indicate if the DSP recording speech task is running #define B_VM_PLAY_ON_GOING (TRUE_L << 3) // Indicate if the DSP playing task is running #define B_VM_AMR_RECORD_ON_GOING (TRUE_L << 2) // Indicate if the DSP recording speech amr task is running #define B_VM_AMR_PLAY_ON_GOING (TRUE_L << 3) // Indicate if the DSP playing amr task is running #define B_SR_ENROLL_TASK (TRUE_L << 4) // Indicate if the DSP enroll task is running #define B_SR_UPDATE_TASK (TRUE_L << 5) // Indicate if the DSP update task is running #define B_SR_RECO_TASK (TRUE_L << 6) // Indicate if the DSP reco task is running #define B_SR_PROCESSING_TASK (TRUE_L << 7) // Indicate if the DSP processing task is running #define B_SR_ALIGNMENT_TASK (TRUE_L << 8) // Indicate if the DSP alignment task is running #define B_IT_COM_REQ (TRUE_L << 9) // Indicate that the DSP requests an IT com for the next TDMA #define B_AUDIO_ON_STATUS (TRUE_L << 14) // Set to 1 if DSP doesn'tpower OFF audio ABB if no DSP audio activity #if(L1_PCM_EXTRACTION) #define B_PCM_UPLOAD_ON_GOING (TRUE_L << 4) #define B_PCM_DOWNLOAD_ON_GOING (TRUE_L << 5) #endif // bits in d_toneskb_init #define B_VM_RECORD_START (TRUE_L << 2) // Start the DSP voice memo recording task #define B_VM_RECORD_STOP (TRUE_L << 3) // Stop the DSP voice memo recording task #define B_VM_PLAY_START (TRUE_L << 4) // Start the DSP voice memo playing task #define B_VM_PLAY_STOP (TRUE_L << 5) // Stop the DSP voice memo playing task #define B_VM_TONE_UL (TRUE_L << 6) // Generate the tone on the UL path #define B_VM_AMR_RECORD_START (TRUE_L << 2)// Start the DSP voice memo amr recording task #define B_VM_AMR_RECORD_STOP (TRUE_L << 3)// Stop the DSP voice memo amr recording task #define B_VM_AMR_PLAY_START (TRUE_L << 4)// Start the DSP voice memo amr playing task #define B_VM_AMR_PLAY_STOP (TRUE_L << 5)// Stop the DSP voice memo amr playing task #define B_SR_ENROLL (TRUE_L << 7) // Start the DSP speech reco enroll task #define B_SR_UPDATE (TRUE_L << 8) // Start the DSP speech reco update task #define B_SR_RECO (TRUE_L << 9) // Start the DSP speech reco task #define B_SR_PROCESSING (TRUE_L << 10) // Start the DSP speech reco processing task #define B_SR_STOP (TRUE_L << 11) // Stop the current DSP speech reco task #define B_MELO (TRUE_L << 13) // Start the DSP melody module if it's not started #define B_AUDIO_ON_START (TRUE_L << 14) // Use to start ABB audio and to not stop it when // no audio activity on DSP side #define B_AUDIO_OFF_STOP (TRUE_L << 15) // Use to stop ABB audio when no audio activity #if(L1_PCM_EXTRACTION) #define B_PCM_UPLOAD_START (TRUE_L << 7) #define B_PCM_UPLOAD_STOP (TRUE_L << 8) #define B_PCM_DOWNLOAD_START (TRUE_L << 9) #define B_PCM_DOWNLOAD_STOP (TRUE_L << 10) #endif #if (L1_CPORT == 1) //---------------------------------------- // C_PORT constant. //---------------------------------------- #define CPORT_READ_FLAG_OFFSET 11 // offset in configuration field of the "read register" bit #define CPORT_REG_NB_OFFSET 12 // offset in configuration field of the register number #define CPORT_READ_MASK 0xF800 // mask to get the read flag and the read reg id in the d_cport_status field // write register defines #define CPORT_W_NONE 0 // do not write anything #define CPORT_W_CTRL 1 // write CTRL, set bit 0 of configuration to 1 #define CPORT_W_CPCFR1 1 << 1 // write CPCFR1, set bit 1 of configuration to 1 #define CPORT_W_CPCFR2 1 << 2 // write CPCFR2, set bit 2 of configuration to 1 #define CPORT_W_CPCFR3 1 << 3 // write CPCFR3, set bit 3 of configuration to 1 #define CPORT_W_CPCFR4 1 << 4 // write CPCFR4, set bit 4 of configuration to 1 #define CPORT_W_CPTCTL 1 << 5 // write CPTCTL, set bit 5 of configuration to 1 #define CPORT_W_CPTTADDR 1 << 6 // write CPTTADDR, set bit 6 of configuration to 1 #define CPORT_W_CPTDAT 1 << 7 // write CPTDAT, set bit 7 of configuration to 1 #define CPORT_W_CPTVS 1 << 8 // write CPTVS, set bit 8 of configuration to 1 // read register defines #define CPORT_R_NONE 0 // do not read anything // for each of the following defines, set read flag (bit 11) to 1 and set reg_nb (bits 12..15) #define CPORT_R_CTRL (0 << CPORT_REG_NB_OFFSET) | (1 << CPORT_READ_FLAG_OFFSET) #define CPORT_R_CPCFR1 (1 << CPORT_REG_NB_OFFSET) | (1 << CPORT_READ_FLAG_OFFSET) #define CPORT_R_CPCFR2 (2 << CPORT_REG_NB_OFFSET) | (1 << CPORT_READ_FLAG_OFFSET) #define CPORT_R_CPCFR3 (3 << CPORT_REG_NB_OFFSET) | (1 << CPORT_READ_FLAG_OFFSET) #define CPORT_R_CPCFR4 (4 << CPORT_REG_NB_OFFSET) | (1 << CPORT_READ_FLAG_OFFSET) #define CPORT_R_CPTCTL (5 << CPORT_REG_NB_OFFSET) | (1 << CPORT_READ_FLAG_OFFSET) #define CPORT_R_CPTTADDR (6 << CPORT_REG_NB_OFFSET) | (1 << CPORT_READ_FLAG_OFFSET) #define CPORT_R_CPTDAT (7 << CPORT_REG_NB_OFFSET) | (1 << CPORT_READ_FLAG_OFFSET) #define CPORT_R_CPTVS (8 << CPORT_REG_NB_OFFSET) | (1 << CPORT_READ_FLAG_OFFSET) #define CPORT_R_STATUS (9 << CPORT_REG_NB_OFFSET) | (1 << CPORT_READ_FLAG_OFFSET) #endif #if (MELODY_E1) //---------------------------------------- // Melody constant. //---------------------------------------- // Word to indicate that the oscillator must be stopped ASAP #define SC_END_OSCILLATOR_MASK 0xfffe // Description of the ml_ocscil_x field (x= 0...SC_NUMBER_OSCILLATOR) #define SC_MELO_OSCILLATOR_USED_MASK 0xff00 #define SC_MELO_OSCILLATOR_USED_SHIFT SC_NUMBER_OSCILLATOR // Description of the ml_time_offset field #define SC_MELO_TIME_OFFSET_MASK 0x00ff #define SC_MELO_TIME_OFFSET_SHIFT 0 // Description of the ml_load1 bit #define SC_MELO_LOAD1_MASK 0x0010 #define SC_MELO_LOAD1_SHIFT 4 // Description of the ml_load2 bit #define SC_MELO_LOAD2_MASK 0x0020 #define SC_MELO_LOAD2_SHIFT 5 // Description of the ml_synchro bit #define SC_MELO_SYNCHRO_MASK 0x0001 #define SC_MELO_SYNCHRO_SHIFT 0 // Description of the ml_length field #define SC_MELO_LENGTH_MASK 0xffc0 #define SC_MELO_LENGTH_SHIFT 6 #endif // MELODY_E1 #if (VOICE_MEMO) || (SPEECH_RECO) //---------------------------------------- // Voice memo constant. //---------------------------------------- // Communication DSP<->MCU via the a_du_x buffer: // Mask for the bit to indicate: // in VM play: if the DSP requests a new block // in VM record: if the DSP has a new block #define B_BLOCK_READY (TRUE_L<<10) // Mask for the bit of the a_du_x buffer to indicate if the block is the speech or noise #define B_VM_SPEECH (TRUE_L<<15) // Size of the a_du_x buffer when the sample is a noise: #define SC_VM_NOISE_SAMPLE 1 // Size of the a_du_x buffer when the sample is a speech: #define SC_VM_SPEECH_SAMPLE 20 #endif // VOICE_MEMO || SPEECH_RECO #if (L1_PCM_EXTRACTION) #define B_PCM_DOWNLOAD_READY (TRUE_L << 0) #define B_PCM_UPLOAD_READY (TRUE_L << 0) #define SC_PCM_DOWNLOAD_SAMPLE 160 #define SC_PCM_UPLOAD_SAMPLE 160 #define B_PCM_UPLOAD_ERROR (TRUE_L << 0) #define B_PCM_DOWNLOAD_ERROR (TRUE_L << 1) #endif /* L1_PCM_EXTRACTION */ #if (L1_VOICE_MEMO_AMR) //---------------------------------------- // Voice memo amr constant. //---------------------------------------- #define SC_VM_AMR_HEADER_SIZE 1 // Communication DSP<->MCU via the a_du_x buffer: #define SC_RX_TX_TYPE_MASK (7<<3) // Communication DSP<->MCU via d_amms_ul_voc and b_amms_channel_type #define SC_CHAN_TYPE_MASK 7 // RX_TYPE or TX_TYPE (See 06.93) #define SC_VM_AMR_RXTX_SPEECH_GOOD (0<<3) #define SC_VM_AMR_RXTX_SPEECH_DEGRADED (1<<3) #define SC_VM_AMR_RXTX_ONSET (2<<3) #define SC_VM_AMR_RXTX_SPEECH_BAD (3<<3) #define SC_VM_AMR_RXTX_SID_FIRST (4<<3) #define SC_VM_AMR_RXTX_SID_UPDATE (5<<3) #define SC_VM_AMR_RXTX_SID_BAD (6<<3) #define SC_VM_AMR_RXTX_NO_DATA (7<<3) // sample type for ONSET insertion in NO_SPEECH to SPEECH transition #define SC_VM_AMR_SPEECH 0 #define SC_VM_AMR_NOISE 1 #define SC_VM_AMR_NO_DATA 2 #define SC_VM_AMR_ONSET 3 // Speech channel type #define SC_VM_AMR_SPEECH_475 0 #define SC_VM_AMR_SPEECH_515 1 #define SC_VM_AMR_SPEECH_59 2 #define SC_VM_AMR_SPEECH_67 3 #define SC_VM_AMR_SPEECH_74 4 #define SC_VM_AMR_SPEECH_795 5 #define SC_VM_AMR_SPEECH_102 6 #define SC_VM_AMR_SPEECH_122 7 // Size of data bits in the a_du_x buffer when the sample is SPEECH // a_du_x buffer contains header + 2 non-used words after header + data_bits => recorded size is DATA_SIZE + 1 #define SC_VM_AMR_SPEECH_475_DATA_SIZE 12 #define SC_VM_AMR_SPEECH_515_DATA_SIZE 13 #define SC_VM_AMR_SPEECH_59_DATA_SIZE 15 #define SC_VM_AMR_SPEECH_67_DATA_SIZE 17 #define SC_VM_AMR_SPEECH_74_DATA_SIZE 19 #define SC_VM_AMR_SPEECH_795_DATA_SIZE 20 #define SC_VM_AMR_SPEECH_102_DATA_SIZE 26 #define SC_VM_AMR_SPEECH_122_DATA_SIZE 31 // Size of the a_du_x buffer when the sample is SID_FIRST: #define SC_VM_AMR_SID_FIRST_DATA_SIZE 5 // Size of the a_du_x buffer when the sample is SID_UPDATE: #define SC_VM_AMR_SID_UPDATE_DATA_SIZE 5 // Size of the a_du_x buffer when the sample is SID_BAD: #define SC_VM_AMR_SID_BAD_DATA_SIZE 5 // Size of the a_du_x buffer when the sample is NO_DATA: #define SC_VM_AMR_NO_DATA_DATA_SIZE 0 // Size of the a_du_x buffer when the sample is ONSET: #define SC_VM_AMR_ONSET_DATA_SIZE 0 #endif // L1_VOICE_MEMO_AMR #if (SPEECH_RECO) //---------------------------------------- // Speech recognition constant. //---------------------------------------- // d_sr_status bit field #define B_BAD_ACQUISITION (TRUE_L << 8) #define B_GOOD_ACQUISITION (TRUE_L << 9) #define B_BAD_UPDATE (TRUE_L << 10) #define B_GOOD_UPDATE (TRUE_L << 11) // d_sr_status VAD indication #define SC_SR_WORD_MASK 0x00FF #define SC_SR_WORD_SEARCHING 0 #define SC_SR_WORD_BEGINNING 1 #define SC_SR_WORD_ON_GOING 2 #define SC_SR_WORD_ENDING 3 #define SC_SR_WORD_DONE 4 #endif // SPEECH_RECO #if (L1_AEC == 1) #define B_AEC_ACK (TRUE_L << 0) // Bit set by the MCU to indicate a new AEC settings and // clear by the DSP to confirm the new settings. #if (L1_NEW_AEC) #define B_AEC_VISIBILITY (TRUE_L << 9) // Bit set by the MCU to have internal output values of AEC copied in API #define SC_AEC_VISIBILITY_SHIFT (9) #endif #endif #if (W_A_DSP_SR_BGD) #define C_BGD_RECOGN 5 // TEMPORARY: DSP Background recognition task code (also used for bitmaps). #define C_BGD_ALIGN 6 // TEMPORARY: DSP Background alignement // bits in d_gsm_bgd_mgt - background task management #define B_DSPBGD_RECO 1 // start of reco in dsp background #define B_DSPBGD_UPD 2 // start of alignement update in dsp background #endif #if (AUDIO_MODE) #define B_GSM_ONLY ((TRUE_L << 13) | (TRUE_L << 11)) // GSM normal mode #define B_BT_CORDLESS (TRUE_L << 12) // Bluetooth cordless mode #define B_BT_HEADSET (TRUE_L << 14) // Bluetooth headset mode #endif #define SC_AUDIO_MCU_API_BEGIN_ADDRESS (0xFFD00000) // Start address of the API memory in MCU side #define SC_AUDIO_DSP_API_BEGIN_ADDRESS (0x0800) // Start address o fthe API memory in DSP side #if (MELODY_E2) // Number of oscillator available in the melody E2 #define SC_MELODY_E2_NUMBER_OF_OSCILLATOR (16) // Code of extension for data=time #define SC_TIME_CODE_OF_EXTENSION (1) // Position of the GlobalTimeFactor parameter #define SC_MELODY_E2_GLOBALTIMEFACTOR_MASK (0xFF) #define SC_MELODY_E2_GLOBALTIMEFACTOR_SHIFT (0) // Position of the Number of instrument parameter #define SC_MELODY_E2_NUMBEROFINSTRUMENT_MASK (0xFF) #define SC_MELODY_E2_NUMBEROFINSTRUMENT_SHIFT (0) // Position of the extension flag #define SC_MELODY_E2_EXTENSION_FLAG_MASK (0x80) #define SC_MELODY_E2_EXTENSION_FLAG_SHIFT (7) // Position of the code of extension #define SC_MELODY_E2_CODE_OF_EXTENSION_MASK (0x70) #define SC_MELODY_E2_CODE_OF_EXTENSION_SHIFT (4) // Position of data time #define SC_MELODY_E2_DATA_TIME_MSB_MASK (0x07) #define SC_MELODY_E2_DATA_TIME_MSB_SHIFT (0) // Position of data time #define SC_MELODY_E2_DATA_TIME_LSB_MASK (0xFF00) #define SC_MELODY_E2_DATA_TIME_LSB_SHIFT (8) // Position of the Delta Time #define SC_MELODY_E2_DELTA_TIME_MASK (0x7F) #define SC_MELODY_E2_DELTA_TIME_SHIFT (0) // Mask of the semaphore #define SC_MELODY_E2_SEMAPHORE_MASK (0x0001) // Maximum size of the header of the melody E2 #define SC_MELODY_E2_MAXIMUM_HEADER_SIZE (3 + SC_AUDIO_MELODY_E2_MAX_NUMBER_OF_INSTRUMENT) // Maximum number of extension #define SC_MELODY_E2_MAXIMUM_NUMBER_OF_EXTENSION (2) #endif // MELODY_E2 // Selection of the melody format #define NO_MELODY_SELECTED (0) #define MELODY_E0_SELECTED (1) #define MELODY_E1_SELECTED (2) #define MELODY_E2_SELECTED (3) #if (L1_STEREOPATH == 1) // configuration #define AUDIO_SP_SELF_CONF 0 #define AUDIO_SP_MIDI_CONF 1 #define AUDIO_SP_MP3_CONF 2 #define AUDIO_SP_EXTAUDIO_CONF 3 #if (ANALOG == 3) // sampling frequency #define AUDIO_SP_FREQ_8 7 #define AUDIO_SP_FREQ_11 6 #define AUDIO_SP_FREQ_16 5 #define AUDIO_SP_FREQ_22 4 #define AUDIO_SP_FREQ_32 3 #define AUDIO_SP_FREQ_44 2 #define AUDIO_SP_FREQ_48 0 #endif #if (ANALOG == 11 || CODE_VERSION == SIMULATION) // sampling frequency index for Triton. This would be set in the //SRW[0:3] bits of the CTRL5 register. #define AUDIO_SP_FREQ_8 0 #define AUDIO_SP_FREQ_11 1 #define AUDIO_SP_FREQ_12 2 #define AUDIO_SP_FREQ_16 3 #define AUDIO_SP_FREQ_22 4 #define AUDIO_SP_FREQ_24 5 #define AUDIO_SP_FREQ_32 6 #define AUDIO_SP_FREQ_44 7 #define AUDIO_SP_FREQ_48 8 #endif // DMA allocation #define AUDIO_SP_DMA_ALLOC_MCU 0 #define AUDIO_SP_DMA_ALLOC_DSP 1 // Data type #define AUDIO_SP_DATA_S8 0 #define AUDIO_SP_DATA_S16 1 #define AUDIO_SP_DATA_S32 2 // Source port #define AUDIO_SP_SOURCE_IMIF 0 #define AUDIO_SP_SOURCE_API 2 #if (CHIPSET == 15) //In Locosto, EMIF is also a source port for the audio #define AUDIO_SP_SOURCE_EMIF 4 #endif // output type #define AUDIO_SP_MONO_OUTPUT 0 #define AUDIO_SP_STEREO_OUTPUT 1 // feature identifier #define AUDIO_SP_MIDI_ID 0 #define AUDIO_SP_EXT_AUDIO_ID 1 #define AUDIO_SP_MP3_ID 2 #define AUDIO_SP_TESTS_ID 3 #if (L1_AAC == 1) #define AUDIO_SP_AAC_ID 4 //added for AAC #endif // Pattern #define AUDIO_SP_SILENCE_PATTERN 0 #define AUDIO_SP_SINUS1_PATTERN 1 #define AUDIO_SP_SINUS2_PATTERN 2 #define AUDIO_SP_SINUS3_PATTERN 3 #endif #endif // AUDIO_TASK #if (DSP == 17) || (DSP == 32) #define B_FIR_START (TRUE_L << 0) // Bit set by the MCU to start the FIR task for the DSP code 32 and 17. #endif #define B_FIR_LOOP (TRUE_L << 1) // Bit set by the MCU to close the loop between the audio UL and DL path. // This features is used to find the FIR coefficient. /*************************************/ /* ACOUSTIC interface */ /*************************************/ /* Control values */ /*----------------*/ #define B_ANR_ENABLE (TRUE_L << 0) #define B_ANR_DISABLE (TRUE_L << 1) #define B_ANR_FULL_UPDATE (TRUE_L << 2) #define B_IIR_ENABLE (TRUE_L << 0) #define B_IIR_DISABLE (TRUE_L << 1) #define B_IIR_FULL_UPDATE (TRUE_L << 2) #define B_AGC_ENABLE (TRUE_L << 0) #define B_AGC_DISABLE (TRUE_L << 1) #define B_AGC_FULL_UPDATE (TRUE_L << 2) #define B_WCM_ENABLE (TRUE_L << 0) #define B_WCM_DISABLE (TRUE_L << 1) #define B_WCM_FULL_UPDATE (TRUE_L << 2) #if (L1_DRC == 1) #define DRC_LPF_LENGTH 17 #define DRC_BPF_LENGTH 17 #endif #define B_DRC_ENABLE (TRUE_L << 0) #define B_DRC_DISABLE (TRUE_L << 1) #define B_DRC_FULL_UPDATE (TRUE_L << 2) #define B_LIM_ENABLE (TRUE_L << 0) #define B_LIM_DISABLE (TRUE_L << 1) #define B_LIM_FULL_UPDATE (TRUE_L << 2) #define B_LIM_UPDATE (TRUE_L << 3) #define B_ES_ENABLE (TRUE_L << 0) #define B_ES_DISABLE (TRUE_L << 1) #define B_ES_FULL_UPDATE (TRUE_L << 2) #if (L1_IIR == 2) #define IIR_4X_ORDER_OF_SECTION 2 #define IIR_4X_FIR_MAX_LENGTH 40 #endif #if (L1_WCM == 1) #define WCM_1X_GAIN_TABLE_LENGTH 16 #endif /* d_aqi_status bits */ /*-------------------*/ #if (DSP == 38) || (DSP == 39) #define B_DRC_DL_STATE (TRUE_L << 3) #define B_IIR_DL_STATE (TRUE_L << 4) #define B_LIM_STATE (TRUE_L << 5) #define B_AGC_DL_STATE (TRUE_L << 6) #define B_AEC_STATE (TRUE_L << 11) #define B_ANR_UL_STATE (TRUE_L << 12) #define B_ES_STATE (TRUE_L << 13) #define B_AGC_UL_STATE (TRUE_L << 14) #else #define B_IIR_STATE (TRUE_L << 4) #define B_LIM_STATE (TRUE_L << 5) #define B_ANR_STATE (TRUE_L << 12) #define B_ES_STATE (TRUE_L << 13) #endif /* d_audio_apps_status bits */ /*-------------------*/ #if (DSP == 38) || (DSP == 39) #define B_WCM_STATE (TRUE_L << 0) #endif /*****************/ /* ANR constants */ /*****************/ #if (L1_ANR == 1) #define C_ANR_VAD_THR 0x1333 #define C_ANR_GAMMA_SLOW 0x7F1B #define C_ANR_GAMMA_FAST 0x75C3 #define C_ANR_GAMMA_GAIN_SLOW 28836 #define C_ANR_GAMMA_GAIN_FAST 32113 #define C_ANR_THR2 0x01E0 #define C_ANR_THR4 0x03DE #define C_ANR_THR5 0x012C #define C_ANR_MEAN_RATIO_THR1 10000 #define C_ANR_MEAN_RATIO_THR2 6000 #define C_ANR_MEAN_RATIO_THR3 5000 #define C_ANR_MEAN_RATIO_THR4 4000 #endif #if (L1_ES == 1) /*******************/ /* ES constants */ /*******************/ // ES custom mode #define ES_CUSTOM_PARAM 0xFF // ES mode definition #define B_ES_UL (0x1 << 0) // ES UL enable #define B_ES_DL (0x1 << 1) // ES DL enable #define B_ES_CNG (0x1 << 2) // CNG enable #define B_ES_NSF (0x1 << 3) // NSF enable #define B_ES_ALS_UL (0x1 << 4) // ALS UL enable #define B_ES_ALS_DL (0x1 << 5) // ALS DL enable // ES parameter values #define C_ES_GAIN_DL_OFF 0x0 #define C_ES_GAIN_UL_1_OFF 0x0 #define C_ES_GAIN_UL_2_OFF 0x0 #define C_ES_TCL_M23DB 0x005E // ref. -23dB #define C_ES_TCL_M6DB 0x0176 // ref. -6dB #define C_ES_TCL_M3DB 0x02EA // ref. -6dB #define C_ES_TCL_0DB 0x05D1 // ref. 0dB #define C_ES_TCL_4DB 0x0E9D // ref. 4dB #define C_ES_TCL_6DB 0x1729 // ref. 6dB #define C_ES_TCL_10DB 0x3A2F // ref. 10dB #define C_ES_TCL_12DB 0x5C36 // ref. 12dB #define C_ES_TCL_B3_FE_LS 0x0004 // ref. -10dB #define C_ES_TCL_B3_DT_LS 0x0001 // ref. -16dB #define C_ES_TCL_B3_FE_NS 0x000F // ref. -10dB #define C_ES_TCL_B3_DT_NS 0x0004 // ref. -16dB #define C_ES_TCL_B3_NE 0x000F // ref. 0dB #define C_ES_TCL_FE_0 0x05D1 // ref. 0dB #define C_ES_TCL_DT_0 0x05D1 // ref. 0dB #define C_ES_TCL_NE_0 0x05D1 // ref. 0dB #define C_ES_TCL_LOUD 0x00BF // ref. 70dB #define C_ES_SW_CNT 5 // ref. switching time 100ms #define C_ES_DT_CNT 5 // ref. double-talk time 100ms #define C_ES_HG_CNT_1 8 // ref. hangover time 150ms, A_S(IDLE) = -3dB #define C_ES_HG_CNT_1A 8 // ref. hangover time 150ms, A_S(IDLE) = -3dB #define C_ES_HG_CNT_2A 10 // ref. hangover time 200ms, A_S(IDLE) = -3dB #define C_ES_HG_CNT_2B 13 // ref. hangover time 250ms, A_S(IDLE) = -3dB #define C_ES_HG_CNT_2C 13 // ref. hangover time 250ms, A_S(IDLE) = -3dB #define C_ES_HG_CNT_2C_IDLE 13 // ref. hangover time 250ms, A_S(IDLE) = -3dB #define C_ES_HG_CNT_3 20 // ref. hangover time 400ms #define C_ES_ATT_LIN_0DB 0x7fff // ref. 0dB #define C_ES_ATT_LIN_3DB 0x5A9D // ref. -3dB #define C_ES_ATT_LIN_5DB 0x47FA // ref. -5dB #define C_ES_ATT_LIN_6DB 0x4026 // ref. -6dB #define C_ES_ATT_LIN_8DB 0x32F4 // ref. -8dB #define C_ES_ATT_LIN_9DB 0x2D6A // ref. -9dB #define C_ES_ATT_LIN_10DB 0x2879 // ref. -10dB #define C_ES_ATT_LIN_12DB 0x2026 // ref. -12dB #define C_ES_ATT_LIN_15DB 0x16C2 // ref. -15dB #define C_ES_ATT_LIN_16DB 0x1449 // ref. -16dB #define C_ES_ATT_LIN_19DB 0x0E5D // ref. -19dB #define C_ES_ATT_LIN_21DB 0x0B68 // ref. -21dB #define C_ES_ATT_LIN_24DB 0x0813 // ref. -24dB #define C_ES_ATT_LIN_36DB 0x0207 // ref. -36dB #define C_ES_ATT_LIN_48DB 0x0082 // ref. -48dB #define C_ES_ATT_LIN_66DB 0x0010 // ref. -56dB #endif // L1_ES #if(L1_EXT_AUDIO_MGT == 1) #define AUDIO_EXT_MIDI_BUFFER_SIZE 2640 #endif