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/PresetReverb.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/PresetReverb.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/PresetReverb.h>
26 #include <aidl/android/hardware/audio/effect/VendorExtension.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 PresetReverb {
44 public:
45   typedef std::false_type fixed_size;
46   static const char* descriptor;
47 
48   enum class Presets : int32_t {
49     NONE = 0,
50     SMALLROOM = 1,
51     MEDIUMROOM = 2,
52     LARGEROOM = 3,
53     MEDIUMHALL = 4,
54     LARGEHALL = 5,
55     PLATE = 6,
56   };
57 
58   enum class Tag : int32_t {
59     vendor = 0,
60     supportedPresets = 1,
61     preset = 2,
62   };
63 
64   class Id {
65   public:
66     typedef std::false_type fixed_size;
67     static const char* descriptor;
68 
69     enum class Tag : int32_t {
70       vendorExtensionTag = 0,
71       commonTag = 1,
72     };
73 
74     // Expose tag symbols for legacy code
75     static const inline Tag vendorExtensionTag = Tag::vendorExtensionTag;
76     static const inline Tag commonTag = Tag::commonTag;
77 
78     template<typename _Tp>
79     static constexpr bool _not_self = !std::is_same_v<std::remove_cv_t<std::remove_reference_t<_Tp>>, Id>;
80 
Id()81     Id() : _value(std::in_place_index<static_cast<size_t>(vendorExtensionTag)>, ::aidl::android::hardware::audio::effect::VendorExtension()) { }
82 
83     template <typename _Tp, typename = std::enable_if_t<_not_self<_Tp>>>
84     // NOLINTNEXTLINE(google-explicit-constructor)
Id(_Tp && _arg)85     constexpr Id(_Tp&& _arg)
86         : _value(std::forward<_Tp>(_arg)) {}
87 
88     template <size_t _Np, typename... _Tp>
Id(std::in_place_index_t<_Np>,_Tp &&..._args)89     constexpr explicit Id(std::in_place_index_t<_Np>, _Tp&&... _args)
90         : _value(std::in_place_index<_Np>, std::forward<_Tp>(_args)...) {}
91 
92     template <Tag _tag, typename... _Tp>
make(_Tp &&..._args)93     static Id make(_Tp&&... _args) {
94       return Id(std::in_place_index<static_cast<size_t>(_tag)>, std::forward<_Tp>(_args)...);
95     }
96 
97     template <Tag _tag, typename _Tp, typename... _Up>
make(std::initializer_list<_Tp> _il,_Up &&..._args)98     static Id make(std::initializer_list<_Tp> _il, _Up&&... _args) {
99       return Id(std::in_place_index<static_cast<size_t>(_tag)>, std::move(_il), std::forward<_Up>(_args)...);
100     }
101 
getTag()102     Tag getTag() const {
103       return static_cast<Tag>(_value.index());
104     }
105 
106     template <Tag _tag>
get()107     const auto& get() const {
108       if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
109       return std::get<static_cast<size_t>(_tag)>(_value);
110     }
111 
112     template <Tag _tag>
get()113     auto& get() {
114       if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
115       return std::get<static_cast<size_t>(_tag)>(_value);
116     }
117 
118     template <Tag _tag, typename... _Tp>
set(_Tp &&..._args)119     void set(_Tp&&... _args) {
120       _value.emplace<static_cast<size_t>(_tag)>(std::forward<_Tp>(_args)...);
121     }
122 
123     binder_status_t readFromParcel(const AParcel* _parcel);
124     binder_status_t writeToParcel(AParcel* _parcel) const;
125 
126     inline bool operator==(const Id& _rhs) const {
127       return _value == _rhs._value;
128     }
129     inline bool operator<(const Id& _rhs) const {
130       return _value < _rhs._value;
131     }
132     inline bool operator!=(const Id& _rhs) const {
133       return !(*this == _rhs);
134     }
135     inline bool operator>(const Id& _rhs) const {
136       return _rhs < *this;
137     }
138     inline bool operator>=(const Id& _rhs) const {
139       return !(*this < _rhs);
140     }
141     inline bool operator<=(const Id& _rhs) const {
142       return !(_rhs < *this);
143     }
144 
145     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()146     inline std::string toString() const {
147       std::ostringstream os;
148       os << "Id{";
149       switch (getTag()) {
150       case vendorExtensionTag: os << "vendorExtensionTag: " << ::android::internal::ToString(get<vendorExtensionTag>()); break;
151       case commonTag: os << "commonTag: " << ::android::internal::ToString(get<commonTag>()); break;
152       }
153       os << "}";
154       return os.str();
155     }
156   private:
157     std::variant<::aidl::android::hardware::audio::effect::VendorExtension, ::aidl::android::hardware::audio::effect::PresetReverb::Tag> _value;
158   };
159   // Expose tag symbols for legacy code
160   static const inline Tag vendor = Tag::vendor;
161   static const inline Tag supportedPresets = Tag::supportedPresets;
162   static const inline Tag preset = Tag::preset;
163 
164   template<typename _Tp>
165   static constexpr bool _not_self = !std::is_same_v<std::remove_cv_t<std::remove_reference_t<_Tp>>, PresetReverb>;
166 
PresetReverb()167   PresetReverb() : _value(std::in_place_index<static_cast<size_t>(vendor)>, ::aidl::android::hardware::audio::effect::VendorExtension()) { }
168 
169   template <typename _Tp, typename = std::enable_if_t<_not_self<_Tp>>>
170   // NOLINTNEXTLINE(google-explicit-constructor)
PresetReverb(_Tp && _arg)171   constexpr PresetReverb(_Tp&& _arg)
172       : _value(std::forward<_Tp>(_arg)) {}
173 
174   template <size_t _Np, typename... _Tp>
PresetReverb(std::in_place_index_t<_Np>,_Tp &&..._args)175   constexpr explicit PresetReverb(std::in_place_index_t<_Np>, _Tp&&... _args)
176       : _value(std::in_place_index<_Np>, std::forward<_Tp>(_args)...) {}
177 
178   template <Tag _tag, typename... _Tp>
make(_Tp &&..._args)179   static PresetReverb make(_Tp&&... _args) {
180     return PresetReverb(std::in_place_index<static_cast<size_t>(_tag)>, std::forward<_Tp>(_args)...);
181   }
182 
183   template <Tag _tag, typename _Tp, typename... _Up>
make(std::initializer_list<_Tp> _il,_Up &&..._args)184   static PresetReverb make(std::initializer_list<_Tp> _il, _Up&&... _args) {
185     return PresetReverb(std::in_place_index<static_cast<size_t>(_tag)>, std::move(_il), std::forward<_Up>(_args)...);
186   }
187 
getTag()188   Tag getTag() const {
189     return static_cast<Tag>(_value.index());
190   }
191 
192   template <Tag _tag>
get()193   const auto& get() const {
194     if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
195     return std::get<static_cast<size_t>(_tag)>(_value);
196   }
197 
198   template <Tag _tag>
get()199   auto& get() {
200     if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
201     return std::get<static_cast<size_t>(_tag)>(_value);
202   }
203 
204   template <Tag _tag, typename... _Tp>
set(_Tp &&..._args)205   void set(_Tp&&... _args) {
206     _value.emplace<static_cast<size_t>(_tag)>(std::forward<_Tp>(_args)...);
207   }
208 
209   binder_status_t readFromParcel(const AParcel* _parcel);
210   binder_status_t writeToParcel(AParcel* _parcel) const;
211 
212   inline bool operator==(const PresetReverb& _rhs) const {
213     return _value == _rhs._value;
214   }
215   inline bool operator<(const PresetReverb& _rhs) const {
216     return _value < _rhs._value;
217   }
218   inline bool operator!=(const PresetReverb& _rhs) const {
219     return !(*this == _rhs);
220   }
221   inline bool operator>(const PresetReverb& _rhs) const {
222     return _rhs < *this;
223   }
224   inline bool operator>=(const PresetReverb& _rhs) const {
225     return !(*this < _rhs);
226   }
227   inline bool operator<=(const PresetReverb& _rhs) const {
228     return !(_rhs < *this);
229   }
230 
231   static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()232   inline std::string toString() const {
233     std::ostringstream os;
234     os << "PresetReverb{";
235     switch (getTag()) {
236     case vendor: os << "vendor: " << ::android::internal::ToString(get<vendor>()); break;
237     case supportedPresets: os << "supportedPresets: " << ::android::internal::ToString(get<supportedPresets>()); break;
238     case preset: os << "preset: " << ::android::internal::ToString(get<preset>()); break;
239     }
240     os << "}";
241     return os.str();
242   }
243 private:
244   std::variant<::aidl::android::hardware::audio::effect::VendorExtension, std::vector<::aidl::android::hardware::audio::effect::PresetReverb::Presets>, ::aidl::android::hardware::audio::effect::PresetReverb::Presets> _value;
245 };
246 }  // namespace effect
247 }  // namespace audio
248 }  // namespace hardware
249 }  // namespace android
250 }  // namespace aidl
251 namespace aidl {
252 namespace android {
253 namespace hardware {
254 namespace audio {
255 namespace effect {
toString(PresetReverb::Presets val)256 [[nodiscard]] static inline std::string toString(PresetReverb::Presets val) {
257   switch(val) {
258   case PresetReverb::Presets::NONE:
259     return "NONE";
260   case PresetReverb::Presets::SMALLROOM:
261     return "SMALLROOM";
262   case PresetReverb::Presets::MEDIUMROOM:
263     return "MEDIUMROOM";
264   case PresetReverb::Presets::LARGEROOM:
265     return "LARGEROOM";
266   case PresetReverb::Presets::MEDIUMHALL:
267     return "MEDIUMHALL";
268   case PresetReverb::Presets::LARGEHALL:
269     return "LARGEHALL";
270   case PresetReverb::Presets::PLATE:
271     return "PLATE";
272   default:
273     return std::to_string(static_cast<int32_t>(val));
274   }
275 }
276 }  // namespace effect
277 }  // namespace audio
278 }  // namespace hardware
279 }  // namespace android
280 }  // namespace aidl
281 namespace ndk {
282 namespace internal {
283 #pragma clang diagnostic push
284 #pragma clang diagnostic ignored "-Wc++17-extensions"
285 template <>
286 constexpr inline std::array<aidl::android::hardware::audio::effect::PresetReverb::Presets, 7> enum_values<aidl::android::hardware::audio::effect::PresetReverb::Presets> = {
287   aidl::android::hardware::audio::effect::PresetReverb::Presets::NONE,
288   aidl::android::hardware::audio::effect::PresetReverb::Presets::SMALLROOM,
289   aidl::android::hardware::audio::effect::PresetReverb::Presets::MEDIUMROOM,
290   aidl::android::hardware::audio::effect::PresetReverb::Presets::LARGEROOM,
291   aidl::android::hardware::audio::effect::PresetReverb::Presets::MEDIUMHALL,
292   aidl::android::hardware::audio::effect::PresetReverb::Presets::LARGEHALL,
293   aidl::android::hardware::audio::effect::PresetReverb::Presets::PLATE,
294 };
295 #pragma clang diagnostic pop
296 }  // namespace internal
297 }  // namespace ndk
298 namespace aidl {
299 namespace android {
300 namespace hardware {
301 namespace audio {
302 namespace effect {
toString(PresetReverb::Id::Tag val)303 [[nodiscard]] static inline std::string toString(PresetReverb::Id::Tag val) {
304   switch(val) {
305   case PresetReverb::Id::Tag::vendorExtensionTag:
306     return "vendorExtensionTag";
307   case PresetReverb::Id::Tag::commonTag:
308     return "commonTag";
309   default:
310     return std::to_string(static_cast<int32_t>(val));
311   }
312 }
313 }  // namespace effect
314 }  // namespace audio
315 }  // namespace hardware
316 }  // namespace android
317 }  // namespace aidl
318 namespace ndk {
319 namespace internal {
320 #pragma clang diagnostic push
321 #pragma clang diagnostic ignored "-Wc++17-extensions"
322 template <>
323 constexpr inline std::array<aidl::android::hardware::audio::effect::PresetReverb::Id::Tag, 2> enum_values<aidl::android::hardware::audio::effect::PresetReverb::Id::Tag> = {
324   aidl::android::hardware::audio::effect::PresetReverb::Id::Tag::vendorExtensionTag,
325   aidl::android::hardware::audio::effect::PresetReverb::Id::Tag::commonTag,
326 };
327 #pragma clang diagnostic pop
328 }  // namespace internal
329 }  // namespace ndk
330 namespace aidl {
331 namespace android {
332 namespace hardware {
333 namespace audio {
334 namespace effect {
toString(PresetReverb::Tag val)335 [[nodiscard]] static inline std::string toString(PresetReverb::Tag val) {
336   switch(val) {
337   case PresetReverb::Tag::vendor:
338     return "vendor";
339   case PresetReverb::Tag::supportedPresets:
340     return "supportedPresets";
341   case PresetReverb::Tag::preset:
342     return "preset";
343   default:
344     return std::to_string(static_cast<int32_t>(val));
345   }
346 }
347 }  // namespace effect
348 }  // namespace audio
349 }  // namespace hardware
350 }  // namespace android
351 }  // namespace aidl
352 namespace ndk {
353 namespace internal {
354 #pragma clang diagnostic push
355 #pragma clang diagnostic ignored "-Wc++17-extensions"
356 template <>
357 constexpr inline std::array<aidl::android::hardware::audio::effect::PresetReverb::Tag, 3> enum_values<aidl::android::hardware::audio::effect::PresetReverb::Tag> = {
358   aidl::android::hardware::audio::effect::PresetReverb::Tag::vendor,
359   aidl::android::hardware::audio::effect::PresetReverb::Tag::supportedPresets,
360   aidl::android::hardware::audio::effect::PresetReverb::Tag::preset,
361 };
362 #pragma clang diagnostic pop
363 }  // namespace internal
364 }  // namespace ndk
365