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