1# Copyright (c) 2021-2022 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  }
26  include_dirs = [
27    "common",
28    "audiorenderer",
29    "audiorenderer/callback",
30    "audiocapturer",
31    "audiocapturer/callback",
32    "audiomanager",
33    "audiomanager/callback",
34    "asrcontroller",
35  ]
36
37  if (audio_framework_feature_new_napi) {
38    sources = [
39      "asrcontroller/napi_asr_processing_controller.cpp",
40      "audiocapturer/callback/napi_audio_capturer_callbacks.cpp",
41      "audiocapturer/callback/napi_audio_capturer_device_change_callback.cpp",
42      "audiocapturer/callback/napi_audio_capturer_info_change_callback.cpp",
43      "audiocapturer/callback/napi_audio_capturer_read_data_callback.cpp",
44      "audiocapturer/callback/napi_capturer_period_position_callback.cpp",
45      "audiocapturer/callback/napi_capturer_position_callback.cpp",
46      "audiocapturer/napi_audio_capturer.cpp",
47      "audiomanager/callback/napi_audio_capturer_state_callback.cpp",
48      "audiomanager/callback/napi_audio_manager_callbacks.cpp",
49      "audiomanager/callback/napi_audio_manager_interrupt_callback.cpp",
50      "audiomanager/callback/napi_audio_micstatechange_callback.cpp",
51      "audiomanager/callback/napi_audio_renderer_state_callback.cpp",
52      "audiomanager/callback/napi_audio_ringermode_callback.cpp",
53      "audiomanager/callback/napi_audio_rounting_available_devicechange_callback.cpp",
54      "audiomanager/callback/napi_audio_routing_manager_callbacks.cpp",
55      "audiomanager/callback/napi_audio_session_callback.cpp",
56      "audiomanager/callback/napi_audio_spatialization_manager_callback.cpp",
57      "audiomanager/callback/napi_audio_volume_key_event.cpp",
58      "audiomanager/napi_audio_interrupt_manager.cpp",
59      "audiomanager/napi_audio_manager.cpp",
60      "audiomanager/napi_audio_routing_manager.cpp",
61      "audiomanager/napi_audio_session_manager.cpp",
62      "audiomanager/napi_audio_spatialization_manager.cpp",
63      "audiomanager/napi_audio_stream_manager.cpp",
64      "audiomanager/napi_audio_volume_group_manager.cpp",
65      "audiomanager/napi_audio_volume_manager.cpp",
66      "audiorenderer/callback/napi_audio_renderer_callback.cpp",
67      "audiorenderer/callback/napi_audio_renderer_device_change_callback.cpp",
68      "audiorenderer/callback/napi_audio_renderer_policy_service_died_callback.cpp",
69      "audiorenderer/callback/napi_audio_renderer_write_data_callback.cpp",
70      "audiorenderer/callback/napi_renderer_data_request_callback.cpp",
71      "audiorenderer/callback/napi_renderer_period_position_callback.cpp",
72      "audiorenderer/callback/napi_renderer_position_callback.cpp",
73      "audiorenderer/napi_audio_renderer.cpp",
74      "common/napi_async_work.cpp",
75      "common/napi_audio_entry.cpp",
76      "common/napi_audio_enum.cpp",
77      "common/napi_audio_error.cpp",
78      "common/napi_param_utils.cpp",
79    ]
80  }
81
82  deps = [
83    "../../../services/audio_policy:audio_policy_client",
84    "../../../services/audio_service:audio_client",
85    "../../native/audiocapturer:audio_capturer",
86    "../../native/audiorenderer:audio_renderer",
87    "../../native/audioutils:audio_utils",
88  ]
89
90  defines = []
91  if (audio_framework_feature_dtmf_tone) {
92    defines += [ "FEATURE_DTMF_TONE" ]
93
94    sources += [ "audiorenderer/napi_toneplayer.cpp" ]
95
96    deps += [ "../../native/toneplayer:audio_toneplayer" ]
97  }
98
99  external_deps = [
100    "ability_runtime:abilitykit_native",
101    "ability_runtime:extensionkit_native",
102    "ability_runtime:napi_base_context",
103    "c_utils:utils",
104    "hilog:libhilog",
105    "hiview:libxpower_event_js",
106    "init:libbegetutil",
107    "napi:ace_napi",
108  ]
109  relative_install_dir = "module/multimedia"
110  part_name = "audio_framework"
111  subsystem_name = "multimedia"
112}
113