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