From b06a492bd95e955ff90f28d587e0ac02a436c2ed Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Wed, 6 Mar 2024 16:39:50 -0800 Subject: [PATCH] audio: Preserve 'usecase' for in IModule::setAudioPortConfig The field AudioPortConfig.ext.mix.usecase is provided by the client, thus is needs to be treated the same way as '.handle'. Bug: 302736184 Test: atest VtsHalAudioCoreTargetTest Change-Id: I45050e8530cd236f5e582585f583df477fc7ae8a --- audio/aidl/default/Module.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/audio/aidl/default/Module.cpp b/audio/aidl/default/Module.cpp index b8e1df809a..5481eb25d1 100644 --- a/audio/aidl/default/Module.cpp +++ b/audio/aidl/default/Module.cpp @@ -1165,9 +1165,12 @@ ndk::ScopedAStatus Module::setAudioPortConfigImpl( if (in_requested.ext.getTag() != AudioPortExt::Tag::unspecified) { if (in_requested.ext.getTag() == out_suggested->ext.getTag()) { if (out_suggested->ext.getTag() == AudioPortExt::Tag::mix) { - // 'AudioMixPortExt.handle' is set by the client, copy from in_requested - out_suggested->ext.get().handle = - in_requested.ext.get().handle; + // 'AudioMixPortExt.handle' and '.usecase' are set by the client, + // copy from in_requested. + const auto& src = in_requested.ext.get(); + auto& dst = out_suggested->ext.get(); + dst.handle = src.handle; + dst.usecase = src.usecase; } } else { LOG(WARNING) << __func__ << ": requested ext tag "