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