• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2025 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15import("../../accessibility.gni")
16import("../../appgallery.gni")
17import("../../audio_framework_test_sources.gni")
18import("../../av_session.gni")
19import("../../bluetooth_part.gni")
20import("../../config.gni")
21
22group("audio_policy_packages") {
23  deps = [
24    ":audio_affinity_config",
25    ":audio_converter_config",
26    ":audio_device_config",
27    ":audio_interrupt_policy_config",
28    ":audio_policy_global_config",
29    ":audio_policy_service",
30    ":audio_strategy_router",
31    ":audio_usage_strategy",
32    ":audio_volume_config",
33    "safe_volume_notification:audio_safe_volume_notification_impl",
34  ]
35
36  if (audio_framework_feature_dtmf_tone) {
37    deps += [ ":audio_tone_dtmf_config" ]
38  }
39}
40
41config("audio_policy_public_config") {
42  include_dirs = [
43    "util/include",
44    "common/include",
45    "client/include",
46    "server/include",
47    "server/include/service",
48    "server/include/service/common",
49    "server/include/service/config",
50    "server/include/service/effect",
51    "server/include/service/interface",
52    "server/include/service/listener",
53    "server/include/service/manager",
54    "server/include/service/manager/pnp_server",
55    "server/include/service/routers",
56    "server/include/service/service",
57    "server/include/service/spatialization",
58    "server/src/interface",
59    "server/src/service/concurrency",
60    "server/src/service/interrupt",
61    "server/src/service/session",
62    "safe_volume_notification/include",
63    "../audio_service/client/include",
64    "../audio_service/common/include",
65    "../audio_service/common/include/dfx",
66    "../../frameworks/native/audioinnercall/include",
67    "../../frameworks/native/audiorenderer/include",
68    "../../frameworks/native/audioadapter/include",
69    "../../frameworks/native/audiopolicy/include",
70    "../../frameworks/native/audioutils/include",
71    "../../frameworks/native/bluetoothclient",
72    "../../frameworks/native/hdiadapter_new/include",
73    "../../interfaces/inner_api/native/audiocommon/include",
74    "../../interfaces/inner_api/native/audiomanager/include",
75  ]
76
77  cflags = [
78    "-Wall",
79    "-Werror",
80  ]
81
82  if (target_cpu == "arm") {
83    cflags += [ "-DBINDER_IPC_32BIT" ]
84  }
85
86  if (accessibility_enable == true) {
87    cflags += [ "-DACCESSIBILITY_ENABLE" ]
88  }
89
90  if (bluetooth_part_enable == true) {
91    cflags += [ "-DBLUETOOTH_ENABLE" ]
92  }
93
94  if (avsession_part_enable == true && !(use_libfuzzer || use_clang_coverage)) {
95    cflags += [ "-DAVSESSION_ENABLE" ]
96  }
97
98  ldflags = [ "-Wl" ]
99}
100
101ohos_shared_library("audio_setting_provider") {
102  stack_protector_ret = true
103  sanitize = {
104    cfi = true
105    cfi_cross_dso = true
106    cfi_vcall_icall_only = true
107    debug = false
108    integer_overflow = true
109    ubsan = true
110    boundary_sanitize = true
111  }
112  install_enable = true
113
114  include_dirs = [
115    "../../services/audio_policy/server/include/service/manager",
116    "../../interfaces/inner_api/native/audiocommon/include",
117  ]
118
119  sources = [ "server/src/service/manager/audio_setting_provider.cpp" ]
120
121  deps = [ "../../frameworks/native/audioutils:audio_utils" ]
122
123  external_deps = [
124    "c_utils:utils",
125    "data_share:datashare_common",
126    "data_share:datashare_consumer",
127    "hilog:libhilog",
128    "ipc:ipc_single",
129    "os_account:os_account_innerkits",
130    "samgr:samgr_proxy",
131  ]
132  cflags = [ "-Os" ]
133  cflags_cc = cflags
134
135  defines = []
136  if (audio_framework_feature_support_os_account) {
137    defines += [ "SUPPORT_USER_ACCOUNT" ]
138  }
139
140  part_name = "audio_framework"
141  subsystem_name = "multimedia"
142}
143
144audio_ohos_library("audio_policy_service") {
145  stack_protector_ret = true
146  sanitize = {
147    cfi = true
148    cfi_cross_dso = true
149    cfi_vcall_icall_only = true
150    debug = false
151    integer_overflow = true
152    ubsan = true
153    boundary_sanitize = true
154  }
155  install_enable = true
156  sources = [
157    "../audio_service/client/src/audio_filter.cpp",
158    "../audio_service/client/src/audio_manager_listener_stub.cpp",
159    "../audio_service/client/src/microphone_descriptor.cpp",
160    "../audio_service/client/src/policy_provider_stub.cpp",
161    "client/src/audio_interrupt_group_info.cpp",
162    "client/src/audio_volume_group_info.cpp",
163    "server/src/app_state_listener.cpp",
164    "server/src/audio_anahs_manager_listener_proxy.cpp",
165    "server/src/audio_client_tracker_callback_proxy.cpp",
166    "server/src/audio_concurrency_state_listener_proxy.cpp",
167    "server/src/audio_group_handle.cpp",
168    "server/src/audio_policy_async_action_handler.cpp",
169    "server/src/audio_policy_client_proxy.cpp",
170    "server/src/audio_policy_manager_device_stub.cpp",
171    "server/src/audio_policy_manager_listener_proxy.cpp",
172    "server/src/audio_policy_manager_stub.cpp",
173    "server/src/audio_policy_server.cpp",
174    "server/src/audio_policy_server_handler.cpp",
175    "server/src/audio_policy_state_monitor.cpp",
176    "server/src/audio_routing_manager_listener_proxy.cpp",
177    "server/src/audio_spatialization_state_change_listener_proxy.cpp",
178    "server/src/audio_stream_collector.cpp",
179    "server/src/service/audio_affinity_manager.cpp",
180    "server/src/service/audio_device_manager.cpp",
181    "server/src/service/audio_global_config_manager.cpp",
182    "server/src/service/audio_policy_service.cpp",
183    "server/src/service/audio_state_manager.cpp",
184    "server/src/service/concurrency/audio_concurrency_service.cpp",
185    "server/src/service/config/audio_adapter_info.cpp",
186    "server/src/service/config/audio_affinity_parser.cpp",
187    "server/src/service/config/audio_concurrency_parser.cpp",
188    "server/src/service/config/audio_converter_parser.cpp",
189    "server/src/service/config/audio_device_parser.cpp",
190    "server/src/service/config/audio_focus_parser.cpp",
191    "server/src/service/config/audio_policy_global_parser.cpp",
192    "server/src/service/config/audio_policy_parser.cpp",
193    "server/src/service/config/audio_strategy_router_parser.cpp",
194    "server/src/service/config/audio_usage_strategy_parser.cpp",
195    "server/src/service/config/audio_volume_parser.cpp",
196    "server/src/service/data_share_observer_callback.cpp",
197    "server/src/service/device_init_callback.cpp",
198    "server/src/service/effect/audio_effect_config_parser.cpp",
199    "server/src/service/effect/audio_effect_service.cpp",
200    "server/src/service/interrupt/audio_interrupt_dfx_collector.cpp",
201    "server/src/service/interrupt/audio_interrupt_service.cpp",
202    "server/src/service/interrupt/audio_interrupt_service_ext.cpp",
203    "server/src/service/interrupt/audio_interrupt_zone.cpp",
204    "server/src/service/listener/device_status_listener.cpp",
205    "server/src/service/listener/power_state_listener.cpp",
206    "server/src/service/manager/audio_adapter_manager.cpp",
207    "server/src/service/manager/audio_adapter_manager_handler.cpp",
208    "server/src/service/manager/client_type_manager.cpp",
209    "server/src/service/manager/client_type_manager_handler.cpp",
210    "server/src/service/manager/volume_data_maintainer.cpp",
211    "server/src/service/routers/app_select_router.cpp",
212    "server/src/service/routers/audio_router_center.cpp",
213    "server/src/service/routers/cockpit_phone_router.cpp",
214    "server/src/service/routers/default_router.cpp",
215    "server/src/service/routers/package_filter_router.cpp",
216    "server/src/service/routers/pair_device_router.cpp",
217    "server/src/service/routers/privacy_priority_router.cpp",
218    "server/src/service/routers/public_priority_router.cpp",
219    "server/src/service/routers/stream_filter_router.cpp",
220    "server/src/service/routers/user_select_router.cpp",
221    "server/src/service/service/audio_a2dp_device.cpp",
222    "server/src/service/service/audio_a2dp_offload_flag.cpp",
223    "server/src/service/service/audio_a2dp_offload_manager.cpp",
224    "server/src/service/service/audio_active_device.cpp",
225    "server/src/service/service/audio_capturer_session.cpp",
226    "server/src/service/service/audio_config_manager.cpp",
227    "server/src/service/service/audio_connected_device.cpp",
228    "server/src/service/service/audio_device_common.cpp",
229    "server/src/service/service/audio_device_lock.cpp",
230    "server/src/service/service/audio_device_status.cpp",
231    "server/src/service/service/audio_ec_manager.cpp",
232    "server/src/service/service/audio_iohandle_map.cpp",
233    "server/src/service/service/audio_microphone_descriptor.cpp",
234    "server/src/service/service/audio_offload_stream.cpp",
235    "server/src/service/service/audio_policy_dump.cpp",
236    "server/src/service/service/audio_policy_utils.cpp",
237    "server/src/service/service/audio_recovery_device.cpp",
238    "server/src/service/service/audio_router_map.cpp",
239    "server/src/service/service/audio_scene_manager.cpp",
240    "server/src/service/service/audio_server_proxy.cpp",
241    "server/src/service/service/audio_tone_manager.cpp",
242    "server/src/service/service/audio_volume_manager.cpp",
243    "server/src/service/session/audio_session.cpp",
244    "server/src/service/session/audio_session_service.cpp",
245    "server/src/service/session/audio_session_state_monitor.cpp",
246    "server/src/service/spatialization/audio_spatialization_service.cpp",
247    "util/src/audio_ability_manager.cpp",
248  ]
249
250  defines = []
251  if (audio_framework_feature_wired_audio) {
252    defines += [ "AUDIO_WIRED_DETECT" ]
253    sources += [
254      "server/src/service/manager/pnp_server/audio_input_thread.cpp",
255      "server/src/service/manager/pnp_server/audio_pnp_server.cpp",
256      "server/src/service/manager/pnp_server/audio_socket_thread.cpp",
257    ]
258  }
259
260  if (build_variant == "user") {
261    defines += [ "AUDIO_BUILD_VARIANT_USER" ]
262  } else if (build_variant == "root") {
263    defines += [ "AUDIO_BUILD_VARIANT_ROOT" ]
264  }
265
266  if (use_libfuzzer || use_clang_coverage) {
267    defines += [ "TEST_COVERAGE" ]
268  }
269
270  if (audio_framework_feature_support_os_account) {
271    defines += [ "SUPPORT_USER_ACCOUNT" ]
272  }
273
274  if (audio_framework_feature_dtmf_tone) {
275    sources += [ "server/src/service/config/audio_tone_parser.cpp" ]
276    defines += [ "FEATURE_DTMF_TONE" ]
277  }
278
279  if (is_emulator) {
280    defines += [ "IS_EMULATOR" ]
281  }
282
283  if (audio_framework_feature_inner_capturer) {
284    defines += [ "HAS_FEATURE_INNERCAPTURER" ]
285  }
286
287  public_configs = [ ":audio_policy_public_config" ]
288
289  deps = [
290    "../../frameworks/native/audioadapter:pulse_audio_service_adapter",
291    "../../frameworks/native/audioinnercall:audio_inner_call",
292    "../../frameworks/native/audioutils:audio_utils",
293    "../../frameworks/native/audioutils:audio_xml_utils",
294    "../audio_policy:audio_config.para",
295    "../audio_policy:audio_config.para.dac",
296    "../audio_policy:audio_foundation",
297    "../audio_policy:audio_setting_provider",
298    "../audio_service:audio_common",
299  ]
300
301  external_deps = [
302    "ability_base:session_info",
303    "ability_base:want",
304    "ability_base:zuri",
305    "ability_runtime:ability_connect_callback_stub",
306    "ability_runtime:ability_context_native",
307    "ability_runtime:app_context",
308    "ability_runtime:app_manager",
309    "ability_runtime:dataobs_manager",
310    "ability_runtime:extension_manager",
311    "access_token:libaccesstoken_sdk",
312    "access_token:libprivacy_sdk",
313    "access_token:libtokenid_sdk",
314    "access_token:libtokensetproc_shared",
315    "bounds_checking_function:libsec_shared",
316    "bundle_framework:appexecfwk_base",
317    "bundle_framework:appexecfwk_core",
318    "c_utils:utils",
319    "data_share:datashare_common",
320    "data_share:datashare_consumer",
321    "drivers_interface_audio:libaudio_proxy_4.0",
322    "eventhandler:libeventhandler",
323    "hdf_core:libhdf_host",
324    "hdf_core:libhdf_ipc_adapter",
325    "hdf_core:libhdf_utils",
326    "hdf_core:libhdi",
327    "hdf_core:libpub_utils",
328    "hilog:libhilog",
329    "hisysevent:libhisysevent",
330    "init:libbegetutil",
331    "ipc:ipc_single",
332    "media_foundation:media_monitor_client",
333    "media_foundation:media_monitor_common",
334    "os_account:os_account_innerkits",
335    "power_manager:power_setting",
336    "power_manager:powermgr_client",
337    "pulseaudio:pulse",
338    "safwk:system_ability_fwk",
339    "samgr:samgr_proxy",
340  ]
341
342  public_external_deps = [ "ffrt:libffrt" ]
343
344  public_external_deps += [
345    "libxml2:libxml2",
346    "openssl:libcrypto_shared",
347  ]
348
349  if (audio_framework_feature_usb_audio) {
350    defines += [ "USB_ENABLE" ]
351    external_deps += [ "usb_manager:usbsrv_client" ]
352    sources += [ "server/src/service/manager/audio_usb_manager.cpp" ]
353  }
354
355  if (audio_framework_feature_detect_soundbox) {
356    defines += [ "DETECT_SOUNDBOX" ]
357  }
358
359  if (audio_framework_config_policy_enable) {
360    defines += [ "USE_CONFIG_POLICY" ]
361    external_deps += [ "config_policy:configpolicy_util" ]
362  }
363
364  if (appgallery_part_enable == true) {
365    defines += [ "FEATURE_APPGALLERY" ]
366  }
367
368  if (bluetooth_part_enable == true) {
369    deps += [ "../../frameworks/native/bluetoothclient:audio_bluetooth_client" ]
370    external_deps += [ "bluetooth:btframework" ]
371  }
372
373  if (audio_framework_feature_input) {
374    defines += [ "FEATURE_MULTIMODALINPUT_INPUT" ]
375    external_deps += [ "input:libmmi-client" ]
376  }
377
378  if (audio_framework_feature_device_manager) {
379    defines += [ "FEATURE_DEVICE_MANAGER" ]
380    external_deps += [ "device_manager:devicemanagersdk" ]
381  }
382
383  cflags = [ "-Os" ]
384  cflags_cc = cflags
385  subsystem_name = "multimedia"
386  part_name = "audio_framework"
387  version_script = "libaudio_policy_service.versionscript"
388}
389
390ohos_prebuilt_etc("audio_interrupt_policy_config") {
391  source = "server/config/audio_interrupt_policy_config.xml"
392
393  subsystem_name = "multimedia"
394  relative_install_dir = "audio"
395  part_name = "audio_framework"
396}
397
398ohos_prebuilt_etc("audio_strategy_router") {
399  source = "server/config/audio_strategy_router.xml"
400
401  subsystem_name = "multimedia"
402  relative_install_dir = "audio"
403  part_name = "audio_framework"
404}
405
406ohos_prebuilt_etc("audio_usage_strategy") {
407  source = "server/config/audio_usage_strategy.xml"
408
409  subsystem_name = "multimedia"
410  relative_install_dir = "audio"
411  part_name = "audio_framework"
412}
413
414ohos_prebuilt_etc("audio_device_config") {
415  source = "server/config/audio_device_privacy.xml"
416
417  subsystem_name = "multimedia"
418  relative_install_dir = "audio"
419  part_name = "audio_framework"
420}
421
422ohos_prebuilt_etc("audio_volume_config") {
423  source = "server/config/audio_volume_config.xml"
424
425  subsystem_name = "multimedia"
426  relative_install_dir = "audio"
427  part_name = "audio_framework"
428}
429
430ohos_prebuilt_etc("audio_affinity_config") {
431  source = "server/config/audio_affinity_config.xml"
432
433  subsystem_name = "multimedia"
434  relative_install_dir = "audio"
435  part_name = "audio_framework"
436}
437
438ohos_prebuilt_etc("audio_policy_global_config") {
439  source = "server/config/audio_policy_global_config.xml"
440
441  subsystem_name = "multimedia"
442  relative_install_dir = "audio"
443  part_name = "audio_framework"
444}
445
446if (audio_framework_feature_dtmf_tone) {
447  ohos_prebuilt_etc("audio_tone_dtmf_config") {
448    source = "server/config/audio_tone_dtmf_config.xml"
449
450    subsystem_name = "multimedia"
451    relative_install_dir = "audio"
452    part_name = "audio_framework"
453  }
454}
455
456ohos_prebuilt_etc("audio_converter_config") {
457  source = "server/config/audio_converter_config.xml"
458
459  subsystem_name = "multimedia"
460  relative_install_dir = "audio"
461  part_name = "audio_framework"
462}
463
464ohos_prebuilt_etc("audio_config.para") {
465  source = "etc/audio_config.para"
466  subsystem_name = "multimedia"
467  part_name = "audio_framework"
468  module_install_dir = "etc/param"
469}
470
471ohos_prebuilt_etc("audio_config.para.dac") {
472  source = "etc/audio_config.para.dac"
473  subsystem_name = "multimedia"
474  part_name = "audio_framework"
475  module_install_dir = "etc/param"
476}
477
478config("audio_policy_client_config") {
479  include_dirs = [
480    "client/include",
481    "common/include",
482    "server/include",
483    "../audio_service/client/include",
484    "../audio_service/common/include",
485    "../../frameworks/native/audiopolicy/include",
486    "../../interfaces/inner_api/native/audiocommon/include",
487    "../../interfaces/inner_api/native/audiomanager/include",
488  ]
489
490  cflags = [
491    "-Wall",
492    "-Werror",
493  ]
494
495  if (target_cpu == "arm") {
496    cflags += [ "-DBINDER_IPC_32BIT" ]
497  }
498}
499
500audio_ohos_library("audio_policy_client") {
501  branch_protector_ret = "pac_ret"
502  install_enable = true
503
504  defines = []
505  if (audio_framework_feature_dtmf_tone) {
506    defines += [ "FEATURE_DTMF_TONE" ]
507  }
508
509  if (audio_framework_feature_inner_capturer) {
510    defines += [ "HAS_FEATURE_INNERCAPTURER" ]
511  }
512
513  sources = [
514    "../audio_policy/server/src/service/device/audio_device_descriptor.cpp",
515    "../audio_service/client/src/audio_filter.cpp",
516    "../audio_service/client/src/microphone_descriptor.cpp",
517    "client/src/audio_anahs_manager_listener_stub.cpp",
518    "client/src/audio_client_tracker_callback_stub.cpp",
519    "client/src/audio_concurrency_state_listener_stub.cpp",
520    "client/src/audio_policy_client_stub.cpp",
521    "client/src/audio_policy_client_stub_impl.cpp",
522    "client/src/audio_policy_manager.cpp",
523    "client/src/audio_policy_manager_device.cpp",
524    "client/src/audio_policy_manager_listener_stub.cpp",
525    "client/src/audio_routing_manager_listener_stub.cpp",
526    "client/src/audio_spatialization_state_change_listener_stub.cpp",
527    "client/src/audio_volume_group_info.cpp",
528    "client/src/proxy/audio_policy_callback_proxy.cpp",
529    "client/src/proxy/audio_policy_microphone_proxy.cpp",
530    "client/src/proxy/audio_policy_proxy.cpp",
531    "client/src/proxy/audio_policy_volume_proxy.cpp",
532  ]
533
534  deps = [ "../../frameworks/native/audioutils:audio_utils" ]
535
536  public_configs = [ ":audio_policy_client_config" ]
537
538  include_dirs = [ "../../frameworks/native/audioutils/include" ]
539
540  external_deps = [
541    "bounds_checking_function:libsec_shared",
542    "c_utils:utils",
543    "eventhandler:libeventhandler",
544    "hilog:libhilog",
545    "init:libbegetutil",
546    "ipc:ipc_single",
547    "samgr:samgr_proxy",
548  ]
549  subsystem_name = "multimedia"
550  innerapi_tags = [ "platformsdk" ]
551  cflags = [ "-Os" ]
552  cflags_cc = cflags
553  part_name = "audio_framework"
554
555  ldflags = [ "-Wl,-Bsymbolic" ]
556  version_script = "libaudio_policy_client.versionscript"
557}
558
559group("audio_policy_test_packages") {
560  testonly = true
561
562  deps = [
563    ":audio_dump_test",
564    ":audio_policy_test",
565    "test:audio_policy_unittest_packages",
566  ]
567}
568
569ohos_executable("audio_dump_test") {
570  install_enable = false
571  sanitize = {
572    cfi = true
573    cfi_cross_dso = true
574    cfi_vcall_icall_only = true
575    debug = false
576    integer_overflow = true
577    ubsan = true
578    boundary_sanitize = true
579  }
580  sources = [ "test/example/audio_dump_test.cpp" ]
581
582  configs = [ ":audio_policy_client_config" ]
583
584  deps = [
585    "../audio_policy:audio_policy_client",
586    "../audio_service:audio_client",
587  ]
588
589  include_dirs = []
590
591  external_deps = [
592    "bounds_checking_function:libsec_shared",
593    "c_utils:utils",
594    "hilog:libhilog",
595    "ipc:ipc_single",
596  ]
597
598  part_name = "audio_framework"
599  subsystem_name = "multimedia"
600}
601
602ohos_executable("audio_policy_test") {
603  install_enable = false
604
605  sources = [ "test/example/audio_policy_test.cpp" ]
606
607  configs = [ ":audio_policy_client_config" ]
608
609  deps = [
610    "../audio_policy:audio_foundation",
611    "../audio_policy:audio_policy_client",
612    "../audio_service:audio_client",
613  ]
614
615  include_dirs = []
616
617  external_deps = [
618    "bounds_checking_function:libsec_shared",
619    "c_utils:utils",
620    "hilog:libhilog",
621    "ipc:ipc_single",
622  ]
623
624  part_name = "audio_framework"
625  subsystem_name = "multimedia"
626}
627
628config("audio_foundation_public_config") {
629  include_dirs = [
630    "util/include",
631    "../audio_service/util/include",
632    "../../interfaces/inner_api/native/audiocommon/include",
633    "../../interfaces/inner_api/native/audiomanager/include",
634    "../../frameworks/native/audiopolicy/include",
635  ]
636}
637
638ohos_shared_library("audio_foundation") {
639  branch_protector_ret = "pac_ret"
640  sanitize = {
641    cfi = true
642    cfi_cross_dso = true
643    cfi_vcall_icall_only = true
644    debug = false
645    integer_overflow = true
646    ubsan = true
647    boundary_sanitize = true
648  }
649  install_enable = true
650  sources = [
651    "../audio_service/client/src/audio_filter.cpp",
652    "server/src/service/device/audio_device_descriptor.cpp",
653    "util/src/audio_device_type.cpp",
654    "util/src/audio_effect_map.cpp",
655  ]
656
657  public_configs = [ ":audio_foundation_public_config" ]
658
659  deps = [
660    "../../frameworks/native/audioutils:audio_utils",
661    "../audio_policy:audio_policy_client",
662    "../audio_service:audio_common",
663  ]
664
665  external_deps = [ "hilog:libhilog" ]
666
667  public_external_deps = [ "c_utils:utils" ]
668
669  cflags = [ "-Os" ]
670  cflags_cc = cflags
671
672  innerapi_tags = [ "platformsdk" ]
673  subsystem_name = "multimedia"
674  part_name = "audio_framework"
675}
676
677config("audio_manager_client_public_config") {
678  include_dirs = [ "util/include" ]
679}
680
681ohos_shared_library("audio_manager_client") {
682  branch_protector_ret = "pac_ret"
683  sanitize = {
684    cfi = true
685    cfi_cross_dso = true
686    cfi_vcall_icall_only = true
687    debug = false
688    integer_overflow = true
689    ubsan = true
690    boundary_sanitize = true
691  }
692  install_enable = true
693  sources = [
694    "../audio_service/client/src/audio_anahs_manager.cpp",
695    "util/src/audio_general_manager.cpp",
696    "util/src/audio_manager_util.cpp",
697  ]
698
699  public_configs = [ ":audio_manager_client_public_config" ]
700
701  deps = [
702    ":audio_foundation",
703    ":audio_policy_client",
704    ":audio_policy_common",
705    "../../frameworks/native/audioutils:audio_utils",
706    "../audio_service:audio_common",
707  ]
708
709  external_deps = [
710    "bundle_framework:appexecfwk_base",
711    "bundle_framework:appexecfwk_core",
712    "eventhandler:libeventhandler",
713    "hicollie:libhicollie",
714    "hilog:libhilog",
715    "ipc:ipc_single",
716    "samgr:samgr_proxy",
717  ]
718
719  defines = []
720  if (audio_framework_feature_inner_capturer) {
721    defines += [ "HAS_FEATURE_INNERCAPTURER" ]
722  }
723
724  cflags = [ "-Os" ]
725  cflags_cc = cflags
726
727  innerapi_tags = [ "platformsdk" ]
728  subsystem_name = "multimedia"
729  part_name = "audio_framework"
730}
731
732config("audio_policy_common_public_config") {
733  include_dirs = [
734    "../../interfaces/inner_api/native/audiomanager/include",
735    "../../interfaces/inner_api/native/audiocommon/include",
736    "../audio_service/client/include",
737  ]
738}
739
740ohos_shared_library("audio_policy_common") {
741  branch_protector_ret = "pac_ret"
742  sanitize = {
743    cfi = true
744    cfi_cross_dso = true
745    cfi_vcall_icall_only = true
746    debug = false
747    integer_overflow = true
748    ubsan = true
749    boundary_sanitize = true
750  }
751  install_enable = true
752  sources = [
753    "../audio_service/client/src/audio_focus_info_change_callback_impl.cpp",
754    "../audio_service/client/src/resource_manager_adapter.cpp",
755  ]
756
757  public_configs = [ ":audio_policy_common_public_config" ]
758
759  external_deps = [
760    "c_utils:utils",
761    "common_event_service:cesfwk_innerkits",
762    "hilog:libhilog",
763    "i18n:intl_util",
764    "ipc:ipc_core",
765  ]
766
767  cflags = [ "-Os" ]
768  cflags_cc = cflags
769
770  innerapi_tags = [ "platformsdk" ]
771  subsystem_name = "multimedia"
772  part_name = "audio_framework"
773}
774