Files
android_device_brcm_rpi5/audio/Android.bp
Konsta 3ca268d760 audio: alsa_utils: use alsa for hdmi devices
* HDMI audio devices on Raspberry Pi use FORMAT_IEC958_SUBFRAME_LE which
  is not supported by tinyalsa used on Android. Use ALSA library and its
  virtual vc4 audio devices that use IEC958 plugin to manage the subframe
  conversion.
2025-11-06 13:09:49 +02:00

240 lines
6.2 KiB
Plaintext

// Copyright (C) 2022 The Android Open Source Project
// Copyright (C) 2025 KonstaKANG
//
// SPDX-License-Identifier: Apache-2.0
cc_defaults {
name: "aidlaudioservice_rpi_defaults",
vendor: true,
shared_libs: [
"android.hardware.audio.core-V3-ndk",
"android.hardware.audio.core.sounddose-V3-ndk",
"android.hardware.bluetooth.audio-V5-ndk",
"android.hardware.bluetooth.audio-impl",
"android.hardware.common-V2-ndk",
"android.hardware.common.fmq-V1-ndk",
"android.media.audio.common.types-V4-ndk",
"libalsautilsv2-rpi",
"libasound",
"libaudio_aidl_conversion_common_ndk",
"libaudioaidlcommon",
"libaudioutils",
"libbase",
"libbinder_ndk",
"libbluetooth_audio_session_aidl",
"libcutils",
"libfmq",
"liblog",
"libmedia_helper",
"libnbaio_mono",
"libstagefright_foundation",
"libtinyalsav2",
"libutils",
"libxml2",
],
header_libs: [
"libaudio_system_headers",
"libaudioaidl_rpi_headers",
"libxsdc-utils",
],
cflags: [
"-DBACKEND_NDK",
"-Wall",
"-Werror",
"-Wextra",
"-Wthread-safety",
],
}
cc_library {
name: "libaudioserviceimpl-rpi",
defaults: ["aidlaudioservice_rpi_defaults"],
export_include_dirs: ["include"],
srcs: [
"AidlConversionXsdc.cpp",
"AudioPolicyConfigXmlConverter.cpp",
"Bluetooth.cpp",
"CapEngineConfigXmlConverter.cpp",
"Config.cpp",
"Configuration.cpp",
"EngineConfigXmlConverter.cpp",
"Module.cpp",
"ModulePrimary.cpp",
"SoundDose.cpp",
"Stream.cpp",
"Telephony.cpp",
"XsdcConversion.cpp",
"alsa/Mixer.cpp",
"alsa/ModuleAlsa.cpp",
"alsa/StreamAlsa.cpp",
"alsa/Utils.cpp",
"bluetooth/DevicePortProxy.cpp",
"bluetooth/ModuleBluetooth.cpp",
"bluetooth/StreamBluetooth.cpp",
"deprecated/StreamSwitcher.cpp",
"primary/PrimaryMixer.cpp",
"primary/StreamPrimary.cpp",
"r_submix/ModuleRemoteSubmix.cpp",
"r_submix/StreamRemoteSubmix.cpp",
"r_submix/SubmixRoute.cpp",
"stub/ApeHeader.cpp",
"stub/DriverStubImpl.cpp",
"stub/ModuleStub.cpp",
"stub/StreamMmapStub.cpp",
"stub/StreamOffloadStub.cpp",
"stub/StreamStub.cpp",
"usb/ModuleUsb.cpp",
"usb/StreamUsb.cpp",
"usb/UsbAlsaMixerControl.cpp",
],
generated_sources: [
"audio_policy_capengine_configuration_aidl_rpi",
"audio_policy_configuration_aidl_rpi",
"audio_policy_engine_configuration_aidl_rpi",
],
generated_headers: [
"audio_policy_capengine_configuration_aidl_rpi",
"audio_policy_configuration_aidl_rpi",
"audio_policy_engine_configuration_aidl_rpi",
],
export_generated_headers: [
"audio_policy_capengine_configuration_aidl_rpi",
"audio_policy_configuration_aidl_rpi",
"audio_policy_engine_configuration_aidl_rpi",
],
shared_libs: [
"libmediautils_vendor",
],
export_shared_lib_headers: [
"libaudio_aidl_conversion_common_ndk",
],
}
cc_library {
name: "libeffectconfig-rpi",
defaults: ["aidlaudioeffectservice_rpi_defaults"],
srcs: [
"EffectConfig.cpp",
],
shared_libs: [
"libmedia_helper",
"libtinyxml2",
],
export_shared_lib_headers: [
"libtinyxml2",
],
export_include_dirs: [
"include",
],
}
cc_binary {
name: "android.hardware.audio.service.rpi",
relative_install_path: "hw",
defaults: ["aidlaudioservice_rpi_defaults"],
static_libs: [
"libaudioserviceimpl-rpi",
],
srcs: ["main.cpp"],
installable: false,
}
cc_defaults {
name: "aidlaudioeffectservice_rpi_defaults",
vendor: true,
shared_libs: [
"android.hardware.audio.effect-V3-ndk",
"android.media.audio.common.types-V4-ndk",
"libapexsupport",
"libaudio_aidl_conversion_common_ndk",
"libaudioutils",
"libbase",
"libbinder_ndk",
"liblog",
"libutils",
],
header_libs: [
"libaudio_system_headers",
"libaudioaidl_rpi_headers",
],
cflags: [
"-DBACKEND_NDK",
"-Wall",
"-Werror",
"-Wextra",
],
}
cc_binary {
name: "android.hardware.audio.effect.service.rpi",
relative_install_path: "hw",
defaults: ["aidlaudioeffectservice_rpi_defaults"],
shared_libs: [
"android.hardware.common-V2-ndk",
"android.hardware.common.fmq-V1-ndk",
"libaudioaidlcommon",
"libcutils",
"libeffectconfig-rpi",
"libfmq",
],
header_libs: [
"libsystem_headers",
],
srcs: [
"EffectFactory.cpp",
"EffectMain.cpp",
],
cflags: [
"-Wthread-safety",
],
installable: false,
}
cc_library_headers {
name: "libaudioaidl_rpi_headers",
export_include_dirs: ["include"],
vendor_available: true,
}
prebuilt_etc {
name: "android.hardware.audio.service.rpi.rc",
src: "android.hardware.audio.service.rpi.rc",
installable: false,
}
prebuilt_etc {
name: "android.hardware.audio.service.rpi.xml",
src: "android.hardware.audio.service.rpi.xml",
sub_dir: "vintf",
installable: false,
}
apex {
name: "com.android.hardware.audio.rpi5",
manifest: "manifest.json",
file_contexts: "file_contexts",
key: "com.android.hardware.key",
certificate: ":com.android.hardware.certificate",
updatable: false,
vendor: true,
binaries: [
"android.hardware.audio.effect.service.rpi",
"android.hardware.audio.service.rpi",
],
prebuilts: [
"android.hardware.audio.service.rpi.rc",
"android.hardware.audio.service.rpi.xml",
"android.hardware.bluetooth.audio.xml",
],
required: [
"aidl_audio_set_configurations_bfbs",
"aidl_audio_set_scenarios_bfbs",
"aidl_default_audio_set_configurations_json",
"aidl_default_audio_set_scenarios_json",
"hfp_codec_capabilities_xml",
"libasound-config",
"libasound-config-pcm",
],
}