Update AudioPort <-> configs mapping
It is considered that in general there is a 1:N relationship
between an AudioPort and AudioPortConfigs.
The 'AudioPort.activeConfig' field could only support a 1:1
relationship, but this is true for device ports.
Thus, 'AudioPort.activeConfig' has been moved to 'AudioPortSys'.
The new field 'AudioPortConfig.portId' in the types shared with
HAL is initialized using the ID of the port this config applies
to.
Bug: 205884982
Test: atest audiofoundation_parcelable_test
Change-Id: I8db679213ad582ce106753d254f82ec0318b35bb
diff --git a/media/libaudioclient/AidlConversion.cpp b/media/libaudioclient/AidlConversion.cpp
index 4c83406..f2b7366 100644
--- a/media/libaudioclient/AidlConversion.cpp
+++ b/media/libaudioclient/AidlConversion.cpp
@@ -2957,11 +2957,8 @@
}));
legacy.num_gains = aidl.hal.gains.size();
- media::AudioPortConfig aidlPortConfig;
- aidlPortConfig.hal = aidl.hal.activeConfig;
- aidlPortConfig.sys = aidl.sys.activeConfig;
legacy.active_config = VALUE_OR_RETURN(
- aidl2legacy_AudioPortConfig_audio_port_config(aidlPortConfig));
+ aidl2legacy_AudioPortConfig_audio_port_config(aidl.sys.activeConfig));
legacy.ext = VALUE_OR_RETURN(
aidl2legacy_AudioPortExt_audio_port_v7_ext(aidl.hal.ext, aidl.sys.type, aidl.sys.ext));
return legacy;
@@ -3007,10 +3004,9 @@
}));
aidl.sys.gains.resize(legacy.num_gains);
- media::AudioPortConfig aidlPortConfig = VALUE_OR_RETURN(
+ aidl.sys.activeConfig = VALUE_OR_RETURN(
legacy2aidl_audio_port_config_AudioPortConfig(legacy.active_config));
- aidl.hal.activeConfig = aidlPortConfig.hal;
- aidl.sys.activeConfig = aidlPortConfig.sys;
+ aidl.sys.activeConfig.hal.portId = aidl.hal.id;
RETURN_IF_ERROR(
legacy2aidl_AudioPortExt(legacy.ext, legacy.type, &aidl.hal.ext, &aidl.sys.ext));
return aidl;