• 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("//build/ohos/ace/ace.gni")
16import("../../../config.gni")
17import("../../../multimedia_aafwk.gni")
18
19ohos_shared_library("audio") {
20  sanitize = {
21    cfi = true
22    cfi_cross_dso = true
23    cfi_vcall_icall_only = true
24    debug = false
25    integer_overflow = true
26    ubsan = true
27    boundary_sanitize = true
28  }
29  include_dirs = [
30    "common",
31    "audiorenderer",
32    "audiorenderer/callback",
33    "audiocapturer",
34    "audiocapturer/callback",
35    "audiomanager",
36    "audiomanager/callback",
37    "asrcontroller",
38  ]
39
40  if (audio_framework_feature_new_napi) {
41    sources = [
42      "asrcontroller/napi_asr_processing_controller.cpp",
43      "audiocapturer/callback/napi_audio_capturer_callback_inner.cpp",
44      "audiocapturer/callback/napi_audio_capturer_callbacks.cpp",
45      "audiocapturer/callback/napi_audio_capturer_device_change_callback.cpp",
46      "audiocapturer/callback/napi_audio_capturer_info_change_callback.cpp",
47      "audiocapturer/callback/napi_audio_capturer_read_data_callback.cpp",
48      "audiocapturer/callback/napi_capturer_period_position_callback.cpp",
49      "audiocapturer/callback/napi_capturer_position_callback.cpp",
50      "audiocapturer/napi_audio_capturer.cpp",
51      "audiomanager/callback/napi_appvolume_change_callback.cpp",
52      "audiomanager/callback/napi_audio_capturer_state_callback.cpp",
53      "audiomanager/callback/napi_audio_manager_callbacks.cpp",
54      "audiomanager/callback/napi_audio_manager_interrupt_callback.cpp",
55      "audiomanager/callback/napi_audio_micstatechange_callback.cpp",
56      "audiomanager/callback/napi_audio_renderer_state_callback.cpp",
57      "audiomanager/callback/napi_audio_ringermode_callback.cpp",
58      "audiomanager/callback/napi_audio_rounting_available_devicechange_callback.cpp",
59      "audiomanager/callback/napi_audio_routing_manager_callbacks.cpp",
60      "audiomanager/callback/napi_audio_session_callback.cpp",
61      "audiomanager/callback/napi_audio_spatialization_manager_callback.cpp",
62      "audiomanager/callback/napi_audio_volume_key_event.cpp",
63      "audiomanager/napi_audio_effect_manager.cpp",
64      "audiomanager/napi_audio_interrupt_manager.cpp",
65      "audiomanager/napi_audio_manager.cpp",
66      "audiomanager/napi_audio_routing_manager.cpp",
67      "audiomanager/napi_audio_session_manager.cpp",
68      "audiomanager/napi_audio_spatialization_manager.cpp",
69      "audiomanager/napi_audio_stream_manager.cpp",
70      "audiomanager/napi_audio_volume_group_manager.cpp",
71      "audiomanager/napi_audio_volume_manager.cpp",
72      "audiorenderer/callback/napi_audio_renderer_callback.cpp",
73      "audiorenderer/callback/napi_audio_renderer_callback_inner.cpp",
74      "audiorenderer/callback/napi_audio_renderer_device_change_callback.cpp",
75      "audiorenderer/callback/napi_audio_renderer_policy_service_died_callback.cpp",
76      "audiorenderer/callback/napi_audio_renderer_write_data_callback.cpp",
77      "audiorenderer/callback/napi_renderer_data_request_callback.cpp",
78      "audiorenderer/callback/napi_renderer_period_position_callback.cpp",
79      "audiorenderer/callback/napi_renderer_position_callback.cpp",
80      "audiorenderer/napi_audio_renderer.cpp",
81      "common/napi_async_work.cpp",
82      "common/napi_audio_entry.cpp",
83      "common/napi_audio_enum.cpp",
84      "common/napi_audio_error.cpp",
85      "common/napi_param_utils.cpp",
86    ]
87  }
88
89  deps = [
90    "../../../services/audio_policy:audio_foundation",
91    "../../../services/audio_policy:audio_policy_client",
92    "../../../services/audio_service:audio_client",
93    "../../native/audiocapturer:audio_capturer",
94    "../../native/audiorenderer:audio_renderer",
95    "../../native/audioutils:audio_utils",
96  ]
97
98  defines = []
99  if (audio_framework_feature_dtmf_tone) {
100    defines += [ "FEATURE_DTMF_TONE" ]
101
102    sources += [ "audiorenderer/napi_toneplayer.cpp" ]
103
104    deps += [ "../../native/toneplayer:audio_toneplayer" ]
105  }
106
107  external_deps = [
108    "ability_base:session_info",
109    "ability_base:want",
110    "ability_runtime:abilitykit_native",
111    "ability_runtime:extensionkit_native",
112    "ability_runtime:mission_info",
113    "ability_runtime:napi_base_context",
114    "ability_runtime:wantagent_innerkits",
115    "bundle_framework:appexecfwk_base",
116    "c_utils:utils",
117    "eventhandler:libeventhandler",
118    "hilog:libhilog",
119    "init:libbegetutil",
120    "ipc:ipc_single",
121    "libuv:uv",
122    "napi:ace_napi",
123  ]
124
125  if (audio_framework_feature_hiview_enable) {
126    defines += [ "FEATURE_HIVIEW_ENABLE" ]
127    external_deps += [ "hiview:libxpower_event_js" ]
128  }
129
130  relative_install_dir = "module/multimedia"
131  part_name = "audio_framework"
132  subsystem_name = "multimedia"
133}
134