# 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("../../accessibility.gni")
import("../../appgallery.gni")
import("../../audio_framework_test_sources.gni")
import("../../bluetooth_part.gni")
import("../../config.gni")
group("audio_policy_packages") {
deps = [
":audio_converter_config",
":audio_device_config",
":audio_interrupt_policy_config",
":audio_policy_global_config",
":audio_policy_service",
":audio_strategy_router",
":audio_usage_strategy",
":audio_volume_config",
"server/domain/volume:audio_safe_volume_notification_impl",
]
if (audio_framework_feature_dtmf_tone) {
deps += [ ":audio_tone_dtmf_config" ]
}
}
config("audio_policy_public_config") {
include_dirs = [
"util/include",
"client/service/include",
"server/infra/ipc_proxy/include",
"common/definitions/include",
"server/domain/pipe/include",
"common/include",
"client/interface",
"client/proxy/include",
"client/stub/include",
"server/include",
"server/infra/async_action_handler/include",
"server/infra/state_monitor",
"server/infra/window/include",
"server/stub/include",
"server/proxy/include",
"server/domain/interrupt/include",
"server/domain/volume/include",
"server/domain/stream",
"server/domain/tone",
"server/include/service",
"server/include/service/common",
"server/common/include",
"server/infra/config/parser/include",
"server/domain/effect/include",
"server/include/service/interface",
"server/include/service/listener",
"server/infra/appclient/include",
"server/infra/datashare/include",
"server/domain/device/src/a2dp",
"server/domain/device/src/hearing_aid",
"server/domain/device/src/pnp",
"server/domain/device/src/sco",
"server/domain/device/src/sle",
"server/domain/router",
"server/domain/router_context",
"server/include/service/service",
"server/domain/zone/include",
"server/domain/device/include",
"server/domain/device/src/va",
"server/src/service/concurrency",
"server/domain/session/include",
"server/service/service_main/include",
"../audio_service/client/include",
"../audio_service/common/include",
"../audio_service/common/include/dfx",
"../audio_service/server/include",
"../audio_engine/manager/include",
"../../frameworks/native/audioinnercall/include",
"../../frameworks/native/audiorenderer/include",
"../../frameworks/native/audioadapter/include",
"../../frameworks/native/audiodefinitions/include",
"../../frameworks/native/audiopolicy/include",
"../../frameworks/native/audioutils/include",
"../../frameworks/native/bluetoothclient",
"../../frameworks/native/hdiadapter_new/include",
"../../frameworks/native/hdiadapter_new/include/common",
"../../interfaces/inner_api/native/audiocommon/include",
"../../interfaces/inner_api/native/audiomanager/include",
"../../interfaces/inner_api/native/audiocapturer/include",
]
cflags = [
"-Wall",
"-Werror",
]
if (target_cpu == "arm") {
cflags += [ "-DBINDER_IPC_32BIT" ]
}
if (accessibility_enable == true) {
cflags += [ "-DACCESSIBILITY_ENABLE" ]
}
if (bluetooth_part_enable == true) {
cflags += [ "-DBLUETOOTH_ENABLE" ]
}
ldflags = [ "-Wl" ]
}
ohos_shared_library("audio_setting_provider") {
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
include_dirs = [
"../../services/audio_policy/server/infra/datashare/include",
"../../services/audio_policy/server/domain/device/src/pnp",
"../../interfaces/inner_api/native/audiocommon/include",
"../../interfaces/inner_api/native/audiocapturer/include",
]
sources = [ "server/infra/datashare/src/audio_setting_provider.cpp" ]
deps = [ "../../frameworks/native/audioutils:audio_utils" ]
external_deps = [
"ability_runtime:dataobs_manager",
"c_utils:utils",
"data_share:datashare_common",
"data_share:datashare_consumer",
"hilog:libhilog",
"ipc:ipc_single",
"os_account:os_account_innerkits",
"samgr:samgr_proxy",
]
cflags = [ "-Os" ]
cflags_cc = cflags
defines = []
if (audio_framework_feature_support_os_account) {
defines += [ "SUPPORT_USER_ACCOUNT" ]
}
part_name = "audio_framework"
subsystem_name = "multimedia"
}
audio_ohos_library("audio_policy_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/domain/device/src/sco_audio_scene_manager.cpp",
"server/domain/interrupt/src/standalone_mode_manager.cpp",
"../audio_service/client/src/audio_filter.cpp",
"../audio_service/client/src/audio_manager_listener_stub_impl.cpp",
"../audio_service/client/src/core_service_provider_stub.cpp",
"../audio_service/client/src/microphone_descriptor.cpp",
"../audio_service/client/src/policy_provider_stub.cpp",
"server/domain/volume/src/audio_volume_group_info.cpp",
"server/domain/pipe/src/audio_definition_adapter_info.cpp",
"server/domain/pipe/src/audio_definition_policy_utils.cpp",
"server/infra/appclient/src/app_state_listener.cpp",
"server/infra/appclient/src/audio_background_manager.cpp",
"server/infra/appclient/src/client_type_manager.cpp",
"server/infra/appclient/src/client_type_manager_handler.cpp",
"server/infra/config/parser/src/audio_concurrency_parser.cpp",
"server/infra/config/parser/src/audio_converter_parser.cpp",
"server/infra/config/parser/src/audio_device_parser.cpp",
"server/infra/config/parser/src/audio_effect_config_parser.cpp",
"server/infra/config/parser/src/audio_focus_parser.cpp",
"server/infra/config/parser/src/audio_policy_config_parser.cpp",
"server/infra/config/parser/src/audio_policy_global_parser.cpp",
"server/infra/config/parser/src/audio_strategy_router_parser.cpp",
"server/infra/config/parser/src/audio_source_strategy_parser.cpp",
"server/infra/config/parser/src/audio_usage_strategy_parser.cpp",
"server/infra/config/parser/src/audio_volume_parser.cpp",
"server/infra/datashare/src/audio_policy_utils.cpp",
"server/infra/datashare/src/audio_policy_datashare_listener.cpp",
"server/infra/ipc_proxy/src/audio_ability_manager.cpp",
"server/infra/ipc_proxy/src/audio_policy_client_holder.cpp",
"server/infra/ipc_proxy/src/audio_server_proxy.cpp",
"server/infra/state_monitor/audio_policy_state_monitor.cpp",
"server/common/src/audio_group_handle.cpp",
"server/common/src/multi_condition_waiter.cpp",
"server/common/src/audio_secure_hash.cpp",
"server/service/service_main/src/audio_policy_server.cpp",
"server/src/audio_record_controller.cpp",
"server/service/service_main/src/audio_loopback_manager.cpp",
"server/service/service_main/src/loopback_in_server.cpp",
"server/infra/async_action_handler/src/audio_policy_server_handler.cpp",
"server/domain/stream/audio_stream_collector.cpp",
"server/domain/stream/audio_stream_id_allocator.cpp",
"server/infra/appclient/src/background_task_listener.cpp",
"server/domain/device/src/audio_device_factory.cpp",
"server/domain/device/src/audio_device_manager.cpp",
"server/domain/pipe/src/audio_global_config_manager.cpp",
"server/service/service_main/src/audio_policy_service.cpp",
"server/domain/device/src/audio_state_manager.cpp",
"server/domain/device/src/audio_usr_select_manager.cpp",
"server/domain/pipe/src/audio_concurrency_manager.cpp",
"server/service/service_main/src/device_init_callback.cpp",
"server/src/audio_client_tracker_callback_listener.cpp",
"server/src/audio_spatialization_state_change_callback.cpp",
"server/src/audio_policy_manager_listener.cpp",
"server/domain/effect/src/audio_effect_service.cpp",
"server/domain/interrupt/src/audio_interrupt_dfx_collector.cpp",
"server/domain/interrupt/src/audio_interrupt_service.cpp",
"server/domain/interrupt/src/audio_interrupt_service_ext.cpp",
"server/domain/interrupt/src/audio_interrupt_strategy.cpp",
"server/domain/interrupt/src/audio_interrupt_custom.cpp",
"server/domain/interrupt/src/audio_interrupt_dfx.cpp",
"server/domain/interrupt/src/audio_interrupt_utils.cpp",
"server/domain/interrupt/src/audio_interrupt_zone.cpp",
"server/domain/device/src/device_status_listener.cpp",
"server/domain/interrupt/src/power_state_listener.cpp",
"server/domain/volume/src/audio_adapter_manager.cpp",
"server/domain/volume/src/audio_adapter_manager_handler.cpp",
"server/domain/volume/src/volume_data_maintainer.cpp",
"server/domain/volume/src/audio_volume_utils.cpp",
"server/domain/router/audio_router_center.cpp",
"server/domain/router/cockpit_phone_router.cpp",
"server/domain/router/default_router.cpp",
"server/domain/router/package_filter_router.cpp",
"server/domain/router/pair_device_router.cpp",
"server/domain/router/privacy_priority_router.cpp",
"server/domain/router/public_priority_router.cpp",
"server/domain/router/stream_filter_router.cpp",
"server/domain/router/user_select_router.cpp",
"server/domain/router/wireless_conflict_handler.cpp",
"server/domain/router_context/audio_device_simple_descriptor.cpp",
"server/domain/router_context/audio_router_follow_strategy.cpp",
"server/domain/router_context/audio_router_independent_strategy.cpp",
"server/domain/router_context/audio_router_infra.cpp",
"server/domain/router_context/audio_router_select_strategy.cpp",
"server/domain/device/src/a2dp/audio_a2dp_device.cpp",
"server/domain/pipe/src/audio_a2dp_offload_flag.cpp",
"server/domain/pipe/src/audio_a2dp_offload_manager.cpp",
"server/domain/device/src/audio_active_device.cpp",
"server/domain/device/src/audio_connected_device.cpp",
"server/domain/device/src/audio_device_capability.cpp",
"server/domain/device/src/audio_device_common.cpp",
"server/domain/device/src/audio_device_lock.cpp",
"server/domain/device/src/audio_device_status.cpp",
"server/domain/pipe/src/audio_iohandle_map.cpp",
"server/domain/device/src/audio_microphone_descriptor.cpp",
"server/domain/pipe/src/audio_offload_stream.cpp",
"server/service/service_main/src/audio_policy_dump.cpp",
"server/domain/device/src/audio_recovery_device.cpp",
"server/domain/device/src/audio_router_map.cpp",
"server/domain/device/src/audio_scene_manager.cpp",
"server/domain/tone/audio_tone_manager.cpp",
"server/domain/volume/src/audio_volume_manager.cpp",
"server/domain/volume/src/app_volume_manager.cpp",
"server/domain/volume/src/audio_loud_volume_manager.cpp",
"server/domain/volume/src/audio_safe_volume_event_subscriber.cpp",
"server/domain/volume/src/safe_volume_manager.cpp",
"server/domain/volume/src/ringer_mode_manager.cpp",
"server/domain/device/src/a2dp/audio_a2dp_device_behavior.cpp",
"server/domain/device/src/pnp/audio_arm_device_behavior.cpp",
"server/domain/device/src/hearing_aid/audio_hearing_aid_device_behavior.cpp",
"server/domain/device/src/sco/audio_sco_device_behavior.cpp",
"server/domain/device/src/sle/audio_sle_device_behavior.cpp",
"server/domain/device/src/sle/sle_audio_device_manager.cpp",
"server/domain/device/src/va/va_device_manager.cpp",
"client/stub/src/va_device_broker_stub_impl.cpp",
"server/domain/session/src/audio_session.cpp",
"server/domain/session/src/audio_session_service.cpp",
"server/domain/session/src/audio_session_state_monitor.cpp",
"server/domain/effect/src/audio_collaborative_service.cpp",
"server/domain/effect/src/audio_spatialization_service.cpp",
"server/domain/zone/src/audio_zone.cpp",
"server/domain/zone/src/audio_zone_client_manager.cpp",
"server/domain/zone/src/audio_zone_interrupt_reporter.cpp",
"server/domain/zone/src/audio_zone_service.cpp",
"server/domain/pipe/src/audio_core_config_manager.cpp",
"server/service/service_main/src/audio_core_service.cpp",
"server/service/service_main/src/audio_core_service_entry.cpp",
"server/service/service_main/src/audio_core_service_private.cpp",
"server/service/service_main/src/audio_core_service_utils.cpp",
"server/service/service_main/src/audio_select_interface_service.cpp",
"server/domain/pipe/src/audio_pipe_manager.cpp",
"server/domain/pipe/src/audio_pipe_selector.cpp",
"server/service/service_main/src/audio_injector_policy.cpp",
]
defines = []
if (!audio_framework_feature_mutesink_enable) {
defines += [ "MUTE_SINK_DISABLE" ]
}
if (audio_framework_feature_multi_bus) {
defines += [ "MULTI_BUS_ENABLE" ]
sources += [ "server/domain/pipe/src/audio_bus_selector.cpp" ]
}
if (audio_framework_feature_multi_zone_volume) {
defines += [ "FEATURE_AUDIO_ZONE_VOLUME" ]
}
if (audio_framework_feature_multi_user_zone) {
defines += [ "MULTI_USER_ZONE" ]
sources += [ "server/domain/zone/src/audio_zone_router.cpp" ]
}
if (audio_framework_feature_wired_audio) {
defines += [ "AUDIO_WIRED_DETECT" ]
sources += [
"server/domain/device/src/pnp/audio_input_thread.cpp",
"server/domain/device/src/pnp/audio_pnp_server.cpp",
"server/domain/device/src/pnp/audio_socket_thread.cpp",
]
}
if (build_variant == "user") {
defines += [ "AUDIO_BUILD_VARIANT_USER" ]
} else if (build_variant == "root") {
defines += [ "AUDIO_BUILD_VARIANT_ROOT" ]
}
if (use_libfuzzer || use_clang_coverage) {
defines += [ "TEST_COVERAGE" ]
}
if (audio_framework_feature_support_os_account) {
defines += [ "SUPPORT_USER_ACCOUNT" ]
}
if (audio_framework_feature_dtmf_tone) {
sources += [ "server/infra/config/parser/src/audio_tone_parser.cpp" ]
defines += [ "FEATURE_DTMF_TONE" ]
}
if (is_emulator) {
defines += [ "IS_EMULATOR" ]
}
if (audio_framework_feature_inner_capturer) {
defines += [ "HAS_FEATURE_INNERCAPTURER" ]
}
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",
]
}
if (audio_framework_feature_input_independent_routing_rule) {
defines += [ "INPUT_FEATURE_INDEPENDENT_MODE" ]
}
public_configs = [
":audio_policy_public_config",
"../audio_service/idl:audio_policy_sa_idl_config",
]
deps = [
"../../services/audio_service/idl:audio_framework_interface",
"../../services/audio_service/idl:audio_policy_idl_callback",
"../../frameworks/native/audioadapter:pro_audio_service_adapter",
"../../frameworks/native/audiodefinitions:audio_definitions",
"../../frameworks/native/audioinnercall:audio_inner_call",
"../../frameworks/native/audioutils:audio_utils",
"../../frameworks/native/audioutils:audio_xml_utils",
"../audio_policy:audio_config.para",
"../audio_policy:audio_config.para.dac",
"../audio_policy:audio_foundation",
"../audio_policy:audio_setting_provider",
"../audio_service:audio_common",
"../audio_service:audio_process_service_static",
"../audio_engine:hpae_engine_manager",
"../../frameworks/native/hdiadapter_new:hdiadapter_new",
]
external_deps = [
"ability_base:session_info",
"ability_base:want",
"ability_base:zuri",
"ability_runtime:ability_connect_callback_stub",
"ability_runtime:ability_context_native",
"ability_runtime:app_context",
"ability_runtime:app_manager",
"ability_runtime:dataobs_manager",
"ability_runtime:extension_manager",
"ability_runtime:wantagent_innerkits",
"access_token:libaccesstoken_sdk",
"access_token:libprivacy_sdk",
"access_token:libtokenid_sdk",
"access_token:libtokensetproc_shared",
"background_task_mgr:bgtaskmgr_innerkits",
"bounds_checking_function:libsec_shared",
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"c_utils:utils",
"cJSON:cjson",
"data_share:datashare_common",
"data_share:datashare_consumer",
"drivers_interface_audio:libaudio_proxy_6.1",
"eventhandler:libeventhandler",
"hdf_core:libhdf_host",
"hdf_core:libhdf_ipc_adapter",
"hdf_core:libhdf_utils",
"hdf_core:libhdi",
"hdf_core:libpub_utils",
"hilog:libhilog",
"hisysevent:libhisysevent",
"init:libbegetutil",
"ipc:ipc_single",
"ipc:ipc_core",
"kv_store:distributeddata_inner",
"libxml2:libxml2",
"media_foundation:media_monitor_client",
"media_foundation:media_monitor_common",
"os_account:os_account_innerkits",
"power_manager:power_setting",
"power_manager:powermgr_client",
"safwk:system_ability_fwk",
"samgr:samgr_proxy",
"init:libbeget_proxy",
]
public_external_deps = [ "ffrt:libffrt" ]
if (audio_framework_feature_usb_audio) {
defines += [ "USB_ENABLE" ]
external_deps += [ "usb_manager:usbsrv_client" ]
sources += [ "server/domain/device/src/pnp/audio_usb_manager.cpp" ]
}
if (audio_framework_feature_hdmi_detect_audio) {
defines += [ "HDMI_DETECT_ENABLE" ]
}
if (target_platform != "watch" && target_platform != "glasses") {
defines += [ "HAS_WINDOW_MANAGER" ]
external_deps += [
"window_manager:session_manager_lite",
"window_manager:libwm_lite",
]
sources += [ "server/infra/window/window_utils.cpp" ]
}
if (audio_framework_feature_detect_soundbox) {
defines += [ "DETECT_SOUNDBOX" ]
}
if (audio_framework_feature_wireless_default_exclude) {
defines += [ "WIRELESS_DEFAULT_EXCLUDE" ]
}
if (audio_framework_feature_exclude_indirect_usb_input_device) {
defines += [ "EXCLUDE_INDIRECT_USB_INPUT_DEVICE" ]
}
if (audio_framework_config_policy_enable) {
defines += [ "USE_CONFIG_POLICY" ]
external_deps += [ "config_policy:configpolicy_util" ]
}
if (appgallery_part_enable == true) {
defines += [ "FEATURE_APPGALLERY" ]
}
if (bluetooth_part_enable == true) {
deps += [ "../../frameworks/native/bluetoothclient:audio_bluetooth_client" ]
external_deps += [ "bluetooth:btframework" ]
}
if (audio_framework_feature_input) {
defines += [ "FEATURE_MULTIMODALINPUT_INPUT" ]
external_deps += [ "input:libmmi-client" ]
}
if (audio_framework_feature_device_manager) {
defines += [ "FEATURE_DEVICE_MANAGER" ]
external_deps += [ "device_manager:devicemanagersdk" ]
}
if (target_platform == "watch" ||
target_platform == "glasses") {
defines += [ "ACTIVATED_RECLAIM_MEMORY" ]
}
cflags = [ "-Os" ]
cflags_cc = cflags
subsystem_name = "multimedia"
part_name = "audio_framework"
version_script = "libaudio_policy_service.versionscript"
}
ohos_prebuilt_etc("audio_interrupt_policy_config") {
source = "server/infra/config/file/audio_interrupt_policy_config.xml"
subsystem_name = "multimedia"
relative_install_dir = "audio"
part_name = "audio_framework"
}
ohos_prebuilt_etc("audio_strategy_router") {
source = "server/infra/config/file/audio_strategy_router.xml"
subsystem_name = "multimedia"
relative_install_dir = "audio"
part_name = "audio_framework"
}
ohos_prebuilt_etc("audio_usage_strategy") {
source = "server/infra/config/file/audio_usage_strategy.xml"
subsystem_name = "multimedia"
relative_install_dir = "audio"
part_name = "audio_framework"
}
ohos_prebuilt_etc("audio_device_config") {
source = "server/infra/config/file/audio_device_privacy.xml"
subsystem_name = "multimedia"
relative_install_dir = "audio"
part_name = "audio_framework"
}
ohos_prebuilt_etc("audio_volume_config") {
source = "server/infra/config/file/audio_volume_config.xml"
subsystem_name = "multimedia"
relative_install_dir = "audio"
part_name = "audio_framework"
}
ohos_prebuilt_etc("audio_policy_global_config") {
source = "server/infra/config/file/audio_policy_global_config.xml"
subsystem_name = "multimedia"
relative_install_dir = "audio"
part_name = "audio_framework"
}
if (audio_framework_feature_dtmf_tone) {
ohos_prebuilt_etc("audio_tone_dtmf_config") {
source = "server/infra/config/file/audio_tone_dtmf_config.xml"
subsystem_name = "multimedia"
relative_install_dir = "audio"
part_name = "audio_framework"
}
}
ohos_prebuilt_etc("audio_converter_config") {
source = "server/infra/config/file/audio_converter_config.xml"
subsystem_name = "multimedia"
relative_install_dir = "audio"
part_name = "audio_framework"
}
ohos_prebuilt_etc("audio_config.para") {
source = "etc/audio_config.para"
subsystem_name = "multimedia"
part_name = "audio_framework"
module_install_dir = "etc/param"
}
ohos_prebuilt_etc("audio_config.para.dac") {
source = "etc/audio_config.para.dac"
subsystem_name = "multimedia"
part_name = "audio_framework"
module_install_dir = "etc/param"
}
config("audio_policy_client_config") {
include_dirs = [
"client/proxy/include",
"client/stub/include",
"client/service/include",
"common/include",
"client/interface",
"server/include",
"server/proxy/include",
"server/stub/include",
"server/service/service_main/include",
"server/domain/effect/include",
"../audio_service/client/include",
"../audio_service/common/include",
"../../frameworks/native/audiodefinitions/include",
"../../frameworks/native/audiopolicy/include",
"../../interfaces/inner_api/native/audiocommon/include",
"../../interfaces/inner_api/native/audiomanager/include",
"../../interfaces/inner_api/native/audiocapturer/include",
]
cflags = [
"-Wall",
"-Werror",
]
if (target_cpu == "arm") {
cflags += [ "-DBINDER_IPC_32BIT" ]
}
}
audio_ohos_library("audio_policy_client") {
branch_protector_ret = "pac_ret"
install_enable = true
defines = []
if (audio_framework_feature_dtmf_tone) {
defines += [ "FEATURE_DTMF_TONE" ]
}
if (audio_framework_feature_inner_capturer) {
defines += [ "HAS_FEATURE_INNERCAPTURER" ]
}
sources = [
"../audio_policy/server/domain/device/src/audio_device_descriptor.cpp",
"../audio_service/client/src/audio_filter.cpp",
"../audio_service/client/src/microphone_descriptor.cpp",
"client/service/src/audio_policy_manager.cpp",
"client/service/src/audio_policy_manager_device.cpp",
"client/service/src/audio_policy_manager_zone.cpp",
"client/service/src/audio_record_control_manager.cpp",
"client/service/src/audio_routing_manager_listener.cpp",
"client/service/src/audio_anahs_manager_listener.cpp",
"client/service/src/audio_zone_manager.cpp",
"server/domain/volume/src/audio_volume_group_info.cpp",
"client/stub/src/audio_policy_client_stub_impl.cpp",
"client/stub/src/audio_policy_manager_listener_stub_impl.cpp",
"client/stub/src/audio_zone_client.cpp",
"client/stub/src/sle_audio_operation_callback_stub_impl.cpp",
"server/src/audio_client_tracker_callback_service.cpp",
"server/src/audio_spatialization_state_change_listener.cpp",
]
deps = [
"../../frameworks/native/audiodefinitions:audio_definitions",
"../../frameworks/native/audioutils:audio_utils",
"../../services/audio_service/idl:audio_policy_client_idl_interface",
"../../services/audio_service:audio_common",
]
public_configs = [ ":audio_policy_client_config" ]
include_dirs = [
"../../frameworks/native/audioutils/include",
"../../services/audio_service/common/include/",
"../../services/audio_service/common/include/dfx",
]
external_deps = [
"bounds_checking_function:libsec_shared",
"c_utils:utils",
"eventhandler:libeventhandler",
"hilog:libhilog",
"init:libbegetutil",
"ipc:ipc_single",
"ipc:ipc_core",
"media_foundation:media_monitor_client",
"media_foundation:media_monitor_common",
"samgr:samgr_proxy",
]
subsystem_name = "multimedia"
innerapi_tags = [ "platformsdk" ]
cflags = [ "-Os" ]
cflags_cc = cflags
part_name = "audio_framework"
ldflags = [ "-Wl,-Bsymbolic" ]
version_script = "libaudio_policy_client.versionscript"
}
group("audio_policy_test_packages") {
testonly = true
deps = [
":audio_dump_test",
":audio_policy_test",
"test:audio_policy_unittest_packages",
"client/stub:audio_zone_client_unit_test",
"client/stub:audio_policy_manager_listener_stub_impl_unit_test",
"client/service/test:audio_policy_manager_device_unit_test",
"server/infra/config/parser/test:audio_policy_config_parser_unittest_packages",
"server/domain/device:audio_device_common_unit_next_test",
"server/domain/device/test:audio_device_status_extended_test",
"server/domain/effect/test:audio_spatialization_service_extended_test",
"server/domain/device/test:audio_active_device_new_unit_test",
"server/domain/router/test:audio_router_unittest_packages",
"server/domain/router_context/test:audio_router_context_test",
"server/domain/session/test:audio_policy_session_unit_test",
"server/domain/volume/test:audio_volume_unittest_packages",
"server/service/service_main/test:audio_loopback_manager_unit_test",
"server/service/service_main/test:audio_policy_dump_unit_test",
"server/service/service_main/test:audio_policy_server_extended_test",
"server/service/service_main/test:audio_policy_service_ext_unit_test",
"server/service/service_main/test:device_init_callback_unit_test",
"server/infra/state_monitor/test:audio_policy_state_monitor_unittest_packages",
"server/infra/ipc_proxy/test:audio_policy_ipc_proxy_unittest_packages",
"server/common/test:audio_policy_server_common_unittest_packages",
"server/src/test:audio_server_src_unittest_packages",
]
}
ohos_executable("audio_dump_test") {
install_enable = false
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = true
ubsan = true
boundary_sanitize = true
}
sources = [ "test/example/audio_dump_test.cpp" ]
configs = [ ":audio_policy_client_config" ]
deps = [
"../audio_policy:audio_policy_client",
"../audio_service:audio_client",
"../audio_service:audio_engine_manager",
"../audio_service:audio_policy_manager",
"../audio_service:audio_stream_client",
]
include_dirs = []
external_deps = [
"bounds_checking_function:libsec_shared",
"c_utils:utils",
"hilog:libhilog",
"ipc:ipc_single",
]
part_name = "audio_framework"
subsystem_name = "multimedia"
}
ohos_executable("audio_policy_test") {
install_enable = false
sources = [ "test/example/audio_policy_test.cpp" ]
configs = [ ":audio_policy_client_config" ]
deps = [
"../audio_policy:audio_foundation",
"../audio_policy:audio_policy_client",
"../audio_service:audio_client",
"../audio_service:audio_engine_manager",
"../audio_service:audio_policy_manager",
"../audio_service:audio_stream_client",
]
include_dirs = []
external_deps = [
"bounds_checking_function:libsec_shared",
"c_utils:utils",
"hilog:libhilog",
"ipc:ipc_single",
]
part_name = "audio_framework"
subsystem_name = "multimedia"
}
ohos_executable("audio_route_selector_test") {
install_enable = false
sanitize = {
cfi = true
cfi_cross_dso = true
cfi_vcall_icall_only = true
debug = false
integer_overflow = true
ubsan = true
boundary_sanitize = true
}
sources = [ "test/example/audio_route_selector_test.cpp" ]
configs = [ ":audio_policy_client_config" ]
deps = [
"../audio_policy:audio_policy_client",
"../audio_service:audio_client",
"../audio_service:audio_engine_manager",
"../audio_service:audio_policy_manager",
"../audio_service:audio_stream_client",
]
external_deps = [
"bounds_checking_function:libsec_shared",
"c_utils:utils",
"hilog:libhilog",
"ipc:ipc_single",
]
part_name = "audio_framework"
subsystem_name = "multimedia"
}
config("audio_foundation_public_config") {
include_dirs = [
"util/include",
"server/domain/device/include",
"server/domain/effect/include",
"../audio_service/util/include",
"../../interfaces/inner_api/native/audiocommon/include",
"../../interfaces/inner_api/native/audiomanager/include",
"../../frameworks/native/audiopolicy/include",
"//foundation/multimedia/audio_framework/services/audio_service/idl",
]
}
ohos_shared_library("audio_foundation") {
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 = [
"../audio_service/client/src/audio_filter.cpp",
"../audio_service/client/src/audio_manager_util.cpp",
"server/domain/device/src/audio_device_descriptor.cpp",
"server/domain/device/src/audio_device_type.cpp",
"server/domain/effect/src/audio_effect_map.cpp",
]
public_configs = [
":audio_foundation_public_config",
"../../services/audio_service/idl:audio_service_sa_idl_config",
"../../services/audio_service/idl:audio_policy_sa_idl_config",
]
deps = [
"../../frameworks/native/audioutils:audio_utils",
"../audio_policy:audio_policy_client",
"../audio_service:audio_common",
]
external_deps = [
"hilog:libhilog",
"ipc:ipc_core",
"samgr:samgr_proxy",
]
cflags = [ "-Os" ]
cflags_cc = cflags
defines = []
if (audio_framework_feature_detect_soundbox) {
defines += [ "DETECT_SOUNDBOX" ]
}
innerapi_tags = [ "platformsdk" ]
subsystem_name = "multimedia"
part_name = "audio_framework"
}
config("audio_manager_client_public_config") {
include_dirs = [
"util/include",
"server/domain/device/include",
"server/domain/effect/include",
"client/service/include",
"../../frameworks/native/audiodefinitions/include",
"../../frameworks/native/audiodefinitions/include/common",
"../../frameworks/native/hdiadapter_new/include/common",
"../../interfaces/inner_api/native/audiocommon/include"
]
}
ohos_shared_library("audio_manager_client") {
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 = [
"../audio_service/client/src/audio_anahs_manager.cpp",
"../audio_service/client/src/audio_focus_info_change_callback_impl.cpp",
"client/service/src/audio_general_manager.cpp",
"server/domain/device/src/audio_device_capability.cpp",
]
public_configs = [ ":audio_manager_client_public_config" ]
deps = [
":audio_foundation",
":audio_policy_client",
"../../frameworks/native/audioutils:audio_utils",
"../audio_service:audio_common",
]
external_deps = [
"bundle_framework:appexecfwk_base",
"bundle_framework:appexecfwk_core",
"cJSON:cjson",
"eventhandler:libeventhandler",
"hicollie:libhicollie",
"hilog:libhilog",
"ipc:ipc_single",
"samgr:samgr_proxy",
]
defines = []
if (audio_framework_feature_inner_capturer) {
defines += [ "HAS_FEATURE_INNERCAPTURER" ]
}
if (audio_framework_feature_multi_zone_volume) {
defines += [ "FEATURE_AUDIO_ZONE_VOLUME" ]
}
cflags = [ "-Os" ]
cflags_cc = cflags
innerapi_tags = [ "platformsdk" ]
subsystem_name = "multimedia"
part_name = "audio_framework"
}
config("audio_policy_common_public_config") {
include_dirs = [
"../../interfaces/inner_api/native/audiomanager/include",
"../../interfaces/inner_api/native/audiocommon/include",
"../audio_service/client/include",
]
}
ohos_shared_library("audio_policy_common") {
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 = [
"../audio_service/client/src/resource_manager_adapter.cpp",
]
public_configs = [ ":audio_policy_common_public_config" ]
external_deps = [
"ability_base:configuration",
"c_utils:utils",
"common_event_service:cesfwk_innerkits",
"hilog:libhilog",
"i18n:intl_util",
"ipc:ipc_core",
"resource_management:global_resmgr",
"icu:shared_icuuc",
]
cflags = [ "-Os" ]
cflags_cc = cflags
innerapi_tags = [ "platformsdk" ]
subsystem_name = "multimedia"
part_name = "audio_framework"
}