diff gsm-fw/L1/audio_include/l1audio_defty.h @ 603:d638de8cc6b8

gsm-fw/L1/audio_*/*.h: replacing Leonardo headers with LoCosto versions
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Thu, 28 Aug 2014 18:40:12 +0000
parents 57ad8f4d5cb5
children 45bf440cc677
line wrap: on
line diff
--- a/gsm-fw/L1/audio_include/l1audio_defty.h	Sun Aug 17 21:35:23 2014 +0000
+++ b/gsm-fw/L1/audio_include/l1audio_defty.h	Thu Aug 28 18:40:12 2014 +0000
@@ -3,10 +3,15 @@
  * L1AUDIO_DEFTY.H
  *
  *        Filename l1audio_defty.h
- *  Copyright 2003 (C) Texas Instruments  
+ *  Copyright 2003 (C) Texas Instruments
  *
  ************* Revision Controle System Header *************/
 
+#include "l1sw.cfg"
+#include "l1audio_msgty.h"
+#include "l1audio_cust.h"
+#include "l1audio_const.h"
+#include "l1audio_btapi.h"
 #if (AUDIO_TASK == 1)
 
   #if (KEYBEEP)
@@ -186,14 +191,102 @@
     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...                                                 */
+    /* Voice memo amr l1a_l1s_com structure...                                             */
     /***************************************************************************************/
 
     typedef struct
     {
       BOOL  start;
+      BOOL pause;
+      BOOL resume;
       BOOL  stop;
     }
     T_VM_AMR_PLAY_COMMAND;
@@ -229,8 +322,8 @@
 
     typedef struct
     {
-        T_VM_AMR_RECORD_COMMAND   command;
-        T_VM_AMR_RECORD_PARAM     parameters;
+      T_VM_AMR_RECORD_COMMAND command;
+      T_VM_AMR_RECORD_PARAM   parameters;
     }
     T_VM_AMR_RECORD_TASK;
 
@@ -349,7 +442,7 @@
 
   #endif
 
-  #if (AEC)
+  #if (L1_AEC == 1)
     typedef struct
     {
       UWORD16 aec_control;
@@ -397,6 +490,50 @@
     } 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
     {
@@ -545,4 +682,519 @@
     }
     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