AIDL effect: Effect factory add EffectProxy information in proxy

Effect factory have the knowledge of all effect configurations, in the
default implementation, this configuration defined in
audio_effects_config.xml.

Bug: 261129656
Test: Enable AIDL, atest
CtsMediaAudioTestCases: android.media.audio.cts.BassBoostTest
Test: atest VtsHalAudioEffectTargetTest
Change-Id: Ie9bd4070acdca53c4236bae533957b8fde6e9183
This commit is contained in:
Shunkai Yao
2023-02-28 01:50:40 +00:00
parent b862e6e20b
commit 4c4f3cd153
2 changed files with 11 additions and 2 deletions

View File

@@ -76,6 +76,8 @@ ndk::ScopedAStatus Factory::queryEffects(const std::optional<AudioUuid>& in_type
RETURN_IF(!libInterface || !libInterface->queryEffectFunc, EX_NULL_POINTER,
"dlNullQueryEffectFunc");
RETURN_IF_BINDER_EXCEPTION(libInterface->queryEffectFunc(&id.uuid, &desc));
// update proxy UUID with information from config xml
desc.common.id.proxy = id.proxy;
_aidl_return->emplace_back(std::move(desc));
}
}

View File

@@ -140,7 +140,10 @@ TEST_P(AudioEffectTest, GetDescritorBeforeOpen) {
Descriptor desc;
ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor));
ASSERT_NO_FATAL_FAILURE(getDescriptor(mEffect, desc));
EXPECT_EQ(mDescriptor.common, desc.common);
EXPECT_EQ(mDescriptor.common.id.type, desc.common.id.type);
EXPECT_EQ(mDescriptor.common.id.uuid, desc.common.id.uuid);
EXPECT_EQ(mDescriptor.common.name, desc.common.name);
EXPECT_EQ(mDescriptor.common.implementor, desc.common.implementor);
// Effect implementation Must fill in implementor and name
EXPECT_NE("", desc.common.name);
EXPECT_NE("", desc.common.implementor);
@@ -177,7 +180,11 @@ TEST_P(AudioEffectTest, DescriptorExistAndUnique) {
ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor));
ASSERT_NO_FATAL_FAILURE(getDescriptor(mEffect, desc));
EXPECT_EQ(1ul, idSet.count(desc.common.id));
int uuidCount = std::count_if(idSet.begin(), idSet.end(), [&](const auto& id) {
return id.uuid == desc.common.id.uuid && id.type == desc.common.id.type;
});
EXPECT_EQ(1, uuidCount);
ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect));
}