Refactor AudioPort and AudioPortConfig

The goals are to split framework-only fields from common,
and to simplify and unify structures where possible.

What has got changed:

1. Removed 'AudioPort[Config]SessionExt' parcelables.
   These parcelables correspond to 'audio_port[_config]_session_ext',
   which is trivial--contains only 'session' field, and hasn't been
   extented since the inception. Remove AIDL types since each
   type requires its own file, which adds mental burden.

2. Removed 'AudioPort[Config]DeviceExt' parcelables.
   At the HAL level only the 'AudioDevice' field is needed.
   Moved remaining framework-only fields to 'AudioPortDeviceExtSys'
   which is reused between 'AudioPort' and 'AudioPortConfig'.

3. Merged 'AudioPortConfigMixExt' with 'AudioPortMixExt'.
   Moved remaining framework-only fields to 'AudioPortMixExtSys'.

4. The previous item allowed using 'AudioPortExt' instead of
   'AudioPortConfigExt'.

5. 'AudioPortDeviceExtSys' and 'AudioPortMixExtSys' put into
   'AudioPortExtSys' which is a system-only companion to 'AudioPortExt'.

Bug: 198812639
Test: atest audiofoundation_parcelable_test
Change-Id: I27306f7ce33b136860db6a9784d34960816987cd
diff --git a/media/libaudiofoundation/DeviceDescriptorBase.cpp b/media/libaudiofoundation/DeviceDescriptorBase.cpp
index 3cce722..2e9b005 100644
--- a/media/libaudiofoundation/DeviceDescriptorBase.cpp
+++ b/media/libaudiofoundation/DeviceDescriptorBase.cpp
@@ -169,13 +169,15 @@
     AudioPortConfig::writeToParcelable(&parcelable->activeConfig, useInputChannelMask());
     parcelable->id = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_port_handle_t_int32_t(mId));
 
-    media::AudioPortDeviceExt ext;
-    ext.device = VALUE_OR_RETURN_STATUS(legacy2aidl_AudioDeviceTypeAddress(mDeviceTypeAddr));
-    ext.encapsulationModes = VALUE_OR_RETURN_STATUS(
+    media::audio::common::AudioDevice device = VALUE_OR_RETURN_STATUS(
+            legacy2aidl_AudioDeviceTypeAddress(mDeviceTypeAddr));
+    UNION_SET(parcelable->ext, device, device);
+    media::AudioPortDeviceExtSys deviceSys;
+    deviceSys.encapsulationModes = VALUE_OR_RETURN_STATUS(
             legacy2aidl_AudioEncapsulationMode_mask(mEncapsulationModes));
-    ext.encapsulationMetadataTypes = VALUE_OR_RETURN_STATUS(
+    deviceSys.encapsulationMetadataTypes = VALUE_OR_RETURN_STATUS(
             legacy2aidl_AudioEncapsulationMetadataType_mask(mEncapsulationMetadataTypes));
-    UNION_SET(parcelable->ext, device, std::move(ext));
+    UNION_SET(parcelable->extSys, device, deviceSys);
     return OK;
 }
 
@@ -195,13 +197,16 @@
         return status;
     }
 
-    media::AudioPortDeviceExt ext = VALUE_OR_RETURN_STATUS(UNION_GET(parcelable.ext, device));
+    media::audio::common::AudioDevice device = VALUE_OR_RETURN_STATUS(
+            UNION_GET(parcelable.ext, device));
     mDeviceTypeAddr = VALUE_OR_RETURN_STATUS(
-            aidl2legacy_AudioDeviceTypeAddress(ext.device));
+            aidl2legacy_AudioDeviceTypeAddress(device));
+    media::AudioPortDeviceExtSys deviceSys = VALUE_OR_RETURN_STATUS(
+            UNION_GET(parcelable.extSys, device));
     mEncapsulationModes = VALUE_OR_RETURN_STATUS(
-            aidl2legacy_AudioEncapsulationMode_mask(ext.encapsulationModes));
+            aidl2legacy_AudioEncapsulationMode_mask(deviceSys.encapsulationModes));
     mEncapsulationMetadataTypes = VALUE_OR_RETURN_STATUS(
-            aidl2legacy_AudioEncapsulationMetadataType_mask(ext.encapsulationMetadataTypes));
+            aidl2legacy_AudioEncapsulationMetadataType_mask(deviceSys.encapsulationMetadataTypes));
     return OK;
 }