From 85a54eadd71c1838b4175b96f9b7c20c41b9f8e0 Mon Sep 17 00:00:00 2001 From: maohangyu <1027148132@qq.com> Date: Wed, 10 Sep 2025 12:00:11 +0800 Subject: [PATCH 1/2] disable media flow call when in zone Signed-off-by: maohangyu <1027148132@qq.com> --- .../inner_api/native/audiocommon/include/audio_info.h | 10 +++++++--- .../server/domain/router/audio_router_center.cpp | 7 ++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/interfaces/inner_api/native/audiocommon/include/audio_info.h b/interfaces/inner_api/native/audiocommon/include/audio_info.h index b7e7777a3b..4076cd418a 100644 --- a/interfaces/inner_api/native/audiocommon/include/audio_info.h +++ b/interfaces/inner_api/native/audiocommon/include/audio_info.h @@ -1984,16 +1984,17 @@ enum XperfEventId : int32_t { struct FetchDeviceInfo : public Parcelable { StreamUsage streamUsage = STREAM_USAGE_UNKNOWN; + StreamUsage preStreamUsage = STREAM_USAGE_UNKNOWN; int32_t clientUID = -1; RouterType routerType = ROUTER_TYPE_NONE; AudioPipeType audioPipeType = PIPE_TYPE_UNKNOWN; AudioPrivacyType privacyType = PRIVACY_TYPE_PUBLIC; std::string caller = ""; - FetchDeviceInfo(StreamUsage streamUsage, int32_t clientUID, + FetchDeviceInfo(StreamUsage streamUsage, StreamUsage preStreamUsage, int32_t clientUID, RouterType routerType, AudioPipeType audioPipeType, AudioPrivacyType privacyType) - : streamUsage(streamUsage), clientUID(clientUID), routerType(routerType), - audioPipeType(audioPipeType), privacyType(privacyType) + : streamUsage(streamUsage), preStreamUsage(preStreamUsage), clientUID(clientUID), + routerType(routerType), audioPipeType(audioPipeType), privacyType(privacyType) {} FetchDeviceInfo() = default; @@ -2001,6 +2002,7 @@ struct FetchDeviceInfo : public Parcelable { bool Marshalling(Parcel &parcel) const override { return parcel.WriteInt32(static_cast(streamUsage)) && + parcel.WriteInt32(static_cast(preStreamUsage)) && parcel.WriteInt32(clientUID) && parcel.WriteInt32(static_cast(routerType)) && parcel.WriteInt32(static_cast(audioPipeType)) && @@ -2016,6 +2018,7 @@ struct FetchDeviceInfo : public Parcelable { } info->streamUsage = static_cast(parcel.ReadInt32()); + info->preStreamUsage = static_cast(parcel.ReadInt32()); info->clientUID = parcel.ReadInt32(); info->routerType = static_cast(parcel.ReadInt32()); info->audioPipeType = static_cast(parcel.ReadInt32()); @@ -2028,6 +2031,7 @@ struct FetchDeviceInfo : public Parcelable { void UnmarshallingSelf(Parcel &parcel) { streamUsage = static_cast(parcel.ReadInt32()); + preStreamUsage = static_cast(parcel.ReadInt32()); clientUID = parcel.ReadInt32(); routerType = static_cast(parcel.ReadInt32()); audioPipeType = static_cast(parcel.ReadInt32()); diff --git a/services/audio_policy/server/domain/router/audio_router_center.cpp b/services/audio_policy/server/domain/router/audio_router_center.cpp index 904745f912..8c5e3fbf96 100644 --- a/services/audio_policy/server/domain/router/audio_router_center.cpp +++ b/services/audio_policy/server/domain/router/audio_router_center.cpp @@ -202,11 +202,8 @@ std::vector> AudioRouterCenter::FetchOutp } if (audioDeviceRefinerCb_ != nullptr && !NeedSkipSelectAudioOutputDeviceRefined(streamUsage, descs)) { - FetchDeviceInfo fetchDeviceInfo = {}; - fetchDeviceInfo.streamUsage = callStreamUsage; - fetchDeviceInfo.routerType = routerType; - fetchDeviceInfo.clientUID = clientUID; - fetchDeviceInfo.audioPipeType = PIPE_TYPE_NORMAL_OUT; + FetchDeviceInfo fetchDeviceInfo = { callStreamUsage, streamUsage, + routerType, clientUID, PIPE_TYPE_NORMAL_OUT, PRIVACY_TYPE_PUBLIC }; audioDeviceRefinerCb_->OnAudioOutputDeviceRefined(descs, fetchDeviceInfo); } if (descs.size() > 0 && descs[0] != nullptr) { -- Gitee From ccce8a5669ebe9e3e28f68d7b2ccbc3bc7edd5e3 Mon Sep 17 00:00:00 2001 From: maohangyu <1027148132@qq.com> Date: Wed, 10 Sep 2025 09:50:47 +0000 Subject: [PATCH 2/2] update services/audio_policy/server/domain/router/audio_router_center.cpp. Signed-off-by: maohangyu <1027148132@qq.com> --- .../audio_policy/server/domain/router/audio_router_center.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/audio_policy/server/domain/router/audio_router_center.cpp b/services/audio_policy/server/domain/router/audio_router_center.cpp index 8c5e3fbf96..a45abe2736 100644 --- a/services/audio_policy/server/domain/router/audio_router_center.cpp +++ b/services/audio_policy/server/domain/router/audio_router_center.cpp @@ -203,7 +203,7 @@ std::vector> AudioRouterCenter::FetchOutp if (audioDeviceRefinerCb_ != nullptr && !NeedSkipSelectAudioOutputDeviceRefined(streamUsage, descs)) { FetchDeviceInfo fetchDeviceInfo = { callStreamUsage, streamUsage, - routerType, clientUID, PIPE_TYPE_NORMAL_OUT, PRIVACY_TYPE_PUBLIC }; + clientUID, routerType, PIPE_TYPE_NORMAL_OUT, PRIVACY_TYPE_PUBLIC }; audioDeviceRefinerCb_->OnAudioOutputDeviceRefined(descs, fetchDeviceInfo); } if (descs.size() > 0 && descs[0] != nullptr) { -- Gitee