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