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("//drivers/hdf_core/adapter/uhdf2/uhdf.gni") 16import("//foundation/multimedia/audio_framework/bluetooth_part.gni") 17 18pulseaudio_build_path = "//third_party/pulseaudio/ohosbuild" 19 20group("audio_policy_packages") { 21 deps = [ 22 ":audio_dump", 23 ":audio_interrupt_policy_config", 24 ":audio_policy_init", 25 ":audio_policy_service", 26 ":audio_tone_dtmf_config", 27 ] 28} 29 30ohos_prebuilt_etc("audio_policy_init") { 31 source = "etc/audio_policy.cfg" 32 relative_install_dir = "init" 33 part_name = "multimedia_audio_framework" 34 subsystem_name = "multimedia" 35} 36 37config("audio_policy_public_config") { 38 include_dirs = [ 39 "//foundation/multimedia/audio_framework/services/audio_service/client/include", 40 "//foundation/multimedia/audio_framework/services/audio_service/common/include", 41 "//foundation/multimedia/audio_framework/frameworks/native/audiorenderer/include", 42 "//foundation/multimedia/audio_framework/frameworks/native/audioadapter/include", 43 "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy/include", 44 "//foundation/multimedia/audio_framework/frameworks/native/bluetoothclient", 45 "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", 46 "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", 47 "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/common", 48 "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/config", 49 "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/interface", 50 "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/listener", 51 "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/manager", 52 "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service", 53 "//foundation/multimedia/audio_framework/services/audio_policy/common/include", 54 "//foundation/multimedia/audio_framework/services/audio_policy/server/include", 55 "//foundation/multimedia/audio_framework/services/audio_policy/client/include", 56 "//foundation/systemabilitymgr/samgr/interfaces/innerkits/samgr_proxy/include", 57 "//foundation/systemabilitymgr/safwk/services/safwk/include", 58 "//foundation/distributeddatamgr/kv_store/interfaces/innerkits/distributeddata/include", 59 "//drivers/peripheral/audio/interfaces/include", 60 "//third_party/libxml2/include", 61 "//third_party/pulseaudio/src", 62 "//third_party/pulseaudio/confgure/src", 63 "//third_party/pulseaudio/include", 64 "$pulseaudio_build_path/include", 65 "//utils/system/safwk/native/include", 66 "//commonlibrary/c_utils/base/include", 67 "//third_party/bounds_checking_function/include", 68 "//third_party/cJSON", 69 "//foundation/communication/bluetooth/interfaces/inner_api/include", 70 ] 71 72 cflags = [ 73 "-Wall", 74 "-Werror", 75 ] 76 77 if (target_cpu == "arm") { 78 cflags += [ "-DBINDER_IPC_32BIT" ] 79 } 80 81 if (bluetooth_part_enable == true) { 82 cflags += [ "-DBLUETOOTH_ENABLE" ] 83 } 84 85 ldflags = [ "-Wl" ] 86} 87 88ohos_shared_library("audio_dump") { 89 sanitize = { 90 cfi = true 91 debug = false 92 blocklist = "//foundation/multimedia/audio_framework/cfi_blocklist.txt" 93 } 94 install_enable = true 95 sources = [ "server/src/service/dump/audio_service_dump.cpp" ] 96 97 public_configs = [ ":audio_policy_public_config" ] 98 99 deps = [ 100 "$pulseaudio_build_path/src/pulse:pulse", 101 "//third_party/bounds_checking_function:libsec_shared", 102 ] 103 104 external_deps = [ 105 "c_utils:utils", 106 "hiviewdfx_hilog_native:libhilog", 107 ] 108 109 subsystem_name = "multimedia" 110 part_name = "multimedia_audio_framework" 111} 112 113ohos_shared_library("audio_policy_service") { 114 sanitize = { 115 cfi = true 116 debug = false 117 blocklist = "//foundation/multimedia/audio_framework/cfi_blocklist.txt" 118 } 119 install_enable = true 120 sources = [ 121 "client/src/audio_interrupt_group_info.cpp", 122 "client/src/audio_volume_group_info.cpp", 123 "server/src/audio_capturer_state_change_listener_proxy.cpp", 124 "server/src/audio_client_tracker_callback_proxy.cpp", 125 "server/src/audio_group_handle.cpp", 126 "server/src/audio_policy_manager_listener_proxy.cpp", 127 "server/src/audio_policy_manager_stub.cpp", 128 "server/src/audio_policy_server.cpp", 129 "server/src/audio_renderer_state_change_listener_proxy.cpp", 130 "server/src/audio_ringermode_update_listener_proxy.cpp", 131 "server/src/audio_routing_manager_listener_proxy.cpp", 132 "server/src/audio_stream_collector.cpp", 133 "server/src/audio_stream_event_dispatcher.cpp", 134 "server/src/audio_volume_key_event_callback_proxy.cpp", 135 "server/src/service/audio_policy_service.cpp", 136 "server/src/service/config/audio_focus_parser.cpp", 137 "server/src/service/config/audio_tone_parser.cpp", 138 "server/src/service/config/xml_parser.cpp", 139 "server/src/service/listener/accessibility_config_listener.cpp", 140 "server/src/service/listener/device_status_listener.cpp", 141 "server/src/service/manager/audio_adapter_manager.cpp", 142 ] 143 144 public_configs = [ ":audio_policy_public_config" ] 145 146 deps = [ 147 "$hdf_uhdf_path/hdi:libhdi", 148 "//foundation/barrierfree/accessibility/interfaces/innerkits/acfwk:accessibilityconfig", 149 "//foundation/distributeddatamgr/kv_store/interfaces/innerkits/distributeddata:distributeddata_inner", 150 "//foundation/multimedia/audio_framework/frameworks/native/audioadapter:pulse_audio_service_adapter", 151 "//foundation/multimedia/audio_framework/services/audio_policy:audio_config.para", 152 "//foundation/multimedia/audio_framework/services/audio_policy:audio_config.para.dac", 153 "//foundation/multimedia/audio_framework/services/audio_policy:audio_dump", 154 "//foundation/multimedia/audio_framework/services/audio_service:audio_client", 155 "//third_party/libxml2:xml2", 156 ] 157 158 external_deps = [ 159 "ability_base:want", 160 "access_token:libaccesstoken_sdk", 161 "access_token:libprivacy_sdk", 162 "access_token:libtoken_setproc", 163 "bundle_framework:appexecfwk_base", 164 "bundle_framework:appexecfwk_core", 165 "c_utils:utils", 166 "hisysevent_native:libhisysevent", 167 "hiviewdfx_hilog_native:libhilog", 168 "init:libbegetutil", 169 "input:libmmi-client", 170 "ipc:ipc_core", 171 "safwk:system_ability_fwk", 172 "samgr:samgr_proxy", 173 ] 174 175 if (bluetooth_part_enable == true) { 176 deps += [ "//foundation/multimedia/audio_framework/frameworks/native/bluetoothclient:audio_bluetooth_client" ] 177 } 178 179 subsystem_name = "multimedia" 180 part_name = "multimedia_audio_framework" 181} 182 183ohos_prebuilt_etc("audio_interrupt_policy_config") { 184 source = "server/config/audio_interrupt_policy_config.xml" 185 186 subsystem_name = "multimedia" 187 relative_install_dir = "audio" 188 part_name = "multimedia_audio_framework" 189} 190 191ohos_prebuilt_etc("audio_tone_dtmf_config") { 192 source = "server/config/audio_tone_dtmf_config.xml" 193 194 subsystem_name = "multimedia" 195 relative_install_dir = "audio" 196 part_name = "multimedia_audio_framework" 197} 198 199ohos_prebuilt_etc("audio_config.para") { 200 source = "//foundation/multimedia/audio_framework/services/audio_policy/etc/audio_config.para" 201 part_name = "multimedia_audio_framework" 202 module_install_dir = "etc/param" 203} 204 205ohos_prebuilt_etc("audio_config.para.dac") { 206 source = "//foundation/multimedia/audio_framework/services/audio_policy/etc/audio_config.para.dac" 207 part_name = "multimedia_audio_framework" 208 module_install_dir = "etc/param" 209} 210 211config("audio_policy_client_config") { 212 include_dirs = [ 213 "//foundation/multimedia/audio_framework/services/audio_service/client/include", 214 "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy/include", 215 "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", 216 "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", 217 "//foundation/multimedia/audio_framework/services/audio_policy/common/include", 218 "//foundation/multimedia/audio_framework/services/audio_policy/client/include", 219 "//foundation/multimedia/audio_framework/services/audio_policy/server/include", 220 "//third_party/bounds_checking_function/include", 221 ] 222 223 cflags = [ 224 "-Wall", 225 "-Werror", 226 ] 227 228 if (target_cpu == "arm") { 229 cflags += [ "-DBINDER_IPC_32BIT" ] 230 } 231} 232 233ohos_shared_library("audio_policy_client") { 234 sanitize = { 235 cfi = true 236 debug = false 237 blocklist = "//foundation/multimedia/audio_framework/cfi_blocklist.txt" 238 } 239 install_enable = true 240 sources = [ 241 "//foundation/multimedia/audio_framework/services/audio_service/client/src/audio_device_descriptor.cpp", 242 "client/src/audio_capturer_state_change_listener_stub.cpp", 243 "client/src/audio_client_tracker_callback_stub.cpp", 244 "client/src/audio_policy_manager.cpp", 245 "client/src/audio_policy_manager_listener_stub.cpp", 246 "client/src/audio_policy_proxy.cpp", 247 "client/src/audio_renderer_state_change_listener_stub.cpp", 248 "client/src/audio_ringermode_update_listener_stub.cpp", 249 "client/src/audio_routing_manager_listener_stub.cpp", 250 "client/src/audio_volume_group_info.cpp", 251 "client/src/audio_volume_key_event_callback_stub.cpp", 252 ] 253 254 public_configs = [ ":audio_policy_client_config" ] 255 256 external_deps = [ 257 "c_utils:utils", 258 "hiviewdfx_hilog_native:libhilog", 259 "ipc:ipc_core", 260 "samgr:samgr_proxy", 261 ] 262 subsystem_name = "multimedia" 263 part_name = "multimedia_audio_framework" 264} 265 266group("audio_policy_test_packages") { 267 deps = [ ":audio_policy_test" ] 268} 269 270ohos_executable("audio_policy_test") { 271 install_enable = false 272 273 sources = [ "test/example/audio_policy_test.cpp" ] 274 275 configs = [ ":audio_policy_client_config" ] 276 277 deps = [ 278 "//foundation/multimedia/audio_framework/services/audio_policy:audio_policy_client", 279 "//foundation/multimedia/audio_framework/services/audio_service:audio_client", 280 "//third_party/bounds_checking_function:libsec_shared", 281 ] 282 283 external_deps = [ 284 "c_utils:utils", 285 "hiviewdfx_hilog_native:libhilog", 286 ] 287 288 part_name = "multimedia_audio_framework" 289 subsystem_name = "multimedia" 290} 291