From 8a2bda1dc50b73c92ef3b199a9c76ae72d908ccb Mon Sep 17 00:00:00 2001 From: littleBoySmile Date: Wed, 4 Sep 2024 13:58:02 +0000 Subject: [PATCH 1/3] when bluetooth device online,the old device is bluetooth, will active new bluetooth device Signed-off-by: littleBoySmile Change-Id: Ie842590aad1e02493fb356e300921489ed3731ff --- .../server/src/service/audio_policy_service.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/services/audio_policy/server/src/service/audio_policy_service.cpp b/services/audio_policy/server/src/service/audio_policy_service.cpp index 1d6bc46069..810a2bc439 100644 --- a/services/audio_policy/server/src/service/audio_policy_service.cpp +++ b/services/audio_policy/server/src/service/audio_policy_service.cpp @@ -3881,6 +3881,18 @@ void AudioPolicyService::OnDeviceStatusUpdated(DeviceType devType, bool isConnec UpdateConnectedDevicesWhenConnecting(updatedDesc, descForCb); reason = AudioStreamDeviceChangeReason::NEW_DEVICE_AVAILABLE; +#ifdef BLUETOOTH_ENABLE + if (updatedDesc.connectState_ == CONNECTED && + updatedDesc.devType_ == DEVICE_TYPE_BLUETOOTH_SCO) { + AudioRendererInfo rendererInfo = {}; + rendererInfo.streamUsage = STREAM_USAGE_VOICE_COMMUNICATION; + std::vector> preferredDeviceList = + GetPreferredOutputDeviceDescriptors(rendererInfo); + if (preferredDeviceList[0]->deviceType_ == DEVICE_TYPE_BLUETOOTH_SCO) { + Bluetooth::AudioHfpManager::SetActiveHfpDevice(preferredDeviceList[0]->macAddress_); + } + } +#endif } else { UpdateConnectedDevicesWhenDisconnecting(updatedDesc, descForCb); reason = AudioStreamDeviceChangeReason::OLD_DEVICE_UNAVALIABLE; -- Gitee From 868e17141ba97f043a826b05b77250e8eb0393c9 Mon Sep 17 00:00:00 2001 From: littleBoySmile Date: Wed, 4 Sep 2024 14:13:16 +0000 Subject: [PATCH 2/3] fix Signed-off-by: littleBoySmile Change-Id: I4093e8b1b3344ef816eb76f6e2da42277797fab9 --- .../audio_policy/server/src/service/audio_policy_service.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/audio_policy/server/src/service/audio_policy_service.cpp b/services/audio_policy/server/src/service/audio_policy_service.cpp index 810a2bc439..1cf9704ff2 100644 --- a/services/audio_policy/server/src/service/audio_policy_service.cpp +++ b/services/audio_policy/server/src/service/audio_policy_service.cpp @@ -3883,7 +3883,7 @@ void AudioPolicyService::OnDeviceStatusUpdated(DeviceType devType, bool isConnec reason = AudioStreamDeviceChangeReason::NEW_DEVICE_AVAILABLE; #ifdef BLUETOOTH_ENABLE if (updatedDesc.connectState_ == CONNECTED && - updatedDesc.devType_ == DEVICE_TYPE_BLUETOOTH_SCO) { + updatedDesc.deviceType_ == DEVICE_TYPE_BLUETOOTH_SCO) { AudioRendererInfo rendererInfo = {}; rendererInfo.streamUsage = STREAM_USAGE_VOICE_COMMUNICATION; std::vector> preferredDeviceList = -- Gitee From 007bd5bbec13e8504d896d5bd1d0eef69e2418c9 Mon Sep 17 00:00:00 2001 From: littleBoySmile Date: Wed, 4 Sep 2024 14:27:20 +0000 Subject: [PATCH 3/3] add size control Signed-off-by: littleBoySmile Change-Id: I9445fb2d7e1addfe0912b62629571e84c27ade3f --- .../audio_policy/server/src/service/audio_policy_service.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/audio_policy/server/src/service/audio_policy_service.cpp b/services/audio_policy/server/src/service/audio_policy_service.cpp index 1cf9704ff2..3c92a6a417 100644 --- a/services/audio_policy/server/src/service/audio_policy_service.cpp +++ b/services/audio_policy/server/src/service/audio_policy_service.cpp @@ -3888,7 +3888,8 @@ void AudioPolicyService::OnDeviceStatusUpdated(DeviceType devType, bool isConnec rendererInfo.streamUsage = STREAM_USAGE_VOICE_COMMUNICATION; std::vector> preferredDeviceList = GetPreferredOutputDeviceDescriptors(rendererInfo); - if (preferredDeviceList[0]->deviceType_ == DEVICE_TYPE_BLUETOOTH_SCO) { + if (preferredDeviceList.size() > 0 && + preferredDeviceList[0]->deviceType_ == DEVICE_TYPE_BLUETOOTH_SCO) { Bluetooth::AudioHfpManager::SetActiveHfpDevice(preferredDeviceList[0]->macAddress_); } } -- Gitee