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