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