diff --git a/interfaces/inner_api/native/audiocommon/include/audio_info.h b/interfaces/inner_api/native/audiocommon/include/audio_info.h index b7e7777a3bc7f25ef9d8b2fa07f7d001c3604fd9..4076cd418aaa946570542f52218f4c3d09a2c7ba 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 904745f9127db920b595d0d3255c0e34d98fd4bc..a45abe2736148e088b1ef9bbc881159d9b2c79da 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, + clientUID, routerType, PIPE_TYPE_NORMAL_OUT, PRIVACY_TYPE_PUBLIC }; audioDeviceRefinerCb_->OnAudioOutputDeviceRefined(descs, fetchDeviceInfo); } if (descs.size() > 0 && descs[0] != nullptr) {