📄 am_hw_primitive_builder_main.cc
字号:
01-03-07 baf044 CSGce86614 LCA phones (Neptune supported) don't support some Audio HAPI signals that used to be in GCAPIII but not exist in SEAWEED). - HAPI_AUD_OUT_DITHER_EN, HAPI_CODEC_EN, HAPI_AUD_OUT_HPF_EN, HAPI_AUD_IN_HPF_EN are no longer in use as SEAWEED signals for LCA phones(under DSP responsibility). 01-05-23 mloutris CR - LIBaa02320 Adding call for DSP audio shaping filter to reduce noise in Sapphire. 10-01-01 w18944 LIBbb05664 - Change hardcoded MDI message ids -merged in changes from CSGce94206 10-01-01 w18944 LIBbb07050 - Integrate changes made under CSGce83602 into SIERRA_2.0.0004 10-01-01 w18944 LIBbb06750 - Audio manager changes for pcap codec 01-03-18 rsubram CR - CSGce91729 Audio Manager does not seem to unmute FM radio after VN recording or playback - Removed the initialization of the fm_muted variable in execute as it might get set in logic processor layer. 01-03-08 mtaraba CSGce91273 Fix is_va_active() to report correctly 01-03-26 mloutris CSGce87756 MP3 Lite: Audio Manager needs to support the MP3 clip-on accessory. 01-02-28 shagino CR - CSGce89923 RAM Savings - Make gain tables CONST - Removed am_hw_str_buffer_data buffer 01-02-26 mtaraba CSGce89691 Add DAI support out of a call 00-12-21 mtaraba CSGce82934 main_comp_hardware.h within engine_audio vob should be removed 00-12-18 mloutris CR - CSGce78231 GSM: Adapative Earpiece Volume Control - Added a check of a global flag to indicate whether we should enable/disable AVC, and a new call to the DSP when needed. 00-12-09 cfarrel CR - CSGce82664 Audio is poor for tones, ringers, and conversation. - Allow SAP config MDI message to be sent to the DSP at start up 00-12-07 mloutris CR - CSGce75636 Inhibit sleep mode when a bluetooth device is attached for frame sync. - Added code to check a global to use the attached status of bluetooth to determine if the DSP should be put in sleep mode. 00-11-20 lorih CR - CSGce80865 ZIHF not working -removed send_matrix for disconnecting mic - added conditions for disabling timer 00-11-20 mtaraba CSGce69100 Add support for DAI mode for GSM 00-11-15 cfarrel CR - CSGce80459 We are playing polyphonic alerts on the transducer -changed parameter to ctg_start_tone function call to correctly indicate whether the transducer is being used or not 00-11-10 lorih CR - CSGce74373 Need to reverse setting up audio from ending audio. -added function undo_audio_path to end audio. -changed order of execute to minimize pops and clicks. -added timer to A3/A4 00-10-20 mloutris CR - CSGce77258 Update GSM gain tables. - Comment out the HAPI call with hard coded arguments, and use the values returned from the gain table. 00-10-13 mloutris CR - CSGce76501 Need to set the hardware mask before an audio manager reset. - Removed zeroing out the hardware bits for the mic and speaker path from reset() since they will be defaulted in set_hardware_mask(). 00-10-10 steveh CR - CSGce74921 SBCM improperly implements batt offsets in RX - Set variable current_tone_name to save the name of the current tone being played. 00-10-09 rsubram CR - CSGce75368 Unmuting the audio paths for the dumb accessories when connected - Added more checks to go into the condition to mute or unmute FM radio. 00-09-22 hchuang CSGce66038 Provide an interface function for retrieving tone information - update the argument in update_tone, set_ctg_gain function call. 00-09-13 cfarrel CR - CSGce65418 00-09-11 cfarrel CR - CSGce70125 00-09-11 hchuang CSGce68045 00-08-23 mtaraba CR - CSGce65193 00-08-17 ravis CSGce70270 00-08-04 ktang PR - CSGce67917 00-06-23 Dale Noble CSGce62300 00-06-16 Dale Noble CSGce62300 and releted to 60066 00-06-14 mloutris CR - CSGce58879 00-05-05 shagino CR - CSGce56425 00-04-27 mkloza PR - CSGce54341 00-04-14 hchuang CR - CSGce54805 00-03-31 mloutris PR - CSGce57501 00-03-15 mkloza PR - CSGce51641 00-03-09 cfarrel PR - CSGce49800 00-02-08 cfarrel PR - CSGce48312 00-01-20 hchuang PR - CSGce46205 00-01-05 wchoi PR - CSGce39558 99-12-03 ktang PR - CSGce40494 99-10-25 ktang PR - CSGce40785 99-08-02 mkloza PR - CSGce34326 99-08-03 jvoss CR - CSGce34013*//************** INCLUDES *****************************************************/#include <SUAPI/suapi.h>#include <ENGINE_AUDIO/audio_conditional_compile_def.h>#include <ENGINE_AUDIO/audio_path_types.h>#include <ENGINE_AUDIO/td_rat_commands.h>#include <ENGINE_AUDIO/td_aud_manual_test_req_type.h>#include <ENGINE_AUDIO/td_aud_manual_test_param_type.h>#include <ENGINE_AUDIO/am_util_bits.h>#include <audio/am_globals.h>#include <audio/am_hw_primitive_builder_main.h>#include <audio/AM_HW_Primitive_Builder.H>#include <audio/AM_HW_String_Primitive.H>#include <ENGINE_AUDIO/am_hw_string_primitive.h>#include <audio/AM_Relay_Layer.H>#include <audio/AM_Tone_Sequence_Handler.H>#include <audio/AM_Timer_Vibrate.H>#include <audio/AM_Timer_Container.H>#include <audio/AM_Timer_Non_SC.H>#include <ENGINE_HAPI/hapi_ext.h>#include <ENGINE_HAPI/hapi_clock.h>#include <ENGINE_AUDIO/td_aud_dai_select.h>#include <SYNERGY_DEVICE_LAYER/dl_audio_auf.h>#include <SYNERGY_DEVICE_LAYER/dl_acc_auf.h>#include <SYNERGY_DEVICE_LAYER/dl_db_feature_ids.h>#include <ENGINE_HAPI/hapi_fm_radio.h>#include <ENGINE_HAPI/hapi_portlist.h>#include <ENGINE_HAPI/hapi_mdpi.h>#include <ENGINE_HAPI/hapi_cap_bit.h>#include <ENGINE_HAPI/hapi_cap_ext.h>#include <ENGINE_HAPI/hapi_emu.h>#ifndef __CC_ARM #include "is95_const.h"#endif#include <ENGINE_RTIME_MAINT/rtime_maint_dm.h>#include <SYNERGY_DEVICE_LAYER/dl_db_flexing_auf.h>#if (MAKE_NEPTUNE_CHIPSET == TRUE)#include <ENGINE_RTIME_MAINT/rtime_maint_event_ids.h>#endif#include <ENGINE_AUDIO/am_c_utilities.h>#include <audio/AM_SendMessage.h>#include <ENGINE_AUDIO/aud_prim_ids.h>#include <audio/am_utils.h>#include <ENGINE_AUDIO/aud_alert_info.h>#include <ENGINE_AUDIO/aud_tone_type.h>#include <ENGINE_BOOT/rom_cond.h>#if (MAKE_FTR_UMA == TRUE) #include "uac_auf.h"#endif#if ( MAKE_PTT_CLIENT == MAKE_PTT_CLIENT_WINPHORIA ) #include <SYNERGY_DEVICE_LAYER/dl_ptt_auf.h> #include <dl_ptt_sp/mot_voc.h>#endif/************** LOCAL CONSTANTS **********************************************/extern TD_AUD_TONE_REQ_TONE_TYPE_T current_tone_name;extern BOOL is_ce_bus_unmute;#define AM_HW_DISABLE_DOWNLINK_COMPANDING 0x0001 // DL#define AM_HW_DISABLE_ALL_AUDIO_SHAPING 0x0083 // UL, DL, and DHF#define AM_HW_DISABLE_HAPTICS 0x0031#define AM_HW_ENABLE_AS_DOWNLINK_GAIN 0x0001#define AM_HW_PCAP_CLOCK_NONE 0xFF#define AM_HW_AUL_SAMPLING_RATE_SHIFT 0x11 // Bit offset of sampling rate // stereo dac register.#if (MAKE_NEPTUNE_CHIPSET == TRUE)#define AM_MIC_BIAS2_DELAY 150 /* 150 msec delay */#endifconst MP3_COMPAND_BETA stereo_EMU_multimedia_compand_beta_table[] ={ /*BETA1 BETA2 BETA3 FS(Hz) */ {0x50E2, 0x404D, 0x3D4F}, /* 8000 */ {0x5BBD, 0x4038, 0x4B08}, /* 11025 */ {0x5E41, 0x4033, 0x4E5B}, /* 12000 */ {0x65C0, 0x4026, 0x5896}, /* 16000 */ {0x6C5D, 0x401C, 0x6200}, /* 22050 */ {0x6DD7, 0x4019, 0x6426}, /* 24000 */ {0x721F, 0x4013, 0x6A7C}, /* 32000 */ {0x75C6, 0x400E, 0x7000}, /* 44100 */ {0x7692, 0x400C, 0x7138} /* 48000 */};/************** LOCAL STRUCTURES, ENUMS, AND TYPEDEFS ************************//************** LOCAL FUNCTION PROTOTYPES ************************************//************** LOCAL MACROS *************************************************//************** LOCAL VARIABLES **********************************************/#if (MAKE_TTY == TRUE)UINT16 am_hw_last_tty_mode = AM_HW_TTY_MODE_DISABLED ;static AM_Relay_Layer relay_layer;BOOL am_send_tty_dis_after_call = FALSE;#endif/************** GLOBAL VARIABLES **********************************************/#if (MAKE_NEPTUNE_CHIPSET == TRUE)extern SU_TIMER_HANDLE rtime_maint_mb2_delay_timer_handle; extern SU_TASK_HANDLE rtime_maint_task_handle;#endifBOOL dsp_awake = FALSE;UINT8 am_hw_dsp_sleep_state = AM_HW_DSP_SLEEP_STATE_UNCHANGED;#if (MAKE_TTY == TRUE)BOOL am_is_tty_enabled = FALSE;#endif/************** FUNCTION DEFINITIONS *****************************************//* an instance of string primitive for audio commands*/#ifdef __CC_ARM/* error compilation for ADS (LCA) */AM_HW_String_Primitive AM_HW_Primitive_Builder::am_hw_string_primitive( AM_HW_CMD_STRING_PRIMITIVE, AM_HW_Primitive_Builder::am_hw_str_buffer_cmd);#elseAM_HW_String_Primitive AM_HW_Primitive_Builder::am_hw_string_primitive( AM_HW_CMD_STRING_PRIMITIVE, am_hw_str_buffer_cmd);#endifUINT8 AM_HW_Primitive_Builder::am_hw_str_buffer_cmd[MCU_DSP_AUDIO_COMMAND_WORD_SIZE * sizeof(UINT16)];/* static variable, used to contain hw instructions */AM_AUDIO_INFO* AM_HW_Primitive_Builder::am_hw_current_info_ptr = NULL;#if ( (MAKE_FTR_VR == TRUE) || (MAKE_FTR_VA == TRUE) )AM_APP_VA_VR_SERVER* AM_HW_Primitive_Builder::primitive_va_vr_server = NULL;#endifDL_DB_FEATURE_SETTING_T feature_setting = DL_DB_FEATURE_STATE_PATH_TYPE_HANDSET;AM_HW_SOUND_DATA AM_HW_Primitive_Builder::sound_data = {0, 0, 0, 0, 0, 0, NULL};TD_AUD_TONE_REQ_TONE_TYPE_T AM_HW_Primitive_Builder::previous_tone = DL_AUDIO_TONE_TYPE_INVALID_TONE;UINT8 AM_HW_Primitive_Builder::current_set_length = 0;UINT8* AM_HW_Primitive_Builder::intermediate_ptr = NULL;TD_AUD_TONE_REQ_TONE_TYPE_T AM_HW_Primitive_Builder::tone_to_build = DL_AUDIO_TONE_TYPE_INVALID_TONE;UINT8 AM_HW_Primitive_Builder::current_pcap_clock_rate = AM_HW_PCAP_CLOCK_NONE;/* constructor for AM_hardware_primitive_builder class */AM_HW_Primitive_Builder::AM_HW_Primitive_Builder (AM_AUDIO_INFO* ptr#if ( (MAKE_FTR_VR == TRUE) || (MAKE_FTR_VA == TRUE) ) ,AM_APP_VA_VR_SERVER* va_vr_ptr#endif ){UINT8 index_source;UINT8 index_destination; am_hw_current_info_ptr = ptr; am_hw_current_info_ptr->SAP_config = SAP_DEFAULT_CONFIG; am_hw_current_info_ptr->tone.type = DL_AUDIO_TONE_TYPE_INVALID_TONE; am_hw_current_info_ptr->dai_mode = DL_AUDIO_TONE_TYPE_DAI_NORMAL;#if ( (MAKE_FTR_VR == TRUE) || (MAKE_FTR_VA == TRUE) ) primitive_va_vr_server = va_vr_ptr;#endif for( index_source = 0; index_source <= MATRIX_SOURCE_MAX; index_source++ ) { for( index_destination = 0; index_destination <= MATRIX_DESTINATION_MAX; index_destination++ ) { am_hw_current_info_ptr->matrix[ index_source ][ index_destination ] = DISCONNECT_DSP_AUDIO; } } reset(DL_AUDIO_TONE_TYPE_INVALID_TONE, AM_AUDIO_PATH_ID_INVALID_TONE, 0); }/* DESCRIPTION This function is to set audio info to its default state. (turn everything off) INPUTS None OUTPUTS None IMPORTANT NOTES: None.*/voidAM_HW_Primitive_Builder::reset (TD_AUD_TONE_REQ_TONE_TYPE_T tone, AM_AUDIO_PATH_TYPE tone_path,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -