audio: Allow built-in strategies to omit the 'id' attribute
For built-in strategies, the 'id' can be set from the name.
This corrects the behavior introduced by aosp/3016651 which
requires product strategies to have the 'id' field, however
restricting it to the IDs from the vendor pool only.
Bug: 385268928
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I3262b626bdbc2b3552695193aaaaa657befec06d
diff --git a/audio/aidl/default/EngineConfigXmlConverter.cpp b/audio/aidl/default/EngineConfigXmlConverter.cpp
index 5a8b0a3..d945b17 100644
--- a/audio/aidl/default/EngineConfigXmlConverter.cpp
+++ b/audio/aidl/default/EngineConfigXmlConverter.cpp
@@ -179,8 +179,13 @@
const eng_xsd::ProductStrategies::ProductStrategy& xsdcProductStrategy) {
AudioHalProductStrategy aidlProductStrategy;
- aidlProductStrategy.id =
- VALUE_OR_FATAL(convertProductStrategyIdToAidl(xsdcProductStrategy.getId()));
+ if (xsdcProductStrategy.hasId()) {
+ aidlProductStrategy.id =
+ VALUE_OR_FATAL(convertProductStrategyIdToAidl(xsdcProductStrategy.getId()));
+ } else {
+ aidlProductStrategy.id =
+ VALUE_OR_FATAL(convertProductStrategyNameToAidl(xsdcProductStrategy.getName()));
+ }
aidlProductStrategy.name = xsdcProductStrategy.getName();
if (xsdcProductStrategy.hasAttributesGroup()) {