FreeCalypso > hg > freecalypso-sw
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