SpatializerHelper: Fix device compatibility with spatial audio

Do not consider BT SCO devices as compatible with spatial audio.
This is justified because SCO is mono by nature. It also fixes the
problem of having two devices with the same mac address but conflicting
spatial audio settings.

Bug: 242777739
Test: verify head tracking still works after a phone call
Change-Id: I1918f8ec82e1d79416804a6ec47df7181b0d79eb
This commit is contained in:
Eric Laurent
2022-08-19 14:46:23 +02:00
parent d8ebffe476
commit f9de59ae7e

View File

@@ -727,8 +727,11 @@ public class SpatializerHelper {
} }
private boolean isDeviceCompatibleWithSpatializationModes(@NonNull AudioDeviceAttributes ada) { private boolean isDeviceCompatibleWithSpatializationModes(@NonNull AudioDeviceAttributes ada) {
// modeForDevice will be neither transaural or binaural for devices that do not support
// spatial audio. For instance mono devices like earpiece, speaker safe or sco must
// not be included.
final byte modeForDevice = (byte) SPAT_MODE_FOR_DEVICE_TYPE.get(ada.getType(), final byte modeForDevice = (byte) SPAT_MODE_FOR_DEVICE_TYPE.get(ada.getType(),
/*default when type not found*/ SpatializationMode.SPATIALIZER_BINAURAL); /*default when type not found*/ -1);
if ((modeForDevice == SpatializationMode.SPATIALIZER_BINAURAL && mBinauralSupported) if ((modeForDevice == SpatializationMode.SPATIALIZER_BINAURAL && mBinauralSupported)
|| (modeForDevice == SpatializationMode.SPATIALIZER_TRANSAURAL || (modeForDevice == SpatializationMode.SPATIALIZER_TRANSAURAL
&& mTransauralSupported)) { && mTransauralSupported)) {