一、自动工模下——FactoryModeQuickTest.c
在函数void mmi_fm_enter_quick_test_mic(void)下——mic啸叫
增加宏控,调整喇叭音量或者麦克音量,如:
#if defined(SAGETEL60A_MA2810_BB)
L1SP_SetOutputVolume(100,0);
L1SP_SetMicrophoneVolume(100);
#else
L1SP_SetOutputVolume(180,0);
L1SP_SetMicrophoneVolume(150);
#endif
若不行,增加宏控,修改模式,在对应模式下再调整喇叭音量或者麦克音量,如:
g_fm_contxt->eachloop_contxt.EchoLoopTestOn = MMI_TRUE;
#if defined(SAGETEL60A_MA2810_BB)
FM_SendSetAudioModeReq(AUD_MODE_LOUDSPK);
#else
FM_SendSetAudioModeReq(AUD_MODE_NORMAL);
#endif
/* open loopback */
kal_sleep_task(kal_milli_secs_to_ticks(100));
//mmi_fm_set_loopback(MMI_TRUE);
#if defined(SAGETEL60A_MA2810_BB)
L1SP_SetOutputVolume(100,0);
L1SP_SetMicrophoneVolume(100);
#else
L1SP_SetOutputVolume(180,0);
L1SP_SetMicrophoneVolume(150);
#endif
二、手动工模下——FactoryModeAudio.c
在函数static void mmi_fm_set_echo_loop(U32 state, U16 s, kal_bool on) 下——mic啸叫
同自动工模增加宏控,调整音量
三、添加标志位修改啸叫问题
#if defined(SAGETEL60A_MA2427_BB)||defined(SAGETEL60A_MA2425_BB)||defined(SAGETEL60A_MA2810_BB)
MMI_BOOL quick_flag=MMI_TRUE;
#endif
#if defined(SAGETEL60A_MA2427_BB)||defined(SAGETEL60A_MA2425_BB)||defined(SAGETEL60A_MA2810_BB)
quick_flag=MMI_TRUE;
#endif
#if defined(SAGETEL60A_MA2427_BB)||defined(SAGETEL60A_MA2425_BB)||defined(SAGETEL60A_MA2810_BB)
if(quick_flag)
{
common_cntx->currentTest = (U8)FM_TEST_MIC;
FM_SendStopAudioReq(0);
//Media_Stop();
g_fm_contxt->eachloop_contxt.EchoLoopTestOn = MMI_TRUE;
FM_SendSetAudioModeReq(AUD_MODE_LOUDSPK);
/* open loopback */
kal_sleep_task(kal_milli_secs_to_ticks(100));
//mmi_fm_set_loopback(MMI_TRUE);
L1SP_SetOutputVolume(180,0); //linjianbin add
L1SP_SetMicrophoneVolume(150);
aud_util_proc_in_med(MOD_MMI,
mmi_fm_set_loopback,
MMI_TRUE,
NULL);
quick_flag=MMI_FALSE;
}
#else
common_cntx->currentTest = (U8)FM_TEST_MIC;
FM_SendStopAudioReq(0);
//Media_Stop();
g_fm_contxt->eachloop_contxt.EchoLoopTestOn = MMI_TRUE;
FM_SendSetAudioModeReq(AUD_MODE_NORMAL);
/* open loopback */
kal_sleep_task(kal_milli_secs_to_ticks(100));
//mmi_fm_set_loopback(MMI_TRUE);
L1SP_SetOutputVolume(196,0); //linjianbin add
aud_util_proc_in_med(MOD_MMI,
mmi_fm_set_loopback,
MMI_TRUE,
NULL);
#endif
四、插拔耳机啸叫
在函数void mmi_fm_enter_quick_test_headset(void)下
#ifdef __SMN_NEW_ITEL_FACTORY_MODE__//bug144043
//bug172085 zhangjiazhu add 20190507
if (g_earphone_plugged)
smn_fm_auto_test_common(NOSENDKEY_CNT_START_SHOW,(U8*) L"Please test headset \nEarphone is in",0,FM_AutoTest_Headset,g_earphone_plugged);
else
//bug172085 zhangjiazhu add 20190507
{
smn_fm_auto_test_common(NOSENDKEY_CNT_START_SHOW,(U8*) L"Please test headset \nEarphone is out",0,FM_AutoTest_Headset,g_earphone_plugged);//srv_earphone_is_plug_in()//bug144043 zhangjiazhu add 20181205
#ifdef __SAGETEL_PRODUCT_NAME_DL194_T101__
g_fm_contxt->eachloop_contxt.HeadsetTestOn = FALSE;
/* set headset mode */
FM_SendSetAudioModeReq(AUD_MODE_HEADSET);
/* close loopback */
kal_sleep_task(kal_milli_secs_to_ticks(800));
//mmi_fm_set_loopback(MMI_FALSE);
aud_util_proc_in_med(MOD_MMI,
mmi_fm_set_loopback,
MMI_FALSE,
NULL);
#endif
}
#else
mmi_fm_auto_test_common(NOSENDKEY_CNT_START_SHOW,(U8*) GetString(STR_ID_FM_AUTOTEST_HEADSET),HEADSET_DURATION,FM_AutoTest_Headset);
#endif