芯方式

通话状态按键音量与非通话状态 按键音量不一致

0
阅读(1925)

[Solution]
原始设计有对通话中按键音量调整,以使通话中用户体验更好。若是想要无论是否通话中,按键音
量保持一致,请在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 );
}


来自半导体社区