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/libaudiofoundation/DeviceDescriptorBase.cpp b/media/libaudiofoundation/DeviceDescriptorBase.cpp
index ec02d59..5ffbffc 100644
--- a/media/libaudiofoundation/DeviceDescriptorBase.cpp
+++ b/media/libaudiofoundation/DeviceDescriptorBase.cpp
@@ -176,8 +176,9 @@
 
 status_t DeviceDescriptorBase::writeToParcelable(media::AudioPort* parcelable) const {
     AudioPort::writeToParcelable(parcelable);
-    AudioPortConfig::writeToParcelable(&parcelable->hal.activeConfig, useInputChannelMask());
+    AudioPortConfig::writeToParcelable(&parcelable->sys.activeConfig.hal, useInputChannelMask());
     parcelable->hal.id = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_port_handle_t_int32_t(mId));
+    parcelable->sys.activeConfig.hal.portId = parcelable->hal.id;
 
     media::audio::common::AudioPortDeviceExt deviceExt;
     deviceExt.device = VALUE_OR_RETURN_STATUS(
@@ -201,7 +202,7 @@
     }
     status_t status = AudioPort::readFromParcelable(parcelable)
             ?: AudioPortConfig::readFromParcelable(
-                    parcelable.hal.activeConfig, useInputChannelMask());
+                    parcelable.sys.activeConfig.hal, useInputChannelMask());
     if (status != OK) {
         return status;
     }