• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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