• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 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")
15
16pulseaudio_dir = "//third_party/pulseaudio"
17opensles_dir = "//third_party/openSLES"
18opensles_version = "1.0.1"
19
20group("libsl") {
21  public_deps = [ "//third_party/openSLES:libSLES" ]
22}
23
24config("audio_config") {
25  include_dirs = [
26    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer/include",
27    "//foundation/multimedia/audio_framework/frameworks/native/audiorenderer/include",
28    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocapturer/include",
29    "//foundation/multimedia/audio_framework/frameworks/native/audiocapturer/include",
30    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include",
31    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiostream/include",
32    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include",
33    "//foundation/multimedia/audio_framework/services/audio_service/client/include",
34    "//commonlibrary/c_utils/base/include",
35    "$pulseaudio_dir/src",
36    "$pulseaudio_dir/confgure/src",
37  ]
38
39  cflags = [
40    "-Wall",
41    "-Werror",
42  ]
43}
44
45ohos_shared_library("opensles") {
46  sanitize = {
47    cfi = true
48    debug = false
49    blocklist = "//foundation/multimedia/audio_framework/cfi_blocklist.txt"
50  }
51  include_dirs = [
52    "$opensles_dir/api/$opensles_version",
53    "//foundation/multimedia/audio_framework/frameworks/native/opensles/include",
54    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/andiorenderer/include/",
55    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/andiocapturer/include/",
56    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/andiomanager/include/",
57  ]
58
59  configs = [ ":audio_config" ]
60
61  sources = [
62    "$opensles_dir/api/$opensles_version/OpenSLES_IID.c",
63    "$opensles_dir/api/$opensles_version/OpenSLES_OpenHarmony_IID.c",
64    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/adapter/audiocapturer_adapter.cpp",
65    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/adapter/audioplayer_adapter.cpp",
66    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/adapter/readorwritecallback_adapter.cpp",
67    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/itf/engine_itf.cpp",
68    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/itf/object_itf.cpp",
69    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/itf/openharmony_buffer_queue_itf.cpp",
70    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/itf/play_itf.cpp",
71    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/itf/record_itf.cpp",
72    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/itf/volume_itf.cpp",
73    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/obj/audiocapturer_obj.cpp",
74    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/obj/audioplayer_obj.cpp",
75    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/obj/engine_obj.cpp",
76    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/obj/output_mix_obj.cpp",
77    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/util/builder.cpp",
78    "//foundation/multimedia/audio_framework/frameworks/native/opensles/src/util/table_struct.cpp",
79  ]
80
81  cflags = [ "-Werror" ]
82
83  deps = [
84    ":libsl",
85    "//foundation/multimedia/audio_framework/frameworks/native/audiocapturer:audio_capturer",
86    "//foundation/multimedia/audio_framework/frameworks/native/audiorenderer:audio_renderer",
87    "//foundation/multimedia/audio_framework/services/audio_service:audio_client",
88  ]
89
90  external_deps = [ "hiviewdfx_hilog_native:libhilog" ]
91
92  output_name = "OpenSLES"
93  output_extension = "so"
94  subsystem_name = "multimedia"
95  part_name = "multimedia_audio_framework"
96}
97
98group("audio_opensles_test_packages") {
99  deps = [
100    ":audio_opensles_player_test",
101    ":audio_opensles_recorder_test",
102  ]
103}
104
105config("audio_operation_config") {
106  include_dirs = [
107    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer/include",
108    "//foundation/multimedia/audio_framework/frameworks/native/audiorenderer/include",
109    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocapturer/include",
110    "//foundation/multimedia/audio_framework/frameworks/native/audiocapturer/include",
111    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include",
112    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiostream/include",
113    "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include",
114    "//foundation/multimedia/audio_framework/services/audio_service/client/include",
115    "//foundation/multimedia/audio_framework/services/audio_service/test/example",
116    "//commonlibrary/c_utils/base/include",
117    "$pulseaudio_dir/src",
118    "$pulseaudio_dir/confgure/src",
119  ]
120
121  cflags = [
122    "-Wall",
123    "-Werror",
124  ]
125}
126
127config("audio_opensles_config") {
128  include_dirs = [
129    "//foundation/multimedia/audio_framework/frameworks/native/opensles/include",
130    "$opensles_dir/api/1.0.1",
131  ]
132}
133
134ohos_executable("audio_opensles_player_test") {
135  install_enable = false
136
137  sources = [ "test/example/audio_opensles_player_test.cpp" ]
138
139  configs = [
140    ":audio_opensles_config",
141    ":audio_operation_config",
142  ]
143
144  deps = [
145    ":libsl",
146    ":opensles",
147  ]
148
149  external_deps = [ "hiviewdfx_hilog_native:libhilog" ]
150
151  part_name = "multimedia_audio_framework"
152  subsystem_name = "multimedia"
153}
154
155ohos_executable("audio_opensles_recorder_test") {
156  install_enable = false
157
158  sources = [ "test/example/audio_opensles_recorder_test.cpp" ]
159
160  configs = [
161    ":audio_opensles_config",
162    ":audio_operation_config",
163  ]
164
165  deps = [
166    ":libsl",
167    ":opensles",
168  ]
169
170  external_deps = [ "hiviewdfx_hilog_native:libhilog" ]
171
172  part_name = "multimedia_audio_framework"
173  subsystem_name = "multimedia"
174}
175