Add defaults for audio AIDL interfaces

- with defaults user don't have to change their Android.bp when there is
  a update
- update AIDL audio interfaces with android.media.audio.common.types
- update Spatialization and HeadTracking AIDL usage

Bug: 273373363
Bug: 293370815
Test: m
Test: lunch panther-trunk_staging-userdebug; m; test Bluetooth Audio
Change-Id: Ic9d8afc1d4e19e4243c66065b0a5d29156632851
Merged-In: Ic9d8afc1d4e19e4243c66065b0a5d29156632851
This commit is contained in:
Shunkai Yao 2023-10-10 19:26:07 +00:00
parent 3143e6930b
commit 195d3d6915
19 changed files with 155 additions and 59 deletions

View file

@ -34,6 +34,7 @@ aidl_interface {
name: "android.hardware.audio.common",
defaults: [
"android.hardware.audio_defaults",
"latest_android_media_audio_common_types_import_interface",
],
srcs: [
"android/hardware/audio/common/AudioOffloadMetadata.aidl",
@ -42,10 +43,7 @@ aidl_interface {
"android/hardware/audio/common/SinkMetadata.aidl",
"android/hardware/audio/common/SourceMetadata.aidl",
],
frozen: true,
imports: [
"android.media.audio.common.types-V2",
],
frozen: false,
backend: {
cpp: {
enabled: true,
@ -83,7 +81,7 @@ aidl_interface {
}
// Note: This should always be one version ahead of the last frozen version
latest_android_hardware_audio_common = "android.hardware.audio.common-V2"
latest_android_hardware_audio_common = "android.hardware.audio.common-V3"
// Modules that depend on android.hardware.audio.common directly can include
// the following cc_defaults to avoid explicitly managing dependency versions
@ -109,10 +107,21 @@ cc_defaults {
],
}
aidl_interface_defaults {
name: "latest_android_hardware_audio_common_import_interface",
imports: [
latest_android_hardware_audio_common,
],
}
aidl_interface {
name: "android.hardware.audio.core",
defaults: [
"android.hardware.audio_defaults",
"latest_android_hardware_audio_common_import_interface",
"latest_android_hardware_audio_core_sounddose_import_interface",
"latest_android_hardware_audio_effect_import_interface",
"latest_android_media_audio_common_types_import_interface",
],
srcs: [
"android/hardware/audio/core/AudioPatch.aidl",
@ -137,10 +146,6 @@ aidl_interface {
imports: [
"android.hardware.common-V2",
"android.hardware.common.fmq-V1",
"android.hardware.audio.common-V2",
"android.hardware.audio.core.sounddose-V1",
"android.hardware.audio.effect-V1",
"android.media.audio.common.types-V2",
],
backend: {
// The C++ backend is disabled transitively due to use of FMQ.
@ -167,11 +172,11 @@ aidl_interface {
// IMPORTANT: Update latest_android_hardware_audio_core every time you
// add the latest frozen version to versions_with_info
],
frozen: true,
frozen: false,
}
// Note: This should always be one version ahead of the last frozen version
latest_android_hardware_audio_core = "android.hardware.audio.core-V1"
latest_android_hardware_audio_core = "android.hardware.audio.core-V2"
// Modules that depend on android.hardware.audio.core directly can include
// the following cc_defaults to avoid explicitly managing dependency versions
@ -190,18 +195,23 @@ cc_defaults {
],
}
aidl_interface_defaults {
name: "latest_android_hardware_audio_core_import_interface",
imports: [
latest_android_hardware_audio_core,
],
}
// Used for the standalone sounddose HAL
aidl_interface {
name: "android.hardware.audio.core.sounddose",
defaults: [
"android.hardware.audio_defaults",
"latest_android_media_audio_common_types_import_interface",
],
srcs: [
"android/hardware/audio/core/sounddose/ISoundDose.aidl",
],
imports: [
"android.media.audio.common.types-V2",
],
backend: {
// The C++ backend is disabled transitively due to use of FMQ by the core HAL.
cpp: {
@ -220,11 +230,11 @@ aidl_interface {
// IMPORTANT: Update latest_android_hardware_audio_core_sounddose every time you
// add the latest frozen version to versions_with_info
],
frozen: true,
frozen: false,
}
// Note: This should always be one version ahead of the last frozen version
latest_android_hardware_audio_core_sounddose = "android.hardware.audio.core.sounddose-V1"
latest_android_hardware_audio_core_sounddose = "android.hardware.audio.core.sounddose-V2"
// Modules that depend on android.hardware.audio.core.sounddose directly can include
// the following cc_defaults to avoid explicitly managing dependency versions
@ -236,6 +246,13 @@ cc_defaults {
],
}
cc_defaults {
name: "latest_android_hardware_audio_core_sounddose_ndk_export_shared_lib_header",
export_shared_lib_headers: [
latest_android_hardware_audio_core_sounddose + "-ndk",
],
}
cc_defaults {
name: "latest_android_hardware_audio_core_sounddose_ndk_static",
static_libs: [
@ -243,10 +260,19 @@ cc_defaults {
],
}
aidl_interface_defaults {
name: "latest_android_hardware_audio_core_sounddose_import_interface",
imports: [
latest_android_hardware_audio_core_sounddose,
],
}
aidl_interface {
name: "android.hardware.audio.effect",
defaults: [
"android.hardware.audio_defaults",
"latest_android_hardware_audio_common_import_interface",
"latest_android_media_audio_common_types_import_interface",
],
srcs: [
"android/hardware/audio/effect/AcousticEchoCanceler.aidl",
@ -280,8 +306,6 @@ aidl_interface {
imports: [
"android.hardware.common-V2",
"android.hardware.common.fmq-V1",
"android.hardware.audio.common-V2",
"android.media.audio.common.types-V2",
],
backend: {
// The C++ backend is disabled transitively due to use of FMQ.
@ -303,11 +327,11 @@ aidl_interface {
],
},
],
frozen: true,
frozen: false,
}
latest_android_hardware_audio_effect = "android.hardware.audio.effect-V1"
latest_android_hardware_audio_effect = "android.hardware.audio.effect-V2"
cc_defaults {
name: "latest_android_hardware_audio_effect_ndk_shared",
@ -322,3 +346,10 @@ cc_defaults {
latest_android_hardware_audio_effect + "-ndk",
],
}
aidl_interface_defaults {
name: "latest_android_hardware_audio_effect_import_interface",
imports: [
latest_android_hardware_audio_effect,
],
}

View file

@ -45,8 +45,8 @@ cc_library {
name: "libaudioaidlranges",
host_supported: true,
vendor_available: true,
static_libs: [
"android.hardware.audio.effect-V1-ndk",
defaults: [
"latest_android_hardware_audio_effect_ndk_shared",
],
export_include_dirs: ["include"],
header_libs: ["libaudioaidl_headers"],
@ -59,8 +59,10 @@ cc_test {
name: "libaudioaidlcommon_test",
host_supported: true,
vendor_available: true,
defaults: [
"latest_android_media_audio_common_types_ndk_static",
],
static_libs: [
"android.media.audio.common.types-V1-ndk",
"libaudioaidlcommon",
],
shared_libs: [

View file

@ -46,6 +46,7 @@ cc_library {
"latest_android_media_audio_common_types_ndk_shared",
"latest_android_hardware_audio_core_ndk_shared",
"latest_android_hardware_audio_core_sounddose_ndk_shared",
"latest_android_hardware_bluetooth_audio_ndk_shared",
],
export_include_dirs: ["include"],
srcs: [
@ -93,7 +94,6 @@ cc_library {
"audio_policy_engine_configuration_aidl_default",
],
shared_libs: [
"android.hardware.bluetooth.audio-V3-ndk",
"libaudio_aidl_conversion_common_ndk",
"libbluetooth_audio_session_aidl",
"libmedia_helper",
@ -118,15 +118,15 @@ cc_binary {
vintf_fragments: ["android.hardware.audio.service-aidl.xml"],
defaults: [
"aidlaudioservice_defaults",
"latest_android_media_audio_common_types_ndk_shared",
"latest_android_hardware_audio_core_sounddose_ndk_shared",
"latest_android_hardware_audio_core_ndk_shared",
"latest_android_hardware_bluetooth_audio_ndk_shared",
"latest_android_media_audio_common_types_ndk_shared",
],
static_libs: [
"libaudioserviceexampleimpl",
],
shared_libs: [
"android.hardware.bluetooth.audio-V3-ndk",
"libaudio_aidl_conversion_common_ndk",
"libbluetooth_audio_session_aidl",
"libmedia_helper",

View file

@ -1,7 +1,7 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>android.hardware.audio.effect</name>
<version>1</version>
<version>2</version>
<fqname>IFactory/default</fqname>
</hal>
</manifest>

View file

@ -1,22 +1,22 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>android.hardware.audio.core</name>
<version>1</version>
<version>2</version>
<fqname>IModule/default</fqname>
</hal>
<hal format="aidl">
<name>android.hardware.audio.core</name>
<version>1</version>
<version>2</version>
<fqname>IModule/r_submix</fqname>
</hal>
<hal format="aidl">
<name>android.hardware.audio.core</name>
<version>1</version>
<version>2</version>
<fqname>IModule/bluetooth</fqname>
</hal>
<hal format="aidl">
<name>android.hardware.audio.core</name>
<version>1</version>
<version>2</version>
<fqname>IConfig/default</fqname>
</hal>
<!-- Uncomment when these modules present in the configuration

View file

@ -52,11 +52,11 @@ aidl_interface {
// IMPORTANT: Update latest_android_hardware_audio_sounddose every time you
// add the latest frozen version to versions_with_info
],
frozen: true,
frozen: false,
}
// Note: This should always be one version ahead of the last frozen version
latest_android_hardware_audio_sounddose = "android.hardware.audio.sounddose-V1"
latest_android_hardware_audio_sounddose = "android.hardware.audio.sounddose-V2"
// Modules that depend on android.hardware.audio.sounddose directly can include
// the following cc_defaults to avoid explicitly managing dependency versions

View file

@ -11,6 +11,7 @@ cc_defaults {
name: "VtsHalAudioTargetTestDefaults",
defaults: [
"latest_android_hardware_audio_common_ndk_static",
"latest_android_hardware_audio_effect_ndk_static",
"latest_android_media_audio_common_types_ndk_static",
"use_libaidlvintf_gtest_helper_static",
"VtsHalTargetTestDefaults",
@ -20,7 +21,6 @@ cc_defaults {
"libfmq",
],
static_libs: [
"android.hardware.audio.effect-V1-ndk",
"android.hardware.common-V2-ndk",
"android.hardware.common.fmq-V1-ndk",
"libaudioaidlcommon",

View file

@ -13,9 +13,9 @@ aidl_interface {
name: "android.hardware.automotive.audiocontrol",
vendor_available: true,
srcs: ["android/hardware/automotive/audiocontrol/*.aidl"],
imports: [
"android.hardware.audio.common-V1",
"android.media.audio.common.types-V2",
defaults: [
"latest_android_hardware_audio_common_import_interface",
"latest_android_media_audio_common_types_import_interface",
],
stability: "vintf",
backend: {
@ -52,6 +52,37 @@ aidl_interface {
},
],
frozen: true,
frozen: false,
}
// Note: This should always be one version ahead of the last frozen version
latest_android_hardware_automotive_audiocontrol = "android.hardware.automotive.audiocontrol-V4"
cc_defaults {
name: "latest_android_hardware_automotive_audiocontrol_cpp_static",
static_libs: [
latest_android_hardware_automotive_audiocontrol + "-cpp",
],
}
cc_defaults {
name: "latest_android_hardware_automotive_audiocontrol_cpp_shared",
shared_libs: [
latest_android_hardware_automotive_audiocontrol + "-cpp",
],
}
cc_defaults {
name: "latest_android_hardware_automotive_audiocontrol_ndk_static",
static_libs: [
latest_android_hardware_automotive_audiocontrol + "-ndk",
],
}
cc_defaults {
name: "latest_android_hardware_automotive_audiocontrol_ndk_shared",
shared_libs: [
latest_android_hardware_automotive_audiocontrol + "-ndk",
],
}

View file

@ -1,7 +1,7 @@
<manifest version="2.0" type="device">
<hal format="aidl">
<name>android.hardware.automotive.audiocontrol</name>
<version>3</version>
<version>4</version>
<fqname>IAudioControl/default</fqname>
</hal>
</manifest>

View file

@ -24,6 +24,8 @@ package {
cc_test {
name: "VtsAidlHalAudioControlTest",
defaults: [
"latest_android_hardware_audio_common_cpp_static",
"latest_android_hardware_automotive_audiocontrol_cpp_static",
"latest_android_media_audio_common_types_cpp_static",
"VtsHalTargetTestDefaults",
"use_libaidlvintf_gtest_helper_static",
@ -38,8 +40,6 @@ cc_test {
"libxml2",
],
static_libs: [
"android.hardware.automotive.audiocontrol-V3-cpp",
"android.hardware.audio.common-V1-cpp",
"libgmock",
],
test_suites: [

View file

@ -27,10 +27,12 @@ aidl_interface {
host_supported: true,
srcs: ["android/hardware/bluetooth/audio/*.aidl"],
stability: "vintf",
defaults: [
"latest_android_hardware_audio_common_import_interface",
],
imports: [
"android.hardware.common-V2",
"android.hardware.common.fmq-V1",
"android.hardware.audio.common-V2",
],
backend: {
cpp: {
@ -75,6 +77,23 @@ aidl_interface {
},
],
frozen: true,
frozen: false,
}
// Note: This should always be one version ahead of the last frozen version
latest_android_hardware_bluetooth_audio = "android.hardware.bluetooth.audio-V4"
cc_defaults {
name: "latest_android_hardware_bluetooth_audio_ndk_shared",
shared_libs: [
latest_android_hardware_bluetooth_audio + "-ndk",
],
}
cc_defaults {
name: "latest_android_hardware_bluetooth_audio_ndk_static",
static_libs: [
latest_android_hardware_bluetooth_audio + "-ndk",
],
}

View file

@ -11,6 +11,9 @@ cc_library_shared {
name: "android.hardware.bluetooth.audio-impl",
vendor: true,
vintf_fragments: ["bluetooth_audio.xml"],
defaults: [
"latest_android_hardware_bluetooth_audio_ndk_shared",
],
srcs: [
"BluetoothAudioProvider.cpp",
"BluetoothAudioProviderFactory.cpp",
@ -29,7 +32,6 @@ cc_library_shared {
"libcutils",
"libfmq",
"liblog",
"android.hardware.bluetooth.audio-V3-ndk",
"libbluetooth_audio_session_aidl",
],
}

View file

@ -1,7 +1,7 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>android.hardware.bluetooth.audio</name>
<version>3</version>
<version>4</version>
<fqname>IBluetoothAudioProviderFactory/default</fqname>
</hal>
</manifest>

View file

@ -10,17 +10,17 @@ package {
cc_test {
name: "VtsHalBluetoothAudioTargetTest",
defaults: [
"latest_android_hardware_audio_common_ndk_static",
"latest_android_hardware_bluetooth_audio_ndk_static",
"latest_android_media_audio_common_types_ndk_static",
"VtsHalTargetTestDefaults",
"use_libaidlvintf_gtest_helper_static",
],
tidy_timeout_srcs: ["VtsHalBluetoothAudioTargetTest.cpp"],
srcs: ["VtsHalBluetoothAudioTargetTest.cpp"],
static_libs: [
"android.hardware.audio.common-V2-ndk",
"android.hardware.bluetooth.audio-V3-ndk",
"android.hardware.common-V2-ndk",
"android.hardware.common.fmq-V1-ndk",
"android.media.audio.common.types-V2-ndk",
],
shared_libs: [
"libbase",

View file

@ -48,6 +48,9 @@ cc_library_shared {
"libhardware_headers",
"libxsdc-utils",
],
defaults: [
"latest_android_hardware_bluetooth_audio_ndk_shared",
],
shared_libs: [
"android.hardware.bluetooth.audio@2.0",
"android.hardware.bluetooth.audio@2.1",
@ -56,7 +59,6 @@ cc_library_shared {
"libbinder_ndk",
"libfmq",
"liblog",
"android.hardware.bluetooth.audio-V3-ndk",
"libhidlbase",
"libxml2",
],

View file

@ -38,7 +38,7 @@ aidl_interface {
},
rust: {
enabled: true,
}
},
},
frozen: true,
versions: [

View file

@ -19,7 +19,7 @@
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.audio.core</name>
<version>1</version>
<version>1-2</version>
<interface>
<name>IModule</name>
<instance>default</instance>
@ -38,7 +38,7 @@
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.audio.effect</name>
<version>1</version>
<version>1-2</version>
<interface>
<name>IFactory</name>
<instance>default</instance>
@ -46,7 +46,7 @@
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.audio.sounddose</name>
<version>1</version>
<version>1-2</version>
<interface>
<name>ISoundDoseFactory</name>
<instance>default</instance>
@ -62,7 +62,7 @@
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.automotive.audiocontrol</name>
<version>2-3</version>
<version>2-4</version>
<interface>
<name>IAudioControl</name>
<instance>default</instance>
@ -140,7 +140,7 @@
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.bluetooth.audio</name>
<version>3</version>
<version>3-4</version>
<interface>
<name>IBluetoothAudioProviderFactory</name>
<instance>default</instance>
@ -543,7 +543,7 @@
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.soundtrigger3</name>
<version>1</version>
<version>1-2</version>
<interface>
<name>ISoundTriggerHw</name>
<instance>default</instance>

View file

@ -142,6 +142,7 @@ bool ShouldCheckMissingAidlHalsInFcm(const std::string& packageAndVersion) {
// AIDL
"android.hardware.audio.core.sounddose@1",
"android.hardware.audio.core.sounddose@2",
// Deprecated HALs.
"android.hardware.bluetooth.audio@1",

View file

@ -22,8 +22,8 @@ aidl_interface {
"android/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback.aidl",
],
stability: "vintf",
imports: [
"android.media.soundtrigger.types-V1",
defaults: [
"latest_android_media_soundtrigger_types_import_interface",
],
backend: {
cpp: {
@ -34,6 +34,7 @@ aidl_interface {
sdk_version: "module_current",
},
},
frozen: false,
versions_with_info: [
{
version: "1",
@ -45,7 +46,7 @@ aidl_interface {
}
// Note: This should always be one version ahead of the last frozen version
latest_android_hardware_soundtrigger3 = "android.hardware.soundtrigger3-V1"
latest_android_hardware_soundtrigger3 = "android.hardware.soundtrigger3-V2"
// Modules that depend on android.hardware.soundtrigger3 directly can include
// the following java_defaults to avoid explicitly managing dependency versions
@ -56,3 +57,10 @@ java_defaults {
latest_android_hardware_soundtrigger3 + "-java",
],
}
cc_defaults {
name: "latest_android_hardware_soundtrigger3_ndk_shared",
shared_libs: [
latest_android_hardware_soundtrigger3 + "-ndk",
],
}