• 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/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