• 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    "audioloopback",
36    "audioloopback/callback",
37    "audiomanager",
38    "audiomanager/callback",
39    "asrcontroller",
40  ]
41
42  if (audio_framework_feature_new_napi) {
43    sources = [
44      "asrcontroller/napi_asr_processing_controller.cpp",
45      "audiocapturer/callback/napi_audio_capturer_callback_inner.cpp",
46      "audiocapturer/callback/napi_audio_capturer_callbacks.cpp",
47      "audiocapturer/callback/napi_audio_capturer_device_change_callback.cpp",
48      "audiocapturer/callback/napi_audio_capturer_info_change_callback.cpp",
49      "audiocapturer/callback/napi_audio_capturer_read_data_callback.cpp",
50      "audiocapturer/callback/napi_capturer_period_position_callback.cpp",
51      "audiocapturer/callback/napi_capturer_position_callback.cpp",
52      "audiocapturer/napi_audio_capturer.cpp",
53      "audiomanager/callback/napi_active_volume_type_change_callback.cpp",
54      "audiomanager/callback/napi_appvolume_change_callback.cpp",
55      "audiomanager/callback/napi_audio_capturer_state_callback.cpp",
56      "audiomanager/callback/napi_audio_manager_callbacks.cpp",
57      "audiomanager/callback/napi_audio_manager_interrupt_callback.cpp",
58      "audiomanager/callback/napi_audio_micstatechange_callback.cpp",
59      "audiomanager/callback/napi_audio_renderer_state_callback.cpp",
60      "audiomanager/callback/napi_audio_ringermode_callback.cpp",
61      "audiomanager/callback/napi_audio_rounting_available_devicechange_callback.cpp",
62      "audiomanager/callback/napi_audio_routing_manager_callbacks.cpp",
63      "audiomanager/callback/napi_audio_scene_callbacks.cpp",
64      "audiomanager/callback/napi_audio_session_callback.cpp",
65      "audiomanager/callback/napi_audio_session_device_callback.cpp",
66      "audiomanager/callback/napi_audio_session_state_callback.cpp",
67      "audiomanager/callback/napi_audio_spatialization_manager_callback.cpp",
68      "audiomanager/callback/napi_audio_volume_key_event.cpp",
69      "audiomanager/callback/napi_audio_stream_volume_change_callback.cpp",
70      "audiomanager/callback/napi_audio_system_volume_change_callback.cpp",
71      "audiomanager/napi_audio_collaborative_manager.cpp",
72      "audiomanager/napi_audio_effect_manager.cpp",
73      "audiomanager/napi_audio_interrupt_manager.cpp",
74      "audiomanager/napi_audio_manager.cpp",
75      "audiomanager/napi_audio_routing_manager.cpp",
76      "audiomanager/napi_audio_session_manager.cpp",
77      "audiomanager/napi_audio_spatialization_manager.cpp",
78      "audiomanager/napi_audio_stream_manager.cpp",
79      "audiomanager/napi_audio_volume_group_manager.cpp",
80      "audiomanager/napi_audio_volume_manager.cpp",
81      "audiorenderer/callback/napi_audio_renderer_callback.cpp",
82      "audiorenderer/callback/napi_audio_renderer_callback_inner.cpp",
83      "audiorenderer/callback/napi_audio_renderer_device_change_callback.cpp",
84      "audiorenderer/callback/napi_audio_renderer_policy_service_died_callback.cpp",
85      "audiorenderer/callback/napi_audio_renderer_write_data_callback.cpp",
86      "audiorenderer/callback/napi_renderer_data_request_callback.cpp",
87      "audiorenderer/callback/napi_renderer_period_position_callback.cpp",
88      "audiorenderer/callback/napi_renderer_position_callback.cpp",
89      "audiorenderer/napi_audio_renderer.cpp",
90      "audioloopback/callback/napi_audio_loopback_callback_inner.cpp",
91      "audioloopback/callback/napi_audio_loopback_callback.cpp",
92      "audioloopback/napi_audio_loopback.cpp",
93      "common/napi_async_work.cpp",
94      "common/napi_audio_entry.cpp",
95      "common/napi_audio_enum.cpp",
96      "common/napi_audio_error.cpp",
97      "common/napi_param_utils.cpp",
98    ]
99  }
100
101  deps = [
102    "../../../services/audio_policy:audio_foundation",
103    "../../../services/audio_policy:audio_policy_client",
104    "../../../services/audio_service:audio_client",
105    "../../native/audiocapturer:audio_capturer",
106    "../../native/audiorenderer:audio_renderer",
107    "../../native/audioloopback:audio_loopback",
108    "../../native/audioutils:audio_utils",
109  ]
110
111  defines = []
112  if (audio_framework_feature_dtmf_tone) {
113    defines += [ "FEATURE_DTMF_TONE" ]
114
115    sources += [ "audiorenderer/napi_toneplayer.cpp" ]
116
117    deps += [ "../../native/toneplayer:audio_toneplayer" ]
118  }
119
120  external_deps = [
121    "ability_base:session_info",
122    "ability_base:want",
123    "ability_runtime:abilitykit_native",
124    "ability_runtime:extensionkit_native",
125    "ability_runtime:mission_info",
126    "ability_runtime:napi_base_context",
127    "ability_runtime:wantagent_innerkits",
128    "bundle_framework:appexecfwk_base",
129    "c_utils:utils",
130    "eventhandler:libeventhandler",
131    "hilog:libhilog",
132    "init:libbegetutil",
133    "ipc:ipc_single",
134    "libuv:uv",
135    "napi:ace_napi",
136  ]
137
138  if (audio_framework_feature_hiview_enable) {
139    defines += [ "FEATURE_HIVIEW_ENABLE" ]
140    external_deps += [ "hiview:libxpower_event_js" ]
141  }
142
143  relative_install_dir = "module/multimedia"
144  part_name = "audio_framework"
145  subsystem_name = "multimedia"
146}
147