1 /*
2 * This file is auto-generated. DO NOT MODIFY.
3 * Using: out/host/linux-x86/bin/aidl --lang=ndk -Weverything -Wno-missing-permission-annotation --structured --version 3 --hash notfrozen -t --stability vintf --min_sdk_version current -pout/soong/.intermediates/system/hardware/interfaces/media/android.media.audio.eraser.types_interface/1/preprocessed.aidl -pout/soong/.intermediates/system/hardware/interfaces/media/android.media.audio.common.types_interface/4/preprocessed.aidl -pout/soong/.intermediates/hardware/interfaces/audio/aidl/android.hardware.audio.common_interface/4/preprocessed.aidl -pout/soong/.intermediates/hardware/interfaces/common/aidl/android.hardware.common_interface/2/preprocessed.aidl -pout/soong/.intermediates/hardware/interfaces/common/fmq/aidl/android.hardware.common.fmq_interface/1/preprocessed.aidl --previous_api_dir=hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect/2 --previous_hash 54d5a2e1d59066b57e35eb7bcb5ebc72a1259c1c --ninja -d out/soong/.intermediates/hardware/interfaces/audio/aidl/android.hardware.audio.effect-V3-ndk-source/gen/staging/android/hardware/audio/effect/Visualizer.cpp.d -h out/soong/.intermediates/hardware/interfaces/audio/aidl/android.hardware.audio.effect-V3-ndk-source/gen/include/staging -o out/soong/.intermediates/hardware/interfaces/audio/aidl/android.hardware.audio.effect-V3-ndk-source/gen/staging -Nhardware/interfaces/audio/aidl hardware/interfaces/audio/aidl/android/hardware/audio/effect/Visualizer.aidl
4 *
5 * DO NOT CHECK THIS FILE INTO A CODE TREE (e.g. git, etc..).
6 * ALWAYS GENERATE THIS FILE FROM UPDATED AIDL COMPILER
7 * AS A BUILD INTERMEDIATE ONLY. THIS IS NOT SOURCE CODE.
8 */
9 #pragma once
10
11 #include <array>
12 #include <cassert>
13 #include <cstdint>
14 #include <memory>
15 #include <optional>
16 #include <string>
17 #include <type_traits>
18 #include <utility>
19 #include <variant>
20 #include <vector>
21 #include <android/binder_enums.h>
22 #include <android/binder_interface_utils.h>
23 #include <android/binder_parcelable_utils.h>
24 #include <android/binder_to_string.h>
25 #include <aidl/android/hardware/audio/effect/VendorExtension.h>
26 #include <aidl/android/hardware/audio/effect/Visualizer.h>
27 #ifdef BINDER_STABILITY_SUPPORT
28 #include <android/binder_stability.h>
29 #endif // BINDER_STABILITY_SUPPORT
30
31 #ifndef __BIONIC__
32 #define __assert2(a,b,c,d) ((void)0)
33 #endif
34
35 namespace aidl::android::hardware::audio::effect {
36 class VendorExtension;
37 } // namespace aidl::android::hardware::audio::effect
38 namespace aidl {
39 namespace android {
40 namespace hardware {
41 namespace audio {
42 namespace effect {
43 class Visualizer {
44 public:
45 typedef std::false_type fixed_size;
46 static const char* descriptor;
47
48 enum class Tag : int32_t {
49 id = 0,
50 vendor = 1,
51 measurement = 2,
52 captureSampleBuffer = 3,
53 latencyMs = 4,
54 captureSamples = 5,
55 scalingMode = 6,
56 measurementMode = 7,
57 };
58
59 class Id {
60 public:
61 typedef std::false_type fixed_size;
62 static const char* descriptor;
63
64 enum class Tag : int32_t {
65 vendorExtensionTag = 0,
66 commonTag = 1,
67 };
68
69 // Expose tag symbols for legacy code
70 static const inline Tag vendorExtensionTag = Tag::vendorExtensionTag;
71 static const inline Tag commonTag = Tag::commonTag;
72
73 template<typename _Tp>
74 static constexpr bool _not_self = !std::is_same_v<std::remove_cv_t<std::remove_reference_t<_Tp>>, Id>;
75
Id()76 Id() : _value(std::in_place_index<static_cast<size_t>(vendorExtensionTag)>, ::aidl::android::hardware::audio::effect::VendorExtension()) { }
77
78 template <typename _Tp, typename = std::enable_if_t<_not_self<_Tp>>>
79 // NOLINTNEXTLINE(google-explicit-constructor)
Id(_Tp && _arg)80 constexpr Id(_Tp&& _arg)
81 : _value(std::forward<_Tp>(_arg)) {}
82
83 template <size_t _Np, typename... _Tp>
Id(std::in_place_index_t<_Np>,_Tp &&..._args)84 constexpr explicit Id(std::in_place_index_t<_Np>, _Tp&&... _args)
85 : _value(std::in_place_index<_Np>, std::forward<_Tp>(_args)...) {}
86
87 template <Tag _tag, typename... _Tp>
make(_Tp &&..._args)88 static Id make(_Tp&&... _args) {
89 return Id(std::in_place_index<static_cast<size_t>(_tag)>, std::forward<_Tp>(_args)...);
90 }
91
92 template <Tag _tag, typename _Tp, typename... _Up>
make(std::initializer_list<_Tp> _il,_Up &&..._args)93 static Id make(std::initializer_list<_Tp> _il, _Up&&... _args) {
94 return Id(std::in_place_index<static_cast<size_t>(_tag)>, std::move(_il), std::forward<_Up>(_args)...);
95 }
96
getTag()97 Tag getTag() const {
98 return static_cast<Tag>(_value.index());
99 }
100
101 template <Tag _tag>
get()102 const auto& get() const {
103 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
104 return std::get<static_cast<size_t>(_tag)>(_value);
105 }
106
107 template <Tag _tag>
get()108 auto& get() {
109 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
110 return std::get<static_cast<size_t>(_tag)>(_value);
111 }
112
113 template <Tag _tag, typename... _Tp>
set(_Tp &&..._args)114 void set(_Tp&&... _args) {
115 _value.emplace<static_cast<size_t>(_tag)>(std::forward<_Tp>(_args)...);
116 }
117
118 binder_status_t readFromParcel(const AParcel* _parcel);
119 binder_status_t writeToParcel(AParcel* _parcel) const;
120
121 inline bool operator==(const Id& _rhs) const {
122 return _value == _rhs._value;
123 }
124 inline bool operator<(const Id& _rhs) const {
125 return _value < _rhs._value;
126 }
127 inline bool operator!=(const Id& _rhs) const {
128 return !(*this == _rhs);
129 }
130 inline bool operator>(const Id& _rhs) const {
131 return _rhs < *this;
132 }
133 inline bool operator>=(const Id& _rhs) const {
134 return !(*this < _rhs);
135 }
136 inline bool operator<=(const Id& _rhs) const {
137 return !(_rhs < *this);
138 }
139
140 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()141 inline std::string toString() const {
142 std::ostringstream os;
143 os << "Id{";
144 switch (getTag()) {
145 case vendorExtensionTag: os << "vendorExtensionTag: " << ::android::internal::ToString(get<vendorExtensionTag>()); break;
146 case commonTag: os << "commonTag: " << ::android::internal::ToString(get<commonTag>()); break;
147 }
148 os << "}";
149 return os.str();
150 }
151 private:
152 std::variant<::aidl::android::hardware::audio::effect::VendorExtension, ::aidl::android::hardware::audio::effect::Visualizer::Tag> _value;
153 };
154 enum class ScalingMode : int8_t {
155 NORMALIZED = 0,
156 AS_PLAYED = 1,
157 };
158
159 enum class MeasurementMode : int8_t {
160 NONE = 0,
161 PEAK_RMS = 1,
162 };
163
164 class Measurement {
165 public:
166 typedef std::false_type fixed_size;
167 static const char* descriptor;
168
169 int32_t rms = 0;
170 int32_t peak = 0;
171
172 binder_status_t readFromParcel(const AParcel* parcel);
173 binder_status_t writeToParcel(AParcel* parcel) const;
174
175 inline bool operator==(const Measurement& _rhs) const {
176 return std::tie(rms, peak) == std::tie(_rhs.rms, _rhs.peak);
177 }
178 inline bool operator<(const Measurement& _rhs) const {
179 return std::tie(rms, peak) < std::tie(_rhs.rms, _rhs.peak);
180 }
181 inline bool operator!=(const Measurement& _rhs) const {
182 return !(*this == _rhs);
183 }
184 inline bool operator>(const Measurement& _rhs) const {
185 return _rhs < *this;
186 }
187 inline bool operator>=(const Measurement& _rhs) const {
188 return !(*this < _rhs);
189 }
190 inline bool operator<=(const Measurement& _rhs) const {
191 return !(_rhs < *this);
192 }
193
194 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()195 inline std::string toString() const {
196 std::ostringstream _aidl_os;
197 _aidl_os << "Measurement{";
198 _aidl_os << "rms: " << ::android::internal::ToString(rms);
199 _aidl_os << ", peak: " << ::android::internal::ToString(peak);
200 _aidl_os << "}";
201 return _aidl_os.str();
202 }
203 };
204 // Expose tag symbols for legacy code
205 static const inline Tag id = Tag::id;
206 static const inline Tag vendor = Tag::vendor;
207 static const inline Tag measurement = Tag::measurement;
208 static const inline Tag captureSampleBuffer = Tag::captureSampleBuffer;
209 static const inline Tag latencyMs = Tag::latencyMs;
210 static const inline Tag captureSamples = Tag::captureSamples;
211 static const inline Tag scalingMode = Tag::scalingMode;
212 static const inline Tag measurementMode = Tag::measurementMode;
213
214 template<typename _Tp>
215 static constexpr bool _not_self = !std::is_same_v<std::remove_cv_t<std::remove_reference_t<_Tp>>, Visualizer>;
216
Visualizer()217 Visualizer() : _value(std::in_place_index<static_cast<size_t>(id)>, ::aidl::android::hardware::audio::effect::Visualizer::Id()) { }
218
219 template <typename _Tp, typename = std::enable_if_t<_not_self<_Tp>>>
220 // NOLINTNEXTLINE(google-explicit-constructor)
Visualizer(_Tp && _arg)221 constexpr Visualizer(_Tp&& _arg)
222 : _value(std::forward<_Tp>(_arg)) {}
223
224 template <size_t _Np, typename... _Tp>
Visualizer(std::in_place_index_t<_Np>,_Tp &&..._args)225 constexpr explicit Visualizer(std::in_place_index_t<_Np>, _Tp&&... _args)
226 : _value(std::in_place_index<_Np>, std::forward<_Tp>(_args)...) {}
227
228 template <Tag _tag, typename... _Tp>
make(_Tp &&..._args)229 static Visualizer make(_Tp&&... _args) {
230 return Visualizer(std::in_place_index<static_cast<size_t>(_tag)>, std::forward<_Tp>(_args)...);
231 }
232
233 template <Tag _tag, typename _Tp, typename... _Up>
make(std::initializer_list<_Tp> _il,_Up &&..._args)234 static Visualizer make(std::initializer_list<_Tp> _il, _Up&&... _args) {
235 return Visualizer(std::in_place_index<static_cast<size_t>(_tag)>, std::move(_il), std::forward<_Up>(_args)...);
236 }
237
getTag()238 Tag getTag() const {
239 return static_cast<Tag>(_value.index());
240 }
241
242 template <Tag _tag>
get()243 const auto& get() const {
244 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
245 return std::get<static_cast<size_t>(_tag)>(_value);
246 }
247
248 template <Tag _tag>
get()249 auto& get() {
250 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
251 return std::get<static_cast<size_t>(_tag)>(_value);
252 }
253
254 template <Tag _tag, typename... _Tp>
set(_Tp &&..._args)255 void set(_Tp&&... _args) {
256 _value.emplace<static_cast<size_t>(_tag)>(std::forward<_Tp>(_args)...);
257 }
258
259 binder_status_t readFromParcel(const AParcel* _parcel);
260 binder_status_t writeToParcel(AParcel* _parcel) const;
261
262 inline bool operator==(const Visualizer& _rhs) const {
263 return _value == _rhs._value;
264 }
265 inline bool operator<(const Visualizer& _rhs) const {
266 return _value < _rhs._value;
267 }
268 inline bool operator!=(const Visualizer& _rhs) const {
269 return !(*this == _rhs);
270 }
271 inline bool operator>(const Visualizer& _rhs) const {
272 return _rhs < *this;
273 }
274 inline bool operator>=(const Visualizer& _rhs) const {
275 return !(*this < _rhs);
276 }
277 inline bool operator<=(const Visualizer& _rhs) const {
278 return !(_rhs < *this);
279 }
280
281 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()282 inline std::string toString() const {
283 std::ostringstream os;
284 os << "Visualizer{";
285 switch (getTag()) {
286 case id: os << "id: " << ::android::internal::ToString(get<id>()); break;
287 case vendor: os << "vendor: " << ::android::internal::ToString(get<vendor>()); break;
288 case measurement: os << "measurement: " << ::android::internal::ToString(get<measurement>()); break;
289 case captureSampleBuffer: os << "captureSampleBuffer: " << ::android::internal::ToString(get<captureSampleBuffer>()); break;
290 case latencyMs: os << "latencyMs: " << ::android::internal::ToString(get<latencyMs>()); break;
291 case captureSamples: os << "captureSamples: " << ::android::internal::ToString(get<captureSamples>()); break;
292 case scalingMode: os << "scalingMode: " << ::android::internal::ToString(get<scalingMode>()); break;
293 case measurementMode: os << "measurementMode: " << ::android::internal::ToString(get<measurementMode>()); break;
294 }
295 os << "}";
296 return os.str();
297 }
298 private:
299 std::variant<::aidl::android::hardware::audio::effect::Visualizer::Id, ::aidl::android::hardware::audio::effect::VendorExtension, ::aidl::android::hardware::audio::effect::Visualizer::Measurement, std::vector<uint8_t>, int32_t, int32_t, ::aidl::android::hardware::audio::effect::Visualizer::ScalingMode, ::aidl::android::hardware::audio::effect::Visualizer::MeasurementMode> _value;
300 };
301 } // namespace effect
302 } // namespace audio
303 } // namespace hardware
304 } // namespace android
305 } // namespace aidl
306 namespace aidl {
307 namespace android {
308 namespace hardware {
309 namespace audio {
310 namespace effect {
toString(Visualizer::Id::Tag val)311 [[nodiscard]] static inline std::string toString(Visualizer::Id::Tag val) {
312 switch(val) {
313 case Visualizer::Id::Tag::vendorExtensionTag:
314 return "vendorExtensionTag";
315 case Visualizer::Id::Tag::commonTag:
316 return "commonTag";
317 default:
318 return std::to_string(static_cast<int32_t>(val));
319 }
320 }
321 } // namespace effect
322 } // namespace audio
323 } // namespace hardware
324 } // namespace android
325 } // namespace aidl
326 namespace ndk {
327 namespace internal {
328 #pragma clang diagnostic push
329 #pragma clang diagnostic ignored "-Wc++17-extensions"
330 template <>
331 constexpr inline std::array<aidl::android::hardware::audio::effect::Visualizer::Id::Tag, 2> enum_values<aidl::android::hardware::audio::effect::Visualizer::Id::Tag> = {
332 aidl::android::hardware::audio::effect::Visualizer::Id::Tag::vendorExtensionTag,
333 aidl::android::hardware::audio::effect::Visualizer::Id::Tag::commonTag,
334 };
335 #pragma clang diagnostic pop
336 } // namespace internal
337 } // namespace ndk
338 namespace aidl {
339 namespace android {
340 namespace hardware {
341 namespace audio {
342 namespace effect {
toString(Visualizer::ScalingMode val)343 [[nodiscard]] static inline std::string toString(Visualizer::ScalingMode val) {
344 switch(val) {
345 case Visualizer::ScalingMode::NORMALIZED:
346 return "NORMALIZED";
347 case Visualizer::ScalingMode::AS_PLAYED:
348 return "AS_PLAYED";
349 default:
350 return std::to_string(static_cast<int8_t>(val));
351 }
352 }
353 } // namespace effect
354 } // namespace audio
355 } // namespace hardware
356 } // namespace android
357 } // namespace aidl
358 namespace ndk {
359 namespace internal {
360 #pragma clang diagnostic push
361 #pragma clang diagnostic ignored "-Wc++17-extensions"
362 template <>
363 constexpr inline std::array<aidl::android::hardware::audio::effect::Visualizer::ScalingMode, 2> enum_values<aidl::android::hardware::audio::effect::Visualizer::ScalingMode> = {
364 aidl::android::hardware::audio::effect::Visualizer::ScalingMode::NORMALIZED,
365 aidl::android::hardware::audio::effect::Visualizer::ScalingMode::AS_PLAYED,
366 };
367 #pragma clang diagnostic pop
368 } // namespace internal
369 } // namespace ndk
370 namespace aidl {
371 namespace android {
372 namespace hardware {
373 namespace audio {
374 namespace effect {
toString(Visualizer::MeasurementMode val)375 [[nodiscard]] static inline std::string toString(Visualizer::MeasurementMode val) {
376 switch(val) {
377 case Visualizer::MeasurementMode::NONE:
378 return "NONE";
379 case Visualizer::MeasurementMode::PEAK_RMS:
380 return "PEAK_RMS";
381 default:
382 return std::to_string(static_cast<int8_t>(val));
383 }
384 }
385 } // namespace effect
386 } // namespace audio
387 } // namespace hardware
388 } // namespace android
389 } // namespace aidl
390 namespace ndk {
391 namespace internal {
392 #pragma clang diagnostic push
393 #pragma clang diagnostic ignored "-Wc++17-extensions"
394 template <>
395 constexpr inline std::array<aidl::android::hardware::audio::effect::Visualizer::MeasurementMode, 2> enum_values<aidl::android::hardware::audio::effect::Visualizer::MeasurementMode> = {
396 aidl::android::hardware::audio::effect::Visualizer::MeasurementMode::NONE,
397 aidl::android::hardware::audio::effect::Visualizer::MeasurementMode::PEAK_RMS,
398 };
399 #pragma clang diagnostic pop
400 } // namespace internal
401 } // namespace ndk
402 namespace aidl {
403 namespace android {
404 namespace hardware {
405 namespace audio {
406 namespace effect {
toString(Visualizer::Tag val)407 [[nodiscard]] static inline std::string toString(Visualizer::Tag val) {
408 switch(val) {
409 case Visualizer::Tag::id:
410 return "id";
411 case Visualizer::Tag::vendor:
412 return "vendor";
413 case Visualizer::Tag::measurement:
414 return "measurement";
415 case Visualizer::Tag::captureSampleBuffer:
416 return "captureSampleBuffer";
417 case Visualizer::Tag::latencyMs:
418 return "latencyMs";
419 case Visualizer::Tag::captureSamples:
420 return "captureSamples";
421 case Visualizer::Tag::scalingMode:
422 return "scalingMode";
423 case Visualizer::Tag::measurementMode:
424 return "measurementMode";
425 default:
426 return std::to_string(static_cast<int32_t>(val));
427 }
428 }
429 } // namespace effect
430 } // namespace audio
431 } // namespace hardware
432 } // namespace android
433 } // namespace aidl
434 namespace ndk {
435 namespace internal {
436 #pragma clang diagnostic push
437 #pragma clang diagnostic ignored "-Wc++17-extensions"
438 template <>
439 constexpr inline std::array<aidl::android::hardware::audio::effect::Visualizer::Tag, 8> enum_values<aidl::android::hardware::audio::effect::Visualizer::Tag> = {
440 aidl::android::hardware::audio::effect::Visualizer::Tag::id,
441 aidl::android::hardware::audio::effect::Visualizer::Tag::vendor,
442 aidl::android::hardware::audio::effect::Visualizer::Tag::measurement,
443 aidl::android::hardware::audio::effect::Visualizer::Tag::captureSampleBuffer,
444 aidl::android::hardware::audio::effect::Visualizer::Tag::latencyMs,
445 aidl::android::hardware::audio::effect::Visualizer::Tag::captureSamples,
446 aidl::android::hardware::audio::effect::Visualizer::Tag::scalingMode,
447 aidl::android::hardware::audio::effect::Visualizer::Tag::measurementMode,
448 };
449 #pragma clang diagnostic pop
450 } // namespace internal
451 } // namespace ndk
452