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("../../../audio_ohcore.gni") 16import("../../../config.gni") 17 18pulseaudio_build_path = "//third_party/pulseaudio/ohosbuild" 19pulseaudio_dir = "//third_party/pulseaudio" 20 21config("audio_renderer_config") { 22 include_dirs = [ 23 "./include", 24 "../audiostream/include", 25 "../../../interfaces/inner_api/native/audiorenderer/include", 26 "../../../interfaces/inner_api/native/audiocommon/include", 27 "../../../interfaces/inner_api/native/audiomanager/include", 28 "../../../services/audio_service/client/include", 29 "../../../services/audio_service/test/example", 30 "$pulseaudio_dir/src", 31 "$pulseaudio_dir/confgure/src", 32 ] 33 34 if (sonic_enable == true) { 35 include_dirs += [ "$pulseaudio_dir/sonic" ] 36 } 37 38 cflags = [ 39 "-Wall", 40 "-Werror", 41 ] 42 43 if (sonic_enable == true) { 44 cflags += [ "-DSONIC_ENABLE" ] 45 } 46} 47 48ohos_shared_library("audio_renderer") { 49 sanitize = { 50 cfi = true 51 debug = false 52 blocklist = "../../../cfi_blocklist.txt" 53 } 54 install_enable = true 55 56 configs = [ ":audio_renderer_config" ] 57 58 include_dirs = audio_gateway_include_dirs 59 60 include_dirs += [ multimedia_audio_framework_pulse_audio ] 61 62 sources = [ 63 "src/audio_renderer.cpp", 64 "src/audio_renderer_proxy_obj.cpp", 65 ] 66 67 deps = [ 68 "../../../services/audio_policy:audio_policy_client", 69 "../../../services/audio_service:audio_client", 70 "../audioutils:audio_utils", 71 ] 72 73 deps += audio_renderer_gateway_deps 74 75 if (sonic_enable == true) { 76 deps += [ "$pulseaudio_dir/sonic:sonic" ] 77 } 78 79 public_configs = [ ":audio_external_library_config" ] 80 81 external_deps = [ 82 "c_utils:utils", 83 "hilog:libhilog", 84 "ipc:ipc_single", 85 ] 86 87 version_script = "../../../audio_framework.versionscript" 88 innerapi_tags = [ "platformsdk" ] 89 90 part_name = "audio_framework" 91 subsystem_name = "multimedia" 92} 93 94config("audio_external_library_config") { 95 include_dirs = 96 [ "../../../interfaces/inner_api/native/audiorenderer/include" ] 97} 98 99group("audio_renderer_test_packages") { 100 deps = [ 101 ":audio_interrupt_test", 102 ":audio_latency_accuracy_test", 103 ":audio_render_mode_callback_test", 104 ":audio_renderer_test", 105 ":audio_voip_test", 106 ":interrupt_multi_renderer_test", 107 ] 108} 109 110ohos_executable("audio_renderer_test") { 111 install_enable = false 112 113 sources = [ "test/example/audio_renderer_test.cpp" ] 114 115 configs = [ ":audio_renderer_config" ] 116 117 deps = [ ":audio_renderer" ] 118 119 external_deps = [ "hilog:libhilog" ] 120 121 part_name = "audio_framework" 122 subsystem_name = "multimedia" 123} 124 125ohos_executable("audio_latency_accuracy_test") { 126 install_enable = false 127 128 sources = [ "test/example/audio_renderer_test.cpp" ] 129 130 configs = [ ":audio_renderer_config" ] 131 cflags = [ "-DLATENCY_ACCURACY_TEST" ] 132 133 deps = [ ":audio_renderer" ] 134 135 external_deps = [ "hilog:libhilog" ] 136 137 part_name = "audio_framework" 138 subsystem_name = "multimedia" 139} 140 141ohos_executable("audio_render_mode_callback_test") { 142 install_enable = false 143 144 sources = [ "test/example/audio_render_mode_callback_test.cpp" ] 145 146 configs = [ ":audio_renderer_config" ] 147 148 deps = [ ":audio_renderer" ] 149 150 external_deps = [ "hilog:libhilog" ] 151 152 part_name = "audio_framework" 153 subsystem_name = "multimedia" 154} 155 156ohos_executable("audio_voip_test") { 157 install_enable = false 158 159 sources = [ "test/example/audio_voip_test.cpp" ] 160 161 include_dirs = [ 162 "./include", 163 "../audiostream/include", 164 "../audiocapturer/include", 165 "../../../interfaces/inner_api/native/audiocapturer/include", 166 "../../../interfaces/inner_api/native/audiocommon/include", 167 "../../../interfaces/inner_api/native/audiorenderer/include", 168 "../../../services/audio_service/client/include", 169 "$pulseaudio_dir/src", 170 "$pulseaudio_dir/confgure/src", 171 ] 172 173 cflags = [ 174 "-Wall", 175 "-Werror", 176 ] 177 178 configs = [ ":audio_renderer_config" ] 179 180 deps = [ 181 ":audio_renderer", 182 "../audiocapturer:audio_capturer", 183 ] 184 185 external_deps = [ "hilog:libhilog" ] 186 187 part_name = "audio_framework" 188 subsystem_name = "multimedia" 189} 190 191ohos_executable("audio_interrupt_test") { 192 install_enable = false 193 194 sources = [ "test/example/audio_interrupt_test.cpp" ] 195 196 configs = [ ":audio_renderer_config" ] 197 198 deps = [ 199 ":audio_renderer", 200 "../../../services/audio_service:audio_client", 201 ] 202 203 external_deps = [ "hilog:libhilog" ] 204 205 part_name = "audio_framework" 206 subsystem_name = "multimedia" 207} 208 209ohos_executable("interrupt_multi_renderer_test") { 210 install_enable = false 211 212 sources = [ "test/example/interrupt_multi_renderer_test.cpp" ] 213 214 configs = [ ":audio_renderer_config" ] 215 216 deps = [ ":audio_renderer" ] 217 218 external_deps = [ "hilog:libhilog" ] 219 220 part_name = "audio_framework" 221 subsystem_name = "multimedia" 222} 223 224ohos_executable("audio_blendmode_test") { 225 install_enable = false 226 227 sources = [ "test/example/audio_blendmode_test.cpp" ] 228 229 configs = [ ":audio_renderer_config" ] 230 231 include_dirs = [ 232 "$pulseaudio_build_path/include", 233 "$pulseaudio_dir/confgure/src", 234 "$pulseaudio_dir/include", 235 "$pulseaudio_dir/src", 236 "../../../../foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 237 "../../../../utils/system/safwk/native/include", 238 "../../../../commonlibrary/c_utils/base/include", 239 "//third_party/bounds_checking_function/include", 240 ] 241 242 deps = [ 243 ":audio_renderer", 244 "../../../services/audio_service:audio_client", 245 ] 246 247 external_deps = [ 248 "hilog:libhilog", 249 "ipc:ipc_single", 250 ] 251 252 part_name = "audio_framework" 253 subsystem_name = "multimedia" 254} 255