* 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.
240 lines
6.2 KiB
Plaintext
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",
|
|
],
|
|
}
|