From eb6108c45e4659cecd806f278b259202ec27233c Mon Sep 17 00:00:00 2001 From: huyue57 Date: Tue, 28 Nov 2023 20:12:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A0running=E6=B5=81=E6=97=B6=E4=BD=BF?= =?UTF-8?q?=E7=94=A8mic=E7=B1=BB=E5=9E=8B=E9=87=8D=E9=80=89=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huyue57 Change-Id: Id112a1c0d21d630cda7c6d30d837be6f3417c4c6 --- .../server/include/service/audio_policy_service.h | 2 ++ .../server/src/service/audio_policy_service.cpp | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/services/audio_policy/server/include/service/audio_policy_service.h b/services/audio_policy/server/include/service/audio_policy_service.h index 050c1033cf..1732c4c3fc 100644 --- a/services/audio_policy/server/include/service/audio_policy_service.h +++ b/services/audio_policy/server/include/service/audio_policy_service.h @@ -595,6 +595,8 @@ private: void FetchOutputDeviceWhenNoRunningStream(); + void FetchInputDeviceWhenNoRunningStream(); + bool interruptEnabled_ = true; bool isUpdateRouteSupported_ = true; bool isCurrentRemoteRenderer = false; 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 f856c9605c..17e80d26d2 100644 --- a/services/audio_policy/server/src/service/audio_policy_service.cpp +++ b/services/audio_policy/server/src/service/audio_policy_service.cpp @@ -1372,6 +1372,18 @@ void AudioPolicyService::FetchOutputDeviceWhenNoRunningStream() OnPreferredOutputDeviceUpdated(currentActiveDevice_); } +void AudioPolicyService::FetchInputDeviceWhenNoRunningStream() +{ + AUDIO_INFO_LOG("fetch input device when no running stream"); + unique_ptr desc = audioRouterCenter_.FetchInputDevice(SOURCE_TYPE_MIC, -1); + if (desc->deviceType_ == DEVICE_TYPE_NONE || desc->deviceType_ == currentActiveInputDevice_.deviceType_) { + return; + } + currentActiveInputDevice_ = AudioDeviceDescriptor(*desc); + AUDIO_INFO_LOG("currentActiveInputDevice update %{public}d", currentActiveInputDevice_.deviceType_); + OnPreferredInputDeviceUpdated(currentActiveInputDevice_.deviceType_, currentActiveInputDevice_.networkId_); +} + void AudioPolicyService::FetchOutputDevice(vector> &rendererChangeInfos, bool isStreamStatusUpdated = false) { @@ -1464,6 +1476,8 @@ void AudioPolicyService::FetchInputDevice(vector