📄 am_app_logic_processor_mask.cc
字号:
case AM_AUDIO_PATH_ID_ALERT_LITE: info_ptr->speaker = HAPI_AUD_OUT_SEL_ALERT_TRANSDUCER; case AM_AUDIO_PATH_ID_UI_LITE: case AM_AUDIO_PATH_ID_KEY_LITE: case AM_AUDIO_PATH_ID_NETWORK_LITE: // SET THE SPEAKER MATRIX GAINS ONLY FOR TONES, NO MIC IS REQUIRED! gain_table_ptr = get_gain( DL_ACC_DM_HANDSET, TONE_GENERATOR, CODEC_SPEAKER, info_ptr->path_type, volume, in_call ); info_ptr->ctg_gain = gain_table_ptr->dsp_gain_2; info_ptr->hardware_gain_speaker = gain_table_ptr->hardware_gain; set_matrix( info_ptr, TONE_GENERATOR, CODEC_SPEAKER, gain_table_ptr->dsp_gain_1 ); info_ptr->mic = HAPI_AUD_IN_SEL_NO_MIC; break ; case AM_AUDIO_PATH_ID_VOICE: // enable speech output at DSP set_matrix( info_ptr, TONE_GENERATOR, CODEC_SPEAKER, DISCONNECT_DSP_CTG_GAIN ); set_matrix( info_ptr, TONE_GENERATOR, UPLINK_SPEECH, DISCONNECT_DSP_CTG_GAIN ); if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_NOISE_SUPP)) set_bit( info_ptr->instruction_mask, AM_I_MASK_NOISE_SUPPRESS ); if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_ECHO_CTRL)) { set_bit( info_ptr->instruction_mask, AM_I_MASK_ECHO_CONTROL ); } // SET THE SPEAKER MATRIX GAINS. if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_SPKR_BIT0)) { if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_SPKR_BIT1)) { /* 11 = BOOM */ info_ptr->speaker = HAPI_AUD_OUT_SEL_BOOM_HEADSET_SPEAKER; gain_table_ptr = get_gain( ctia_headset_device, DOWNLINK_SPEECH, CODEC_SPEAKER, info_ptr->path_type, volume, in_call ); info_ptr->echo_mode = ECHO_MODE_HEADSET; } else { /* 01 = INTERNAL */ gain_table_ptr = get_gain( DL_ACC_DM_HANDSET, DOWNLINK_SPEECH, CODEC_SPEAKER, info_ptr->path_type, volume, in_call ); info_ptr->echo_mode = ECHO_MODE_HANDSET; } } else if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_SPKR_BIT1)) { /* 10 = external */ info_ptr->speaker = HAPI_AUD_OUT_SEL_CE_BUS_SPEAKER; gain_table_ptr = get_gain( DL_ACC_DM_CE_BUS_TEST, DOWNLINK_SPEECH, CODEC_SPEAKER, info_ptr->path_type, volume, in_call ); info_ptr->echo_mode = ECHO_MODE_HANDSFREE; } else { /* 00 = off */ info_ptr->speaker = HAPI_AUD_OUT_SEL_NO_SPEAKER; gain_table_ptr = get_gain( DL_ACC_DM_HANDSET, DOWNLINK_SPEECH, CODEC_SPEAKER, AM_AUDIO_PATH_ID_INVALID_TONE, volume, in_call ); info_ptr->echo_mode = ECHO_MODE_HANDSFREE; } info_ptr->hardware_gain_speaker = gain_table_ptr->hardware_gain; if (!read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_UL_DL_MUTE)) { set_matrix( info_ptr, DOWNLINK_SPEECH, CODEC_SPEAKER, gain_table_ptr->dsp_gain_1 ); } else { set_matrix( info_ptr, DOWNLINK_SPEECH, CODEC_SPEAKER, MUTE_DSP_AUDIO ); } // SET THE SIDETONE (FEEDBACK) GAINS. if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_SIDETONE)) { set_matrix( info_ptr, CODEC_MIC, CODEC_SPEAKER, gain_table_ptr->dsp_gain_2 ); } // SET THE MIC MATRIX GAINS. if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_MIC_BIT0)) { if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_MIC_BIT1)) { /* 11 = boom */ info_ptr->mic = HAPI_AUD_IN_SEL_BOOM_HEADSET_MIC; gain_table_ptr = get_gain( ctia_headset_device, CODEC_MIC, UPLINK_SPEECH, info_ptr->path_type, volume, in_call ); } else { /* 01 = internal */ gain_table_ptr = get_gain( DL_ACC_DM_HANDSET, CODEC_MIC, UPLINK_SPEECH, info_ptr->path_type, volume, in_call ); } } else { if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_MIC_BIT1)) { /* 10 = external */ info_ptr->mic = HAPI_AUD_IN_SEL_CE_BUS_MIC; gain_table_ptr = get_gain( DL_ACC_DM_CE_BUS_TEST, CODEC_MIC, UPLINK_SPEECH, info_ptr->path_type, volume, in_call ); } else { /* 00 = off */ info_ptr->mic = HAPI_AUD_IN_SEL_NO_MIC; gain_table_ptr = get_gain( DL_ACC_DM_HANDSET, CODEC_MIC, UPLINK_SPEECH, AM_AUDIO_PATH_ID_INVALID_TONE, volume, in_call ); } } info_ptr->hardware_gain_mic = gain_table_ptr->hardware_gain; if (!read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_UL_DL_MUTE)) { set_matrix( info_ptr, CODEC_MIC, UPLINK_SPEECH, gain_table_ptr->dsp_gain_1 ); } else { set_matrix( info_ptr, CODEC_MIC, UPLINK_SPEECH, MUTE_DSP_AUDIO ); } break ; case AM_AUDIO_PATH_ID_VT_VOICE: //kind of like voice, but without the effects set_matrix( info_ptr, TONE_GENERATOR, CODEC_SPEAKER, DISCONNECT_DSP_CTG_GAIN ); set_matrix( info_ptr, TONE_GENERATOR, UPLINK_SPEECH, DISCONNECT_DSP_CTG_GAIN ); // SET THE SPEAKER MATRIX GAINS. if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_SPKR_BIT0)) { if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_SPKR_BIT1)) { /* 11 = BOOM */ info_ptr->speaker = HAPI_AUD_OUT_SEL_BOOM_HEADSET_SPEAKER; gain_table_ptr = get_gain( ctia_headset_device, DOWNLINK_SPEECH, CODEC_SPEAKER, info_ptr->path_type, volume, in_call ); } else { /* 01 = INTERNAL */ gain_table_ptr = get_gain( DL_ACC_DM_HANDSET, DOWNLINK_SPEECH, CODEC_SPEAKER, info_ptr->path_type, volume, in_call ); } } else if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_SPKR_BIT1)) { /* 10 = external */ info_ptr->speaker = HAPI_AUD_OUT_SEL_CE_BUS_SPEAKER; gain_table_ptr = get_gain( DL_ACC_DM_CE_BUS_TEST, DOWNLINK_SPEECH, CODEC_SPEAKER, info_ptr->path_type, volume, in_call ); } else { /* 00 = off */ info_ptr->speaker = HAPI_AUD_OUT_SEL_NO_SPEAKER; gain_table_ptr = get_gain( DL_ACC_DM_HANDSET, DOWNLINK_SPEECH, CODEC_SPEAKER, AM_AUDIO_PATH_ID_INVALID_TONE, volume, in_call ); } info_ptr->hardware_gain_speaker = gain_table_ptr->hardware_gain; if (!read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_UL_DL_MUTE)) { set_matrix( info_ptr, DOWNLINK_SPEECH, CODEC_SPEAKER, gain_table_ptr->dsp_gain_1 ); } else { set_matrix( info_ptr, DOWNLINK_SPEECH, CODEC_SPEAKER, MUTE_DSP_AUDIO ); } // SET THE SIDETONE (FEEDBACK) GAINS. if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_SIDETONE)) { set_matrix( info_ptr, CODEC_MIC, CODEC_SPEAKER, gain_table_ptr->dsp_gain_2 ); } // SET THE MIC MATRIX GAINS. if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_MIC_BIT0)) { if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_MIC_BIT1)) { /* 11 = boom */ info_ptr->mic = HAPI_AUD_IN_SEL_BOOM_HEADSET_MIC; gain_table_ptr = get_gain( ctia_headset_device, CODEC_MIC, UPLINK_SPEECH, info_ptr->path_type, volume, in_call ); } else { /* 01 = internal */ gain_table_ptr = get_gain( DL_ACC_DM_HANDSET, CODEC_MIC, UPLINK_SPEECH, info_ptr->path_type, volume, in_call ); } } else { if (read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_MIC_BIT1)) { /* 10 = external */ info_ptr->mic = HAPI_AUD_IN_SEL_CE_BUS_MIC; gain_table_ptr = get_gain( DL_ACC_DM_CE_BUS_TEST, CODEC_MIC, UPLINK_SPEECH, info_ptr->path_type, volume, in_call ); } else { /* 00 = off */ info_ptr->mic = HAPI_AUD_IN_SEL_NO_MIC; gain_table_ptr = get_gain( DL_ACC_DM_HANDSET, CODEC_MIC, UPLINK_SPEECH, AM_AUDIO_PATH_ID_INVALID_TONE, volume, in_call ); } } info_ptr->hardware_gain_mic = gain_table_ptr->hardware_gain; if (!read_bit(audio_ctia_mode,AUDIO_CTIA_MASK_UL_DL_MUTE)) { set_matrix( info_ptr, CODEC_MIC, UPLINK_SPEECH, gain_table_ptr->dsp_gain_1 ); } else { set_matrix( info_ptr, CODEC_MIC, UPLINK_SPEECH, MUTE_DSP_AUDIO ); } break ; case AM_AUDIO_PATH_ID_DATA: case AM_AUDIO_PATH_ID_INVALID_TONE: case AM_AUDIO_PATH_ID_UNUSED_TONE: default: break ; } }#if ((AUDIO_GSM == TRUE) || (AUDIO_TDMA == TRUE)) /****************************************************************************/ /* DAI MODE */ /****************************************************************************/ else if( (audio_dai_mode == DL_AUDIO_TONE_TYPE_DAI_ANALOG_UPLINK) || (audio_dai_mode == DL_AUDIO_TONE_TYPE_DAI_ANALOG_DOWNLINK) || (audio_dai_mode == DL_AUDIO_TONE_TYPE_DAI_DIGITAL_UPLINK) || (audio_dai_mode == DL_AUDIO_TONE_TYPE_DAI_DIGITAL_DOWNLINK)) { UINT8 dai_device_type; // PHONE MODE info_ptr->phone_mode = ~(1<<AM_HANDSFREE_AUDIO); // READ THE VOLUME STEP WE ARE TRYING TO SET TO. if(volume == INVALID_VOLUME_STEP) { volume = relay_layer.get_volume_step ( info_ptr ); } if ((audio_dai_mode == DL_AUDIO_TONE_TYPE_DAI_DIGITAL_UPLINK) ||(audio_dai_mode == DL_AUDIO_TONE_TYPE_DAI_DIGITAL_DOWNLINK)) { dai_device_type = DL_ACC_DM_BT_HEADSET; } else if (device_array[ DL_ACC_DM_HEADSET ]) { dai_device_type= DL_ACC_DM_HEADSET; } else if (device_array[ DL_ACC_DM_EMU_HEADSET ]) { dai_device_type = DL_ACC_DM_EMU_HEADSET; } else { dai_device_type = DL_ACC_DM_HANDSET; } set_bit( info_ptr->instruction_mask, AM_I_MASK_MIC_FILTER ); set_bit( info_ptr->instruction_mask, AM_I_MASK_SPKR_FILTER ); // DETERMINE THE AUDIO GAINS AND SET THE DSP MATRIX GAINS. switch ( audio_dai_mode ) { case DL_AUDIO_TONE_TYPE_DAI_ANALOG_UPLINK: case DL_AUDIO_TONE_TYPE_DAI_ANALOG_DOWNLINK: // SPEAKER AND MIC SELECTION info_ptr->speaker = HAPI_AUD_OUT_SEL_HANDSET_SPEAKER; info_ptr->mic = HAPI_AUD_IN_SEL_HANDSET_MIC; set_matrix( info_ptr, TONE_GENERATOR, CODEC_SPEAKER, DISCONNECT_DSP_CTG_GAIN ); // SET THE SPEAKER MATRIX GAINS. gain_table_ptr = get_gain( dai_device_type, DOWNLINK_SPEECH, CODEC_SPEAKER, AM_AUDIO_PATH_ID_VOICE, volume, in_call ); info_ptr->hardware_gain_speaker = gain_table_ptr->hardware_gain; set_matrix( info_ptr, SAP_RX_SLOT_1, CODEC_SPEAKER, 0x0800 ); // SET THE MIC MATRIX GAINS. gain_table_ptr = get_gain( dai_device_type, CODEC_MIC, UPLINK_SPEECH, AM_AUDIO_PATH_ID_VOICE, volume, in_call ); info_ptr->hardware_gain_mic = gain_table_ptr->hardware_gain; set_matrix( info_ptr, CODEC_MIC, SAP_TX_SLOT_1, 0x0800 ); // ENABLE AUDIO SHAPING FILTER set_bit( info_ptr->instruction_mask, AM_I_MASK_AUDIO_HANDSET_FILTERING ); break; case DL_AUDIO_TONE_TYPE_DAI_DIGITAL_UPLINK: case DL_AUDIO_TONE_TYPE_DAI_DIGITAL_DOWNLINK: // SPEAKER AND MIC SELECTION info_ptr->speaker = HAPI_AUD_OUT_SEL_NO_SPEAKER; info_ptr->mic = HAPI_AUD_IN_SEL_NO_MIC; set_matrix( info_ptr, TONE_GENERATOR, CODEC_SPEAKER, DISCONNECT_DSP_CTG_GAIN ); // SET THE SPEAKER MATRIX GAINS. gain_table_ptr = get_gain( dai_device_type, DOWNLINK_SPEECH, CODEC_SPEAKER, AM_AUDIO_PATH_ID_VOICE, volume, in_call ); info_ptr->hardware_gain_speaker = gain_table_ptr->hardware_gain; set_matrix( info_ptr, DOWNLINK_SPEECH, SAP_TX_SLOT_1, 0x0800 ); // SET THE MIC MATRIX GAINS. gain_table_ptr = get_gain( dai_device_type, CODEC_MIC, UPLINK_SPEECH, AM_AUDIO_PATH_ID_VOICE, volume, in_call ); info_ptr->hardware_gain_mic = gain_table_ptr->hardware_gain; set_matrix( info_ptr, SAP_RX_SLOT_1, UPLINK_SPEECH, 0x0800 ); // DISABLE AUDIO SHAPING FILTER clear_bit( info_ptr->instruction_mask, AM_I_MASK_AUDIO_HANDSET_FILTERING ); break; default: break ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -