FreeCalypso > hg > freecalypso-citrine
diff L1/audio_include/l1audio_defty.h @ 0:75a11d740a02
initial import of gsm-fw from freecalypso-sw rev 1033:5ab737ac3ad7
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 09 Jun 2016 00:02:41 +0000 |
parents | |
children | 420ac6391166 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/L1/audio_include/l1audio_defty.h Thu Jun 09 00:02:41 2016 +0000 @@ -0,0 +1,1201 @@ +/************* Revision Controle System Header ************* + * GSM Layer 1 software + * L1AUDIO_DEFTY.H + * + * Filename l1audio_defty.h + * Copyright 2003 (C) Texas Instruments + * + ************* Revision Controle System Header *************/ + +#include "../../include/config.h" +#include "../include/l1_confg.h" +#include "l1audio_msgty.h" +#include "../audio_cust0/l1audio_cust.h" +#include "l1audio_const.h" +#include "l1audio_btapi.h" +#if (AUDIO_TASK == 1) + + #if (KEYBEEP) + /**************************************************************************/ + /* Keybeep l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL start; + BOOL stop; + } + T_KEYBEEP_COMMAND; + + typedef struct + { + T_KEYBEEP_COMMAND command; + } + T_KEYBEEP_TASK; + #endif + + #if (TONE) + /**************************************************************************/ + /* Tone l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL start; + BOOL stop; + } + T_TONE_COMMAND; + + typedef struct + { + T_TONE_COMMAND command; + } + T_TONE_TASK; + #endif + + #if (MELODY_E1) + /**************************************************************************/ + /* Melody l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL start; + BOOL stop; + } + T_MELODY_COMMAND; + + typedef struct + { + UWORD8 session_id; + UWORD8 error_id; + UWORD16 buffer_size; + UWORD16 *ptr_buf; + BOOL loopback; + UWORD16 oscillator_used_bitmap; + UWORD16 oscillator_melody_bitmap; + UWORD8 melody_to_oscillator[SC_NUMBER_OSCILLATOR]; + } + T_MELODY_PARAM; + + typedef struct + { + T_MELODY_COMMAND command; + T_MELODY_PARAM parameters; + } + T_MELODY_TASK; + + /**************************************************************************/ + /* Melody l1s structure... */ + /**************************************************************************/ + + typedef struct + { + UWORD8 error_id; + UWORD16 buffer_size; + UWORD16 *ptr_buf; + UWORD16 melody_header; + API *(oscillator[SC_NUMBER_OSCILLATOR]); + UWORD16 counter; + UWORD16 oscillator_used_in_desc; + UWORD16 oscillator_started; + } + T_L1S_MELODY_TASK; + #endif + + #if (VOICE_MEMO) + /**************************************************************************/ + /* Voice memo l1a_l1s_com structure... */ + /**************************************************************************/ + + typedef struct + { + BOOL start; + BOOL stop; + } + T_VM_PLAY_COMMAND; + + typedef struct + { + UWORD8 session_id; + } + T_VM_PLAY_PARAM; + + typedef struct + { + T_VM_PLAY_COMMAND command; + T_VM_PLAY_PARAM parameters; + } + T_VM_PLAY_TASK; + + typedef struct + { + BOOL start; + BOOL stop; + } + T_VM_RECORD_COMMAND; + + typedef struct + { + UWORD8 session_id; + UWORD32 maximum_size; + BOOL dtx; + } + T_VM_RECORD_PARAM; + + typedef struct + { + BOOL start; + } + T_VM_RECORD_TONE_UL; + + typedef struct + { + T_VM_RECORD_COMMAND command; + T_VM_RECORD_PARAM parameters; + T_VM_RECORD_TONE_UL tone_ul; + } + T_VM_RECORD_TASK; + + typedef struct + { + T_VM_PLAY_TASK play; + T_VM_RECORD_TASK record; + } + T_VM_TASK; + + /**************************************************************************/ + /* Voice memo l1s structure... */ + /**************************************************************************/ + + typedef struct + { + API *a_du_x; + UWORD8 error_id; + UWORD16 buffer_size; + UWORD16 *ptr_buf; + UWORD32 recorded_size; + } + T_L1S_VM_RECORD_TASK; + + typedef struct + { + API *a_du_x; + UWORD8 error_id; + UWORD16 buffer_size; + UWORD16 *ptr_buf; + } + T_L1S_VM_PLAY_TASK; + + typedef struct + { + T_L1S_VM_PLAY_TASK play; + T_L1S_VM_RECORD_TASK record; + } + T_L1S_VM_TASK; + + #endif + + #if (L1_PCM_EXTRACTION) + /**************************************************************************/ + /* PCM extraction l1a_l1s_com structure... */ + /**************************************************************************/ + + typedef struct + { + BOOL start; + BOOL stop; + } + T_PCM_DOWNLOAD_COMMAND; + + typedef struct + { + UWORD8 session_id; + UWORD32 maximum_size; + } + T_PCM_DOWNLOAD_PARAM; + + typedef struct + { + T_PCM_DOWNLOAD_COMMAND command; + T_PCM_DOWNLOAD_PARAM parameters; + } + T_PCM_DOWNLOAD_TASK; + + typedef struct + { + BOOL start; + BOOL stop; + } + T_PCM_UPLOAD_COMMAND; + + typedef struct + { + UWORD8 session_id; + UWORD32 maximum_size; + } + T_PCM_UPLOAD_PARAM; + + typedef struct + { + T_PCM_UPLOAD_COMMAND command; + T_PCM_UPLOAD_PARAM parameters; + } + T_PCM_UPLOAD_TASK; + + typedef struct + { + T_PCM_DOWNLOAD_TASK download; + T_PCM_UPLOAD_TASK upload; + } + T_PCM_TASK; + + /**************************************************************************/ + /* PCM l1s structure... */ + /**************************************************************************/ + + typedef struct + { + UWORD8 error_id; + UWORD16 buffer_size; + UWORD16 *ptr_buf; + UWORD32 uploaded_size; + } + T_L1S_PCM_UPLOAD_TASK; + + typedef struct + { + UWORD8 error_id; + UWORD16 buffer_size; + UWORD16 *ptr_buf; + UWORD32 downloaded_size; + } + T_L1S_PCM_DOWNLOAD_TASK; + + typedef struct + { + T_L1S_PCM_DOWNLOAD_TASK download; + T_L1S_PCM_UPLOAD_TASK upload; + } + T_L1S_PCM_TASK; + + #endif /* L1_PCM_EXTRACTION */ + + #if (L1_VOICE_MEMO_AMR) + /**************************************************************************/ + /* Voice memo amr l1a_l1s_com structure... */ + /**************************************************************************/ + + typedef struct + { + BOOL start; + BOOL pause; + BOOL resume; + BOOL stop; + } + T_VM_AMR_PLAY_COMMAND; + + typedef struct + { + UWORD8 session_id; + } + T_VM_AMR_PLAY_PARAM; + + typedef struct + { + T_VM_AMR_PLAY_COMMAND command; + T_VM_AMR_PLAY_PARAM parameters; + } + T_VM_AMR_PLAY_TASK; + + typedef struct + { + BOOL start; + BOOL stop; + } + T_VM_AMR_RECORD_COMMAND; + + typedef struct + { + UWORD8 session_id; + UWORD32 maximum_size; + UWORD8 amr_vocoder; + BOOL dtx; + } + T_VM_AMR_RECORD_PARAM; + + typedef struct + { + T_VM_AMR_RECORD_COMMAND command; + T_VM_AMR_RECORD_PARAM parameters; + } + T_VM_AMR_RECORD_TASK; + + typedef struct + { + T_VM_AMR_PLAY_TASK play; + T_VM_AMR_RECORD_TASK record; + } + T_VM_AMR_TASK; + + /**************************************************************************/ + /* Voice memo l1s structure... */ + /**************************************************************************/ + + typedef struct + { + API *a_du_x; + UWORD8 error_id; + UWORD16 buffer_size; + UWORD8 *ptr_buf; + UWORD32 recorded_size; + } + T_L1S_VM_AMR_RECORD_TASK; + + typedef struct + { + API *a_du_x; + UWORD8 error_id; + UWORD16 buffer_size; + UWORD8 *ptr_buf; + UWORD8 previous_type; + UWORD8 transition_header; + } + T_L1S_VM_AMR_PLAY_TASK; + + typedef struct + { + T_L1S_VM_AMR_PLAY_TASK play; + T_L1S_VM_AMR_RECORD_TASK record; + } + T_L1S_VM_AMR_TASK; + + #endif // L1_VOICE_MEMO_AMR + #if (SPEECH_RECO) + /**************************************************************************/ + /* Speech recogniton l1a_l1s_com structure... */ + /**************************************************************************/ + + typedef struct + { + BOOL enroll_start; + BOOL enroll_stop; + BOOL update_start; + BOOL update_stop; + BOOL reco_start; + BOOL reco_stop; + BOOL processing_start; + BOOL processing_stop; + BOOL speech_start; + BOOL speech_stop; + } + T_SR_COMMAND; + + typedef struct + { + UWORD8 database_id; + UWORD8 word_index; + API *model_address; + UWORD16 *model_temp_address; + BOOL speech; + UWORD16 *speech_address; + UWORD16 *start_address; + UWORD16 *stop_address; + BOOL CTO_algorithm; + UWORD8 index_counter; + UWORD8 vocabulary_size; + UWORD8 word_to_check; + UWORD16 best_word_index; + UWORD32 best_word_score; + UWORD16 second_best_word_index; + UWORD32 second_best_word_score; + UWORD16 third_best_word_index; + UWORD32 third_best_word_score; + UWORD16 fourth_best_word_index; + UWORD32 fourth_best_word_score; + UWORD16 d_sr_db_level; + UWORD16 d_sr_db_noise; + UWORD16 d_sr_model_size; + } + T_SR_PARAM; + + typedef struct + { + T_SR_COMMAND command; + T_SR_PARAM parameters; + } + T_SR_TASK; + + typedef struct + { + UWORD16 time_out; + UWORD8 error; + UWORD16 *speech_pointer; + UWORD16 *end_pointer; + API *a_du_x; + UWORD16 speech_old_status; + BOOL first_pass; + } + T_L1S_SR_TASK; + + typedef struct + { + BOOL emergency_stop; + } + T_L1_SRBACK_COM; + + #endif + + #if (L1_AEC == 1) + typedef struct + { + UWORD16 aec_control; + #if (L1_NEW_AEC) + UWORD16 cont_filter; + UWORD16 granularity_att; + UWORD16 coef_smooth; + UWORD16 es_level_max; + UWORD16 fact_vad; + UWORD16 thrs_abs; + UWORD16 fact_asd_fil; + UWORD16 fact_asd_mut; + #endif + } + T_AEC_PARAM; + + typedef struct + { + BOOL start; + } + T_AEC_COMMAND; + + typedef struct + { + T_AEC_COMMAND command; + T_AEC_PARAM parameters; + } + T_AEC_TASK; + + typedef struct + { + UWORD16 aec_control; + #if (L1_NEW_AEC) + BOOL aec_visibility; + UWORD16 cont_filter; + UWORD16 granularity_att; + UWORD16 coef_smooth; + UWORD16 es_level_max; + UWORD16 fact_vad; + UWORD16 thrs_abs; + UWORD16 fact_asd_fil; + UWORD16 fact_asd_mut; + WORD8 visibility_interval; + #endif + } T_L1S_AEC_TASK; + #endif + +#if(L1_AEC == 2) + + typedef struct + { + BOOL start; + } + T_AEC_COMMAND; + + + typedef struct + { + WORD16 aec_mode; + WORD16 mu; + UWORD16 cont_filter; + WORD16 scale_input_ul; + WORD16 scale_input_dl; + WORD16 div_dmax; + UWORD16 div_swap_good; + UWORD16 div_swap_bad; + WORD16 block_init; + UWORD16 fact_vad; + UWORD16 fact_asd_fil; + UWORD16 fact_asd_mut; + UWORD16 thrs_abs; + UWORD16 es_level_max; + UWORD16 granularity_att; + UWORD16 coef_smooth; +// UWORD16 block_size; + } + T_AEC_PARAMS; + + + typedef struct + { + T_AEC_COMMAND command; + T_AEC_CONTROL aec_control; + T_AEC_PARAMS parameters; + } + T_AEC_TASK; + + +#endif + + + #if (FIR) + typedef struct + { + BOOL fir_loop; + UWORD8 update_fir; + UWORD16 *fir_ul_coefficient; + UWORD16 *fir_dl_coefficient; + } + T_FIR_PARAM; + + typedef struct + { + BOOL start; + } + T_FIR_COMMAND; + + typedef struct + { + T_FIR_COMMAND command; + T_FIR_PARAM parameters; + } + T_FIR_TASK; + #endif + + #if (AUDIO_MODE) + typedef struct + { + UWORD16 audio_mode; + } + T_AUDIO_MODE_PARAM; + + typedef struct + { + BOOL start; + } + T_AUDIO_MODE_COMMAND; + + typedef struct + { + T_AUDIO_MODE_COMMAND command; + T_AUDIO_MODE_PARAM parameters; + } + T_AUDIO_MODE_TASK; + #endif + #if (MELODY_E2) + /**************************************************************************/ + /* Melody format E2 l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL start; + BOOL stop; + } + T_MELODY_E2_COMMAND; + + typedef struct + { + UWORD8 session_id; + UWORD8 error_id; + UWORD16 buffer_size; + UWORD8 *ptr_buf; + BOOL loopback; + UWORD8 header_size; + BOOL emergency_stop; + UWORD8 number_of_instrument; + UWORD8 waves_table_id[SC_AUDIO_MELODY_E2_MAX_NUMBER_OF_INSTRUMENT]; + } + T_MELODY_E2_PARAM; + + typedef struct + { + T_MELODY_E2_COMMAND command; + T_MELODY_E2_PARAM parameters; + } + T_MELODY_E2_TASK; + + /**************************************************************************/ + /* Melody format E2 l1s structure... */ + /**************************************************************************/ + typedef struct + { + UWORD8 error_id; + UWORD16 buffer_size; + UWORD8 *ptr_buf; + UWORD32 counter; + UWORD32 note_start_20ms; + UWORD16 oscillator_start; + UWORD16 oscillator_active; + UWORD16 delta_time; + BOOL extension_flag; + BOOL end_of_file; + } + T_L1S_MELODY_E2_TASK; + + typedef struct + { + UWORD32 timebase; + UWORD16 global_osc_active; + UWORD16 global_osc_to_start; + UWORD8 timebase_mod_60ms; + BOOL dsp_task; + } + T_L1S_MELODY_E2_COMMON_VAR; + + /**************************************************************************/ + /* Melody format E2 audio background structure... */ + /**************************************************************************/ + typedef struct + { + API *API_address; + UWORD16 allowed_size; + UWORD8 number_of_user[SC_AUDIO_MELODY_E2_MAX_NUMBER_OF_INSTRUMENT]; + UWORD8 instrument_id[SC_AUDIO_MELODY_E2_MAX_NUMBER_OF_INSTRUMENT]; + UWORD16 instrument_size[SC_AUDIO_MELODY_E2_MAX_NUMBER_OF_INSTRUMENT]; + } T_AUDIO_BACK_MELODY_E2; + #endif // MELODY_E2 + #if (L1_CPORT == 1) + /**************************************************************************/ + /* Cport l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL start; + } + T_CPORT_COMMAND; + + typedef struct + { + UWORD16 configuration; + UWORD16 ctrl; + UWORD8 cpcfr1; + UWORD8 cpcfr2; + UWORD8 cpcfr3; + UWORD8 cpcfr4; + UWORD8 cptctl; + UWORD8 cpttaddr; + UWORD16 cptdat; + UWORD16 cptvs; + } + T_CPORT_PARAM; + + typedef struct + { + T_CPORT_COMMAND command; + T_CPORT_PARAM parameters; + } + T_CPORT_TASK; + #endif + + #if (L1_EXTERNAL_AUDIO_VOICE_ONOFF == 1 || L1_EXT_MCU_AUDIO_VOICE_ONOFF == 1) + typedef struct + { + BOOL start; + } + T_AUDIO_ONOFF_COMMAND; + + typedef struct + { + #if (L1_EXTERNAL_AUDIO_VOICE_ONOFF == 1) + UWORD8 onoff_value; /* This value is used to indicate the required state from the MMI interface */ + #endif + #if (L1_EXT_MCU_AUDIO_VOICE_ONOFF == 1) + UWORD8 vul_onoff_value;/* This value is used to indicate the required state from the MMI interface */ + UWORD8 vdl_onoff_value;/* This value is used to indicate the required state from the MMI interface */ + + #endif + } + T_AUDIO_ONOFF_PARAM; + + typedef struct + { + T_AUDIO_ONOFF_COMMAND command; + T_AUDIO_ONOFF_PARAM parameters; + } + T_AUDIO_ONOFF_TASK; + #endif + + #if (L1_EXT_MCU_AUDIO_VOICE_ONOFF == 1) + #define L1_AUDIO_VOICE_UL_OFF 0 + #define L1_AUDIO_VOICE_UL_ON 1 + #define L1_AUDIO_VOICE_UL_NO_ACTION 2 + + #define L1_AUDIO_VOICE_DL_OFF 0 + #define L1_AUDIO_VOICE_DL_ON 1 + #define L1_AUDIO_VOICE_DL_NO_ACTION 2 + #endif + + #if (L1_STEREOPATH == 1) + /**************************************************************************/ + /* Stereopath l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL start; + BOOL stop; + } + T_STEREOPATH_DRV_COMMAND; + + typedef struct + { +#if (CODE_VERSION == NOT_SIMULATION) + UWORD8 sampling_frequency; + UWORD8 DMA_allocation; + void (*DMA_int_callback_fct) (UWORD16); + UWORD8 DMA_channel_number; + UWORD8 data_type; + UWORD8 source_port; + WORD8 *source_buffer_address; + UWORD16 element_number; + UWORD16 frame_number; + UWORD8 mono_stereo; + UWORD8 feature_identifier; +#else + UWORD8 dummy; +#endif + } + T_STEREOPATH_DRV_PARAM; + + typedef struct + { + T_STEREOPATH_DRV_COMMAND command; + T_STEREOPATH_DRV_PARAM parameters; + } + T_STEREOPATH_DRV_TASK; + + #endif + + #if (L1_EXT_AUDIO_MGT == 1) + typedef struct + { + UWORD8 session_id; + } + T_L1S_EXT_AUDIO_MGT_VAR; + #endif + + #if (L1_ANR == 1) + /**************************************************************************/ + /* ANR l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL update; + } + T_ANR_COMMAND; + + typedef struct + { + BOOL anr_enable; + WORD16 min_gain; + WORD8 div_factor_shift; + UWORD8 ns_level; + } + T_ANR_PARAM; + + typedef struct + { + T_ANR_COMMAND command; + T_ANR_PARAM parameters; + } + T_ANR_TASK; + #endif + + #if (L1_ANR == 2) + /**************************************************************************/ + /* ANR 2.13 l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL update; + } + T_AQI_ANR_COMMAND; + + typedef struct + { + T_ANR_CONTROL anr_ul_control; + WORD16 control; + WORD16 ns_level; + WORD16 tone_ene_th; + WORD16 tone_cnt_th; + } + T_AQI_ANR_PARAM; + + typedef struct + { + T_AQI_ANR_COMMAND command; + T_AQI_ANR_PARAM parameters; + } + T_AQI_ANR_TASK; + #endif + + #if (L1_IIR == 1) + /**************************************************************************/ + /* IIR l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL update; + } + T_IIR_COMMAND; + + typedef struct + { + BOOL iir_enable; + UWORD8 nb_iir_blocks; + WORD16 *iir_coefs; + UWORD8 nb_fir_coefs; + WORD16 *fir_coefs; + WORD8 input_scaling; + WORD8 fir_scaling; + WORD8 input_gain_scaling; + WORD8 output_gain_scaling; + UWORD16 output_gain; + WORD16 feedback; + } + T_IIR_PARAM; + + typedef struct + { + T_IIR_COMMAND command; + T_IIR_PARAM parameters; + } + T_IIR_TASK; + #endif + + #if (L1_WCM == 1) + /**************************************************************************/ + /* WCM 1.x l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL update; + } + T_AQI_WCM_COMMAND; + + typedef struct + { + T_AQI_WCM_COMMAND command; + T_AQI_WCM_PARAM *parameters; + } + T_AQI_WCM_TASK; + #endif + + #if (L1_IIR == 2) + /**************************************************************************/ + /* IIR 4.x l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL update; + } + T_AQI_IIR_COMMAND; + + typedef struct + { + T_AQI_IIR_COMMAND command; + T_AQI_IIR_PARAM *parameters; + } + T_AQI_IIR_TASK; + #endif + + + #if (L1_AGC_UL == 1 || L1_AGC_DL == 1) + typedef struct + { + BOOL update; + } + T_AQI_AGC_COMMAND; + #endif + + #if (L1_AGC_UL == 1) + /**************************************************************************/ + /* AGC UL l1a_l1s_com structure... */ + /**************************************************************************/ + + typedef struct + { + T_AGC_CONTROL agc_ul_control; + UWORD16 control; + UWORD16 frame_size; + WORD16 targeted_level; + WORD16 signal_up; + WORD16 signal_down; + WORD16 max_scale; + WORD16 gain_smooth_alpha; + WORD16 gain_smooth_alpha_fast; + WORD16 gain_smooth_beta; + WORD16 gain_smooth_beta_fast; + WORD16 gain_intp_flag; + } + T_AQI_AGC_UL_PARAM; + + typedef struct + { + T_AQI_AGC_COMMAND command; + T_AQI_AGC_UL_PARAM parameters; + } + T_AQI_AGC_UL_TASK; + #endif + + #if (L1_AGC_DL == 1) + /**************************************************************************/ + /* AGC DL l1a_l1s_com structure... */ + /**************************************************************************/ + + typedef struct + { + T_AGC_CONTROL agc_dl_control; + UWORD16 control; + UWORD16 frame_size; + WORD16 targeted_level; + WORD16 signal_up; + WORD16 signal_down; + WORD16 max_scale; + WORD16 gain_smooth_alpha; + WORD16 gain_smooth_alpha_fast; + WORD16 gain_smooth_beta; + WORD16 gain_smooth_beta_fast; + WORD16 gain_intp_flag; + } + T_AQI_AGC_DL_PARAM; + + typedef struct + { + T_AQI_AGC_COMMAND command; + T_AQI_AGC_DL_PARAM parameters; + } + T_AQI_AGC_DL_TASK; + #endif + + #if (L1_DRC == 1) + /**************************************************************************/ + /* DRC 1.x l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL update; + } + T_AQI_DRC_COMMAND; + + typedef struct + { + T_AQI_DRC_COMMAND command; + T_AQI_DRC_PARAM *parameters; + } + T_AQI_DRC_TASK; + + + /**************************************************************************/ + /* MP3 MCU-DSP API */ + /**************************************************************************/ + typedef struct + { + API_SIGNED d_drc_speech_mode_samp_f; + API_SIGNED d_drc_num_subbands; + API_SIGNED d_drc_frame_len; + API_SIGNED d_drc_expansion_knee_fb_bs; + API_SIGNED d_drc_expansion_knee_md_hg; + API_SIGNED d_drc_expansion_ratio_fb_bs; + API_SIGNED d_drc_expansion_ratio_md_hg; + API_SIGNED d_drc_max_amplification_fb_bs; + API_SIGNED d_drc_max_amplification_md_hg; + API_SIGNED d_drc_compression_knee_fb_bs; + API_SIGNED d_drc_compression_knee_md_hg; + API_SIGNED d_drc_compression_ratio_fb_bs; + API_SIGNED d_drc_compression_ratio_md_hg; + API_SIGNED d_drc_energy_limiting_th_fb_bs; + API_SIGNED d_drc_energy_limiting_th_md_hg; + API_SIGNED d_drc_limiter_threshold_fb; + API_SIGNED d_drc_limiter_threshold_bs; + API_SIGNED d_drc_limiter_threshold_md; + API_SIGNED d_drc_limiter_threshold_hg; + API_SIGNED d_drc_limiter_hangover_spect_preserve; + API_SIGNED d_drc_limiter_release_fb_bs; + API_SIGNED d_drc_limiter_release_md_hg; + API_SIGNED d_drc_gain_track_fb_bs; + API_SIGNED d_drc_gain_track_md_hg; + API_SIGNED a_drc_low_pass_filter[17]; + API_SIGNED a_drc_mid_band_filter[17]; + } T_DRC_MCU_DSP; + #endif + + #if (L1_LIMITER == 1) + /**************************************************************************/ + /* LIMITER l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL update; + BOOL partial_update; + } + T_LIMITER_COMMAND; + + typedef struct + { + BOOL limiter_enable; + UWORD16 block_size; + UWORD16 slope_update_period; + UWORD16 nb_fir_coefs; + WORD16 *filter_coefs; + WORD16 thr_low_0; + WORD16 thr_low_slope; + WORD16 thr_high_0; + WORD16 thr_high_slope; + WORD16 gain_fall; + WORD16 gain_rise; + } + T_LIMITER_PARAM; + + typedef struct + { + T_LIMITER_COMMAND command; + T_LIMITER_PARAM parameters; + } + T_LIMITER_TASK; + #endif + + #if (L1_ES == 1) + /**************************************************************************/ + /* ES l1a_l1s_com structure... */ + /**************************************************************************/ + typedef struct + { + BOOL update; + } + T_ES_COMMAND; + + typedef struct + { + UWORD8 es_mode; /* ES general configuration */ + WORD16 es_gain_dl; + WORD16 es_gain_ul_1; + WORD16 es_gain_ul_2; + WORD16 tcl_fe_ls_thr; /* TCL reference threshold in FE mode for loud signal */ + WORD16 tcl_dt_ls_thr; /* TCL reference threshold in DT mode for loud signal */ + WORD16 tcl_fe_ns_thr; /* TCL reference threshold in FE mode for nominal signal */ + WORD16 tcl_dt_ns_thr; /* TCL reference threshold in DT mode for nominal signal */ + WORD16 tcl_ne_thr; /* TCL reference threshold in NE mode */ + WORD16 ref_ls_pwr; /* reference power for loud signals in DL */ + WORD16 switching_time; /* switching time (idx) */ + WORD16 switching_time_dt; /* switching time (idx) in DT mode */ + WORD16 hang_time; /* hangover time (idx) */ + WORD16 gain_lin_dl_vect[4]; /* downlink linear gain per state */ + WORD16 gain_lin_ul_vect[4]; /* uplink linear gain per state */ + } + T_ES_CONFIG; + + typedef struct + { + UWORD8 es_enable; + UWORD8 es_behavior; + T_ES_CONFIG es_config; + } + T_ES_PARAM; + + typedef struct + { + T_ES_COMMAND command; + T_ES_PARAM parameters; + } + T_ES_TASK; + #endif + + typedef struct + { + BOOL start; + } + T_AUDIOIT_COMMAND; + + typedef struct + { + T_AUDIOIT_COMMAND command; + } + T_AUDIOIT_TASK; + + // Triton Audio ON/OFF Changes +#if (L1_AUDIO_MCU_ONOFF == 1) + typedef enum + { + L1_AUDIO_NO_ACTION = 0, + L1_AUDIO_TURN_ON = 1, + L1_AUDIO_TURN_OFF = 2 + } + T_L1_AUDIO_ACTION; + + typedef enum + { + L1_INVALID = 0xFF, + L1_AUDIO_UL_OFF = 0, + L1_AUDIO_UL_SWITCHON_STARTED = 1, + L1_AUDIO_UL_ON = 2, + L1_AUDIO_UL_SWITCHOFF_STARTED = 3 + } + T_L1_AUDIO_UL_STATE; + + typedef enum + { + L1_DL_INVALID = 0xFF, + L1_AUDIO_DL_OFF = 0, + L1_AUDIO_DL_SWITCHON_STARTED = 1, + L1_AUDIO_DL_ON = 2, + L1_AUDIO_DL_SWITCHOFF_STARTED = 3 + } + T_L1_AUDIO_DL_STATE; + + typedef enum + { + L1_AUDIO_DL_PATH = 0, + L1_AUDIO_UL_PATH = 1 + } + T_L1_AUDIO_PATH; + + + typedef struct + { + UWORD8 l1_audio_switch_on_ul_request; + UWORD8 l1_audio_switch_on_dl_request; + + UWORD8 l1_audio_ul_on2off_hold_time; + UWORD8 l1_audio_dl_on2off_hold_time; + + T_L1_AUDIO_ACTION l1_audio_ul_action; + T_L1_AUDIO_ACTION l1_audio_dl_action; + + + BOOL l1_audio_ul_switched_on; + BOOL l1_audio_dl_switched_on; + + BOOL l1_audio_ul_switched_off; + BOOL l1_audio_dl_switched_off; + + } + T_L1S_AUDIO_ONOFF_MANAGER; + +#endif // L1_AUDIO_MCU_ONOFF + +#if(L1_MIDI_BUFFER == 1) +typedef struct +{ + UWORD8 a_midi_buffer_size; +#if (DRP_FW_BUILD != 1) +#if ((OP_L1_STANDALONE == 0) && (PSP_STANDALONE == 0)) + UINT16 audio_play_buffer[AUDIO_EXT_MIDI_BUFFER_SIZE*2]; +#endif +#endif + }T_MIDI_DMA_PARAM; +#endif + +#if(L1_BT_AUDIO ==1) +typedef struct +{ + BOOL connected_status; + BOOL pcm_data_ready; + UWORD8 pcm_data_pending; + UWORD8 pcm_data_end; + UWORD8 pcm_data_failed; + L1AudioPcmConfig pcmconfig; + L1AudioPcmBlock pcmblock; + L1AudioConfigureCallback audio_configure_callback; + L1AudioPcmCallback audio_pcmblock_callback; + } T_L1_BT_AUDIO; +#endif + + +#endif // AUDIO_TASK