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/Range.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/Range.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/AcousticEchoCanceler.h>
26 #include <aidl/android/hardware/audio/effect/AutomaticGainControlV1.h>
27 #include <aidl/android/hardware/audio/effect/AutomaticGainControlV2.h>
28 #include <aidl/android/hardware/audio/effect/BassBoost.h>
29 #include <aidl/android/hardware/audio/effect/Downmix.h>
30 #include <aidl/android/hardware/audio/effect/DynamicsProcessing.h>
31 #include <aidl/android/hardware/audio/effect/EnvironmentalReverb.h>
32 #include <aidl/android/hardware/audio/effect/Equalizer.h>
33 #include <aidl/android/hardware/audio/effect/HapticGenerator.h>
34 #include <aidl/android/hardware/audio/effect/LoudnessEnhancer.h>
35 #include <aidl/android/hardware/audio/effect/NoiseSuppression.h>
36 #include <aidl/android/hardware/audio/effect/PresetReverb.h>
37 #include <aidl/android/hardware/audio/effect/Range.h>
38 #include <aidl/android/hardware/audio/effect/Spatializer.h>
39 #include <aidl/android/hardware/audio/effect/VendorExtension.h>
40 #include <aidl/android/hardware/audio/effect/Virtualizer.h>
41 #include <aidl/android/hardware/audio/effect/Visualizer.h>
42 #include <aidl/android/hardware/audio/effect/Volume.h>
43 #ifdef BINDER_STABILITY_SUPPORT
44 #include <android/binder_stability.h>
45 #endif  // BINDER_STABILITY_SUPPORT
46 
47 #ifndef __BIONIC__
48 #define __assert2(a,b,c,d) ((void)0)
49 #endif
50 
51 namespace aidl::android::hardware::audio::effect {
52 class VendorExtension;
53 }  // namespace aidl::android::hardware::audio::effect
54 namespace aidl {
55 namespace android {
56 namespace hardware {
57 namespace audio {
58 namespace effect {
59 class Range {
60 public:
61   typedef std::false_type fixed_size;
62   static const char* descriptor;
63 
64   class AcousticEchoCancelerRange {
65   public:
66     typedef std::false_type fixed_size;
67     static const char* descriptor;
68 
69     ::aidl::android::hardware::audio::effect::AcousticEchoCanceler min;
70     ::aidl::android::hardware::audio::effect::AcousticEchoCanceler max;
71 
72     binder_status_t readFromParcel(const AParcel* parcel);
73     binder_status_t writeToParcel(AParcel* parcel) const;
74 
75     inline bool operator==(const AcousticEchoCancelerRange& _rhs) const {
76       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
77     }
78     inline bool operator<(const AcousticEchoCancelerRange& _rhs) const {
79       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
80     }
81     inline bool operator!=(const AcousticEchoCancelerRange& _rhs) const {
82       return !(*this == _rhs);
83     }
84     inline bool operator>(const AcousticEchoCancelerRange& _rhs) const {
85       return _rhs < *this;
86     }
87     inline bool operator>=(const AcousticEchoCancelerRange& _rhs) const {
88       return !(*this < _rhs);
89     }
90     inline bool operator<=(const AcousticEchoCancelerRange& _rhs) const {
91       return !(_rhs < *this);
92     }
93 
94     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()95     inline std::string toString() const {
96       std::ostringstream _aidl_os;
97       _aidl_os << "AcousticEchoCancelerRange{";
98       _aidl_os << "min: " << ::android::internal::ToString(min);
99       _aidl_os << ", max: " << ::android::internal::ToString(max);
100       _aidl_os << "}";
101       return _aidl_os.str();
102     }
103   };
104   class AutomaticGainControlV1Range {
105   public:
106     typedef std::false_type fixed_size;
107     static const char* descriptor;
108 
109     ::aidl::android::hardware::audio::effect::AutomaticGainControlV1 min;
110     ::aidl::android::hardware::audio::effect::AutomaticGainControlV1 max;
111 
112     binder_status_t readFromParcel(const AParcel* parcel);
113     binder_status_t writeToParcel(AParcel* parcel) const;
114 
115     inline bool operator==(const AutomaticGainControlV1Range& _rhs) const {
116       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
117     }
118     inline bool operator<(const AutomaticGainControlV1Range& _rhs) const {
119       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
120     }
121     inline bool operator!=(const AutomaticGainControlV1Range& _rhs) const {
122       return !(*this == _rhs);
123     }
124     inline bool operator>(const AutomaticGainControlV1Range& _rhs) const {
125       return _rhs < *this;
126     }
127     inline bool operator>=(const AutomaticGainControlV1Range& _rhs) const {
128       return !(*this < _rhs);
129     }
130     inline bool operator<=(const AutomaticGainControlV1Range& _rhs) const {
131       return !(_rhs < *this);
132     }
133 
134     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()135     inline std::string toString() const {
136       std::ostringstream _aidl_os;
137       _aidl_os << "AutomaticGainControlV1Range{";
138       _aidl_os << "min: " << ::android::internal::ToString(min);
139       _aidl_os << ", max: " << ::android::internal::ToString(max);
140       _aidl_os << "}";
141       return _aidl_os.str();
142     }
143   };
144   class AutomaticGainControlV2Range {
145   public:
146     typedef std::false_type fixed_size;
147     static const char* descriptor;
148 
149     ::aidl::android::hardware::audio::effect::AutomaticGainControlV2 min;
150     ::aidl::android::hardware::audio::effect::AutomaticGainControlV2 max;
151 
152     binder_status_t readFromParcel(const AParcel* parcel);
153     binder_status_t writeToParcel(AParcel* parcel) const;
154 
155     inline bool operator==(const AutomaticGainControlV2Range& _rhs) const {
156       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
157     }
158     inline bool operator<(const AutomaticGainControlV2Range& _rhs) const {
159       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
160     }
161     inline bool operator!=(const AutomaticGainControlV2Range& _rhs) const {
162       return !(*this == _rhs);
163     }
164     inline bool operator>(const AutomaticGainControlV2Range& _rhs) const {
165       return _rhs < *this;
166     }
167     inline bool operator>=(const AutomaticGainControlV2Range& _rhs) const {
168       return !(*this < _rhs);
169     }
170     inline bool operator<=(const AutomaticGainControlV2Range& _rhs) const {
171       return !(_rhs < *this);
172     }
173 
174     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()175     inline std::string toString() const {
176       std::ostringstream _aidl_os;
177       _aidl_os << "AutomaticGainControlV2Range{";
178       _aidl_os << "min: " << ::android::internal::ToString(min);
179       _aidl_os << ", max: " << ::android::internal::ToString(max);
180       _aidl_os << "}";
181       return _aidl_os.str();
182     }
183   };
184   class BassBoostRange {
185   public:
186     typedef std::false_type fixed_size;
187     static const char* descriptor;
188 
189     ::aidl::android::hardware::audio::effect::BassBoost min;
190     ::aidl::android::hardware::audio::effect::BassBoost max;
191 
192     binder_status_t readFromParcel(const AParcel* parcel);
193     binder_status_t writeToParcel(AParcel* parcel) const;
194 
195     inline bool operator==(const BassBoostRange& _rhs) const {
196       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
197     }
198     inline bool operator<(const BassBoostRange& _rhs) const {
199       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
200     }
201     inline bool operator!=(const BassBoostRange& _rhs) const {
202       return !(*this == _rhs);
203     }
204     inline bool operator>(const BassBoostRange& _rhs) const {
205       return _rhs < *this;
206     }
207     inline bool operator>=(const BassBoostRange& _rhs) const {
208       return !(*this < _rhs);
209     }
210     inline bool operator<=(const BassBoostRange& _rhs) const {
211       return !(_rhs < *this);
212     }
213 
214     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()215     inline std::string toString() const {
216       std::ostringstream _aidl_os;
217       _aidl_os << "BassBoostRange{";
218       _aidl_os << "min: " << ::android::internal::ToString(min);
219       _aidl_os << ", max: " << ::android::internal::ToString(max);
220       _aidl_os << "}";
221       return _aidl_os.str();
222     }
223   };
224   class DownmixRange {
225   public:
226     typedef std::false_type fixed_size;
227     static const char* descriptor;
228 
229     ::aidl::android::hardware::audio::effect::Downmix min;
230     ::aidl::android::hardware::audio::effect::Downmix max;
231 
232     binder_status_t readFromParcel(const AParcel* parcel);
233     binder_status_t writeToParcel(AParcel* parcel) const;
234 
235     inline bool operator==(const DownmixRange& _rhs) const {
236       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
237     }
238     inline bool operator<(const DownmixRange& _rhs) const {
239       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
240     }
241     inline bool operator!=(const DownmixRange& _rhs) const {
242       return !(*this == _rhs);
243     }
244     inline bool operator>(const DownmixRange& _rhs) const {
245       return _rhs < *this;
246     }
247     inline bool operator>=(const DownmixRange& _rhs) const {
248       return !(*this < _rhs);
249     }
250     inline bool operator<=(const DownmixRange& _rhs) const {
251       return !(_rhs < *this);
252     }
253 
254     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()255     inline std::string toString() const {
256       std::ostringstream _aidl_os;
257       _aidl_os << "DownmixRange{";
258       _aidl_os << "min: " << ::android::internal::ToString(min);
259       _aidl_os << ", max: " << ::android::internal::ToString(max);
260       _aidl_os << "}";
261       return _aidl_os.str();
262     }
263   };
264   class DynamicsProcessingRange {
265   public:
266     typedef std::false_type fixed_size;
267     static const char* descriptor;
268 
269     ::aidl::android::hardware::audio::effect::DynamicsProcessing min;
270     ::aidl::android::hardware::audio::effect::DynamicsProcessing max;
271 
272     binder_status_t readFromParcel(const AParcel* parcel);
273     binder_status_t writeToParcel(AParcel* parcel) const;
274 
275     inline bool operator==(const DynamicsProcessingRange& _rhs) const {
276       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
277     }
278     inline bool operator<(const DynamicsProcessingRange& _rhs) const {
279       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
280     }
281     inline bool operator!=(const DynamicsProcessingRange& _rhs) const {
282       return !(*this == _rhs);
283     }
284     inline bool operator>(const DynamicsProcessingRange& _rhs) const {
285       return _rhs < *this;
286     }
287     inline bool operator>=(const DynamicsProcessingRange& _rhs) const {
288       return !(*this < _rhs);
289     }
290     inline bool operator<=(const DynamicsProcessingRange& _rhs) const {
291       return !(_rhs < *this);
292     }
293 
294     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()295     inline std::string toString() const {
296       std::ostringstream _aidl_os;
297       _aidl_os << "DynamicsProcessingRange{";
298       _aidl_os << "min: " << ::android::internal::ToString(min);
299       _aidl_os << ", max: " << ::android::internal::ToString(max);
300       _aidl_os << "}";
301       return _aidl_os.str();
302     }
303   };
304   class EnvironmentalReverbRange {
305   public:
306     typedef std::false_type fixed_size;
307     static const char* descriptor;
308 
309     ::aidl::android::hardware::audio::effect::EnvironmentalReverb min;
310     ::aidl::android::hardware::audio::effect::EnvironmentalReverb max;
311 
312     binder_status_t readFromParcel(const AParcel* parcel);
313     binder_status_t writeToParcel(AParcel* parcel) const;
314 
315     inline bool operator==(const EnvironmentalReverbRange& _rhs) const {
316       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
317     }
318     inline bool operator<(const EnvironmentalReverbRange& _rhs) const {
319       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
320     }
321     inline bool operator!=(const EnvironmentalReverbRange& _rhs) const {
322       return !(*this == _rhs);
323     }
324     inline bool operator>(const EnvironmentalReverbRange& _rhs) const {
325       return _rhs < *this;
326     }
327     inline bool operator>=(const EnvironmentalReverbRange& _rhs) const {
328       return !(*this < _rhs);
329     }
330     inline bool operator<=(const EnvironmentalReverbRange& _rhs) const {
331       return !(_rhs < *this);
332     }
333 
334     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()335     inline std::string toString() const {
336       std::ostringstream _aidl_os;
337       _aidl_os << "EnvironmentalReverbRange{";
338       _aidl_os << "min: " << ::android::internal::ToString(min);
339       _aidl_os << ", max: " << ::android::internal::ToString(max);
340       _aidl_os << "}";
341       return _aidl_os.str();
342     }
343   };
344   class EqualizerRange {
345   public:
346     typedef std::false_type fixed_size;
347     static const char* descriptor;
348 
349     ::aidl::android::hardware::audio::effect::Equalizer min;
350     ::aidl::android::hardware::audio::effect::Equalizer max;
351 
352     binder_status_t readFromParcel(const AParcel* parcel);
353     binder_status_t writeToParcel(AParcel* parcel) const;
354 
355     inline bool operator==(const EqualizerRange& _rhs) const {
356       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
357     }
358     inline bool operator<(const EqualizerRange& _rhs) const {
359       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
360     }
361     inline bool operator!=(const EqualizerRange& _rhs) const {
362       return !(*this == _rhs);
363     }
364     inline bool operator>(const EqualizerRange& _rhs) const {
365       return _rhs < *this;
366     }
367     inline bool operator>=(const EqualizerRange& _rhs) const {
368       return !(*this < _rhs);
369     }
370     inline bool operator<=(const EqualizerRange& _rhs) const {
371       return !(_rhs < *this);
372     }
373 
374     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()375     inline std::string toString() const {
376       std::ostringstream _aidl_os;
377       _aidl_os << "EqualizerRange{";
378       _aidl_os << "min: " << ::android::internal::ToString(min);
379       _aidl_os << ", max: " << ::android::internal::ToString(max);
380       _aidl_os << "}";
381       return _aidl_os.str();
382     }
383   };
384   class HapticGeneratorRange {
385   public:
386     typedef std::false_type fixed_size;
387     static const char* descriptor;
388 
389     ::aidl::android::hardware::audio::effect::HapticGenerator min;
390     ::aidl::android::hardware::audio::effect::HapticGenerator max;
391 
392     binder_status_t readFromParcel(const AParcel* parcel);
393     binder_status_t writeToParcel(AParcel* parcel) const;
394 
395     inline bool operator==(const HapticGeneratorRange& _rhs) const {
396       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
397     }
398     inline bool operator<(const HapticGeneratorRange& _rhs) const {
399       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
400     }
401     inline bool operator!=(const HapticGeneratorRange& _rhs) const {
402       return !(*this == _rhs);
403     }
404     inline bool operator>(const HapticGeneratorRange& _rhs) const {
405       return _rhs < *this;
406     }
407     inline bool operator>=(const HapticGeneratorRange& _rhs) const {
408       return !(*this < _rhs);
409     }
410     inline bool operator<=(const HapticGeneratorRange& _rhs) const {
411       return !(_rhs < *this);
412     }
413 
414     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()415     inline std::string toString() const {
416       std::ostringstream _aidl_os;
417       _aidl_os << "HapticGeneratorRange{";
418       _aidl_os << "min: " << ::android::internal::ToString(min);
419       _aidl_os << ", max: " << ::android::internal::ToString(max);
420       _aidl_os << "}";
421       return _aidl_os.str();
422     }
423   };
424   class LoudnessEnhancerRange {
425   public:
426     typedef std::false_type fixed_size;
427     static const char* descriptor;
428 
429     ::aidl::android::hardware::audio::effect::LoudnessEnhancer min;
430     ::aidl::android::hardware::audio::effect::LoudnessEnhancer max;
431 
432     binder_status_t readFromParcel(const AParcel* parcel);
433     binder_status_t writeToParcel(AParcel* parcel) const;
434 
435     inline bool operator==(const LoudnessEnhancerRange& _rhs) const {
436       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
437     }
438     inline bool operator<(const LoudnessEnhancerRange& _rhs) const {
439       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
440     }
441     inline bool operator!=(const LoudnessEnhancerRange& _rhs) const {
442       return !(*this == _rhs);
443     }
444     inline bool operator>(const LoudnessEnhancerRange& _rhs) const {
445       return _rhs < *this;
446     }
447     inline bool operator>=(const LoudnessEnhancerRange& _rhs) const {
448       return !(*this < _rhs);
449     }
450     inline bool operator<=(const LoudnessEnhancerRange& _rhs) const {
451       return !(_rhs < *this);
452     }
453 
454     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()455     inline std::string toString() const {
456       std::ostringstream _aidl_os;
457       _aidl_os << "LoudnessEnhancerRange{";
458       _aidl_os << "min: " << ::android::internal::ToString(min);
459       _aidl_os << ", max: " << ::android::internal::ToString(max);
460       _aidl_os << "}";
461       return _aidl_os.str();
462     }
463   };
464   class NoiseSuppressionRange {
465   public:
466     typedef std::false_type fixed_size;
467     static const char* descriptor;
468 
469     ::aidl::android::hardware::audio::effect::NoiseSuppression min;
470     ::aidl::android::hardware::audio::effect::NoiseSuppression max;
471 
472     binder_status_t readFromParcel(const AParcel* parcel);
473     binder_status_t writeToParcel(AParcel* parcel) const;
474 
475     inline bool operator==(const NoiseSuppressionRange& _rhs) const {
476       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
477     }
478     inline bool operator<(const NoiseSuppressionRange& _rhs) const {
479       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
480     }
481     inline bool operator!=(const NoiseSuppressionRange& _rhs) const {
482       return !(*this == _rhs);
483     }
484     inline bool operator>(const NoiseSuppressionRange& _rhs) const {
485       return _rhs < *this;
486     }
487     inline bool operator>=(const NoiseSuppressionRange& _rhs) const {
488       return !(*this < _rhs);
489     }
490     inline bool operator<=(const NoiseSuppressionRange& _rhs) const {
491       return !(_rhs < *this);
492     }
493 
494     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()495     inline std::string toString() const {
496       std::ostringstream _aidl_os;
497       _aidl_os << "NoiseSuppressionRange{";
498       _aidl_os << "min: " << ::android::internal::ToString(min);
499       _aidl_os << ", max: " << ::android::internal::ToString(max);
500       _aidl_os << "}";
501       return _aidl_os.str();
502     }
503   };
504   class PresetReverbRange {
505   public:
506     typedef std::false_type fixed_size;
507     static const char* descriptor;
508 
509     ::aidl::android::hardware::audio::effect::PresetReverb min;
510     ::aidl::android::hardware::audio::effect::PresetReverb max;
511 
512     binder_status_t readFromParcel(const AParcel* parcel);
513     binder_status_t writeToParcel(AParcel* parcel) const;
514 
515     inline bool operator==(const PresetReverbRange& _rhs) const {
516       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
517     }
518     inline bool operator<(const PresetReverbRange& _rhs) const {
519       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
520     }
521     inline bool operator!=(const PresetReverbRange& _rhs) const {
522       return !(*this == _rhs);
523     }
524     inline bool operator>(const PresetReverbRange& _rhs) const {
525       return _rhs < *this;
526     }
527     inline bool operator>=(const PresetReverbRange& _rhs) const {
528       return !(*this < _rhs);
529     }
530     inline bool operator<=(const PresetReverbRange& _rhs) const {
531       return !(_rhs < *this);
532     }
533 
534     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()535     inline std::string toString() const {
536       std::ostringstream _aidl_os;
537       _aidl_os << "PresetReverbRange{";
538       _aidl_os << "min: " << ::android::internal::ToString(min);
539       _aidl_os << ", max: " << ::android::internal::ToString(max);
540       _aidl_os << "}";
541       return _aidl_os.str();
542     }
543   };
544   class SpatializerRange {
545   public:
546     typedef std::false_type fixed_size;
547     static const char* descriptor;
548 
549     ::aidl::android::hardware::audio::effect::Spatializer min;
550     ::aidl::android::hardware::audio::effect::Spatializer max;
551 
552     binder_status_t readFromParcel(const AParcel* parcel);
553     binder_status_t writeToParcel(AParcel* parcel) const;
554 
555     inline bool operator==(const SpatializerRange& _rhs) const {
556       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
557     }
558     inline bool operator<(const SpatializerRange& _rhs) const {
559       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
560     }
561     inline bool operator!=(const SpatializerRange& _rhs) const {
562       return !(*this == _rhs);
563     }
564     inline bool operator>(const SpatializerRange& _rhs) const {
565       return _rhs < *this;
566     }
567     inline bool operator>=(const SpatializerRange& _rhs) const {
568       return !(*this < _rhs);
569     }
570     inline bool operator<=(const SpatializerRange& _rhs) const {
571       return !(_rhs < *this);
572     }
573 
574     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()575     inline std::string toString() const {
576       std::ostringstream _aidl_os;
577       _aidl_os << "SpatializerRange{";
578       _aidl_os << "min: " << ::android::internal::ToString(min);
579       _aidl_os << ", max: " << ::android::internal::ToString(max);
580       _aidl_os << "}";
581       return _aidl_os.str();
582     }
583   };
584   class VendorExtensionRange {
585   public:
586     typedef std::false_type fixed_size;
587     static const char* descriptor;
588 
589     ::aidl::android::hardware::audio::effect::VendorExtension min;
590     ::aidl::android::hardware::audio::effect::VendorExtension max;
591 
592     binder_status_t readFromParcel(const AParcel* parcel);
593     binder_status_t writeToParcel(AParcel* parcel) const;
594 
595     inline bool operator==(const VendorExtensionRange& _rhs) const {
596       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
597     }
598     inline bool operator<(const VendorExtensionRange& _rhs) const {
599       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
600     }
601     inline bool operator!=(const VendorExtensionRange& _rhs) const {
602       return !(*this == _rhs);
603     }
604     inline bool operator>(const VendorExtensionRange& _rhs) const {
605       return _rhs < *this;
606     }
607     inline bool operator>=(const VendorExtensionRange& _rhs) const {
608       return !(*this < _rhs);
609     }
610     inline bool operator<=(const VendorExtensionRange& _rhs) const {
611       return !(_rhs < *this);
612     }
613 
614     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()615     inline std::string toString() const {
616       std::ostringstream _aidl_os;
617       _aidl_os << "VendorExtensionRange{";
618       _aidl_os << "min: " << ::android::internal::ToString(min);
619       _aidl_os << ", max: " << ::android::internal::ToString(max);
620       _aidl_os << "}";
621       return _aidl_os.str();
622     }
623   };
624   class VirtualizerRange {
625   public:
626     typedef std::false_type fixed_size;
627     static const char* descriptor;
628 
629     ::aidl::android::hardware::audio::effect::Virtualizer min;
630     ::aidl::android::hardware::audio::effect::Virtualizer max;
631 
632     binder_status_t readFromParcel(const AParcel* parcel);
633     binder_status_t writeToParcel(AParcel* parcel) const;
634 
635     inline bool operator==(const VirtualizerRange& _rhs) const {
636       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
637     }
638     inline bool operator<(const VirtualizerRange& _rhs) const {
639       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
640     }
641     inline bool operator!=(const VirtualizerRange& _rhs) const {
642       return !(*this == _rhs);
643     }
644     inline bool operator>(const VirtualizerRange& _rhs) const {
645       return _rhs < *this;
646     }
647     inline bool operator>=(const VirtualizerRange& _rhs) const {
648       return !(*this < _rhs);
649     }
650     inline bool operator<=(const VirtualizerRange& _rhs) const {
651       return !(_rhs < *this);
652     }
653 
654     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()655     inline std::string toString() const {
656       std::ostringstream _aidl_os;
657       _aidl_os << "VirtualizerRange{";
658       _aidl_os << "min: " << ::android::internal::ToString(min);
659       _aidl_os << ", max: " << ::android::internal::ToString(max);
660       _aidl_os << "}";
661       return _aidl_os.str();
662     }
663   };
664   class VisualizerRange {
665   public:
666     typedef std::false_type fixed_size;
667     static const char* descriptor;
668 
669     ::aidl::android::hardware::audio::effect::Visualizer min;
670     ::aidl::android::hardware::audio::effect::Visualizer max;
671 
672     binder_status_t readFromParcel(const AParcel* parcel);
673     binder_status_t writeToParcel(AParcel* parcel) const;
674 
675     inline bool operator==(const VisualizerRange& _rhs) const {
676       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
677     }
678     inline bool operator<(const VisualizerRange& _rhs) const {
679       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
680     }
681     inline bool operator!=(const VisualizerRange& _rhs) const {
682       return !(*this == _rhs);
683     }
684     inline bool operator>(const VisualizerRange& _rhs) const {
685       return _rhs < *this;
686     }
687     inline bool operator>=(const VisualizerRange& _rhs) const {
688       return !(*this < _rhs);
689     }
690     inline bool operator<=(const VisualizerRange& _rhs) const {
691       return !(_rhs < *this);
692     }
693 
694     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()695     inline std::string toString() const {
696       std::ostringstream _aidl_os;
697       _aidl_os << "VisualizerRange{";
698       _aidl_os << "min: " << ::android::internal::ToString(min);
699       _aidl_os << ", max: " << ::android::internal::ToString(max);
700       _aidl_os << "}";
701       return _aidl_os.str();
702     }
703   };
704   class VolumeRange {
705   public:
706     typedef std::false_type fixed_size;
707     static const char* descriptor;
708 
709     ::aidl::android::hardware::audio::effect::Volume min;
710     ::aidl::android::hardware::audio::effect::Volume max;
711 
712     binder_status_t readFromParcel(const AParcel* parcel);
713     binder_status_t writeToParcel(AParcel* parcel) const;
714 
715     inline bool operator==(const VolumeRange& _rhs) const {
716       return std::tie(min, max) == std::tie(_rhs.min, _rhs.max);
717     }
718     inline bool operator<(const VolumeRange& _rhs) const {
719       return std::tie(min, max) < std::tie(_rhs.min, _rhs.max);
720     }
721     inline bool operator!=(const VolumeRange& _rhs) const {
722       return !(*this == _rhs);
723     }
724     inline bool operator>(const VolumeRange& _rhs) const {
725       return _rhs < *this;
726     }
727     inline bool operator>=(const VolumeRange& _rhs) const {
728       return !(*this < _rhs);
729     }
730     inline bool operator<=(const VolumeRange& _rhs) const {
731       return !(_rhs < *this);
732     }
733 
734     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()735     inline std::string toString() const {
736       std::ostringstream _aidl_os;
737       _aidl_os << "VolumeRange{";
738       _aidl_os << "min: " << ::android::internal::ToString(min);
739       _aidl_os << ", max: " << ::android::internal::ToString(max);
740       _aidl_os << "}";
741       return _aidl_os.str();
742     }
743   };
744   enum class Tag : int32_t {
745     vendorExtension = 0,
746     acousticEchoCanceler = 1,
747     automaticGainControlV1 = 2,
748     automaticGainControlV2 = 3,
749     bassBoost = 4,
750     downmix = 5,
751     dynamicsProcessing = 6,
752     environmentalReverb = 7,
753     equalizer = 8,
754     hapticGenerator = 9,
755     loudnessEnhancer = 10,
756     noiseSuppression = 11,
757     presetReverb = 12,
758     virtualizer = 13,
759     visualizer = 14,
760     volume = 15,
761     spatializer = 16,
762   };
763 
764   // Expose tag symbols for legacy code
765   static const inline Tag vendorExtension = Tag::vendorExtension;
766   static const inline Tag acousticEchoCanceler = Tag::acousticEchoCanceler;
767   static const inline Tag automaticGainControlV1 = Tag::automaticGainControlV1;
768   static const inline Tag automaticGainControlV2 = Tag::automaticGainControlV2;
769   static const inline Tag bassBoost = Tag::bassBoost;
770   static const inline Tag downmix = Tag::downmix;
771   static const inline Tag dynamicsProcessing = Tag::dynamicsProcessing;
772   static const inline Tag environmentalReverb = Tag::environmentalReverb;
773   static const inline Tag equalizer = Tag::equalizer;
774   static const inline Tag hapticGenerator = Tag::hapticGenerator;
775   static const inline Tag loudnessEnhancer = Tag::loudnessEnhancer;
776   static const inline Tag noiseSuppression = Tag::noiseSuppression;
777   static const inline Tag presetReverb = Tag::presetReverb;
778   static const inline Tag virtualizer = Tag::virtualizer;
779   static const inline Tag visualizer = Tag::visualizer;
780   static const inline Tag volume = Tag::volume;
781   static const inline Tag spatializer = Tag::spatializer;
782 
783   template<typename _Tp>
784   static constexpr bool _not_self = !std::is_same_v<std::remove_cv_t<std::remove_reference_t<_Tp>>, Range>;
785 
Range()786   Range() : _value(std::in_place_index<static_cast<size_t>(vendorExtension)>, std::vector<::aidl::android::hardware::audio::effect::Range::VendorExtensionRange>({})) { }
787 
788   template <typename _Tp, typename = std::enable_if_t<_not_self<_Tp>>>
789   // NOLINTNEXTLINE(google-explicit-constructor)
Range(_Tp && _arg)790   constexpr Range(_Tp&& _arg)
791       : _value(std::forward<_Tp>(_arg)) {}
792 
793   template <size_t _Np, typename... _Tp>
Range(std::in_place_index_t<_Np>,_Tp &&..._args)794   constexpr explicit Range(std::in_place_index_t<_Np>, _Tp&&... _args)
795       : _value(std::in_place_index<_Np>, std::forward<_Tp>(_args)...) {}
796 
797   template <Tag _tag, typename... _Tp>
make(_Tp &&..._args)798   static Range make(_Tp&&... _args) {
799     return Range(std::in_place_index<static_cast<size_t>(_tag)>, std::forward<_Tp>(_args)...);
800   }
801 
802   template <Tag _tag, typename _Tp, typename... _Up>
make(std::initializer_list<_Tp> _il,_Up &&..._args)803   static Range make(std::initializer_list<_Tp> _il, _Up&&... _args) {
804     return Range(std::in_place_index<static_cast<size_t>(_tag)>, std::move(_il), std::forward<_Up>(_args)...);
805   }
806 
getTag()807   Tag getTag() const {
808     return static_cast<Tag>(_value.index());
809   }
810 
811   template <Tag _tag>
get()812   const auto& get() const {
813     if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
814     return std::get<static_cast<size_t>(_tag)>(_value);
815   }
816 
817   template <Tag _tag>
get()818   auto& get() {
819     if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
820     return std::get<static_cast<size_t>(_tag)>(_value);
821   }
822 
823   template <Tag _tag, typename... _Tp>
set(_Tp &&..._args)824   void set(_Tp&&... _args) {
825     _value.emplace<static_cast<size_t>(_tag)>(std::forward<_Tp>(_args)...);
826   }
827 
828   binder_status_t readFromParcel(const AParcel* _parcel);
829   binder_status_t writeToParcel(AParcel* _parcel) const;
830 
831   inline bool operator==(const Range& _rhs) const {
832     return _value == _rhs._value;
833   }
834   inline bool operator<(const Range& _rhs) const {
835     return _value < _rhs._value;
836   }
837   inline bool operator!=(const Range& _rhs) const {
838     return !(*this == _rhs);
839   }
840   inline bool operator>(const Range& _rhs) const {
841     return _rhs < *this;
842   }
843   inline bool operator>=(const Range& _rhs) const {
844     return !(*this < _rhs);
845   }
846   inline bool operator<=(const Range& _rhs) const {
847     return !(_rhs < *this);
848   }
849 
850   static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()851   inline std::string toString() const {
852     std::ostringstream os;
853     os << "Range{";
854     switch (getTag()) {
855     case vendorExtension: os << "vendorExtension: " << ::android::internal::ToString(get<vendorExtension>()); break;
856     case acousticEchoCanceler: os << "acousticEchoCanceler: " << ::android::internal::ToString(get<acousticEchoCanceler>()); break;
857     case automaticGainControlV1: os << "automaticGainControlV1: " << ::android::internal::ToString(get<automaticGainControlV1>()); break;
858     case automaticGainControlV2: os << "automaticGainControlV2: " << ::android::internal::ToString(get<automaticGainControlV2>()); break;
859     case bassBoost: os << "bassBoost: " << ::android::internal::ToString(get<bassBoost>()); break;
860     case downmix: os << "downmix: " << ::android::internal::ToString(get<downmix>()); break;
861     case dynamicsProcessing: os << "dynamicsProcessing: " << ::android::internal::ToString(get<dynamicsProcessing>()); break;
862     case environmentalReverb: os << "environmentalReverb: " << ::android::internal::ToString(get<environmentalReverb>()); break;
863     case equalizer: os << "equalizer: " << ::android::internal::ToString(get<equalizer>()); break;
864     case hapticGenerator: os << "hapticGenerator: " << ::android::internal::ToString(get<hapticGenerator>()); break;
865     case loudnessEnhancer: os << "loudnessEnhancer: " << ::android::internal::ToString(get<loudnessEnhancer>()); break;
866     case noiseSuppression: os << "noiseSuppression: " << ::android::internal::ToString(get<noiseSuppression>()); break;
867     case presetReverb: os << "presetReverb: " << ::android::internal::ToString(get<presetReverb>()); break;
868     case virtualizer: os << "virtualizer: " << ::android::internal::ToString(get<virtualizer>()); break;
869     case visualizer: os << "visualizer: " << ::android::internal::ToString(get<visualizer>()); break;
870     case volume: os << "volume: " << ::android::internal::ToString(get<volume>()); break;
871     case spatializer: os << "spatializer: " << ::android::internal::ToString(get<spatializer>()); break;
872     }
873     os << "}";
874     return os.str();
875   }
876 private:
877   std::variant<std::vector<::aidl::android::hardware::audio::effect::Range::VendorExtensionRange>, std::vector<::aidl::android::hardware::audio::effect::Range::AcousticEchoCancelerRange>, std::vector<::aidl::android::hardware::audio::effect::Range::AutomaticGainControlV1Range>, std::vector<::aidl::android::hardware::audio::effect::Range::AutomaticGainControlV2Range>, std::vector<::aidl::android::hardware::audio::effect::Range::BassBoostRange>, std::vector<::aidl::android::hardware::audio::effect::Range::DownmixRange>, std::vector<::aidl::android::hardware::audio::effect::Range::DynamicsProcessingRange>, std::vector<::aidl::android::hardware::audio::effect::Range::EnvironmentalReverbRange>, std::vector<::aidl::android::hardware::audio::effect::Range::EqualizerRange>, std::vector<::aidl::android::hardware::audio::effect::Range::HapticGeneratorRange>, std::vector<::aidl::android::hardware::audio::effect::Range::LoudnessEnhancerRange>, std::vector<::aidl::android::hardware::audio::effect::Range::NoiseSuppressionRange>, std::vector<::aidl::android::hardware::audio::effect::Range::PresetReverbRange>, std::vector<::aidl::android::hardware::audio::effect::Range::VirtualizerRange>, std::vector<::aidl::android::hardware::audio::effect::Range::VisualizerRange>, std::vector<::aidl::android::hardware::audio::effect::Range::VolumeRange>, std::vector<::aidl::android::hardware::audio::effect::Range::SpatializerRange>> _value;
878 };
879 }  // namespace effect
880 }  // namespace audio
881 }  // namespace hardware
882 }  // namespace android
883 }  // namespace aidl
884 namespace aidl {
885 namespace android {
886 namespace hardware {
887 namespace audio {
888 namespace effect {
toString(Range::Tag val)889 [[nodiscard]] static inline std::string toString(Range::Tag val) {
890   switch(val) {
891   case Range::Tag::vendorExtension:
892     return "vendorExtension";
893   case Range::Tag::acousticEchoCanceler:
894     return "acousticEchoCanceler";
895   case Range::Tag::automaticGainControlV1:
896     return "automaticGainControlV1";
897   case Range::Tag::automaticGainControlV2:
898     return "automaticGainControlV2";
899   case Range::Tag::bassBoost:
900     return "bassBoost";
901   case Range::Tag::downmix:
902     return "downmix";
903   case Range::Tag::dynamicsProcessing:
904     return "dynamicsProcessing";
905   case Range::Tag::environmentalReverb:
906     return "environmentalReverb";
907   case Range::Tag::equalizer:
908     return "equalizer";
909   case Range::Tag::hapticGenerator:
910     return "hapticGenerator";
911   case Range::Tag::loudnessEnhancer:
912     return "loudnessEnhancer";
913   case Range::Tag::noiseSuppression:
914     return "noiseSuppression";
915   case Range::Tag::presetReverb:
916     return "presetReverb";
917   case Range::Tag::virtualizer:
918     return "virtualizer";
919   case Range::Tag::visualizer:
920     return "visualizer";
921   case Range::Tag::volume:
922     return "volume";
923   case Range::Tag::spatializer:
924     return "spatializer";
925   default:
926     return std::to_string(static_cast<int32_t>(val));
927   }
928 }
929 }  // namespace effect
930 }  // namespace audio
931 }  // namespace hardware
932 }  // namespace android
933 }  // namespace aidl
934 namespace ndk {
935 namespace internal {
936 #pragma clang diagnostic push
937 #pragma clang diagnostic ignored "-Wc++17-extensions"
938 template <>
939 constexpr inline std::array<aidl::android::hardware::audio::effect::Range::Tag, 17> enum_values<aidl::android::hardware::audio::effect::Range::Tag> = {
940   aidl::android::hardware::audio::effect::Range::Tag::vendorExtension,
941   aidl::android::hardware::audio::effect::Range::Tag::acousticEchoCanceler,
942   aidl::android::hardware::audio::effect::Range::Tag::automaticGainControlV1,
943   aidl::android::hardware::audio::effect::Range::Tag::automaticGainControlV2,
944   aidl::android::hardware::audio::effect::Range::Tag::bassBoost,
945   aidl::android::hardware::audio::effect::Range::Tag::downmix,
946   aidl::android::hardware::audio::effect::Range::Tag::dynamicsProcessing,
947   aidl::android::hardware::audio::effect::Range::Tag::environmentalReverb,
948   aidl::android::hardware::audio::effect::Range::Tag::equalizer,
949   aidl::android::hardware::audio::effect::Range::Tag::hapticGenerator,
950   aidl::android::hardware::audio::effect::Range::Tag::loudnessEnhancer,
951   aidl::android::hardware::audio::effect::Range::Tag::noiseSuppression,
952   aidl::android::hardware::audio::effect::Range::Tag::presetReverb,
953   aidl::android::hardware::audio::effect::Range::Tag::virtualizer,
954   aidl::android::hardware::audio::effect::Range::Tag::visualizer,
955   aidl::android::hardware::audio::effect::Range::Tag::volume,
956   aidl::android::hardware::audio::effect::Range::Tag::spatializer,
957 };
958 #pragma clang diagnostic pop
959 }  // namespace internal
960 }  // namespace ndk
961