www.pudn.com > layer1.rar > l1audio_defty.h


/************* 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 "l1sw.cfg" 
#include "l1audio_msgty.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_VOICE_MEMO_AMR) 
    /***************************************************************************************/ 
    /* Voice memo amr l1a_l1s_com structure...                                             */ 
    /***************************************************************************************/ 
 
    typedef struct 
    { 
      BOOL  start; 
      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; 
	  void			(*pcmfillCallback)(); 
    } 
    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_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_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     
	 
 
 
 
#endif // AUDIO_TASK