• 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")
16
17pulseaudio_dir = "//third_party/pulseaudio"
18pulseaudio_build_path = "//third_party/pulseaudio/ohosbuild"
19
20group("audio_service_packages") {
21  deps = [
22    ":audio_service",
23    ":audio_service_init",
24  ]
25}
26
27config("audio_client_public_config") {
28  include_dirs = [
29    "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy/include",
30    "//foundation/multimedia/audio_framework/frameworks/native/audioutils/include",
31    "//foundation/multimedia/audio_framework/frameworks/native/audiostream/include",
32    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocapturer/include",
33    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include",
34    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include",
35    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer/include",
36    "//foundation/multimedia/audio_framework/services/audio_service/client/include",
37    "//foundation/multimedia/audio_framework/services/audio_service/common/include",
38    "//foundation/multimedia/audio_framework/services/audio_policy/client/include",
39    "//foundation/multimedia/audio_framework/services/audio_policy/common/include",
40    "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include",
41    "//utils/system/safwk/native/include",
42    "//commonlibrary/c_utils/base/include",
43    "$pulseaudio_dir/src",
44    "$pulseaudio_dir/confgure/src",
45    "$pulseaudio_dir/include",
46    "$pulseaudio_build_path/include",
47    "//third_party/bounds_checking_function/include",
48  ]
49
50  cflags = [
51    "-Wall",
52    "-Werror",
53  ]
54
55  if (target_cpu == "arm") {
56    cflags += [ "-DBINDER_IPC_32BIT" ]
57  }
58}
59
60ohos_shared_library("audio_client") {
61  sanitize = {
62    cfi = true
63    debug = false
64    blocklist = "//foundation/multimedia/audio_framework/cfi_blocklist.txt"
65  }
66  install_enable = true
67  sources = [
68    "client/src/audio_device_descriptor.cpp",
69    "client/src/audio_group_manager.cpp",
70    "client/src/audio_manager_listener_stub.cpp",
71    "client/src/audio_manager_proxy.cpp",
72    "client/src/audio_routing_manager.cpp",
73    "client/src/audio_stream_manager.cpp",
74    "client/src/audio_stream_tracker.cpp",
75    "client/src/audio_system_manager.cpp",
76  ]
77
78  public_configs = [ ":audio_client_public_config" ]
79
80  deps = [
81    "//foundation/multimedia/audio_framework/frameworks/native/audioutils:audio_utils",
82    "//foundation/multimedia/audio_framework/services/audio_policy:audio_policy_client",
83  ]
84
85  if ("${product_name}" != "ohcore") {
86    sources += [
87         "client/src/audio_service_client.cpp",
88         "client/src/audio_stream.cpp",
89    ]
90    deps += [
91        "$pulseaudio_build_path/src/pulse:pulse",
92    ]
93  }
94
95  external_deps = [
96    "c_utils:utils",
97    "eventhandler:libeventhandler",
98    "hisysevent_native:libhisysevent",
99    "hiviewdfx_hilog_native:libhilog",
100    "ipc:ipc_core",
101    "samgr:samgr_proxy",
102  ]
103  subsystem_name = "multimedia"
104  part_name = "multimedia_audio_framework"
105}
106
107ohos_prebuilt_etc("audio_service_init") {
108  source = "etc/pulseaudio.cfg"
109  relative_install_dir = "init"
110  part_name = "multimedia_audio_framework"
111  subsystem_name = "multimedia"
112}
113
114config("audio_service_config") {
115  visibility = [ ":*" ]
116
117  include_dirs = [
118    "common/include",
119    "server/include",
120    "client/include",
121    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include",
122    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include",
123    "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy/include",
124    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/common",
125    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/primary",
126    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/remote",
127    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/file",
128    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/bluetooth",
129    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/source/common",
130    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/source/primary",
131    "//drivers/peripheral/audio/interfaces/include",
132  ]
133
134  if (target_cpu == "arm") {
135    cflags = [ "-DBINDER_IPC_32BIT" ]
136  }
137}
138
139ohos_shared_library("audio_service") {
140  sanitize = {
141    cfi = true
142    debug = false
143    blocklist = "//foundation/multimedia/audio_framework/cfi_blocklist.txt"
144  }
145  install_enable = true
146
147  sources = [
148    "server/src/audio_manager_listener_proxy.cpp",
149    "server/src/audio_manager_stub.cpp",
150    "server/src/audio_server.cpp",
151  ]
152
153  configs = [ ":audio_service_config" ]
154
155  if ("${product_name}" == "m40") {
156    cflags = [ "-DPRODUCT_M40" ]
157  }
158
159  deps = [
160    "$pulseaudio_build_path/src/daemon:pulseaudio",
161    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:audio_renderer_sink",
162    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:bluetooth_renderer_sink",
163    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:remote_audio_renderer_sink",
164    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:renderer_sink_adapter",
165    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/source:audio_capturer_source",
166  ]
167
168  external_deps = [
169    "access_token:libaccesstoken_sdk",
170    "c_utils:utils",
171    "hiviewdfx_hilog_native:libhilog",
172    "ipc:ipc_core",
173    "power_manager:powermgr_client",
174    "safwk:system_ability_fwk",
175    "samgr:samgr_proxy",
176  ]
177
178  subsystem_name = "multimedia"
179  part_name = "multimedia_audio_framework"
180}
181
182group("audio_service_test_packages") {
183  deps = [
184    ":audio_hdi_device_test",
185    ":audio_multichannel_test",
186    ":audio_service_playback_test",
187    ":audio_service_record_test",
188  ]
189}
190
191ohos_executable("audio_hdi_device_test") {
192  install_enable = false
193
194  include_dirs = [
195    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink",
196    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include",
197    "//foundation/multimedia/audio_framework/frameworks/native/audioutils/include",
198    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/common",
199    "//commonlibrary/c_utils/base/include",
200    "//base/hiviewdfx/hilog/interfaces/native/innerkits/include",
201    "//drivers/peripheral/audio/interfaces/include",
202    "//commonlibrary/c_utils/base/include",
203  ]
204
205  sources = [ "test/example/audio_hdi_device_test.cpp" ]
206
207  deps = [
208    "//foundation/multimedia/audio_framework/frameworks/native/audioutils:audio_utils",
209    "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:fast_audio_renderer_sink",
210  ]
211
212  external_deps = [ "hiviewdfx_hilog_native:libhilog" ]
213
214  part_name = "multimedia_audio_framework"
215  subsystem_name = "multimedia"
216}
217
218ohos_executable("audio_service_playback_test") {
219  install_enable = false
220
221  sources = [ "test/example/playback_test.cpp" ]
222
223  configs = [ ":audio_client_public_config" ]
224
225  deps = [ ":audio_client" ]
226
227  external_deps = [ "hiviewdfx_hilog_native:libhilog" ]
228
229  part_name = "multimedia_audio_framework"
230  subsystem_name = "multimedia"
231}
232
233ohos_executable("audio_service_record_test") {
234  install_enable = false
235
236  sources = [ "test/example/record_test.cpp" ]
237
238  configs = [ ":audio_client_public_config" ]
239
240  deps = [ ":audio_client" ]
241
242  external_deps = [ "hiviewdfx_hilog_native:libhilog" ]
243
244  part_name = "multimedia_audio_framework"
245  subsystem_name = "multimedia"
246}
247
248ohos_executable("audio_multichannel_test") {
249  install_enable = false
250
251  sources = [ "test/example/audio_multichannel_test.cpp" ]
252
253  configs = [ ":audio_client_public_config" ]
254
255  deps = [ ":audio_client" ]
256
257  external_deps = [ "hiviewdfx_hilog_native:libhilog" ]
258
259  part_name = "multimedia_audio_framework"
260  subsystem_name = "multimedia"
261}
262