Split AudioPort/Config between fwk and android.media.audio.common
a.m.a.c adds versions of AudioPort/Config structs which
are similar to Audio HIDL HAL V7. They lack some bits used only
by the framework. These are carried in AudioPortSys/PortConfigSys.
media::AudioPort/Config join the HAL part and the system part
together.
Updated to/from AIDL conversions in libaudiofondation.
Bug: 198812639
Test: atest audiofoundation_parcelable_test
Change-Id: I383cf2b07d9931dbea1ba0d10bb60cdd0b57039c
diff --git a/media/libaudioclient/AidlConversion.cpp b/media/libaudioclient/AidlConversion.cpp
index 0107bd4..5f63a69 100644
--- a/media/libaudioclient/AidlConversion.cpp
+++ b/media/libaudioclient/AidlConversion.cpp
@@ -52,11 +52,17 @@
using media::audio::common::AudioGainMode;
using media::audio::common::AudioMode;
using media::audio::common::AudioOffloadInfo;
+using media::audio::common::AudioPortExt;
+using media::audio::common::AudioPortMixExt;
+using media::audio::common::AudioPortMixExtUseCase;
using media::audio::common::AudioProfile;
using media::audio::common::AudioSource;
+using media::audio::common::AudioStandard;
using media::audio::common::AudioStreamType;
using media::audio::common::AudioUsage;
using media::audio::common::AudioUuid;
+using media::audio::common::ExtraAudioDescriptor;
+using media::audio::common::Int;
using media::audio::common::PcmType;
namespace {
@@ -1676,7 +1682,7 @@
using audio_port_config_mix_ext_usecase = decltype(audio_port_config_mix_ext::usecase);
ConversionResult<audio_port_config_mix_ext_usecase> aidl2legacy_AudioPortMixExtUseCase(
- const media::AudioPortMixExtUseCase& aidl, media::AudioPortRole role) {
+ const AudioPortMixExtUseCase& aidl, media::AudioPortRole role) {
audio_port_config_mix_ext_usecase legacy;
switch (role) {
@@ -1700,9 +1706,9 @@
LOG_ALWAYS_FATAL("Shouldn't get here"); // with -Werror,-Wswitch may compile-time fail
}
-ConversionResult<media::AudioPortMixExtUseCase> legacy2aidl_AudioPortMixExtUseCase(
+ConversionResult<AudioPortMixExtUseCase> legacy2aidl_AudioPortMixExtUseCase(
const audio_port_config_mix_ext_usecase& legacy, audio_port_role_t role) {
- media::AudioPortMixExtUseCase aidl;
+ AudioPortMixExtUseCase aidl;
switch (role) {
case AUDIO_PORT_ROLE_NONE:
@@ -1723,7 +1729,7 @@
}
ConversionResult<audio_port_config_mix_ext> aidl2legacy_AudioPortMixExt(
- const media::AudioPortMixExt& aidl, media::AudioPortRole role,
+ const AudioPortMixExt& aidl, media::AudioPortRole role,
const media::AudioPortMixExtSys& aidlMixExt) {
audio_port_config_mix_ext legacy;
legacy.hw_module = VALUE_OR_RETURN(
@@ -1735,7 +1741,7 @@
status_t legacy2aidl_AudioPortMixExt(
const audio_port_config_mix_ext& legacy, audio_port_role_t role,
- media::AudioPortMixExt* aidl, media::AudioPortMixExtSys* aidlMixExt) {
+ AudioPortMixExt* aidl, media::AudioPortMixExtSys* aidlMixExt) {
aidlMixExt->hwModule = VALUE_OR_RETURN_STATUS(
legacy2aidl_audio_module_handle_t_int32_t(legacy.hw_module));
aidl->handle = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_io_handle_t_int32_t(legacy.handle));
@@ -1761,7 +1767,7 @@
using audio_port_config_ext = decltype(audio_port_config::ext);
ConversionResult<audio_port_config_ext> aidl2legacy_AudioPortExt_audio_port_config_ext(
- const media::AudioPortExt& aidl, media::AudioPortType type,
+ const AudioPortExt& aidl, media::AudioPortType type,
media::AudioPortRole role, const media::AudioPortExtSys& aidlSys) {
audio_port_config_ext legacy;
switch (type) {
@@ -1793,7 +1799,7 @@
status_t legacy2aidl_AudioPortExt(
const audio_port_config_ext& legacy, audio_port_type_t type, audio_port_role_t role,
- media::AudioPortExt* aidl, media::AudioPortExtSys* aidlSys) {
+ AudioPortExt* aidl, media::AudioPortExtSys* aidlSys) {
switch (type) {
case AUDIO_PORT_TYPE_NONE:
UNION_SET(*aidl, unspecified, false);
@@ -1810,7 +1816,7 @@
return OK;
}
case AUDIO_PORT_TYPE_MIX: {
- media::AudioPortMixExt mix;
+ AudioPortMixExt mix;
media::AudioPortMixExtSys mixSys;
RETURN_STATUS_IF_ERROR(legacy2aidl_AudioPortMixExt(legacy.mix, role, &mix, &mixSys));
UNION_SET(*aidl, mix, mix);
@@ -1829,74 +1835,76 @@
ConversionResult<audio_port_config> aidl2legacy_AudioPortConfig_audio_port_config(
const media::AudioPortConfig& aidl) {
audio_port_config legacy{};
- legacy.id = VALUE_OR_RETURN(aidl2legacy_int32_t_audio_port_handle_t(aidl.id));
- legacy.role = VALUE_OR_RETURN(aidl2legacy_AudioPortRole_audio_port_role_t(aidl.role));
- legacy.type = VALUE_OR_RETURN(aidl2legacy_AudioPortType_audio_port_type_t(aidl.type));
- const bool isInput = VALUE_OR_RETURN(direction(aidl.role, aidl.type)) == Direction::INPUT;
- if (aidl.sampleRate.has_value()) {
+ legacy.id = VALUE_OR_RETURN(aidl2legacy_int32_t_audio_port_handle_t(aidl.hal.id));
+ legacy.role = VALUE_OR_RETURN(aidl2legacy_AudioPortRole_audio_port_role_t(aidl.sys.role));
+ legacy.type = VALUE_OR_RETURN(aidl2legacy_AudioPortType_audio_port_type_t(aidl.sys.type));
+ const bool isInput =
+ VALUE_OR_RETURN(direction(aidl.sys.role, aidl.sys.type)) == Direction::INPUT;
+ if (aidl.hal.sampleRate.has_value()) {
legacy.sample_rate = VALUE_OR_RETURN(
- convertIntegral<unsigned int>(aidl.sampleRate.value().value));
+ convertIntegral<unsigned int>(aidl.hal.sampleRate.value().value));
legacy.config_mask |= AUDIO_PORT_CONFIG_SAMPLE_RATE;
}
- if (aidl.channelMask.has_value()) {
+ if (aidl.hal.channelMask.has_value()) {
legacy.channel_mask =
VALUE_OR_RETURN(
aidl2legacy_AudioChannelLayout_audio_channel_mask_t(
- aidl.channelMask.value(), isInput));
+ aidl.hal.channelMask.value(), isInput));
legacy.config_mask |= AUDIO_PORT_CONFIG_CHANNEL_MASK;
}
- if (aidl.format.has_value()) {
+ if (aidl.hal.format.has_value()) {
legacy.format = VALUE_OR_RETURN(
- aidl2legacy_AudioFormatDescription_audio_format_t(aidl.format.value()));
+ aidl2legacy_AudioFormatDescription_audio_format_t(aidl.hal.format.value()));
legacy.config_mask |= AUDIO_PORT_CONFIG_FORMAT;
}
- if (aidl.gain.has_value()) {
+ if (aidl.hal.gain.has_value()) {
legacy.gain = VALUE_OR_RETURN(aidl2legacy_AudioGainConfig_audio_gain_config(
- aidl.gain.value(), isInput));
+ aidl.hal.gain.value(), isInput));
legacy.config_mask |= AUDIO_PORT_CONFIG_GAIN;
}
- if (aidl.flags.has_value()) {
+ if (aidl.sys.flags.has_value()) {
legacy.flags = VALUE_OR_RETURN(
- aidl2legacy_AudioIoFlags_audio_io_flags(aidl.flags.value(), aidl.role, aidl.type));
+ aidl2legacy_AudioIoFlags_audio_io_flags(
+ aidl.sys.flags.value(), aidl.sys.role, aidl.sys.type));
legacy.config_mask |= AUDIO_PORT_CONFIG_FLAGS;
}
legacy.ext = VALUE_OR_RETURN(
aidl2legacy_AudioPortExt_audio_port_config_ext(
- aidl.ext, aidl.type, aidl.role, aidl.extSys));
+ aidl.hal.ext, aidl.sys.type, aidl.sys.role, aidl.sys.ext));
return legacy;
}
ConversionResult<media::AudioPortConfig> legacy2aidl_audio_port_config_AudioPortConfig(
const audio_port_config& legacy) {
media::AudioPortConfig aidl;
- aidl.id = VALUE_OR_RETURN(legacy2aidl_audio_port_handle_t_int32_t(legacy.id));
- aidl.role = VALUE_OR_RETURN(legacy2aidl_audio_port_role_t_AudioPortRole(legacy.role));
- aidl.type = VALUE_OR_RETURN(legacy2aidl_audio_port_type_t_AudioPortType(legacy.type));
+ aidl.hal.id = VALUE_OR_RETURN(legacy2aidl_audio_port_handle_t_int32_t(legacy.id));
+ aidl.sys.role = VALUE_OR_RETURN(legacy2aidl_audio_port_role_t_AudioPortRole(legacy.role));
+ aidl.sys.type = VALUE_OR_RETURN(legacy2aidl_audio_port_type_t_AudioPortType(legacy.type));
const bool isInput = VALUE_OR_RETURN(
direction(legacy.role, legacy.type)) == Direction::INPUT;
if (legacy.config_mask & AUDIO_PORT_CONFIG_SAMPLE_RATE) {
- media::Int aidl_sampleRate;
+ Int aidl_sampleRate;
aidl_sampleRate.value = VALUE_OR_RETURN(convertIntegral<int32_t>(legacy.sample_rate));
- aidl.sampleRate = aidl_sampleRate;
+ aidl.hal.sampleRate = aidl_sampleRate;
}
if (legacy.config_mask & AUDIO_PORT_CONFIG_CHANNEL_MASK) {
- aidl.channelMask = VALUE_OR_RETURN(
+ aidl.hal.channelMask = VALUE_OR_RETURN(
legacy2aidl_audio_channel_mask_t_AudioChannelLayout(legacy.channel_mask, isInput));
}
if (legacy.config_mask & AUDIO_PORT_CONFIG_FORMAT) {
- aidl.format = VALUE_OR_RETURN(
+ aidl.hal.format = VALUE_OR_RETURN(
legacy2aidl_audio_format_t_AudioFormatDescription(legacy.format));
}
if (legacy.config_mask & AUDIO_PORT_CONFIG_GAIN) {
- aidl.gain = VALUE_OR_RETURN(
+ aidl.hal.gain = VALUE_OR_RETURN(
legacy2aidl_audio_gain_config_AudioGainConfig(legacy.gain, isInput));
}
if (legacy.config_mask & AUDIO_PORT_CONFIG_FLAGS) {
- aidl.flags = VALUE_OR_RETURN(
+ aidl.sys.flags = VALUE_OR_RETURN(
legacy2aidl_audio_io_flags_AudioIoFlags(legacy.flags, legacy.role, legacy.type));
}
RETURN_IF_ERROR(legacy2aidl_AudioPortExt(legacy.ext, legacy.type, legacy.role,
- &aidl.ext, &aidl.extSys));
+ &aidl.hal.ext, &aidl.sys.ext));
return aidl;
}
@@ -2603,7 +2611,7 @@
ConversionResult<audio_port_mix_ext>
aidl2legacy_AudioPortMixExt_audio_port_mix_ext(
- const media::AudioPortMixExt& aidl, const media::AudioPortMixExtSys& aidlSys) {
+ const AudioPortMixExt& aidl, const media::AudioPortMixExtSys& aidlSys) {
audio_port_mix_ext legacy{};
legacy.hw_module = VALUE_OR_RETURN(aidl2legacy_int32_t_audio_module_handle_t(aidlSys.hwModule));
legacy.handle = VALUE_OR_RETURN(aidl2legacy_int32_t_audio_io_handle_t(aidl.handle));
@@ -2612,7 +2620,7 @@
status_t
legacy2aidl_audio_port_mix_ext_AudioPortMixExt(const audio_port_mix_ext& legacy,
- media::AudioPortMixExt* aidl, media::AudioPortMixExtSys* aidlMixExt) {
+ AudioPortMixExt* aidl, media::AudioPortMixExtSys* aidlMixExt) {
aidlMixExt->hwModule = VALUE_OR_RETURN_STATUS(
legacy2aidl_audio_module_handle_t_int32_t(legacy.hw_module));
aidl->handle = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_io_handle_t_int32_t(legacy.handle));
@@ -2635,7 +2643,7 @@
using audio_port_v7_ext = decltype(audio_port_v7::ext);
ConversionResult<audio_port_v7_ext> aidl2legacy_AudioPortExt_audio_port_v7_ext(
- const media::AudioPortExt& aidl, media::AudioPortType type,
+ const AudioPortExt& aidl, media::AudioPortType type,
const media::AudioPortExtSys& aidlSys) {
audio_port_v7_ext legacy;
switch (type) {
@@ -2667,7 +2675,7 @@
status_t legacy2aidl_AudioPortExt(
const audio_port_v7_ext& legacy, audio_port_type_t type,
- media::AudioPortExt* aidl, media::AudioPortExtSys* aidlSys) {
+ AudioPortExt* aidl, media::AudioPortExtSys* aidlSys) {
switch (type) {
case AUDIO_PORT_TYPE_NONE:
UNION_SET(*aidl, unspecified, false);
@@ -2684,7 +2692,7 @@
return OK;
}
case AUDIO_PORT_TYPE_MIX: {
- media::AudioPortMixExt mix;
+ AudioPortMixExt mix;
media::AudioPortMixExtSys mixSys;
RETURN_STATUS_IF_ERROR(
legacy2aidl_audio_port_mix_ext_AudioPortMixExt(
@@ -2792,53 +2800,59 @@
ConversionResult<audio_port_v7>
aidl2legacy_AudioPort_audio_port_v7(const media::AudioPort& aidl) {
audio_port_v7 legacy;
- legacy.id = VALUE_OR_RETURN(aidl2legacy_int32_t_audio_port_handle_t(aidl.id));
- legacy.role = VALUE_OR_RETURN(aidl2legacy_AudioPortRole_audio_port_role_t(aidl.role));
- legacy.type = VALUE_OR_RETURN(aidl2legacy_AudioPortType_audio_port_type_t(aidl.type));
- RETURN_IF_ERROR(aidl2legacy_string(aidl.name, legacy.name, sizeof(legacy.name)));
+ legacy.id = VALUE_OR_RETURN(aidl2legacy_int32_t_audio_port_handle_t(aidl.hal.id));
+ legacy.role = VALUE_OR_RETURN(aidl2legacy_AudioPortRole_audio_port_role_t(aidl.sys.role));
+ legacy.type = VALUE_OR_RETURN(aidl2legacy_AudioPortType_audio_port_type_t(aidl.sys.type));
+ RETURN_IF_ERROR(aidl2legacy_string(aidl.hal.name, legacy.name, sizeof(legacy.name)));
- if (aidl.profiles.size() > std::size(legacy.audio_profiles)) {
+ if (aidl.hal.profiles.size() > std::size(legacy.audio_profiles)) {
return unexpected(BAD_VALUE);
}
- const bool isInput = VALUE_OR_RETURN(direction(aidl.role, aidl.type)) == Direction::INPUT;
- RETURN_IF_ERROR(convertRange(aidl.profiles.begin(), aidl.profiles.end(), legacy.audio_profiles,
- [isInput](const AudioProfile& p) {
- return aidl2legacy_AudioProfile_audio_profile(p, isInput);
- }));
- legacy.num_audio_profiles = aidl.profiles.size();
+ const bool isInput =
+ VALUE_OR_RETURN(direction(aidl.sys.role, aidl.sys.type)) == Direction::INPUT;
+ RETURN_IF_ERROR(convertRange(
+ aidl.hal.profiles.begin(), aidl.hal.profiles.end(), legacy.audio_profiles,
+ [isInput](const AudioProfile& p) {
+ return aidl2legacy_AudioProfile_audio_profile(p, isInput);
+ }));
+ legacy.num_audio_profiles = aidl.hal.profiles.size();
- if (aidl.extraAudioDescriptors.size() > std::size(legacy.extra_audio_descriptors)) {
+ if (aidl.hal.extraAudioDescriptors.size() > std::size(legacy.extra_audio_descriptors)) {
return unexpected(BAD_VALUE);
}
RETURN_IF_ERROR(
- convertRange(aidl.extraAudioDescriptors.begin(), aidl.extraAudioDescriptors.end(),
- legacy.extra_audio_descriptors,
- aidl2legacy_ExtraAudioDescriptor_audio_extra_audio_descriptor));
- legacy.num_extra_audio_descriptors = aidl.extraAudioDescriptors.size();
+ convertRange(
+ aidl.hal.extraAudioDescriptors.begin(), aidl.hal.extraAudioDescriptors.end(),
+ legacy.extra_audio_descriptors,
+ aidl2legacy_ExtraAudioDescriptor_audio_extra_audio_descriptor));
+ legacy.num_extra_audio_descriptors = aidl.hal.extraAudioDescriptors.size();
- if (aidl.gains.size() > std::size(legacy.gains)) {
+ if (aidl.hal.gains.size() > std::size(legacy.gains)) {
return unexpected(BAD_VALUE);
}
- RETURN_IF_ERROR(convertRange(aidl.gains.begin(), aidl.gains.end(), legacy.gains,
+ RETURN_IF_ERROR(convertRange(aidl.hal.gains.begin(), aidl.hal.gains.end(), legacy.gains,
[isInput](const AudioGain& g) {
return aidl2legacy_AudioGain_audio_gain(g, isInput);
}));
- legacy.num_gains = aidl.gains.size();
+ 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(aidl.activeConfig));
+ aidl2legacy_AudioPortConfig_audio_port_config(aidlPortConfig));
legacy.ext = VALUE_OR_RETURN(
- aidl2legacy_AudioPortExt_audio_port_v7_ext(aidl.ext, aidl.type, aidl.extSys));
+ aidl2legacy_AudioPortExt_audio_port_v7_ext(aidl.hal.ext, aidl.sys.type, aidl.sys.ext));
return legacy;
}
ConversionResult<media::AudioPort>
legacy2aidl_audio_port_v7_AudioPort(const audio_port_v7& legacy) {
media::AudioPort aidl;
- aidl.id = VALUE_OR_RETURN(legacy2aidl_audio_port_handle_t_int32_t(legacy.id));
- aidl.role = VALUE_OR_RETURN(legacy2aidl_audio_port_role_t_AudioPortRole(legacy.role));
- aidl.type = VALUE_OR_RETURN(legacy2aidl_audio_port_type_t_AudioPortType(legacy.type));
- aidl.name = VALUE_OR_RETURN(legacy2aidl_string(legacy.name, sizeof(legacy.name)));
+ aidl.hal.id = VALUE_OR_RETURN(legacy2aidl_audio_port_handle_t_int32_t(legacy.id));
+ aidl.sys.role = VALUE_OR_RETURN(legacy2aidl_audio_port_role_t_AudioPortRole(legacy.role));
+ aidl.sys.type = VALUE_OR_RETURN(legacy2aidl_audio_port_type_t_AudioPortType(legacy.type));
+ aidl.hal.name = VALUE_OR_RETURN(legacy2aidl_string(legacy.name, sizeof(legacy.name)));
if (legacy.num_audio_profiles > std::size(legacy.audio_profiles)) {
return unexpected(BAD_VALUE);
@@ -2846,7 +2860,7 @@
const bool isInput = VALUE_OR_RETURN(direction(legacy.role, legacy.type)) == Direction::INPUT;
RETURN_IF_ERROR(
convertRange(legacy.audio_profiles, legacy.audio_profiles + legacy.num_audio_profiles,
- std::back_inserter(aidl.profiles),
+ std::back_inserter(aidl.hal.profiles),
[isInput](const audio_profile& p) {
return legacy2aidl_audio_profile_AudioProfile(p, isInput);
}));
@@ -2854,11 +2868,11 @@
if (legacy.num_extra_audio_descriptors > std::size(legacy.extra_audio_descriptors)) {
return unexpected(BAD_VALUE);
}
- aidl.profilesSys.resize(legacy.num_audio_profiles);
+ aidl.sys.profiles.resize(legacy.num_audio_profiles);
RETURN_IF_ERROR(
convertRange(legacy.extra_audio_descriptors,
legacy.extra_audio_descriptors + legacy.num_extra_audio_descriptors,
- std::back_inserter(aidl.extraAudioDescriptors),
+ std::back_inserter(aidl.hal.extraAudioDescriptors),
legacy2aidl_audio_extra_audio_descriptor_ExtraAudioDescriptor));
if (legacy.num_gains > std::size(legacy.gains)) {
@@ -2866,16 +2880,18 @@
}
RETURN_IF_ERROR(
convertRange(legacy.gains, legacy.gains + legacy.num_gains,
- std::back_inserter(aidl.gains),
+ std::back_inserter(aidl.hal.gains),
[isInput](const audio_gain& g) {
return legacy2aidl_audio_gain_AudioGain(g, isInput);
}));
- aidl.gainsSys.resize(legacy.num_gains);
+ aidl.sys.gains.resize(legacy.num_gains);
- aidl.activeConfig = VALUE_OR_RETURN(
+ media::AudioPortConfig aidlPortConfig = VALUE_OR_RETURN(
legacy2aidl_audio_port_config_AudioPortConfig(legacy.active_config));
+ aidl.hal.activeConfig = aidlPortConfig.hal;
+ aidl.sys.activeConfig = aidlPortConfig.sys;
RETURN_IF_ERROR(
- legacy2aidl_AudioPortExt(legacy.ext, legacy.type, &aidl.ext, &aidl.extSys));
+ legacy2aidl_AudioPortExt(legacy.ext, legacy.type, &aidl.hal.ext, &aidl.sys.ext));
return aidl;
}
@@ -3066,30 +3082,30 @@
}
ConversionResult<audio_standard_t>
-aidl2legacy_AudioStandard_audio_standard_t(media::AudioStandard aidl) {
+aidl2legacy_AudioStandard_audio_standard_t(AudioStandard aidl) {
switch (aidl) {
- case media::AudioStandard::NONE:
+ case AudioStandard::NONE:
return AUDIO_STANDARD_NONE;
- case media::AudioStandard::EDID:
+ case AudioStandard::EDID:
return AUDIO_STANDARD_EDID;
}
return unexpected(BAD_VALUE);
}
-ConversionResult<media::AudioStandard>
+ConversionResult<AudioStandard>
legacy2aidl_audio_standard_t_AudioStandard(audio_standard_t legacy) {
switch (legacy) {
case AUDIO_STANDARD_NONE:
- return media::AudioStandard::NONE;
+ return AudioStandard::NONE;
case AUDIO_STANDARD_EDID:
- return media::AudioStandard::EDID;
+ return AudioStandard::EDID;
}
return unexpected(BAD_VALUE);
}
ConversionResult<audio_extra_audio_descriptor>
aidl2legacy_ExtraAudioDescriptor_audio_extra_audio_descriptor(
- const media::ExtraAudioDescriptor& aidl) {
+ const ExtraAudioDescriptor& aidl) {
audio_extra_audio_descriptor legacy;
legacy.standard = VALUE_OR_RETURN(aidl2legacy_AudioStandard_audio_standard_t(aidl.standard));
if (aidl.audioDescriptor.size() > EXTRA_AUDIO_DESCRIPTOR_SIZE) {
@@ -3104,10 +3120,10 @@
return legacy;
}
-ConversionResult<media::ExtraAudioDescriptor>
+ConversionResult<ExtraAudioDescriptor>
legacy2aidl_audio_extra_audio_descriptor_ExtraAudioDescriptor(
const audio_extra_audio_descriptor& legacy) {
- media::ExtraAudioDescriptor aidl;
+ ExtraAudioDescriptor aidl;
aidl.standard = VALUE_OR_RETURN(legacy2aidl_audio_standard_t_AudioStandard(legacy.standard));
if (legacy.descriptor_length > EXTRA_AUDIO_DESCRIPTOR_SIZE) {
return unexpected(BAD_VALUE);
diff --git a/media/libaudioclient/Android.bp b/media/libaudioclient/Android.bp
index 3c8796e..f6446bb 100644
--- a/media/libaudioclient/Android.bp
+++ b/media/libaudioclient/Android.bp
@@ -323,23 +323,19 @@
"aidl/android/media/AudioPatch.aidl",
"aidl/android/media/AudioPlaybackRate.aidl",
"aidl/android/media/AudioPort.aidl",
+ "aidl/android/media/AudioPortSys.aidl",
"aidl/android/media/AudioPortConfig.aidl",
+ "aidl/android/media/AudioPortConfigSys.aidl",
"aidl/android/media/AudioPortDeviceExtSys.aidl",
- "aidl/android/media/AudioPortExt.aidl",
"aidl/android/media/AudioPortExtSys.aidl",
- "aidl/android/media/AudioPortMixExt.aidl",
"aidl/android/media/AudioPortMixExtSys.aidl",
- "aidl/android/media/AudioPortMixExtUseCase.aidl",
"aidl/android/media/AudioPortRole.aidl",
"aidl/android/media/AudioPortType.aidl",
"aidl/android/media/AudioProfileSys.aidl",
- "aidl/android/media/AudioStandard.aidl",
"aidl/android/media/AudioTimestampInternal.aidl",
"aidl/android/media/AudioUniqueIdUse.aidl",
"aidl/android/media/AudioVibratorInfo.aidl",
"aidl/android/media/EffectDescriptor.aidl",
- "aidl/android/media/ExtraAudioDescriptor.aidl",
- "aidl/android/media/Int.aidl",
"aidl/android/media/TrackSecondaryOutputInfo.aidl",
],
imports: [
diff --git a/media/libaudioclient/AudioEffect.cpp b/media/libaudioclient/AudioEffect.cpp
index 3a97945..62f863d 100644
--- a/media/libaudioclient/AudioEffect.cpp
+++ b/media/libaudioclient/AudioEffect.cpp
@@ -567,7 +567,7 @@
int32_t audioSessionAidl = VALUE_OR_RETURN_STATUS(
legacy2aidl_audio_session_t_int32_t(audioSession));
- media::Int countAidl;
+ media::audio::common::Int countAidl;
countAidl.value = VALUE_OR_RETURN_STATUS(convertIntegral<int32_t>(*count));
std::vector<media::EffectDescriptor> retAidl;
RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(
diff --git a/media/libaudioclient/AudioSystem.cpp b/media/libaudioclient/AudioSystem.cpp
index d9b4285..edad6d1 100644
--- a/media/libaudioclient/AudioSystem.cpp
+++ b/media/libaudioclient/AudioSystem.cpp
@@ -58,6 +58,7 @@
using media::audio::common::AudioSource;
using media::audio::common::AudioStreamType;
using media::audio::common::AudioUsage;
+using media::audio::common::Int;
// client singleton for AudioFlinger binder interface
Mutex AudioSystem::gLock;
@@ -1493,7 +1494,7 @@
legacy2aidl_audio_port_role_t_AudioPortRole(role));
media::AudioPortType typeAidl = VALUE_OR_RETURN_STATUS(
legacy2aidl_audio_port_type_t_AudioPortType(type));
- media::Int numPortsAidl;
+ Int numPortsAidl;
numPortsAidl.value = VALUE_OR_RETURN_STATUS(convertIntegral<int32_t>(*num_ports));
std::vector<media::AudioPort> portsAidl;
int32_t generationAidl;
@@ -1560,7 +1561,7 @@
if (aps == 0) return PERMISSION_DENIED;
- media::Int numPatchesAidl;
+ Int numPatchesAidl;
numPatchesAidl.value = VALUE_OR_RETURN_STATUS(convertIntegral<int32_t>(*num_patches));
std::vector<media::AudioPatch> patchesAidl;
int32_t generationAidl;
@@ -1873,7 +1874,7 @@
const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
if (aps == 0) return PERMISSION_DENIED;
- media::Int numSurroundFormatsAidl;
+ Int numSurroundFormatsAidl;
numSurroundFormatsAidl.value =
VALUE_OR_RETURN_STATUS(convertIntegral<int32_t>(*numSurroundFormats));
std::vector<AudioFormatDescription> surroundFormatsAidl;
@@ -1900,7 +1901,7 @@
const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service();
if (aps == 0) return PERMISSION_DENIED;
- media::Int numSurroundFormatsAidl;
+ Int numSurroundFormatsAidl;
numSurroundFormatsAidl.value =
VALUE_OR_RETURN_STATUS(convertIntegral<int32_t>(*numSurroundFormats));
std::vector<AudioFormatDescription> surroundFormatsAidl;
diff --git a/media/libaudioclient/aidl/android/media/AudioPort.aidl b/media/libaudioclient/aidl/android/media/AudioPort.aidl
index 76e55b9..ff177c0 100644
--- a/media/libaudioclient/aidl/android/media/AudioPort.aidl
+++ b/media/libaudioclient/aidl/android/media/AudioPort.aidl
@@ -16,43 +16,13 @@
package android.media;
-import android.media.AudioGainSys;
-import android.media.AudioPortConfig;
-import android.media.AudioPortExt;
-import android.media.AudioPortExtSys;
-import android.media.AudioPortRole;
-import android.media.AudioPortType;
-import android.media.AudioProfileSys;
-import android.media.ExtraAudioDescriptor;
-import android.media.audio.common.AudioGain;
-import android.media.audio.common.AudioProfile;
+import android.media.AudioPortSys;
+import android.media.audio.common.AudioPort;
/**
* {@hide}
*/
parcelable AudioPort {
- /** Port unique ID. Interpreted as audio_port_handle_t. */
- int id;
- /** Sink or source. */
- AudioPortRole role;
- /** Device, mix ... */
- AudioPortType type;
- @utf8InCpp String name;
- /** AudioProfiles supported by this port (format, Rates, Channels). */
- AudioProfile[] profiles;
- /** System-only parameters for each AudioProfile. */
- AudioProfileSys[] profilesSys;
- /**
- * ExtraAudioDescriptors supported by this port. The format is not unrecognized to the
- * platform. The audio capability is described by a hardware descriptor.
- */
- ExtraAudioDescriptor[] extraAudioDescriptors;
- /** Gain controllers. */
- AudioGain[] gains;
- /** System-only parameters for each AudioGain. */
- AudioGainSys[] gainsSys;
- /** Current audio port configuration. */
- AudioPortConfig activeConfig;
- AudioPortExt ext;
- AudioPortExtSys extSys;
+ AudioPort hal;
+ AudioPortSys sys;
}
diff --git a/media/libaudioclient/aidl/android/media/AudioPortConfig.aidl b/media/libaudioclient/aidl/android/media/AudioPortConfig.aidl
index ffeb905..3a4ca31 100644
--- a/media/libaudioclient/aidl/android/media/AudioPortConfig.aidl
+++ b/media/libaudioclient/aidl/android/media/AudioPortConfig.aidl
@@ -16,39 +16,13 @@
package android.media;
-import android.media.AudioIoFlags;
-import android.media.AudioPortExt;
-import android.media.AudioPortExtSys;
-import android.media.AudioPortRole;
-import android.media.AudioPortType;
-import android.media.Int;
-import android.media.audio.common.AudioChannelLayout;
-import android.media.audio.common.AudioFormatDescription;
-import android.media.audio.common.AudioGainConfig;
+import android.media.AudioPortConfigSys;
+import android.media.audio.common.AudioPortConfig;
/**
* {@hide}
*/
parcelable AudioPortConfig {
- /**
- * Port unique ID.
- * Interpreted as audio_port_handle_t.
- */
- int id;
- /** Sink or source. */
- AudioPortRole role;
- /** Device, mix ... */
- AudioPortType type;
- /** Sampling rate in Hz. Can be left unspecified. */
- @nullable Int sampleRate;
- /** Channel mask. Can be left unspecified. */
- @nullable AudioChannelLayout channelMask;
- /** Format. Can be left unspecified. */
- @nullable AudioFormatDescription format;
- /** Gain to apply. Can be left unspecified. */
- @nullable AudioGainConfig gain;
- /** Framework only: HW_AV_SYNC, DIRECT, ... Can be left unspecified. */
- @nullable AudioIoFlags flags;
- AudioPortExt ext;
- AudioPortExtSys extSys;
+ AudioPortConfig hal;
+ AudioPortConfigSys sys;
}
diff --git a/media/libaudioclient/aidl/android/media/AudioStandard.aidl b/media/libaudioclient/aidl/android/media/AudioPortConfigSys.aidl
similarity index 62%
rename from media/libaudioclient/aidl/android/media/AudioStandard.aidl
rename to media/libaudioclient/aidl/android/media/AudioPortConfigSys.aidl
index e131d0d..6a615cd 100644
--- a/media/libaudioclient/aidl/android/media/AudioStandard.aidl
+++ b/media/libaudioclient/aidl/android/media/AudioPortConfigSys.aidl
@@ -13,15 +13,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package android.media;
+import android.media.AudioIoFlags;
+import android.media.AudioPortExtSys;
+import android.media.AudioPortRole;
+import android.media.AudioPortType;
+
/**
- * The audio standard that describe audio playback/capture capabilites.
- *
* {@hide}
*/
-@Backing(type="int")
-enum AudioStandard {
- NONE = 0,
- EDID = 1,
+parcelable AudioPortConfigSys {
+ /** Sink or source. */
+ AudioPortRole role;
+ /** Device, mix ... */
+ AudioPortType type;
+ /** Flags: HW_AV_SYNC, DIRECT, ... Can be left unspecified. */
+ @nullable AudioIoFlags flags;
+ AudioPortExtSys ext;
}
diff --git a/media/libaudioclient/aidl/android/media/AudioPortExt.aidl b/media/libaudioclient/aidl/android/media/AudioPortExt.aidl
deleted file mode 100644
index 27693b2..0000000
--- a/media/libaudioclient/aidl/android/media/AudioPortExt.aidl
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.media;
-
-import android.media.AudioPortMixExt;
-import android.media.audio.common.AudioDevice;
-
-/**
- * {@hide}
- */
-union AudioPortExt {
- /**
- * This represents an empty union. Value is ignored.
- * TODO(ytai): replace with the canonical representation for an empty union, as soon as it is
- * established.
- */
- boolean unspecified;
- /** Audio device specification. */
- AudioDevice device;
- /** Mix specific info. */
- AudioPortMixExt mix;
- /** Audio session identifier. */
- int session;
-}
diff --git a/media/libaudioclient/aidl/android/media/AudioPortMixExt.aidl b/media/libaudioclient/aidl/android/media/AudioPortMixExt.aidl
deleted file mode 100644
index d222d0a..0000000
--- a/media/libaudioclient/aidl/android/media/AudioPortMixExt.aidl
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.media;
-
-import android.media.AudioPortMixExtUseCase;
-
-/**
- * {@hide}
- */
-parcelable AudioPortMixExt {
- /**
- * I/O handle of the input/output stream. Interpreted as audio_io_handle_t.
- */
- int handle;
- AudioPortMixExtUseCase usecase;
-}
diff --git a/media/libaudioclient/aidl/android/media/AudioPortMixExtUseCase.aidl b/media/libaudioclient/aidl/android/media/AudioPortMixExtUseCase.aidl
deleted file mode 100644
index 77f2fbb..0000000
--- a/media/libaudioclient/aidl/android/media/AudioPortMixExtUseCase.aidl
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.media;
-
-import android.media.audio.common.AudioSource;
-import android.media.audio.common.AudioStreamType;
-
-/**
- * {@hide}
- */
-union AudioPortMixExtUseCase {
- /**
- * This to be set if the containing config has the AudioPortRole::NONE role.
- * This represents an empty value (value is ignored).
- * TODO(ytai): replace with the canonical representation for an empty union, as soon as it is
- * established.
- */
- boolean unspecified;
- /** This to be set if the containing config has the AudioPortRole::SOURCE role. */
- AudioStreamType stream;
- /** This to be set if the containing config has the AudioPortRole::SINK role. */
- AudioSource source;
-}
diff --git a/media/libaudioclient/aidl/android/media/AudioPortSys.aidl b/media/libaudioclient/aidl/android/media/AudioPortSys.aidl
new file mode 100644
index 0000000..27c0fe5
--- /dev/null
+++ b/media/libaudioclient/aidl/android/media/AudioPortSys.aidl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.media;
+
+import android.media.AudioGainSys;
+import android.media.AudioPortConfigSys;
+import android.media.AudioPortExtSys;
+import android.media.AudioPortRole;
+import android.media.AudioPortType;
+import android.media.AudioProfileSys;
+
+/**
+ * {@hide}
+ */
+parcelable AudioPortSys {
+ /** Sink or source. */
+ AudioPortRole role;
+ /** Device, mix ... */
+ AudioPortType type;
+ /** System-only parameters for each AudioProfile from 'port.profiles'. */
+ AudioProfileSys[] profiles;
+ /** System-only parameters for each AudioGain from 'port.gains'. */
+ AudioGainSys[] gains;
+ /** System-only parameters for 'port.activeConfig'. */
+ AudioPortConfigSys activeConfig;
+ /** System-only extra parameters for 'port.ext'. */
+ AudioPortExtSys ext;
+}
diff --git a/media/libaudioclient/aidl/android/media/ExtraAudioDescriptor.aidl b/media/libaudioclient/aidl/android/media/ExtraAudioDescriptor.aidl
deleted file mode 100644
index 0ea0e4f..0000000
--- a/media/libaudioclient/aidl/android/media/ExtraAudioDescriptor.aidl
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.media;
-
-import android.media.AudioStandard;
-import android.media.audio.common.AudioEncapsulationType;
-
-/**
- * The audio descriptor that descibes playback/capture capabilities according to
- * a particular standard.
- *
- * {@hide}
- */
-parcelable ExtraAudioDescriptor {
- AudioStandard standard;
- byte[] audioDescriptor;
- AudioEncapsulationType encapsulationType;
-}
diff --git a/media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl b/media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl
index 282bce1..c59655d 100644
--- a/media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl
+++ b/media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl
@@ -40,7 +40,6 @@
import android.media.IAudioPolicyServiceClient;
import android.media.ICaptureStateListener;
import android.media.INativeSpatializerCallback;
-import android.media.Int;
import android.media.SoundTriggerSession;
import android.media.audio.common.AudioConfig;
import android.media.audio.common.AudioConfigBase;
@@ -53,6 +52,7 @@
import android.media.audio.common.AudioStreamType;
import android.media.audio.common.AudioUsage;
import android.media.audio.common.AudioUuid;
+import android.media.audio.common.Int;
/**
* IAudioPolicyService interface (see AudioPolicyInterface for method descriptions).
diff --git a/media/libaudioclient/aidl/android/media/Int.aidl b/media/libaudioclient/aidl/android/media/Int.aidl
deleted file mode 100644
index 24f4d62..0000000
--- a/media/libaudioclient/aidl/android/media/Int.aidl
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.media;
-
-/**
- * This is a simple wrapper around an 'int', putting it in a parcelable, so it can be used as an
- * inout parameter, be made @nullable, etc.
- *
- * {@hide}
- */
-parcelable Int {
- int value;
-}
diff --git a/media/libaudioclient/include/media/AidlConversion.h b/media/libaudioclient/include/media/AidlConversion.h
index 30fd309..52ea91b 100644
--- a/media/libaudioclient/include/media/AidlConversion.h
+++ b/media/libaudioclient/include/media/AidlConversion.h
@@ -33,11 +33,9 @@
#include <android/media/AudioPort.h>
#include <android/media/AudioPortConfig.h>
#include <android/media/AudioPortDeviceExtSys.h>
-#include <android/media/AudioPortExt.h>
#include <android/media/AudioTimestampInternal.h>
#include <android/media/AudioUniqueIdUse.h>
#include <android/media/EffectDescriptor.h>
-#include <android/media/ExtraAudioDescriptor.h>
#include <android/media/TrackSecondaryOutputInfo.h>
#include <android/media/audio/common/AudioChannelLayout.h>
#include <android/media/audio/common/AudioConfig.h>
@@ -53,10 +51,14 @@
#include <android/media/audio/common/AudioGainMode.h>
#include <android/media/audio/common/AudioMode.h>
#include <android/media/audio/common/AudioOffloadInfo.h>
+#include <android/media/audio/common/AudioPortExt.h>
+#include <android/media/audio/common/AudioPortMixExt.h>
#include <android/media/audio/common/AudioProfile.h>
#include <android/media/audio/common/AudioSource.h>
+#include <android/media/audio/common/AudioStandard.h>
#include <android/media/audio/common/AudioUsage.h>
#include <android/media/audio/common/AudioUuid.h>
+#include <android/media/audio/common/ExtraAudioDescriptor.h>
#include <android/media/SharedFileRegion.h>
#include <binder/IMemory.h>
@@ -219,11 +221,11 @@
ConversionResult<int32_t> legacy2aidl_audio_session_t_int32_t(audio_session_t legacy);
ConversionResult<audio_port_config_mix_ext> aidl2legacy_AudioPortMixExt(
- const media::AudioPortMixExt& aidl, media::AudioPortRole role,
+ const media::audio::common::AudioPortMixExt& aidl, media::AudioPortRole role,
const media::AudioPortMixExtSys& aidlMixExt);
status_t legacy2aidl_AudioPortMixExt(
const audio_port_config_mix_ext& legacy, audio_port_role_t role,
- media::AudioPortMixExt* aidl, media::AudioPortMixExtSys* aidlMixExt);
+ media::audio::common::AudioPortMixExt* aidl, media::AudioPortMixExtSys* aidlMixExt);
ConversionResult<audio_port_config_session_ext>
aidl2legacy_int32_t_audio_port_config_session_ext(int32_t aidl);
@@ -352,11 +354,11 @@
ConversionResult<audio_port_mix_ext>
aidl2legacy_AudioPortMixExt_audio_port_mix_ext(
- const media::AudioPortMixExt& aidl,
+ const media::audio::common::AudioPortMixExt& aidl,
const media::AudioPortMixExtSys& aidlMixExt);
status_t legacy2aidl_audio_port_mix_ext_AudioPortMixExt(
const audio_port_mix_ext& legacy,
- media::AudioPortMixExt* aidl,
+ media::audio::common::AudioPortMixExt* aidl,
media::AudioPortMixExtSys* aidlMixExt);
ConversionResult<audio_port_session_ext>
@@ -416,14 +418,14 @@
legacy2aidl_audio_playback_rate_t_AudioPlaybackRate(const audio_playback_rate_t& legacy);
ConversionResult<audio_standard_t>
-aidl2legacy_AudioStandard_audio_standard_t(media::AudioStandard aidl);
-ConversionResult<media::AudioStandard>
+aidl2legacy_AudioStandard_audio_standard_t(media::audio::common::AudioStandard aidl);
+ConversionResult<media::audio::common::AudioStandard>
legacy2aidl_audio_standard_t_AudioStandard(audio_standard_t legacy);
ConversionResult<audio_extra_audio_descriptor>
aidl2legacy_ExtraAudioDescriptor_audio_extra_audio_descriptor(
- const media::ExtraAudioDescriptor& aidl);
-ConversionResult<media::ExtraAudioDescriptor>
+ const media::audio::common::ExtraAudioDescriptor& aidl);
+ConversionResult<media::audio::common::ExtraAudioDescriptor>
legacy2aidl_audio_extra_audio_descriptor_ExtraAudioDescriptor(
const audio_extra_audio_descriptor& legacy);
diff --git a/media/libaudiofoundation/AudioPort.cpp b/media/libaudiofoundation/AudioPort.cpp
index 329ff9a..099aff4 100644
--- a/media/libaudiofoundation/AudioPort.cpp
+++ b/media/libaudiofoundation/AudioPort.cpp
@@ -18,7 +18,6 @@
#include <algorithm>
#include <utility>
-#include <android/media/ExtraAudioDescriptor.h>
#include <android-base/stringprintf.h>
#include <media/AudioPort.h>
#include <utils/Log.h>
@@ -207,17 +206,19 @@
}
status_t AudioPort::writeToParcelable(media::AudioPort* parcelable) const {
- parcelable->name = mName;
- parcelable->type = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_port_type_t_AudioPortType(mType));
- parcelable->role = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_port_role_t_AudioPortRole(mRole));
+ parcelable->hal.name = mName;
+ parcelable->sys.type = VALUE_OR_RETURN_STATUS(
+ legacy2aidl_audio_port_type_t_AudioPortType(mType));
+ parcelable->sys.role = VALUE_OR_RETURN_STATUS(
+ legacy2aidl_audio_port_role_t_AudioPortRole(mRole));
auto aidlProfiles = VALUE_OR_RETURN_STATUS(
legacy2aidl_AudioProfileVector(mProfiles, useInputChannelMask()));
- parcelable->profiles = aidlProfiles.first;
- parcelable->profilesSys = aidlProfiles.second;
- parcelable->extraAudioDescriptors = mExtraAudioDescriptors;
+ parcelable->hal.profiles = aidlProfiles.first;
+ parcelable->sys.profiles = aidlProfiles.second;
+ parcelable->hal.extraAudioDescriptors = mExtraAudioDescriptors;
auto aidlGains = VALUE_OR_RETURN_STATUS(legacy2aidl_AudioGains(mGains));
- parcelable->gains = aidlGains.first;
- parcelable->gainsSys = aidlGains.second;
+ parcelable->hal.gains = aidlGains.first;
+ parcelable->sys.gains = aidlGains.second;
return OK;
}
@@ -228,16 +229,18 @@
}
status_t AudioPort::readFromParcelable(const media::AudioPort& parcelable) {
- mName = parcelable.name;
- mType = VALUE_OR_RETURN_STATUS(aidl2legacy_AudioPortType_audio_port_type_t(parcelable.type));
- mRole = VALUE_OR_RETURN_STATUS(aidl2legacy_AudioPortRole_audio_port_role_t(parcelable.role));
+ mName = parcelable.hal.name;
+ mType = VALUE_OR_RETURN_STATUS(
+ aidl2legacy_AudioPortType_audio_port_type_t(parcelable.sys.type));
+ mRole = VALUE_OR_RETURN_STATUS(
+ aidl2legacy_AudioPortRole_audio_port_role_t(parcelable.sys.role));
mProfiles = VALUE_OR_RETURN_STATUS(
aidl2legacy_AudioProfileVector(
- std::make_pair(parcelable.profiles, parcelable.profilesSys),
+ std::make_pair(parcelable.hal.profiles, parcelable.sys.profiles),
useInputChannelMask()));
- mExtraAudioDescriptors = parcelable.extraAudioDescriptors;
+ mExtraAudioDescriptors = parcelable.hal.extraAudioDescriptors;
mGains = VALUE_OR_RETURN_STATUS(
- aidl2legacy_AudioGains(std::make_pair(parcelable.gains, parcelable.gainsSys)));
+ aidl2legacy_AudioGains(std::make_pair(parcelable.hal.gains, parcelable.sys.gains)));
return OK;
}
@@ -340,8 +343,8 @@
}
status_t AudioPortConfig::writeToParcelable(
- media::AudioPortConfig* parcelable, bool isInput) const {
- media::Int aidl_sampleRate;
+ media::audio::common::AudioPortConfig* parcelable, bool isInput) const {
+ media::audio::common::Int aidl_sampleRate;
aidl_sampleRate.value = VALUE_OR_RETURN_STATUS(convertIntegral<int32_t>(mSamplingRate));
parcelable->sampleRate = aidl_sampleRate;
parcelable->format = VALUE_OR_RETURN_STATUS(
@@ -356,7 +359,7 @@
}
status_t AudioPortConfig::readFromParcelable(
- const media::AudioPortConfig& parcelable, bool isInput) {
+ const media::audio::common::AudioPortConfig& parcelable, bool isInput) {
if (parcelable.sampleRate.has_value()) {
mSamplingRate = VALUE_OR_RETURN_STATUS(
convertIntegral<unsigned int>(parcelable.sampleRate.value().value));
diff --git a/media/libaudiofoundation/DeviceDescriptorBase.cpp b/media/libaudiofoundation/DeviceDescriptorBase.cpp
index 2e9b005..cf829b5 100644
--- a/media/libaudiofoundation/DeviceDescriptorBase.cpp
+++ b/media/libaudiofoundation/DeviceDescriptorBase.cpp
@@ -166,18 +166,18 @@
status_t DeviceDescriptorBase::writeToParcelable(media::AudioPort* parcelable) const {
AudioPort::writeToParcelable(parcelable);
- AudioPortConfig::writeToParcelable(&parcelable->activeConfig, useInputChannelMask());
- parcelable->id = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_port_handle_t_int32_t(mId));
+ AudioPortConfig::writeToParcelable(&parcelable->hal.activeConfig, useInputChannelMask());
+ parcelable->hal.id = VALUE_OR_RETURN_STATUS(legacy2aidl_audio_port_handle_t_int32_t(mId));
media::audio::common::AudioDevice device = VALUE_OR_RETURN_STATUS(
legacy2aidl_AudioDeviceTypeAddress(mDeviceTypeAddr));
- UNION_SET(parcelable->ext, device, device);
+ UNION_SET(parcelable->hal.ext, device, device);
media::AudioPortDeviceExtSys deviceSys;
deviceSys.encapsulationModes = VALUE_OR_RETURN_STATUS(
legacy2aidl_AudioEncapsulationMode_mask(mEncapsulationModes));
deviceSys.encapsulationMetadataTypes = VALUE_OR_RETURN_STATUS(
legacy2aidl_AudioEncapsulationMetadataType_mask(mEncapsulationMetadataTypes));
- UNION_SET(parcelable->extSys, device, deviceSys);
+ UNION_SET(parcelable->sys.ext, device, deviceSys);
return OK;
}
@@ -188,21 +188,22 @@
}
status_t DeviceDescriptorBase::readFromParcelable(const media::AudioPort& parcelable) {
- if (parcelable.type != media::AudioPortType::DEVICE) {
+ if (parcelable.sys.type != media::AudioPortType::DEVICE) {
return BAD_VALUE;
}
status_t status = AudioPort::readFromParcelable(parcelable)
- ?: AudioPortConfig::readFromParcelable(parcelable.activeConfig, useInputChannelMask());
+ ?: AudioPortConfig::readFromParcelable(
+ parcelable.hal.activeConfig, useInputChannelMask());
if (status != OK) {
return status;
}
media::audio::common::AudioDevice device = VALUE_OR_RETURN_STATUS(
- UNION_GET(parcelable.ext, device));
+ UNION_GET(parcelable.hal.ext, device));
mDeviceTypeAddr = VALUE_OR_RETURN_STATUS(
aidl2legacy_AudioDeviceTypeAddress(device));
media::AudioPortDeviceExtSys deviceSys = VALUE_OR_RETURN_STATUS(
- UNION_GET(parcelable.extSys, device));
+ UNION_GET(parcelable.sys.ext, device));
mEncapsulationModes = VALUE_OR_RETURN_STATUS(
aidl2legacy_AudioEncapsulationMode_mask(deviceSys.encapsulationModes));
mEncapsulationMetadataTypes = VALUE_OR_RETURN_STATUS(
diff --git a/media/libaudiofoundation/include/media/AudioPort.h b/media/libaudiofoundation/include/media/AudioPort.h
index 6e1d032..aa9b5f6 100644
--- a/media/libaudiofoundation/include/media/AudioPort.h
+++ b/media/libaudiofoundation/include/media/AudioPort.h
@@ -21,7 +21,7 @@
#include <android/media/AudioPort.h>
#include <android/media/AudioPortConfig.h>
-#include <android/media/ExtraAudioDescriptor.h>
+#include <android/media/audio/common/ExtraAudioDescriptor.h>
#include <binder/Parcel.h>
#include <binder/Parcelable.h>
#include <media/AudioGain.h>
@@ -69,10 +69,10 @@
AudioProfileVector &getAudioProfiles() { return mProfiles; }
void setExtraAudioDescriptors(
- const std::vector<media::ExtraAudioDescriptor> extraAudioDescriptors) {
+ const std::vector<media::audio::common::ExtraAudioDescriptor> extraAudioDescriptors) {
mExtraAudioDescriptors = extraAudioDescriptors;
}
- std::vector<media::ExtraAudioDescriptor> &getExtraAudioDescriptors() {
+ std::vector<media::audio::common::ExtraAudioDescriptor> &getExtraAudioDescriptors() {
return mExtraAudioDescriptors;
}
@@ -114,7 +114,7 @@
// Audio capabilities that are defined by hardware descriptors when the format is unrecognized
// by the platform, e.g. short audio descriptor in EDID for HDMI.
- std::vector<media::ExtraAudioDescriptor> mExtraAudioDescriptors;
+ std::vector<media::audio::common::ExtraAudioDescriptor> mExtraAudioDescriptors;
private:
template <typename T, std::enable_if_t<std::is_same<T, struct audio_port>::value
|| std::is_same<T, struct audio_port_v7>::value, int> = 0>
@@ -152,8 +152,10 @@
bool equals(const sp<AudioPortConfig>& other) const;
- status_t writeToParcelable(media::AudioPortConfig* parcelable, bool isInput) const;
- status_t readFromParcelable(const media::AudioPortConfig& parcelable, bool isInput);
+ status_t writeToParcelable(
+ media::audio::common::AudioPortConfig* parcelable, bool isInput) const;
+ status_t readFromParcelable(
+ const media::audio::common::AudioPortConfig& parcelable, bool isInput);
protected:
unsigned int mSamplingRate = 0u;
diff --git a/media/libaudiofoundation/tests/audiofoundation_parcelable_test.cpp b/media/libaudiofoundation/tests/audiofoundation_parcelable_test.cpp
index 3a7ddd7..0315a59 100644
--- a/media/libaudiofoundation/tests/audiofoundation_parcelable_test.cpp
+++ b/media/libaudiofoundation/tests/audiofoundation_parcelable_test.cpp
@@ -130,11 +130,11 @@
Parcel data;
sp<AudioPortConfig> audioPortConfig = new AudioPortConfigTestStub();
audioPortConfig->applyAudioPortConfig(&TEST_AUDIO_PORT_CONFIG);
- media::AudioPortConfig parcelable{};
+ media::audio::common::AudioPortConfig parcelable{};
ASSERT_EQ(NO_ERROR, audioPortConfig->writeToParcelable(&parcelable, false /*isInput*/));
ASSERT_EQ(NO_ERROR, data.writeParcelable(parcelable));
data.setDataPosition(0);
- media::AudioPortConfig parcelableFromParcel{};
+ media::audio::common::AudioPortConfig parcelableFromParcel{};
ASSERT_EQ(NO_ERROR, data.readParcelable(&parcelableFromParcel));
sp<AudioPortConfig> audioPortConfigFromParcel = new AudioPortConfigTestStub();
ASSERT_EQ(NO_ERROR, audioPortConfigFromParcel->readFromParcelable(
diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
index d01037d..db9be47 100644
--- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
+++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
@@ -59,6 +59,7 @@
using media::audio::common::AudioStreamType;
using media::audio::common::AudioUsage;
using media::audio::common::AudioUuid;
+using media::audio::common::Int;
const std::vector<audio_usage_t>& SYSTEM_USAGES = {
AUDIO_USAGE_CALL_ASSISTANT,
@@ -1299,7 +1300,7 @@
Status AudioPolicyService::queryDefaultPreProcessing(
int32_t audioSessionAidl,
- media::Int* countAidl,
+ Int* countAidl,
std::vector<media::EffectDescriptor>* _aidl_return) {
audio_session_t audioSession = VALUE_OR_RETURN_BINDER_STATUS(
aidl2legacy_int32_t_audio_session_t(audioSessionAidl));
@@ -1480,7 +1481,7 @@
Status AudioPolicyService::listAudioPorts(media::AudioPortRole roleAidl,
- media::AudioPortType typeAidl, media::Int* count,
+ media::AudioPortType typeAidl, Int* count,
std::vector<media::AudioPort>* portsAidl,
int32_t* _aidl_return) {
audio_port_role_t role = VALUE_OR_RETURN_BINDER_STATUS(
@@ -1568,7 +1569,7 @@
IPCThreadState::self()->getCallingUid()));
}
-Status AudioPolicyService::listAudioPatches(media::Int* count,
+Status AudioPolicyService::listAudioPatches(Int* count,
std::vector<media::AudioPatch>* patchesAidl,
int32_t* _aidl_return) {
unsigned int num_patches = VALUE_OR_RETURN_BINDER_STATUS(
@@ -1853,7 +1854,7 @@
return Status::ok();
}
-Status AudioPolicyService::getSurroundFormats(media::Int* count,
+Status AudioPolicyService::getSurroundFormats(Int* count,
std::vector<AudioFormatDescription>* formats,
std::vector<bool>* formatsEnabled) {
unsigned int numSurroundFormats = VALUE_OR_RETURN_BINDER_STATUS(
@@ -1887,7 +1888,7 @@
}
Status AudioPolicyService::getReportedSurroundFormats(
- media::Int* count, std::vector<AudioFormatDescription>* formats) {
+ Int* count, std::vector<AudioFormatDescription>* formats) {
unsigned int numSurroundFormats = VALUE_OR_RETURN_BINDER_STATUS(
convertIntegral<unsigned int>(count->value));
if (numSurroundFormats > MAX_ITEMS_PER_LIST) {
diff --git a/services/audiopolicy/service/AudioPolicyService.h b/services/audiopolicy/service/AudioPolicyService.h
index 92e1bb9..03241a2 100644
--- a/services/audiopolicy/service/AudioPolicyService.h
+++ b/services/audiopolicy/service/AudioPolicyService.h
@@ -59,6 +59,7 @@
using media::audio::common::AudioStreamType;
using media::audio::common::AudioUsage;
using media::audio::common::AudioUuid;
+using media::audio::common::Int;
// ----------------------------------------------------------------------------
@@ -152,7 +153,7 @@
bool* _aidl_return) override;
binder::Status isSourceActive(AudioSource source, bool* _aidl_return) override;
binder::Status queryDefaultPreProcessing(
- int32_t audioSession, media::Int* count,
+ int32_t audioSession, Int* count,
std::vector<media::EffectDescriptor>* _aidl_return) override;
binder::Status addSourceDefaultEffect(const AudioUuid& type,
const std::string& opPackageName,
@@ -174,14 +175,14 @@
const media::AudioAttributesInternal& attributes,
bool* _aidl_return) override;
binder::Status listAudioPorts(media::AudioPortRole role, media::AudioPortType type,
- media::Int* count, std::vector<media::AudioPort>* ports,
+ Int* count, std::vector<media::AudioPort>* ports,
int32_t* _aidl_return) override;
binder::Status getAudioPort(const media::AudioPort& port,
media::AudioPort* _aidl_return) override;
binder::Status createAudioPatch(const media::AudioPatch& patch, int32_t handle,
int32_t* _aidl_return) override;
binder::Status releaseAudioPatch(int32_t handle) override;
- binder::Status listAudioPatches(media::Int* count, std::vector<media::AudioPatch>* patches,
+ binder::Status listAudioPatches(Int* count, std::vector<media::AudioPatch>* patches,
int32_t* _aidl_return) override;
binder::Status setAudioPortConfig(const media::AudioPortConfig& config) override;
binder::Status registerClient(const sp<media::IAudioPolicyServiceClient>& client) override;
@@ -208,11 +209,11 @@
binder::Status getStreamVolumeDB(AudioStreamType stream, int32_t index,
const AudioDeviceDescription& device,
float* _aidl_return) override;
- binder::Status getSurroundFormats(media::Int* count,
+ binder::Status getSurroundFormats(Int* count,
std::vector<AudioFormatDescription>* formats,
std::vector<bool>* formatsEnabled) override;
binder::Status getReportedSurroundFormats(
- media::Int* count, std::vector<AudioFormatDescription>* formats) override;
+ Int* count, std::vector<AudioFormatDescription>* formats) override;
binder::Status getHwOffloadEncodingFormatsSupportedForA2DP(
std::vector<AudioFormatDescription>* _aidl_return) override;
binder::Status setSurroundFormatEnabled(const AudioFormatDescription& audioFormat,