FreeCalypso > hg > fc-magnetite
view src/cs/layer1/audio_include/l1audio_defty.h @ 600:8f50b202e81f
board preprocessor conditionals: prep for more FC hw in the future
This change eliminates the CONFIG_TARGET_FCDEV3B preprocessor symbol and
all preprocessor conditionals throughout the code base that tested for it,
replacing them with CONFIG_TARGET_FCFAM or CONFIG_TARGET_FCMODEM. These
new symbols are specified as follows:
CONFIG_TARGET_FCFAM is intended to cover all hardware designs created by
Mother Mychaela under the FreeCalypso trademark. This family will include
modem products (repackagings of the FCDEV3B, possibly with RFFE or even
RF transceiver changes), and also my desired FreeCalypso handset product.
CONFIG_TARGET_FCMODEM is intended to cover all FreeCalypso modem products
(which will be firmware-compatible with the FCDEV3B if they use TI Rita
transceiver, or will require a different fw build if we switch to one of
Silabs Aero transceivers), but not the handset product. Right now this
CONFIG_TARGET_FCMODEM preprocessor symbol is used to conditionalize
everything dealing with MCSI.
At the present moment the future of FC hardware evolution is still unknown:
it is not known whether we will ever have any beyond-FCDEV3B hardware at all
(contingent on uncertain funding), and if we do produce further FC hardware
designs, it is not known whether they will retain the same FIC modem core
(triband), if we are going to have a quadband design that still retains the
classic Rita transceiver, or if we are going to switch to Silabs Aero II
or some other transceiver. If we produce a quadband modem that still uses
Rita, it will run exactly the same fw as the FCDEV3B thanks to the way we
define TSPACT signals for the RF_FAM=12 && CONFIG_TARGET_FCFAM combination,
and the current fcdev3b build target will be renamed to fcmodem. OTOH, if
that putative quadband modem will be Aero-based, then it will require a
different fw build target, the fcdev3b target will stay as it is, and the
two targets will both define CONFIG_TARGET_FCFAM and CONFIG_TARGET_FCMODEM,
but will have different RF_FAM numbers. But no matter which way we are
going to evolve, it is not right to have conditionals on CONFIG_TARGET_FCDEV3B
in places like ACI, and the present change clears the way for future
evolution.
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Mon, 01 Apr 2019 01:05:24 +0000 |
| parents | 945cf7f506b2 |
| children |
line wrap: on
line source
/************* Revision Controle System Header ************* * GSM Layer 1 software * L1AUDIO_DEFTY.H * * Filename l1audio_defty.h * Copyright 2003 (C) Texas Instruments * ************* Revision Controle System Header *************/ #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 (AEC) 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 (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 #endif // AUDIO_TASK
