diff --git a/audio/aidl/default/Module.cpp b/audio/aidl/default/Module.cpp index 3117134f4d..819b3c50d6 100644 --- a/audio/aidl/default/Module.cpp +++ b/audio/aidl/default/Module.cpp @@ -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. diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp index cd765d2225..c758b9e4ce 100644 --- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp @@ -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 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); } }