blob: 398ac5bcdb7f5414f617ea633c18bede451636a0 [file] [log] [blame]
Bob Badour56786ac2021-02-25 15:24:36 -08001package {
Ronish Kaliab5dd44b2024-02-14 14:32:32 +00002 default_team: "trendy_team_media_framework_audio",
Bob Badour56786ac2021-02-25 15:24:36 -08003 // See: http://go/android-license-faq
4 // A large-scale-change added 'default_applicable_licenses' to import
5 // all of the 'license_kinds' from "frameworks_av_license"
6 // to get the below license kinds:
7 // SPDX-license-identifier-Apache-2.0
8 default_applicable_licenses: ["frameworks_av_license"],
9}
10
jiabind5bd06a2021-04-27 22:04:08 +000011tidy_errors = [
12 // https://clang.llvm.org/extra/clang-tidy/checks/list.html
13 // For many categories, the checks are too many to specify individually.
14 // Feel free to disable as needed - as warnings are generally ignored,
15 // we treat warnings as errors.
16 "android-*",
17 "bugprone-*",
18 "cert-*",
19 "clang-analyzer-security*",
20 "google-*",
21 "misc-*",
22 //"modernize-*", // explicitly list the modernize as they can be subjective.
23 "modernize-avoid-bind",
24 //"modernize-avoid-c-arrays", // std::array<> can be verbose
25 "modernize-concat-nested-namespaces",
26 //"modernize-deprecated-headers", // C headers still ok even if there is C++ equivalent.
27 "modernize-deprecated-ios-base-aliases",
28 "modernize-loop-convert",
29 "modernize-make-shared",
30 "modernize-make-unique",
31 "modernize-pass-by-value",
32 "modernize-raw-string-literal",
33 "modernize-redundant-void-arg",
34 "modernize-replace-auto-ptr",
35 "modernize-replace-random-shuffle",
36 "modernize-return-braced-init-list",
37 "modernize-shrink-to-fit",
38 "modernize-unary-static-assert",
39 // "modernize-use-auto", // found in AAudioAudio.cpp
40 "modernize-use-bool-literals",
41 "modernize-use-default-member-init",
42 "modernize-use-emplace",
43 "modernize-use-equals-default",
44 "modernize-use-equals-delete",
jiabin8ecf6332023-12-05 18:51:29 +000045 "modernize-use-nodiscard",
jiabind5bd06a2021-04-27 22:04:08 +000046 "modernize-use-noexcept",
47 "modernize-use-nullptr",
jiabin8ecf6332023-12-05 18:51:29 +000048 "modernize-use-override",
jiabind5bd06a2021-04-27 22:04:08 +000049 // "modernize-use-trailing-return-type", // not necessarily more readable
50 "modernize-use-transparent-functors",
51 "modernize-use-uncaught-exceptions",
52 // "modernize-use-using", // found typedef in several files
53 "performance-*",
54
55 // Remove some pedantic stylistic requirements.
56 "-android-cloexec-dup", // found in SharedMemoryParcelable.cpp
57 "-bugprone-macro-parentheses", // found in SharedMemoryParcelable.h
58 "-bugprone-narrowing-conversions", // found in several interface from size_t to int32_t
59
jiabind5bd06a2021-04-27 22:04:08 +000060 "-google-build-using-namespace", // Reenable and fix later.
61 "-google-global-names-in-headers", // found in several files
Andy Hunga159e4b2024-03-15 11:48:57 -070062 "-google-readability-casting", // C++ casts not always necessary and may be verbose
63 "-google-readability-todo", // do not require TODO(info)
jiabind5bd06a2021-04-27 22:04:08 +000064
65 "-misc-non-private-member-variables-in-classes", // found in aidl generated files
66
67 "-performance-no-int-to-ptr", // found in SharedMemoryParcelable.h
68]
69
Dan Willemsenb44c69e2017-10-23 17:15:03 -070070cc_library {
71 name: "libaaudio",
72
73 local_include_dirs: [
74 "binding",
75 "client",
76 "core",
77 "fifo",
Phil Burk64dce362018-03-28 15:30:39 -070078 "flowgraph",
Dan Willemsenb44c69e2017-10-23 17:15:03 -070079 "legacy",
80 "utility",
81 ],
Marco Nelissen6b285942019-10-21 14:52:30 -070082 header_libs: [
83 "libaaudio_headers",
84 ],
Dan Willemsenb44c69e2017-10-23 17:15:03 -070085 export_header_lib_headers: ["libaaudio_headers"],
dimitry8e8a9682019-06-04 15:14:02 +020086 version_script: "libaaudio.map.txt",
Dan Willemsenb44c69e2017-10-23 17:15:03 -070087
88 srcs: [
dimitryd81a84a2019-07-17 13:55:16 +020089 "core/AAudioAudio.cpp",
90 ],
91
92 cflags: [
dimitryd81a84a2019-07-17 13:55:16 +020093 "-Wall",
94 "-Werror",
dimitryd81a84a2019-07-17 13:55:16 +020095 // By default, all symbols are hidden.
Andy Hunga159e4b2024-03-15 11:48:57 -070096
dimitryd81a84a2019-07-17 13:55:16 +020097 // "-fvisibility=hidden",
98 // AAUDIO_API is used to explicitly export a function or a variable as a visible symbol.
Andy Hunga159e4b2024-03-15 11:48:57 -070099 "-Wno-unused-parameter",
100 "-Wthread-safety",
101
dimitryd81a84a2019-07-17 13:55:16 +0200102 "-DAAUDIO_API=__attribute__((visibility(\"default\")))",
103 ],
104
105 shared_libs: [
Andy Hunga159e4b2024-03-15 11:48:57 -0700106 "framework-permission-aidl-cpp",
dimitryd81a84a2019-07-17 13:55:16 +0200107 "libaaudio_internal",
108 "libaudioclient",
109 "libaudioutils",
Andy Hunga159e4b2024-03-15 11:48:57 -0700110 "libbinder",
111 "libcutils",
112 "liblog",
Phil Burka9876702020-04-20 18:16:15 -0700113 "libmedia_helper",
114 "libmediametrics",
115 "libmediautils",
dimitryd81a84a2019-07-17 13:55:16 +0200116 "libutils",
dimitryd81a84a2019-07-17 13:55:16 +0200117 ],
Cindy Zhou30ed5942019-10-30 13:24:37 -0700118
119 sanitize: {
120 integer_overflow: true,
121 misc_undefined: ["bounds"],
Cindy Zhou30ed5942019-10-30 13:24:37 -0700122 },
123
Zach Johnson99c47ff2019-12-02 15:28:34 -0800124 stubs: {
125 symbol_file: "libaaudio.map.txt",
126 versions: ["28"],
127 },
jiabind5bd06a2021-04-27 22:04:08 +0000128
129 tidy: true,
130 tidy_checks: tidy_errors,
131 tidy_checks_as_errors: tidy_errors,
132 tidy_flags: [
133 "-format-style=file",
Ronish Kaliab5dd44b2024-02-14 14:32:32 +0000134 ],
dimitryd81a84a2019-07-17 13:55:16 +0200135}
136
137cc_library {
138 name: "libaaudio_internal",
139
Lorena Torres-Huerta03112f62022-08-12 23:08:12 +0000140 defaults: [
141 "latest_android_media_audio_common_types_cpp_shared",
142 ],
143
dimitryd81a84a2019-07-17 13:55:16 +0200144 local_include_dirs: [
145 "binding",
146 "client",
147 "core",
148 "fifo",
149 "legacy",
150 "utility",
151 ],
152
153 export_include_dirs: ["."],
Marco Nelissen6b285942019-10-21 14:52:30 -0700154 header_libs: [
155 "libaaudio_headers",
Cindy Zhou30ed5942019-10-30 13:24:37 -0700156 "libmedia_headers",
Marco Nelissen7c96ea72020-01-10 15:46:22 -0800157 "libmediametrics_headers",
Marco Nelissen6b285942019-10-21 14:52:30 -0700158 ],
dimitryd81a84a2019-07-17 13:55:16 +0200159 export_header_lib_headers: ["libaaudio_headers"],
160
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700161 export_shared_lib_headers: [
Svet Ganov3e5f14f2021-05-13 22:51:08 +0000162 "framework-permission-aidl-cpp",
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700163 ],
164
dimitryd81a84a2019-07-17 13:55:16 +0200165 shared_libs: [
Andy Hunga159e4b2024-03-15 11:48:57 -0700166 "aaudio-aidl-cpp",
167 "audioclient-types-aidl-cpp",
168 "com.android.media.aaudio-aconfig-cc",
169 "framework-permission-aidl-cpp",
dimitryd81a84a2019-07-17 13:55:16 +0200170 "libaudioclient",
Andy Hunga159e4b2024-03-15 11:48:57 -0700171 "libaudioclient_aidl_conversion",
dimitryd81a84a2019-07-17 13:55:16 +0200172 "libaudioutils",
Andy Hunga159e4b2024-03-15 11:48:57 -0700173 "libbinder",
174 "libcutils",
175 "liblog",
Phil Burka9876702020-04-20 18:16:15 -0700176 "libmedia_helper",
177 "libmediametrics",
178 "libmediautils",
dimitryd81a84a2019-07-17 13:55:16 +0200179 "libutils",
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700180 ],
181
dimitryd81a84a2019-07-17 13:55:16 +0200182 cflags: [
dimitryd81a84a2019-07-17 13:55:16 +0200183 "-Wall",
184 "-Werror",
Andy Hunga159e4b2024-03-15 11:48:57 -0700185 "-Wno-unused-parameter",
dimitryd81a84a2019-07-17 13:55:16 +0200186 ],
187
188 srcs: [
Andy Hunga159e4b2024-03-15 11:48:57 -0700189 "binding/AAudioBinderAdapter.cpp",
190 "binding/AAudioBinderClient.cpp",
191 "binding/AAudioStreamConfiguration.cpp",
192 "binding/AAudioStreamRequest.cpp",
193 "binding/AudioEndpointParcelable.cpp",
194 "binding/RingBufferParcelable.cpp",
195 "binding/SharedMemoryParcelable.cpp",
196 "binding/SharedRegionParcelable.cpp",
Phil Burk0127c1b2018-03-29 13:48:06 -0700197 "client/AAudioFlowGraph.cpp",
Dan Willemsenb44c69e2017-10-23 17:15:03 -0700198 "client/AudioEndpoint.cpp",
199 "client/AudioStreamInternal.cpp",
200 "client/AudioStreamInternalCapture.cpp",
201 "client/AudioStreamInternalPlay.cpp",
202 "client/IsochronousClockModel.cpp",
Andy Hunga159e4b2024-03-15 11:48:57 -0700203 "core/AAudioStreamParameters.cpp",
204 "core/AudioGlobal.cpp",
205 "core/AudioStream.cpp",
206 "core/AudioStreamBuilder.cpp",
207 "fifo/FifoBuffer.cpp",
208 "fifo/FifoControllerBase.cpp",
Robert Wu057f0832021-12-03 20:41:07 +0000209 "flowgraph/ChannelCountConverter.cpp",
Phil Burk64dce362018-03-28 15:30:39 -0700210 "flowgraph/ClipToRange.cpp",
Robert Wu057f0832021-12-03 20:41:07 +0000211 "flowgraph/FlowGraphNode.cpp",
Robert Wu67375a12022-08-25 22:04:29 +0000212 "flowgraph/Limiter.cpp",
Robert Wu057f0832021-12-03 20:41:07 +0000213 "flowgraph/ManyToMultiConverter.cpp",
Robert Wud7400832021-12-04 01:11:19 +0000214 "flowgraph/MonoBlend.cpp",
Phil Burk64dce362018-03-28 15:30:39 -0700215 "flowgraph/MonoToMultiConverter.cpp",
Robert Wu8393bed2021-12-08 02:08:48 +0000216 "flowgraph/MultiToManyConverter.cpp",
Andy Hunga159e4b2024-03-15 11:48:57 -0700217 "flowgraph/MultiToMonoConverter.cpp",
Phil Burk64dce362018-03-28 15:30:39 -0700218 "flowgraph/RampLinear.cpp",
Robert Wu057f0832021-12-03 20:41:07 +0000219 "flowgraph/SampleRateConverter.cpp",
Phil Burk64dce362018-03-28 15:30:39 -0700220 "flowgraph/SinkFloat.cpp",
Andy Hunga159e4b2024-03-15 11:48:57 -0700221 "flowgraph/SinkI8_24.cpp",
Phil Burk64dce362018-03-28 15:30:39 -0700222 "flowgraph/SinkI16.cpp",
223 "flowgraph/SinkI24.cpp",
Phil Burk04e805b2018-03-27 09:13:53 -0700224 "flowgraph/SinkI32.cpp",
Phil Burk64dce362018-03-28 15:30:39 -0700225 "flowgraph/SourceFloat.cpp",
Andy Hunga159e4b2024-03-15 11:48:57 -0700226 "flowgraph/SourceI8_24.cpp",
Phil Burk64dce362018-03-28 15:30:39 -0700227 "flowgraph/SourceI16.cpp",
228 "flowgraph/SourceI24.cpp",
Phil Burk04e805b2018-03-27 09:13:53 -0700229 "flowgraph/SourceI32.cpp",
Robert Wu057f0832021-12-03 20:41:07 +0000230 "flowgraph/resampler/IntegerRatio.cpp",
231 "flowgraph/resampler/LinearResampler.cpp",
232 "flowgraph/resampler/MultiChannelResampler.cpp",
233 "flowgraph/resampler/PolyphaseResampler.cpp",
234 "flowgraph/resampler/PolyphaseResamplerMono.cpp",
235 "flowgraph/resampler/PolyphaseResamplerStereo.cpp",
236 "flowgraph/resampler/SincResampler.cpp",
237 "flowgraph/resampler/SincResamplerStereo.cpp",
Andy Hunga159e4b2024-03-15 11:48:57 -0700238 "legacy/AudioStreamLegacy.cpp",
239 "legacy/AudioStreamRecord.cpp",
240 "legacy/AudioStreamTrack.cpp",
241 "utility/AAudioUtilities.cpp",
242 "utility/FixedBlockAdapter.cpp",
243 "utility/FixedBlockReader.cpp",
244 "utility/FixedBlockWriter.cpp",
Dan Willemsenb44c69e2017-10-23 17:15:03 -0700245 ],
Cindy Zhou30ed5942019-10-30 13:24:37 -0700246 sanitize: {
247 integer_overflow: true,
248 misc_undefined: ["bounds"],
Cindy Zhou30ed5942019-10-30 13:24:37 -0700249 },
jiabind5bd06a2021-04-27 22:04:08 +0000250
251 tidy: true,
252 tidy_checks: tidy_errors,
253 tidy_checks_as_errors: tidy_errors,
254 tidy_flags: [
255 "-format-style=file",
Ronish Kaliab5dd44b2024-02-14 14:32:32 +0000256 ],
Dan Willemsenb44c69e2017-10-23 17:15:03 -0700257}
Ytai Ben-Tsvi0412f732020-08-17 14:43:36 -0700258
259aidl_interface {
260 name: "aaudio-aidl",
261 unstable: true,
262 local_include_dir: "binding/aidl",
Shunkai Yao49bc61f2023-10-10 19:31:10 +0000263 defaults: [
264 "latest_android_media_audio_common_types_import_interface",
265 ],
Ytai Ben-Tsvi0412f732020-08-17 14:43:36 -0700266 srcs: [
Ytai Ben-Tsvic5f45872020-08-18 10:39:44 -0700267 "binding/aidl/aaudio/Endpoint.aidl",
Andy Hunga159e4b2024-03-15 11:48:57 -0700268 "binding/aidl/aaudio/IAAudioClient.aidl",
269 "binding/aidl/aaudio/IAAudioService.aidl",
Ytai Ben-Tsvic5f45872020-08-18 10:39:44 -0700270 "binding/aidl/aaudio/RingBuffer.aidl",
271 "binding/aidl/aaudio/SharedRegion.aidl",
272 "binding/aidl/aaudio/StreamParameters.aidl",
273 "binding/aidl/aaudio/StreamRequest.aidl",
Ytai Ben-Tsvi0412f732020-08-17 14:43:36 -0700274 ],
Ytai Ben-Tsvic5f45872020-08-18 10:39:44 -0700275 imports: [
Mikhail Naganovc10572e2021-05-21 17:42:02 -0700276 "audioclient-types-aidl",
Svet Ganov3e5f14f2021-05-13 22:51:08 +0000277 "framework-permission-aidl",
Andy Hunga159e4b2024-03-15 11:48:57 -0700278 "shared-file-region-aidl",
Ytai Ben-Tsvic5f45872020-08-18 10:39:44 -0700279 ],
Ronish Kaliab5dd44b2024-02-14 14:32:32 +0000280 backend: {
Ytai Ben-Tsvic5f45872020-08-18 10:39:44 -0700281 java: {
Ytai Ben-Tsvi71151352021-03-10 16:29:01 -0800282 sdk_version: "module_current",
Ytai Ben-Tsvic5f45872020-08-18 10:39:44 -0700283 },
284 },
Ytai Ben-Tsvi0412f732020-08-17 14:43:36 -0700285}