通话状态按键音量与非通话状态按键音量不一致
0赞[Solution]!IC
原始设计有对通话中按键音量调整,以使通话中用户体验更好。若是想要无论是否通话中,按键音
量保持一致,请在Tone2.c,如下修改,
void KT_Play( uint16 freq1, uint16 freq2, uint16 duration )!
{...if( ( AM_IsSpeechOn() ||
AM_IsVoIPOn() ) && AFE_GetOutputDevice(L1SP_KEYTONE)==AFE_GetOutputDevice(L1SP_SPEECH)
) {!
... AFE_GetOutputVolume( L1SP_SPEECH,
&speech_vol1, &speech_digital_gain );!
AFE_SetOutputVolume( L1SP_KEYTONE, speech_vol1, speech_digital_gain );/*去掉此行
,则key tone的analog gain保持不变。*/
if( AFE_GetOutputDevice(L1SP_KEYTONE)
& L1SP_BUFFER_ST ) {!
while( vol > 0 ) {!
dgain = (dgain * 725) >>
10; vol--; /* 3dB down */!
}!
while( vol < 0 ) {!
dgain = (dgain * 1446) >>
10; vol++; /* 3dB up */!
}!
}!
else {!
while( vol > 0 ) {!
dgain = (dgain * 813) >>
10; vol--; /* 2dB down */!
}!
while( vol < 0 ) {!
dgain = (dgain * 1289) >>
10; vol++; /* 2dB up */!
}!
}!
if( dgain >= 0x8000 )!
dgain = 0x7FFF;!
DSP_TONE_AMP2 = dgain; /*原始
设计digital gain有重设置,如果有需要使
音量一致,改成DSP_TONE_AMP2 =
KT_INIT_AMP;则始终为 KT_INIT_AMP。*/!
}!
else {!
DSP_TONE_AMP2 = KT_INIT_AMP;!
AFE_SetOutputVolume(
L1SP_KEYTONE, keytone.volume1,
keytone.digital_gain_index );!
}!
来自半导体社区