# Copyright (c) 2021-2025 Huawei Device Co., Ltd.
# 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.
import("//build/ohos.gni")
import("../../appgallery.gni")
import("../../audio_framework_test_sources.gni")
import("../../config.gni")
import("../../ressche_part.gni")
import("../../sensor.gni")
import("../../window_manager.gni")
audio_framework_root = "../.."
group("audio_service_packages") {
deps = [
":audio_common",
":audio_server_init",
":audio_service",
]
}
ohos_shared_library("audio_common") {
branch_protector_ret = "pac_ret"
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = false
ubsan = true
boundary_sanitize = true
}
install_enable = true
include_dirs = [
"common/include",
"common/include/limiter",
"common/include/dfx",
"../audio_policy/server/include",
"../audio_policy/services/pipe/include",
"../../frameworks/native/audioschedule/include",
"../../interfaces/inner_api/native/audiocommon/include",
"../audio_engine/plugin/resample/include",
"../audio_policy/server/domain/volume/include",
]
sources = [
"common/src/audio_common_converter.cpp",
"common/src/audio_down_mix_stereo.cpp",
"common/src/audio_dump_pcm.cpp",
"common/src/audio_highpass_filter.cpp",
"common/src/audio_log_utils.cpp",
"common/src/audio_process_config.cpp",
"common/src/audio_resample.cpp",
"common/src/audio_ring_cache.cpp",
"common/src/audio_stream_checker.cpp",
"common/src/audio_stream_monitor.cpp",
"common/src/audio_thread_task.cpp",
"common/src/audio_volume.cpp",
"common/src/callback_handler.cpp",
"common/src/dfx/audio_capturer_dfx_collector.cpp",
"common/src/dfx/audio_renderer_dfx_collector.cpp",
"common/src/dfx/dfx_msg_manager.cpp",
"common/src/dfx/player_dfx_writer.cpp",
"common/src/dfx/recorder_dfx_writer.cpp",
"common/src/dfx/stream_dfx_manager.cpp",
"common/src/dfx/audio_stream_concurrency_detector.cpp",
"common/src/format_converter.cpp",
"common/src/futex_tool.cpp",
"common/src/limiter/audio_limiter.cpp",
"common/src/limiter/audio_limiter_adapter.cpp",
"common/src/limiter/audio_limiter_manager.cpp",
"common/src/audio_pitch_processor.cpp",
"common/src/audio_static_buffer_processor.cpp",
"common/src/audio_static_buffer_provider.cpp",
"common/src/linear_pos_time_model.cpp",
"common/src/oh_audio_buffer.cpp",
"common/src/oh_audio_buffer_base.cpp",
"common/src/volume_tools.cpp",
"common/src/audio_tool_calculate.cpp",
"common/src/app_bundle_manager.cpp",
"common/src/va_shared_buffer.cpp",
"common/src/va_shared_buffer_operator.cpp",
"common/src/audio_mute_factor_manager.cpp",
"common/src/audio_stream_checker_thread.cpp",
]
cflags = [
"-Wall",
"-Werror",
]
cflags += [ "-Os" ]
if (target_cpu == "arm") {
cflags += [ "-DBINDER_IPC_32BIT" ]
}
deps = [
"${audio_framework_root}/services/audio_service/idl:audio_framework_interface",
"../../frameworks/native/audioschedule:audio_schedule",
"../../frameworks/native/audioutils:audio_utils",
"../audio_engine:audio_engine_plugins",
]
external_deps = [
"bounds_checking_function:libsec_shared",
"c_utils:utils",
"eventhandler:libeventhandler",
"hilog:libhilog",
"hisysevent:libhisysevent",
"ipc:ipc_single",
"ipc:ipc_core",
"media_foundation:media_monitor_client",
"media_foundation:media_monitor_common",
"samgr:samgr_proxy",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"init:libbegetutil",
"init:libbeget_proxy",
]
if (sonic_enable == true) {
external_deps += [ "sonic:sonic" ]
}
cflags_cc = cflags
cflags_cc += [ "-std=c++20" ]
defines = []
if (use_libfuzzer || use_clang_coverage) {
defines += [ "TEST_COVERAGE" ]
}
if (audio_framework_feature_multi_alarm_level) {
defines += [ "MULTI_ALARM_LEVEL" ]
}
if (audio_framework_feature_3da_direct) {
defines += [ "SUPPORT_3DA" ]
}
public_configs = [
"${audio_framework_root}/services/audio_service/idl:audio_service_sa_idl_config",
"${audio_framework_root}/services/audio_service/idl:audio_policy_sa_idl_config",
]
subsystem_name = "multimedia"
innerapi_tags = [ "platformsdk_indirect" ]
part_name = "audio_framework"
if (is_ohos && is_clang && target_cpu == "arm64" && defined(build_ext_path)) {
version_script = "libaudio_common.versionscript"
ldflags = [
"-Wl,--emit-relocs",
"-Wl,--no-relax",
"-mno-fix-cortex-a53-843419"
]
}
}
config("audio_client_public_config") {
include_dirs = [
"client/include",
"common/include",
"common/include/dfx",
"server/include",
"../audio_policy/common/include",
"../audio_policy/client/interface",
"../audio_policy/client/proxy/include",
"../audio_policy/client/stub/include",
"../audio_policy/client/service/include",
"../audio_policy/server/domain/effect/include",
"../../frameworks/native/audiodefinitions/include",
"../../frameworks/native/audiopolicy/include",
"../../frameworks/native/audiostream/include",
"../../frameworks/native/audioutils/include",
"../../frameworks/native/hdiadapter_new/include",
"../../frameworks/native/hdiadapter_new/include/common",
"../../interfaces/inner_api/native/audiocapturer/include",
"../../interfaces/inner_api/native/audiocommon/include",
"../../interfaces/inner_api/native/audiomanager/include",
"../../interfaces/inner_api/native/audiorenderer/include",
"../../services/audio_service/common/include/dfx",
"../../frameworks/native/audioqosmanager/include",
"${audio_framework_root}/services/audio_policy/server/include",
]
cflags = [
"-Wall",
"-Werror",
]
if (sonic_enable == true) {
cflags += [ "-DSONIC_ENABLE" ]
}
external_deps = [
"ipc:ipc_core",
"samgr:samgr_proxy",
]
if (sonic_enable == true) {
external_deps += [ "sonic:sonic" ]
}
defines = []
if (audio_framework_feature_power_manager) {
external_deps += [ "power_manager:powermgr_client" ]
defines += [ "FEATURE_POWER_MANAGER" ]
}
if (use_libfuzzer || use_clang_coverage) {
defines += [ "TEST_COVERAGE" ]
}
if (audio_framework_feature_offline_effect) {
defines += [ "FEATURE_OFFLINE_EFFECT" ]
}
if (audio_framework_feature_inner_capturer) {
defines += [ "HAS_FEATURE_INNERCAPTURER" ]
}
if (audio_framework_feature_low_latency) {
defines += [ "SUPPORT_LOW_LATENCY" ]
}
if (audio_framework_feature_3da_direct) {
defines += [ "SUPPORT_3DA" ]
}
if (factory == true) {
defines += [ "CONFIG_FACTORY_VERSION" ]
}
if (audio_framework_feature_multi_alarm_level) {
defines += [ "MULTI_ALARM_LEVEL" ]
}
if (target_cpu == "arm") {
cflags += [ "-DBINDER_IPC_32BIT" ]
}
}
config("audio_sasdk_public_config") {
include_dirs = [ "../../interfaces/inner_api/native/audiosasdk/include" ]
cflags = [
"-Wall",
"-Werror",
"-Os",
]
if (target_cpu == "arm") {
cflags += [ "-DBINDER_IPC_32BIT" ]
}
}
ohos_shared_library("audio_stream_client") {
branch_protector_ret = "pac_ret"
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = false
ubsan = true
boundary_sanitize = true
}
sources = [
"client/src/audio_spatial_channel_converter.cpp",
"client/src/audio_stream_tracker.cpp",
"client/src/capturer_in_client.cpp",
"client/src/i_audio_stream.cpp",
"client/src/ipc_stream_listener_impl.cpp",
"client/src/offline_stream_in_client.cpp",
"client/src/renderer_in_client.cpp",
"client/src/renderer_in_client_public.cpp",
]
public_configs = [
":audio_client_public_config",
]
deps = [
":audio_common",
"${audio_framework_root}/services/audio_service/idl:audio_framework_interface",
"../../frameworks/native/audiodefinitions:audio_definitions",
"../../frameworks/native/audioutils:audio_utils",
"../audio_policy:audio_foundation",
"../audio_policy:audio_policy_client",
]
external_deps = [
"ability_base:want",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"eventhandler:libeventhandler",
"frame_aware_sched:rtg_interface",
"hicollie:libhicollie",
"hilog:libhilog",
"hisysevent:libhisysevent",
"init:libbegetutil",
"ipc:ipc_single",
"media_foundation:media_monitor_client",
"media_foundation:media_monitor_common",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
"c_utils:utils",
]
version_script = "../../audio_framework.versionscript"
innerapi_tags = [ "platformsdk" ]
cflags = [ "-Os" ]
cflags_cc = cflags
subsystem_name = "multimedia"
part_name = "audio_framework"
}
ohos_shared_library("audio_policy_manager") {
branch_protector_ret = "pac_ret"
install_enable = true
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = false
ubsan = true
boundary_sanitize = true
}
sources = [
"client/src/audio_collaborative_manager.cpp",
"client/src/audio_combine_denoising_manager.cpp",
"client/src/audio_effect_manager.cpp",
"client/src/audio_group_manager.cpp",
"client/src/audio_routing_client_manager.cpp",
"client/src/audio_session_client_manager.cpp",
"client/src/audio_spatialization_manager.cpp",
"client/src/audio_devices_client_manager.cpp",
"client/src/audio_device_enhance_manager.cpp",
"client/src/audio_system_client_policy_manager.cpp",
"client/src/audio_interrupt_client_manager.cpp",
"client/src/audio_volume_client_manager.cpp",
"client/src/audio_focus_info_change_callback_impl.cpp",
"client/src/audio_type_convert.cpp",
"client/src/audio_stream_manager.cpp",
]
public_configs = [
":audio_client_public_config",
"${audio_framework_root}/services/audio_service/idl:audio_policy_sa_idl_config",
]
deps = [
":audio_common",
"${audio_framework_root}/services/audio_service/idl:audio_framework_interface",
"../../frameworks/native/audiodefinitions:audio_definitions",
"../../frameworks/native/audioutils:audio_utils",
"../audio_policy:audio_foundation",
"../audio_policy:audio_policy_client",
"../../frameworks/native/audio_debug_manager:audio_debug_manager",
":audio_engine_manager",
]
external_deps = [
"ability_base:want",
"eventhandler:libeventhandler",
"frame_aware_sched:rtg_interface",
"hicollie:libhicollie",
"hilog:libhilog",
"hisysevent:libhisysevent",
"init:libbegetutil",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
"c_utils:utils",
]
defines = []
if (audio_framework_feature_multi_zone_volume) {
defines += [ "FEATURE_AUDIO_ZONE_VOLUME" ]
}
version_script = "../../audio_framework.versionscript"
innerapi_tags = [ "platformsdk" ]
cflags = [ "-Os" ]
cflags_cc = cflags
subsystem_name = "multimedia"
part_name = "audio_framework"
}
ohos_shared_library("audio_engine_manager") {
branch_protector_ret = "pac_ret"
install_enable = true
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = false
ubsan = true
boundary_sanitize = true
}
sources = [
"client/src/audio_engine_client_manager.cpp",
"client/src/audio_manager_listener_stub_impl.cpp",
"client/src/audio_service_proxy.cpp",
"client/src/audio_system_client_engine_manager.cpp",
"client/src/audio_asr_client_manager.cpp",
"client/src/audio_stream_client_manager.cpp",
"client/src/audio_workgroup_client_manager.cpp",
"client/src/audio_wakeup_client_manager.cpp",
"client/src/audio_workgroup_callback_impl.cpp",
]
public_configs = [
":audio_client_public_config",
"${audio_framework_root}/services/audio_service/idl:audio_service_sa_idl_config",
]
deps = [
":audio_common",
"${audio_framework_root}/services/audio_service/idl:audio_framework_interface",
"../../frameworks/native/audiodefinitions:audio_definitions",
"../../frameworks/native/audioutils:audio_utils",
"../audio_policy:audio_foundation",
]
external_deps = [
"ability_base:want",
"bounds_checking_function:libsec_shared",
"eventhandler:libeventhandler",
"frame_aware_sched:rtg_interface",
"hicollie:libhicollie",
"hilog:libhilog",
"hisysevent:libhisysevent",
"init:libbegetutil",
"ipc:ipc_single",
"media_foundation:media_monitor_client",
"media_foundation:media_monitor_common",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
"c_utils:utils",
"qos_manager:qos",
]
version_script = "../../audio_framework.versionscript"
innerapi_tags = [ "platformsdk" ]
cflags = [ "-Os" ]
cflags_cc = cflags
subsystem_name = "multimedia"
part_name = "audio_framework"
}
ohos_shared_library("audio_client") {
branch_protector_ret = "pac_ret"
install_enable = true
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = false
ubsan = true
boundary_sanitize = true
}
sources = [
"client/src/audio_routing_manager.cpp",
"client/src/audio_system_manager.cpp",
"client/src/audio_session_manager.cpp",
"client/src/audio_stream_manager.cpp",
"client/src/audio_group_manager.cpp",
"client/src/audio_session_client_manager.cpp",
]
public_configs = [
":audio_client_public_config",
"${audio_framework_root}/services/audio_service/idl:audio_service_sa_idl_config",
"${audio_framework_root}/services/audio_service/idl:audio_policy_sa_idl_config",
]
deps = [
":audio_common",
":audio_engine_manager",
":audio_policy_manager",
"${audio_framework_root}/services/audio_service/idl:audio_framework_interface",
"../../frameworks/native/audiodefinitions:audio_definitions",
"../../frameworks/native/audioutils:audio_utils",
"../audio_policy:audio_foundation",
"../audio_policy:audio_policy_client",
"../../frameworks/native/audio_debug_manager:audio_debug_manager",
]
external_deps = [
"ability_base:want",
"eventhandler:libeventhandler",
"frame_aware_sched:rtg_interface",
"hicollie:libhicollie",
"hilog:libhilog",
"hisysevent:libhisysevent",
"init:libbegetutil",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
"c_utils:utils",
]
public_external_deps = [ "c_utils:utils", ]
version_script = "../../audio_framework.versionscript"
innerapi_tags = [ "platformsdk" ]
cflags = [ "-Os" ]
cflags_cc = cflags
subsystem_name = "multimedia"
part_name = "audio_framework"
}
ohos_prebuilt_etc("audio_server_init") {
source = "etc/audio_server.cfg"
relative_install_dir = "init"
part_name = "audio_framework"
subsystem_name = "multimedia"
}
config("audio_service_config") {
visibility = [ ":*" ]
visibility += [
"../../services/audio_service/test/unittest:capturer_in_server_unit_test",
"../../services/audio_service/test/unittest/audio_server_unit_test",
"../../services/audio_service/test/unittest/hw_decoding_stream_unit_test",
"../../services/audio_service/test/unittest/pro_renderer_stream_impl_unit_test",
"../../test/fuzztest/*",
"../../services/audio_service/test/unittest:audio_effect_server_unit_test",
"../../services/audio_service/test/unittest:audio_playback_engine_unit_test",
"../../services/audio_service/test/unittest:audio_server_extra_unit_test",
"../../services/audio_service/test/unittest:audio_service_second_unit_test",
"../../services/audio_service/test/unittest:audio_manager_stub_unit_test",
]
include_dirs = [
"common/include",
"common/include/limiter",
"common/include/dfx",
"client/include",
"server/include",
"server/include/config",
"../audio_engine/manager/include",
"../audio_policy/server/include/service/common",
"../audio_policy/common/definitions/include",
"../audio_policy/common/include",
"../audio_policy/server/include/service/common",
"../audio_policy/server/include/service/effect",
"../audio_policy/services/pipe/include",
"../../frameworks/native/audiodefinitions/include",
"../../frameworks/native/audioeffect/include",
"../../frameworks/native/offlineaudioeffect/include",
"../../frameworks/native/audioinnercall/include",
"../../frameworks/native/audiopolicy/include",
"../../frameworks/native/audioqosmanager/include",
"../../frameworks/native/audioschedule/include",
"../../frameworks/native/audioutils/include",
"../../frameworks/native/playbackcapturer/include",
"../../frameworks/native/hdiadapter_new/include",
"../../frameworks/native/hdiadapter_new/include/common",
"../../interfaces/inner_api/native/audiocommon/include",
"../../interfaces/inner_api/native/audiomanager/include",
"../../frameworks/native/audioclock/include",
"../audio_engine/plugin/resample/include",
"../audio_engine/simd",
]
cflags = []
if (target_cpu == "arm") {
cflags += [ "-DBINDER_IPC_32BIT" ]
}
if (audio_framework_feature_distributed_audio == true) {
cflags += [ "-DDAUDIO_ENABLE" ]
}
if (audio_framework_feature_3da_direct) {
cflags += [ "-DSUPPORT_3DA" ]
}
cflags_cc = cflags
cflags_cc += [ "-std=c++20" ]
}
audio_ohos_library("audio_process_service") {
branch_protector_ret = "pac_ret"
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = true
ubsan = true
boundary_sanitize = true
}
install_enable = true
sources = [
"server/src/audio_engine_manager.cpp",
"server/src/audio_playback_engine.cpp",
"server/src/audio_service.cpp",
"server/src/capturer_in_server.cpp",
"server/src/core_service_handler.cpp",
"server/src/direct_playback_engine.cpp",
"server/src/cabin_playback_engine.cpp",
"server/src/hpae_adapter_manager.cpp",
"server/src/hpae_capturer_stream_impl.cpp",
"server/src/hpae_renderer_stream_impl.cpp",
"server/src/hw_decoding_adapter_manager.cpp",
"server/src/hw_decoding_renderer_impl.cpp",
"server/src/i_stream_manager.cpp",
"server/src/ipc_stream_in_server.cpp",
"server/src/none_mix_engine.cpp",
"server/src/offline_stream_in_server.cpp",
"server/src/policy_handler.cpp",
"server/src/audio_privacy_manager_in_server.cpp",
"server/src/pro_audio_stream_manager.cpp",
"server/src/pro_renderer_stream_impl.cpp",
"server/src/record_privacy_manager.cpp",
"server/src/renderer_in_server.cpp",
"server/src/audio_workgroup_callback.cpp",
"server/src/audio_workgroup.cpp",
"server/src/audio_resource_service.cpp",
"server/src/audio_injector_service.cpp",
]
if (!audio_framework_feature_new_engine_flag) {
sources += [
"server/src/pa_adapter_manager.cpp",
"server/src/pa_capturer_stream_impl.cpp",
"server/src/pa_renderer_stream_impl.cpp",
]
}
configs = [ ":audio_service_config" ]
include_dirs = [
"../../services/audio_engine/plugin/channel_converter/include",
"../../frameworks/native/audiodefinitions/include",
"../audio_engine/plugin/resample/include",
"../audio_engine/simd",
"../audio_policy/client/service/include",
"../audio_policy/server/infra/ipc_proxy/include",
"../audio_policy/server/common/include",
"../audio_policy/server/domain/pipe/include",
"../audio_policy/server/domain/device/src/a2dp",
"../audio_policy/server/domain/volume/include",
]
deps = [
":audio_common",
"../audio_policy:audio_manager_client",
"../audio_policy:audio_policy_client",
"${audio_framework_root}/services/audio_service/idl:audio_framework_interface",
"../../frameworks/native/audioclock:audio_clock",
"../../frameworks/native/audioeffect:audio_effect",
"../../frameworks/native/audiodefinitions:audio_definitions",
"../../frameworks/native/audioqosmanager:audio_qosmanager",
"../../frameworks/native/audioschedule:audio_schedule",
"../../frameworks/native/audioutils:audio_utils",
"../../frameworks/native/hdiadapter_new:hdiadapter_new",
"../audio_engine:hpae_engine_manager",
"../audio_engine:audio_engine_plugins",
"../audio_engine:audio_engine_utils",
"../audio_policy:audio_foundation",
]
external_deps = [
"ability_runtime:app_manager",
"ability_runtime:ability_connect_callback_stub",
"access_token:libaccesstoken_sdk",
"access_token:libnativetoken_shared",
"access_token:libprivacy_sdk",
"c_utils:utils",
"drivers_interface_audio:libeffect_proxy_1.0",
"eventhandler:libeventhandler",
"hdf_core:libhdf_utils",
"hicollie:libhicollie",
"hilog:libhilog",
"ipc:ipc_single",
"media_foundation:media_monitor_client",
"media_foundation:media_monitor_common",
"samgr:samgr_proxy",
"frame_aware_sched:rtg_interface",
"qos_manager:concurrent_task_client",
"ability_runtime:extension_manager",
"init:libbegetutil",
"bounds_checking_function:libsec_shared",
"cJSON:cjson",
]
if (!audio_framework_feature_new_engine_flag) {
external_deps += [
"pulseaudio:pulse",
]
}
defines = []
if (audio_framework_feature_power_manager) {
external_deps += [ "power_manager:powermgr_client" ]
defines += [ "FEATURE_POWER_MANAGER" ]
}
if (audio_framework_feature_call_manager_enable) {
external_deps += [
"call_manager:tel_call_manager_api",
"ability_base:want",
]
defines += [ "FEATURE_CALL_MANAGER" ]
}
if (ressche_enable == true) {
external_deps += [ "resource_schedule_service:ressched_client" ]
defines += [ "RESSCHE_ENABLE" ]
}
if (audio_framework_feature_offline_effect) {
deps += [
"../../frameworks/native/offlineaudioeffect:offline_audio_effect_service",
]
defines += [ "FEATURE_OFFLINE_EFFECT" ]
}
if (audio_framework_feature_inner_capturer) {
deps += [ "../../frameworks/native/playbackcapturer:playback_capturer" ]
defines += [ "HAS_FEATURE_INNERCAPTURER" ]
}
if (audio_framework_feature_low_latency) {
defines += [ "SUPPORT_LOW_LATENCY" ]
}
if (!audio_framework_feature_new_engine_flag) {
defines += [ "SUPPORT_OLD_ENGINE" ]
}
if (audio_framework_feature_multi_alarm_level) {
defines += [ "MULTI_ALARM_LEVEL" ]
}
if (audio_framework_feature_source_period_size > 1 && audio_framework_feature_source_period_size < 20) {
defines += [
"SOURCE_PERIOD_SIZE=$audio_framework_feature_source_period_size",
]
} else {
defines += [
"SOURCE_PERIOD_SIZE=1",
]
}
cflags = [ "-Os" ]
cflags_cc = cflags
subsystem_name = "multimedia"
part_name = "audio_framework"
version_script = "libaudio_process_service.versionscript"
}
audio_ohos_library("audio_service") {
branch_protector_ret = "pac_ret"
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = true
ubsan = true
boundary_sanitize = true
}
install_enable = true
sources = [
"server/src/audio_effect_server.cpp",
"server/src/audio_manager_listener.cpp",
"server/src/audio_privacy_manager_in_server.cpp",
"server/src/audio_resource_service.cpp",
"server/src/audio_server.cpp",
"server/src/audio_server_callback.cpp",
"server/src/audio_server_asr.cpp",
"server/src/audio_server_effect.cpp",
"server/src/audio_server_hpae_dump.cpp",
"server/src/audio_workgroup.cpp",
"server/src/audio_system_load_listener.cpp",
"server/src/config/audio_param_parser.cpp",
"server/src/audio_injector_service.cpp",
]
configs = [ ":audio_service_config" ]
include_dirs = [
"../audio_engine/plugin/resample/include",
]
deps = [
":audio_common",
":audio_process_service",
":audio_policy_manager",
"../audio_policy:audio_policy_client",
"${audio_framework_root}/services/audio_service/idl:audio_framework_interface",
"../../frameworks/native/audioeffect:audio_effect",
"../../frameworks/native/audioinnercall:audio_inner_call",
"../../frameworks/native/audioschedule:audio_schedule",
"../../frameworks/native/audioutils:audio_utils",
"../../frameworks/native/audioutils:audio_xml_utils",
"../../frameworks/native/hdiadapter_new:hdiadapter_new",
"../audio_engine:hpae_engine_manager",
]
external_deps = [
"ability_base:want",
"access_token:libaccesstoken_sdk",
"access_token:libprivacy_sdk",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"cJSON:cjson",
"drivers_interface_audio:libeffect_proxy_1.0",
"eventhandler:libeventhandler",
"frame_aware_sched:rtg_interface",
"hicollie:libhicollie",
"hilog:libhilog",
"hisysevent:libhisysevent",
"init:libbegetutil",
"ipc:ipc_single",
"libxml2:libxml2",
"media_foundation:media_monitor_client",
"media_foundation:media_monitor_common",
"qos_manager:concurrent_task_client",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
]
defines = []
if (!audio_framework_feature_new_engine_flag) {
sources += [ "server/src/audio_server_dump.cpp" ]
external_deps += [
"pulseaudio:pulse",
"pulseaudio:pulseaudio",
]
defines += [ "SUPPORT_OLD_ENGINE" ]
}
if (audio_framework_feature_offline_effect) {
deps += [
"../../frameworks/native/offlineaudioeffect:offline_audio_effect_service",
]
defines += [ "FEATURE_OFFLINE_EFFECT" ]
}
if (audio_framework_feature_call_manager_enable) {
external_deps += [
"call_manager:tel_call_manager_api",
]
defines += [ "FEATURE_CALL_MANAGER" ]
}
if (audio_framework_config_policy_enable) {
defines += [ "USE_CONFIG_POLICY" ]
external_deps += [ "config_policy:configpolicy_util" ]
}
if (build_variant == "user") {
defines += [ "AUDIO_BUILD_VARIANT_USER" ]
} else if (build_variant == "root") {
defines += [ "AUDIO_BUILD_VARIANT_ROOT" ]
}
if (appgallery_part_enable == true) {
defines += [ "FEATURE_APPGALLERY" ]
}
if (sensor_enable == true) {
external_deps += [ "sensor:sensor_interface_native" ]
}
if (ressche_enable == true) {
external_deps += [ "resource_schedule_service:ressched_client" ]
}
if (use_libfuzzer || use_clang_coverage) {
defines += [ "TEST_COVERAGE" ]
}
if (audio_framework_feature_inner_capturer) {
deps += [ "../../frameworks/native/playbackcapturer:playback_capturer" ]
defines += [ "HAS_FEATURE_INNERCAPTURER" ]
}
if (audio_framework_feature_low_latency) {
defines += [ "SUPPORT_LOW_LATENCY" ]
}
cflags = [ "-Os" ]
cflags_cc = cflags
subsystem_name = "multimedia"
part_name = "audio_framework"
version_script = "libaudio_service.versionscript"
}
ohos_shared_library("audio_sasdk") {
branch_protector_ret = "pac_ret"
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = true
ubsan = true
boundary_sanitize = true
}
cflags = [ "-Os" ]
install_enable = true
sources = [ "client/src/audio_sasdk.cpp" ]
include_dirs = [
"../../interfaces/inner_api/native/audiocommon/include",
"../../interfaces/inner_api/native/audiosasdk/include",
"../../frameworks/native/audiodefinitions/include",
"${audio_framework_root}/services/audio_policy/client/service/include/",
]
public_configs = [ ":audio_sasdk_public_config" ]
deps = [
":audio_common",
"../../frameworks/native/audiodefinitions:audio_definitions",
"../audio_policy:audio_policy_client",
]
external_deps = [
"c_utils:utils",
"eventhandler:libeventhandler",
"hilog:libhilog",
"ipc:ipc_single",
"samgr:samgr_proxy",
]
version_script = "../../audio_framework.versionscript"
innerapi_tags = [
"platformsdk",
"sasdk",
]
subsystem_name = "multimedia"
part_name = "audio_framework"
}
group("audio_service_test_packages") {
deps = [
":audio_hdi_device_test",
":audio_engine_client_manager_test",
"../../frameworks/native/hdiadapter_new:hdi_monitor_test",
]
}
ohos_executable("audio_hdi_device_test") {
install_enable = false
include_dirs = [
"../../frameworks/native/audioutils/include",
"../../frameworks/native/hdiadapter_new/include",
"../../interfaces/inner_api/native/audiocommon/include",
"../../interfaces/inner_api/native/audiomanager/include",
]
cflags = [ "-DDEBUG_DIRECT_USE_HDI" ]
sources = [ "test/example/audio_hdi_device_test.cpp" ]
deps = [
"../../frameworks/native/audioutils:audio_utils",
"../../frameworks/native/hdiadapter_new:hdiadapter_new",
]
external_deps = [
"c_utils:utils",
"hilog:libhilog",
]
part_name = "audio_framework"
subsystem_name = "multimedia"
}
ohos_executable("audio_faststream_playback_test") {
install_enable = false
sources = [ "test/example/audio_stream_playback_test.cpp" ]
configs = [ ":audio_client_public_config" ]
deps = [
":audio_client",
":audio_engine_manager",
":audio_policy_manager",
":audio_stream_client",
"../../frameworks/native/audiocapturer:audio_capturer",
"../../frameworks/native/audiorenderer:audio_renderer",
"../../frameworks/native/audioutils:audio_utils",
]
external_deps = [
"bounds_checking_function:libsec_shared",
"c_utils:utils",
"hilog:libhilog",
"init:libbegetutil",
"ipc:ipc_single",
]
part_name = "audio_framework"
subsystem_name = "multimedia"
}
ohos_executable("audio_engine_client_manager_test") {
branch_protector_ret = "pac_ret"
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = true
ubsan = true
boundary_sanitize = true
}
install_enable = false
sources = [ "test/example/audio_engine_client_manager_test.cpp" ]
configs = [ ":audio_client_public_config" ]
deps = [
":audio_client",
":audio_engine_manager",
":audio_policy_manager",
":audio_stream_client",
"../../frameworks/native/audioutils:audio_utils",
]
external_deps = [
"bounds_checking_function:libsec_shared",
"c_utils:utils",
"hilog:libhilog",
"init:libbegetutil",
"ipc:ipc_single",
]
part_name = "audio_framework"
subsystem_name = "multimedia"
}
ohos_executable("audio_extra_param_tool") {
branch_protector_ret = "pac_ret"
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = true
ubsan = true
boundary_sanitize = true
}
install_enable = true
sources = [ "test/example/audio_extra_param_tool.cpp" ]
include_dirs = [
"client/include",
"../../interfaces/inner_api/native/audiomanager/include",
]
configs = [ ":audio_client_public_config" ]
deps = [
":audio_engine_manager",
]
external_deps = [
"access_token:libaccesstoken_sdk",
"access_token:libnativetoken_shared",
"access_token:libtokensetproc_shared",
"bounds_checking_function:libsec_shared",
"c_utils:utils",
"hilog:libhilog",
"ipc:ipc_single",
]
part_name = "audio_framework"
subsystem_name = "multimedia"
}