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