46 lines
2.0 KiB
Diff
46 lines
2.0 KiB
Diff
From b37ac3beb32e99e1517f3baf7efd98b0b8c80b8a Mon Sep 17 00:00:00 2001
|
|
From: Pierre-Hugues Husson <phh@phh.me>
|
|
Date: Mon, 13 Apr 2020 21:01:16 +0200
|
|
Subject: [PATCH 15/21] There are three SCO devices. Fallback from one to the
|
|
others if needed
|
|
|
|
---
|
|
.../managerdefinitions/src/HwModule.cpp | 21 +++++++++++++++++++
|
|
1 file changed, 21 insertions(+)
|
|
|
|
diff --git a/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
|
|
index 1f9b725a24..ecba6023dd 100644
|
|
--- a/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
|
|
+++ b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
|
|
@@ -294,6 +294,27 @@ sp <HwModule> HwModuleCollection::getModuleForDeviceTypes(audio_devices_t type,
|
|
}
|
|
}
|
|
}
|
|
+ //We didn't find one? Ok but all SCOs are equivalent surely?
|
|
+ if(type == AUDIO_DEVICE_OUT_BLUETOOTH_SCO ||
|
|
+ type == AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET ||
|
|
+ type == AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT) {
|
|
+ ALOGE("Fallback SCO");
|
|
+ if(type != AUDIO_DEVICE_OUT_BLUETOOTH_SCO) {
|
|
+ auto ret = getModuleForDeviceTypes(AUDIO_DEVICE_OUT_BLUETOOTH_SCO, encodedFormat);
|
|
+ ALOGE("Fallback SCO simple? %s", (ret != nullptr) ? "yes" : "no");
|
|
+ if(ret != nullptr) return ret;
|
|
+ }
|
|
+ if(type != AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET) {
|
|
+ auto ret = getModuleForDeviceTypes(AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET, encodedFormat);
|
|
+ ALOGE("Fallback SCO headset? %s", (ret != nullptr) ? "yes" : "no");
|
|
+ if(ret != nullptr) return ret;
|
|
+ }
|
|
+ if(type != AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT) {
|
|
+ auto ret = getModuleForDeviceTypes(AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT, encodedFormat);
|
|
+ ALOGE("Fallback SCO carkit? %s", (ret != nullptr) ? "yes" : "no");
|
|
+ if(ret != nullptr) return ret;
|
|
+ }
|
|
+ }
|
|
return nullptr;
|
|
}
|
|
|
|
--
|
|
2.17.1
|
|
|