Merge "audio: Align Module::getMmapPolicyInfos behavior with legacy" into main am: b9c4bd4ea5 am: a4998f64cd am: 07fccbdcdb am: 8ebfc9a848 am: 05126c482d

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2763851

Change-Id: Ic3f75ffe3dc7cfca186faab99be3444252c266b8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Mikhail Naganov
2023-09-28 02:02:35 +00:00
committed by Automerger Merge Worker
2 changed files with 14 additions and 1 deletions

View File

@@ -1277,6 +1277,12 @@ ndk::ScopedAStatus Module::getMmapPolicyInfos(AudioMMapPolicyType mmapPolicyType
mmapSources.insert(port.id);
}
}
if (mmapSources.empty() && mmapSinks.empty()) {
AudioMMapPolicyInfo never;
never.mmapPolicy = AudioMMapPolicy::NEVER;
_aidl_return->push_back(never);
return ndk::ScopedAStatus::ok();
}
for (const auto& route : getConfig().routes) {
if (mmapSinks.count(route.sinkPortId) != 0) {
// The sink is a mix port, add the sources if they are device ports.

View File

@@ -87,6 +87,7 @@ using aidl::android::media::audio::common::AudioDualMonoMode;
using aidl::android::media::audio::common::AudioFormatType;
using aidl::android::media::audio::common::AudioIoFlags;
using aidl::android::media::audio::common::AudioLatencyMode;
using aidl::android::media::audio::common::AudioMMapPolicy;
using aidl::android::media::audio::common::AudioMMapPolicyInfo;
using aidl::android::media::audio::common::AudioMMapPolicyType;
using aidl::android::media::audio::common::AudioMode;
@@ -2133,7 +2134,13 @@ TEST_P(AudioCoreModule, GetMmapPolicyInfos) {
std::vector<AudioMMapPolicyInfo> policyInfos;
EXPECT_IS_OK(module->getMmapPolicyInfos(mmapPolicyType, &policyInfos))
<< toString(mmapPolicyType);
EXPECT_EQ(isMmapSupported, !policyInfos.empty());
const bool isMMapSupportedByPolicyInfos =
std::find_if(policyInfos.begin(), policyInfos.end(), [](const auto& info) {
return info.mmapPolicy == AudioMMapPolicy::AUTO ||
info.mmapPolicy == AudioMMapPolicy::ALWAYS;
}) != policyInfos.end();
EXPECT_EQ(isMmapSupported, isMMapSupportedByPolicyInfos)
<< ::android::internal::ToString(policyInfos);
}
}