• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2023 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("../../appgallery.gni")
16import("../../config.gni")
17import("../../ressche_part.gni")
18import("../../sensor.gni")
19import("../../window_manager.gni")
20
21group("audio_service_packages") {
22  deps = [
23    ":audio_common",
24    ":audio_server_init",
25    ":audio_service",
26    ":audio_service_init",
27  ]
28}
29
30ohos_shared_library("audio_common") {
31  branch_protector_ret = "pac_ret"
32  sanitize = {
33    cfi = true
34    cfi_cross_dso = true
35    cfi_vcall_icall_only = true
36    debug = false
37  }
38
39  install_enable = true
40
41  include_dirs = [
42    "common/include",
43    "../../frameworks/native/audioschedule/include",
44    "../../interfaces/inner_api/native/audiocommon/include",
45  ]
46
47  sources = [
48    "common/src/audio_common_converter.cpp",
49    "common/src/audio_down_mix_stereo.cpp",
50    "common/src/audio_log_utils.cpp",
51    "common/src/audio_process_config.cpp",
52    "common/src/audio_resample.cpp",
53    "common/src/audio_ring_cache.cpp",
54    "common/src/audio_thread_task.cpp",
55    "common/src/audio_volume.cpp",
56    "common/src/format_converter.cpp",
57    "common/src/futex_tool.cpp",
58    "common/src/linear_pos_time_model.cpp",
59    "common/src/oh_audio_buffer.cpp",
60    "common/src/volume_tools.cpp",
61  ]
62
63  cflags = [
64    "-Wall",
65    "-Werror",
66  ]
67  if (target_cpu == "arm") {
68    cflags += [ "-DBINDER_IPC_32BIT" ]
69  }
70
71  deps = [
72    "../../frameworks/native/audioschedule:audio_schedule",
73    "../../frameworks/native/audioutils:audio_utils",
74  ]
75
76  external_deps = [
77    "c_utils:utils",
78    "hilog:libhilog",
79    "hisysevent:libhisysevent",
80    "ipc:ipc_single",
81    "media_foundation:media_monitor_client",
82    "media_foundation:media_monitor_common",
83    "samgr:samgr_proxy",
84  ]
85
86  if (sonic_enable == true) {
87    external_deps += [ "pulseaudio:sonic" ]
88  }
89
90  if (speex_enable == true) {
91    cflags += [ "-DSPEEX_ENABLE" ]
92    include_dirs += [ "//third_party/pulseaudio/speex/include" ]
93    external_deps += [ "pulseaudio:speexresampler" ]
94  }
95
96  cflags_cc = cflags
97  cflags_cc += [ "-std=c++20" ]
98
99  defines = []
100  if (use_libfuzzer || use_clang_coverage) {
101    defines += [ "TEST_COVERAGE" ]
102  }
103
104  subsystem_name = "multimedia"
105  innerapi_tags = [ "platformsdk_indirect" ]
106  part_name = "audio_framework"
107}
108
109config("audio_client_public_config") {
110  include_dirs = [
111    "client/include",
112    "common/include",
113    "../audio_policy/client/include",
114    "../audio_policy/common/include",
115    "../../frameworks/native/audiopolicy/include",
116    "../../frameworks/native/audiostream/include",
117    "../../frameworks/native/audioutils/include",
118    "../../interfaces/inner_api/native/audiocapturer/include",
119    "../../interfaces/inner_api/native/audiocommon/include",
120    "../../interfaces/inner_api/native/audiomanager/include",
121    "../../interfaces/inner_api/native/audiorenderer/include",
122  ]
123
124  cflags = [
125    "-Wall",
126    "-Werror",
127  ]
128
129  if (sonic_enable == true) {
130    cflags += [ "-DSONIC_ENABLE" ]
131  }
132
133  external_deps = []
134
135  if (sonic_enable == true) {
136    external_deps += [ "pulseaudio:sonic" ]
137  }
138
139  if (target_cpu == "arm") {
140    cflags += [ "-DBINDER_IPC_32BIT" ]
141  }
142}
143
144config("audio_sasdk_public_config") {
145  include_dirs = [ "../../interfaces/inner_api/native/audiosasdk/include" ]
146
147  cflags = [
148    "-Wall",
149    "-Werror",
150  ]
151
152  if (target_cpu == "arm") {
153    cflags += [ "-DBINDER_IPC_32BIT" ]
154  }
155}
156
157ohos_shared_library("audio_client") {
158  branch_protector_ret = "pac_ret"
159  install_enable = true
160  sources = [
161    "client/src/audio_device_descriptor.cpp",
162    "client/src/audio_group_manager.cpp",
163    "client/src/audio_manager_listener_stub.cpp",
164    "client/src/audio_manager_proxy.cpp",
165    "client/src/audio_process_in_client.cpp",
166    "client/src/audio_process_proxy.cpp",
167    "client/src/audio_routing_manager.cpp",
168    "client/src/audio_session_manager.cpp",
169    "client/src/audio_spatial_channel_converter.cpp",
170    "client/src/audio_spatialization_manager.cpp",
171    "client/src/audio_stream_manager.cpp",
172    "client/src/audio_stream_tracker.cpp",
173    "client/src/audio_system_manager.cpp",
174    "client/src/callback_handler.cpp",
175    "client/src/capturer_in_client.cpp",
176    "client/src/fast_audio_stream.cpp",
177    "client/src/i_audio_stream.cpp",
178    "client/src/ipc_stream_listener_impl.cpp",
179    "client/src/ipc_stream_listener_stub.cpp",
180    "client/src/ipc_stream_proxy.cpp",
181    "client/src/microphone_descriptor.cpp",
182    "client/src/policy_provider_stub.cpp",
183    "client/src/renderer_in_client.cpp",
184  ]
185
186  public_configs = [ ":audio_client_public_config" ]
187
188  deps = [
189    ":audio_common",
190    "../../frameworks/native/audioutils:audio_utils",
191    "../audio_policy:audio_policy_client",
192  ]
193
194  include_dirs = [ "server/include" ]
195
196  external_deps = [
197    "bounds_checking_function:libsec_shared",
198    "bundle_framework:appexecfwk_base",
199    "bundle_framework:appexecfwk_core",
200    "c_utils:utils",
201    "eventhandler:libeventhandler",
202    "hilog:libhilog",
203    "hisysevent:libhisysevent",
204    "init:libbegetutil",
205    "ipc:ipc_single",
206    "media_foundation:media_monitor_client",
207    "media_foundation:media_monitor_common",
208    "power_manager:powermgr_client",
209    "pulseaudio:pulse",
210    "safwk:system_ability_fwk",
211    "samgr:samgr_proxy",
212  ]
213
214  public_external_deps = [
215    "libxml2:libxml2",
216    "pulseaudio:sonic",
217  ]
218
219  defines = []
220  if (audio_framework_feature_power_manager) {
221    external_deps += [ "power_manager:powermgr_client" ]
222    defines += [ "FEATURE_POWER_MANAGER" ]
223  }
224
225  if (use_libfuzzer || use_clang_coverage) {
226    defines += [ "TEST_COVERAGE" ]
227  }
228
229  version_script = "../../audio_framework.versionscript"
230  innerapi_tags = [ "platformsdk" ]
231
232  subsystem_name = "multimedia"
233  part_name = "audio_framework"
234}
235
236ohos_prebuilt_etc("audio_server_init") {
237  source = "etc/audio_server.cfg"
238  relative_install_dir = "init"
239  part_name = "audio_framework"
240  subsystem_name = "multimedia"
241}
242
243ohos_prebuilt_etc("audio_service_init") {
244  source = "etc/pulseaudio.cfg"
245  relative_install_dir = "init"
246  part_name = "audio_framework"
247  subsystem_name = "multimedia"
248}
249
250config("audio_service_config") {
251  visibility = [ ":*" ]
252  visibility += [ "../../test/fuzztest/*" ]
253
254  include_dirs = [
255    "common/include",
256    "client/include",
257    "server/include",
258    "server/include/config",
259    "../audio_policy/server/include/service/effect",
260    "../../frameworks/native/audioeffect/include",
261    "../../frameworks/native/audioinnercall/include",
262    "../../frameworks/native/audiopolicy/include",
263    "../../frameworks/native/audioschedule/include",
264    "../../frameworks/native/audioutils/include",
265    "../../frameworks/native/playbackcapturer/include",
266    "../../frameworks/native/hdiadapter/common/include",
267    "../../frameworks/native/hdiadapter/sink/bluetooth",
268    "../../frameworks/native/hdiadapter/sink/common",
269    "../../frameworks/native/hdiadapter/sink/file",
270    "../../frameworks/native/hdiadapter/sink/fast",
271    "../../frameworks/native/hdiadapter/sink/remote",
272    "../../frameworks/native/hdiadapter/sink/remote_fast",
273    "../../frameworks/native/hdiadapter/sink/primary",
274    "../../frameworks/native/hdiadapter/sink/offload",
275    "../../frameworks/native/hdiadapter/source/common",
276    "../../frameworks/native/hdiadapter/source/fast",
277    "../../frameworks/native/hdiadapter/source/primary",
278    "../../frameworks/native/hdiadapter/source/remote",
279    "../../frameworks/native/hdiadapter/source/remote_fast",
280    "../../interfaces/inner_api/native/audiocommon/include",
281    "../../interfaces/inner_api/native/audiomanager/include",
282  ]
283
284  cflags = []
285
286  if (target_cpu == "arm") {
287    cflags += [ "-DBINDER_IPC_32BIT" ]
288  }
289
290  if (audio_framework_feature_daudio_enable == true) {
291    cflags += [ "-DDAUDIO_ENABLE" ]
292  }
293
294  cflags_cc = cflags
295  cflags_cc += [ "-std=c++20" ]
296}
297
298ohos_shared_library("audio_process_service") {
299  branch_protector_ret = "pac_ret"
300  sanitize = {
301    cfi = true
302    cfi_cross_dso = true
303    cfi_vcall_icall_only = true
304    debug = false
305  }
306  install_enable = true
307
308  sources = [
309    "server/src/audio_endpoint.cpp",
310    "server/src/audio_endpoint_separate.cpp",
311    "server/src/audio_engine_manager.cpp",
312    "server/src/audio_playback_engine.cpp",
313    "server/src/audio_process_in_server.cpp",
314    "server/src/audio_process_stub.cpp",
315    "server/src/audio_service.cpp",
316    "server/src/capturer_in_server.cpp",
317    "server/src/i_stream_manager.cpp",
318    "server/src/ipc_stream_in_server.cpp",
319    "server/src/ipc_stream_listener_proxy.cpp",
320    "server/src/ipc_stream_stub.cpp",
321    "server/src/none_mix_engine.cpp",
322    "server/src/pa_adapter_manager.cpp",
323    "server/src/pa_capturer_stream_impl.cpp",
324    "server/src/pa_renderer_stream_impl.cpp",
325    "server/src/policy_handler.cpp",
326    "server/src/policy_provider_proxy.cpp",
327    "server/src/pro_audio_stream_manager.cpp",
328    "server/src/pro_renderer_stream_impl.cpp",
329    "server/src/renderer_in_server.cpp",
330  ]
331
332  configs = [ ":audio_service_config" ]
333
334  deps = [
335    ":audio_common",
336    "../../frameworks/native/audioeffect:audio_effect",
337    "../../frameworks/native/audioschedule:audio_schedule",
338    "../../frameworks/native/audioutils:audio_utils",
339    "../../frameworks/native/hdiadapter/sink:audio_renderer_sink",
340    "../../frameworks/native/hdiadapter/sink:bluetooth_renderer_sink",
341    "../../frameworks/native/hdiadapter/sink:fast_audio_renderer_sink",
342    "../../frameworks/native/hdiadapter/sink:renderer_sink_adapter",
343    "../../frameworks/native/hdiadapter/source:audio_capturer_source",
344    "../../frameworks/native/hdiadapter/source:fast_audio_capturer_source",
345    "../../frameworks/native/playbackcapturer:playback_capturer",
346  ]
347
348  if (audio_framework_feature_daudio_enable == true) {
349    deps += [
350      "../../frameworks/native/hdiadapter/sink:remote_fast_audio_renderer_sink",
351      "../../frameworks/native/hdiadapter/source:remote_fast_audio_capturer_source",
352    ]
353  }
354
355  external_deps = [
356    "c_utils:utils",
357    "drivers_interface_audio:libeffect_proxy_1.0",
358    "hicollie:libhicollie",
359    "hilog:libhilog",
360    "ipc:ipc_single",
361    "media_foundation:media_monitor_client",
362    "media_foundation:media_monitor_common",
363    "pulseaudio:pulse",
364  ]
365
366  public_external_deps = [ "bounds_checking_function:libsec_static" ]
367
368  defines = []
369  if (audio_framework_feature_power_manager) {
370    external_deps += [ "power_manager:powermgr_client" ]
371    defines += [ "FEATURE_POWER_MANAGER" ]
372  }
373
374  if (ressche_enable == true) {
375    external_deps += [ "resource_schedule_service:ressched_client" ]
376    defines += [ "RESSCHE_ENABLE" ]
377  }
378
379  subsystem_name = "multimedia"
380  part_name = "audio_framework"
381}
382
383ohos_shared_library("audio_service") {
384  stack_protector_ret = true
385  sanitize = {
386    cfi = true
387    cfi_cross_dso = true
388    cfi_vcall_icall_only = true
389    debug = false
390  }
391  install_enable = true
392
393  sources = [
394    "server/src/audio_effect_server.cpp",
395    "server/src/audio_manager_listener_proxy.cpp",
396    "server/src/audio_manager_stub.cpp",
397    "server/src/audio_server.cpp",
398    "server/src/audio_server_asr.cpp",
399    "server/src/audio_server_dump.cpp",
400    "server/src/config/audio_param_parser.cpp",
401  ]
402
403  configs = [ ":audio_service_config" ]
404
405  deps = [
406    ":audio_common",
407    ":audio_process_service",
408    "../../frameworks/native/audioeffect:audio_effect",
409    "../../frameworks/native/audioinnercall:audio_inner_call",
410    "../../frameworks/native/audioschedule:audio_schedule",
411    "../../frameworks/native/audioutils:audio_utils",
412    "../../frameworks/native/hdiadapter/sink:audio_renderer_sink",
413    "../../frameworks/native/hdiadapter/sink:bluetooth_renderer_sink",
414    "../../frameworks/native/hdiadapter/sink:offload_audio_renderer_sink",
415    "../../frameworks/native/hdiadapter/sink:renderer_sink_adapter",
416    "../../frameworks/native/hdiadapter/source:audio_capturer_source",
417    "../../frameworks/native/hdiadapter/source:capturer_source_adapter",
418    "../../frameworks/native/hdiadapter/source:fast_audio_capturer_source",
419    "../../frameworks/native/playbackcapturer:playback_capturer",
420  ]
421
422  external_deps = [
423    "access_token:libaccesstoken_sdk",
424    "bundle_framework:appexecfwk_base",
425    "bundle_framework:appexecfwk_core",
426    "c_utils:utils",
427    "drivers_interface_audio:libeffect_proxy_1.0",
428    "hicollie:libhicollie",
429    "hilog:libhilog",
430    "hisysevent:libhisysevent",
431    "ipc:ipc_single",
432    "media_foundation:media_monitor_client",
433    "media_foundation:media_monitor_common",
434    "pulseaudio:pulse",
435    "pulseaudio:pulseaudio",
436    "safwk:system_ability_fwk",
437    "samgr:samgr_proxy",
438  ]
439
440  public_external_deps = [ "libxml2:libxml2" ]
441
442  defines = []
443  if (audio_framework_config_policy_enable) {
444    defines += [ "USE_CONFIG_POLICY" ]
445    external_deps += [ "config_policy:configpolicy_util" ]
446  }
447
448  if (build_variant == "user") {
449    defines += [ "AUDIO_BUILD_VARIANT_USER" ]
450  } else if (build_variant == "root") {
451    defines += [ "AUDIO_BUILD_VARIANT_ROOT" ]
452  }
453
454  if (appgallery_part_enable == true) {
455    defines += [ "FEATURE_APPGALLERY" ]
456  }
457
458  if (sensor_enable == true) {
459    external_deps += [ "sensor:sensor_interface_native" ]
460  }
461
462  if (ressche_enable == true) {
463    external_deps += [ "resource_schedule_service:ressched_client" ]
464  }
465
466  if (use_libfuzzer || use_clang_coverage) {
467    defines += [ "TEST_COVERAGE" ]
468  }
469
470  subsystem_name = "multimedia"
471  part_name = "audio_framework"
472}
473
474ohos_shared_library("audio_sasdk") {
475  stack_protector_ret = true
476  sanitize = {
477    cfi = true
478    cfi_cross_dso = true
479    cfi_vcall_icall_only = true
480    debug = false
481  }
482
483  install_enable = true
484  sources = [ "client/src/audio_sasdk.cpp" ]
485
486  include_dirs = [
487    "../../interfaces/inner_api/native/audiocommon/include",
488    "../../interfaces/inner_api/native/audiosasdk/include",
489  ]
490
491  public_configs = [ ":audio_sasdk_public_config" ]
492
493  deps = [
494    ":audio_common",
495    "../audio_policy:audio_policy_client",
496  ]
497
498  external_deps = [
499    "c_utils:utils",
500    "hilog:libhilog",
501  ]
502
503  version_script = "../../audio_framework.versionscript"
504  innerapi_tags = [
505    "platformsdk",
506    "sasdk",
507  ]
508
509  subsystem_name = "multimedia"
510  part_name = "audio_framework"
511}
512
513group("audio_service_test_packages") {
514  deps = [
515    ":audio_hdi_device_test",
516    ":audio_process_client_test",
517  ]
518}
519
520ohos_executable("audio_process_client_test") {
521  install_enable = false
522
523  include_dirs = [
524    "../../frameworks/native/audioutils/include",
525    "../../interfaces/inner_api/native/audiocommon/include",
526    "client/include",
527  ]
528
529  sources = [ "test/example/audio_process_client_test.cpp" ]
530
531  deps = [
532    ":audio_client",
533    "./../../frameworks/native/audioutils:audio_utils",
534  ]
535
536  external_deps = [
537    "bounds_checking_function:libsec_shared",
538    "c_utils:utils",
539    "hilog:libhilog",
540    "init:libbegetutil",
541  ]
542
543  part_name = "audio_framework"
544  subsystem_name = "multimedia"
545}
546
547ohos_executable("audio_hdi_device_test") {
548  install_enable = false
549
550  include_dirs = [
551    "../../frameworks/native/audioutils/include",
552    "../../frameworks/native/hdiadapter/common/include",
553    "../../frameworks/native/hdiadapter/sink",
554    "../../frameworks/native/hdiadapter/sink/common",
555    "../../frameworks/native/hdiadapter/sink/fast",
556    "../../interfaces/inner_api/native/audiocommon/include",
557  ]
558
559  cflags = [ "-DDEBUG_DIRECT_USE_HDI" ]
560
561  sources = [ "test/example/audio_hdi_device_test.cpp" ]
562
563  deps = [
564    "../../frameworks/native/audioutils:audio_utils",
565    "../../frameworks/native/hdiadapter/sink:fast_audio_renderer_sink",
566    "../../frameworks/native/hdiadapter/sink:remote_fast_audio_renderer_sink",
567  ]
568
569  external_deps = [
570    "c_utils:utils",
571    "hilog:libhilog",
572    "pulseaudio:pulse",
573  ]
574
575  part_name = "audio_framework"
576  subsystem_name = "multimedia"
577}
578
579ohos_executable("audio_faststream_playback_test") {
580  install_enable = false
581
582  sources = [ "test/example/audio_stream_playback_test.cpp" ]
583
584  configs = [ ":audio_client_public_config" ]
585
586  deps = [
587    ":audio_client",
588    "../../frameworks/native/audiocapturer:audio_capturer",
589    "../../frameworks/native/audiorenderer:audio_renderer",
590    "../../frameworks/native/audioutils:audio_utils",
591  ]
592
593  external_deps = [
594    "bounds_checking_function:libsec_shared",
595    "c_utils:utils",
596    "hilog:libhilog",
597    "init:libbegetutil",
598    "ipc:ipc_single",
599    "pulseaudio:pulse",
600  ]
601
602  part_name = "audio_framework"
603  subsystem_name = "multimedia"
604}
605