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