From 920c105326d63d25af78f30fd79e8895be373aba Mon Sep 17 00:00:00 2001 From: Jvgang Date: Mon, 28 Jul 2025 00:39:48 +0000 Subject: [PATCH] setAudioSceneForFastSource Signed-off-by: Jvgang --- .../audio_service/server/src/audio_server.cpp | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/services/audio_service/server/src/audio_server.cpp b/services/audio_service/server/src/audio_server.cpp index 10085a6667..4bb0291109 100644 --- a/services/audio_service/server/src/audio_server.cpp +++ b/services/audio_service/server/src/audio_server.cpp @@ -220,6 +220,22 @@ static void UpdateArmInstance(std::shared_ptr &sink, primarySink->ResetActiveDeviceForDisconnect(DEVICE_TYPE_NONE); } +static bool SetAudioSceneForFastSource(AudioScene audioScene) +{ +#ifdef SUPPORT_LOW_LATENCY + std::shared_ptr fastVoipSource = GetSourceByProp(HDI_ID_TYPE_FAST, HDI_ID_INFO_VOIP, false); + if (fastVoipSource != nullptr && fastVoipSource->IsInited()) { + fastVoipSource->SetAudioScene(audioScene); + return true; + } +#endif + std::shared_ptr fastSource = GetSourceByProp(HDI_ID_TYPE_FAST, HDI_ID_INFO_DEFAULT, false); + if (fastSource != nullptr && fastSource->IsInited()) { + fastSource->SetAudioScene(audioScene); + return true; + } + return false; +} static void SetAudioSceneForAllSource(AudioScene audioScene) { std::shared_ptr usbSource = GetSourceByProp(HDI_ID_TYPE_PRIMARY, HDI_ID_INFO_USB); @@ -234,20 +250,13 @@ static void SetAudioSceneForAllSource(AudioScene audioScene) if (primarySource != nullptr && primarySource->IsInited()) { primarySource->SetAudioScene(audioScene); } -#ifdef SUPPORT_LOW_LATENCY - std::shared_ptr fastSource = GetSourceByProp(HDI_ID_TYPE_FAST, HDI_ID_INFO_DEFAULT, true); - if (fastSource != nullptr && fastSource->IsInited()) { - fastSource->SetAudioScene(audioScene); - } - std::shared_ptr fastVoipSource = GetSourceByProp(HDI_ID_TYPE_FAST, HDI_ID_INFO_VOIP, true); - if (fastVoipSource != nullptr && fastVoipSource->IsInited()) { - fastVoipSource->SetAudioScene(audioScene); - } -#endif std::shared_ptr a2dpInSource = GetSourceByProp(HDI_ID_TYPE_BLUETOOTH); if (a2dpInSource != nullptr && a2dpInSource->IsInited()) { a2dpInSource->SetAudioScene(audioScene); } + if (SetAudioSceneForFastSource() == false) { + AUDIO_WARNING_LOG("fast source is null or not inited, need not setAudioScene for fast source"); + } } static void SetAudioSceneForAllSink(AudioScene audioScene, bool scoExcludeFlag) -- Gitee