mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-12-17 03:44:45 -05:00
b5bc269743
Signed-off-by: Tad <tad@spotco.us>
49 lines
2.6 KiB
Diff
49 lines
2.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: ValdikSS <iam@valdikss.org.ru>
|
|
Date: Mon, 10 Sep 2018 02:02:50 +0300
|
|
Subject: [PATCH] SBC Dual Channel (SBC HD Audio) support
|
|
|
|
"HD Audio" checkbox is not checked for SBC by default.
|
|
|
|
Change-Id: Id45c48aeaa2eb86f3dffa0cc825d1e09f1c00187
|
|
---
|
|
src/com/android/bluetooth/a2dp/A2dpCodecConfig.java | 8 ++++++++
|
|
src/com/android/bluetooth/a2dp/A2dpService.java | 5 ++++-
|
|
2 files changed, 12 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/com/android/bluetooth/a2dp/A2dpCodecConfig.java b/src/com/android/bluetooth/a2dp/A2dpCodecConfig.java
|
|
index 8127e766b..890f4c188 100644
|
|
--- a/src/com/android/bluetooth/a2dp/A2dpCodecConfig.java
|
|
+++ b/src/com/android/bluetooth/a2dp/A2dpCodecConfig.java
|
|
@@ -109,6 +109,14 @@ class A2dpCodecConfig {
|
|
BluetoothCodecConfig codecConfig = codecConfigArray[i];
|
|
if (!codecConfig.isMandatoryCodec()) {
|
|
codecConfigArray[i] = null;
|
|
+ } else {
|
|
+ // Rebuild SBC selectable codec with Dual Channel (SBC HD audio)
|
|
+ codecConfigArray[i] = new BluetoothCodecConfig(
|
|
+ BluetoothCodecConfig.SOURCE_CODEC_TYPE_SBC, mA2dpSourceCodecPrioritySbc,
|
|
+ BluetoothCodecConfig.SAMPLE_RATE_NONE,
|
|
+ BluetoothCodecConfig.BITS_PER_SAMPLE_NONE,
|
|
+ BluetoothCodecConfig.CHANNEL_MODE_DUAL_CHANNEL, 0 /* codecSpecific1 */,
|
|
+ 0 /* codecSpecific2 */, 0 /* codecSpecific3 */, 0 /* codecSpecific4 */);
|
|
}
|
|
}
|
|
|
|
diff --git a/src/com/android/bluetooth/a2dp/A2dpService.java b/src/com/android/bluetooth/a2dp/A2dpService.java
|
|
index f9d0501c2..18a00646a 100644
|
|
--- a/src/com/android/bluetooth/a2dp/A2dpService.java
|
|
+++ b/src/com/android/bluetooth/a2dp/A2dpService.java
|
|
@@ -1039,7 +1039,10 @@ public class A2dpService extends ProfileService {
|
|
BluetoothCodecStatus codecStatus = sm.getCodecStatus();
|
|
if (codecStatus != null) {
|
|
for (BluetoothCodecConfig config : codecStatus.getCodecsSelectableCapabilities()) {
|
|
- if (config.isMandatoryCodec()) {
|
|
+ boolean isMandatoryCodecWithDualChannel = (config.isMandatoryCodec()
|
|
+ && (config.getChannelMode() & config.CHANNEL_MODE_DUAL_CHANNEL)
|
|
+ == config.CHANNEL_MODE_DUAL_CHANNEL);
|
|
+ if (config.isMandatoryCodec() || !isMandatoryCodecWithDualChannel) {
|
|
hasMandatoryCodec = true;
|
|
} else {
|
|
supportsOptional = true;
|