disable audio balance in voip call for mono channel
When modifying "Audio balance" to Right, the mMasterBalanceLeft
will be set to 0.0. The action will cause no sound on earpiece
in voip calls.
For mono sound, we think the master audio balance should be disabled
when voip for earpiece.
Change-Id: I1ae010d7cd352bf7a9be251775d62c78fc15e1b0
Merged-In: I1ae010d7cd352bf7a9be251775d62c78fc15e1b0
Signed-off-by: zhangjincheng <zhangjincheng@xiaomi.com>
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 16c72cc..7ba9243 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -6196,12 +6196,17 @@
if (left > GAIN_FLOAT_UNITY) {
left = GAIN_FLOAT_UNITY;
}
- left *= v * mMasterBalanceLeft; // DirectOutputThread balance applied as track volume
right = float_from_gain(gain_minifloat_unpack_right(vlr));
if (right > GAIN_FLOAT_UNITY) {
right = GAIN_FLOAT_UNITY;
}
- right *= v * mMasterBalanceRight;
+ left *= v;
+ right *= v;
+ if (mAudioFlinger->getMode() != AUDIO_MODE_IN_COMMUNICATION
+ || audio_channel_count_from_out_mask(mChannelMask) > 1) {
+ left *= mMasterBalanceLeft; // DirectOutputThread balance applied as track volume
+ right *= mMasterBalanceRight;
+ }
}
if (lastTrack) {