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/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/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/2 --previous_hash f8d74c149f04e76b6d622db2bd8e465dae24b08c --ninja -d out/soong/.intermediates/hardware/interfaces/tv/tuner/aidl/android.hardware.tv.tuner-V3-ndk-source/gen/staging/android/hardware/tv/tuner/FrontendSettings.cpp.d -h out/soong/.intermediates/hardware/interfaces/tv/tuner/aidl/android.hardware.tv.tuner-V3-ndk-source/gen/include/staging -o out/soong/.intermediates/hardware/interfaces/tv/tuner/aidl/android.hardware.tv.tuner-V3-ndk-source/gen/staging -Nhardware/interfaces/tv/tuner/aidl hardware/interfaces/tv/tuner/aidl/android/hardware/tv/tuner/FrontendSettings.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/tv/tuner/FrontendAnalogSettings.h>
26 #include <aidl/android/hardware/tv/tuner/FrontendAtsc3Settings.h>
27 #include <aidl/android/hardware/tv/tuner/FrontendAtscSettings.h>
28 #include <aidl/android/hardware/tv/tuner/FrontendDtmbSettings.h>
29 #include <aidl/android/hardware/tv/tuner/FrontendDvbcSettings.h>
30 #include <aidl/android/hardware/tv/tuner/FrontendDvbsSettings.h>
31 #include <aidl/android/hardware/tv/tuner/FrontendDvbtSettings.h>
32 #include <aidl/android/hardware/tv/tuner/FrontendIptvSettings.h>
33 #include <aidl/android/hardware/tv/tuner/FrontendIsdbs3Settings.h>
34 #include <aidl/android/hardware/tv/tuner/FrontendIsdbsSettings.h>
35 #include <aidl/android/hardware/tv/tuner/FrontendIsdbtSettings.h>
36 #ifdef BINDER_STABILITY_SUPPORT
37 #include <android/binder_stability.h>
38 #endif // BINDER_STABILITY_SUPPORT
39
40 #ifndef __BIONIC__
41 #define __assert2(a,b,c,d) ((void)0)
42 #endif
43
44 namespace aidl::android::hardware::tv::tuner {
45 class FrontendAnalogSettings;
46 class FrontendAtsc3Settings;
47 class FrontendAtscSettings;
48 class FrontendDtmbSettings;
49 class FrontendDvbcSettings;
50 class FrontendDvbsSettings;
51 class FrontendDvbtSettings;
52 class FrontendIptvSettings;
53 class FrontendIsdbs3Settings;
54 class FrontendIsdbsSettings;
55 class FrontendIsdbtSettings;
56 } // namespace aidl::android::hardware::tv::tuner
57 namespace aidl {
58 namespace android {
59 namespace hardware {
60 namespace tv {
61 namespace tuner {
62 class FrontendSettings {
63 public:
64 typedef std::false_type fixed_size;
65 static const char* descriptor;
66
67 enum class Tag : int32_t {
68 analog = 0,
69 atsc = 1,
70 atsc3 = 2,
71 dvbs = 3,
72 dvbc = 4,
73 dvbt = 5,
74 isdbs = 6,
75 isdbs3 = 7,
76 isdbt = 8,
77 dtmb = 9,
78 iptv = 10,
79 };
80
81 // Expose tag symbols for legacy code
82 static const inline Tag analog = Tag::analog;
83 static const inline Tag atsc = Tag::atsc;
84 static const inline Tag atsc3 = Tag::atsc3;
85 static const inline Tag dvbs = Tag::dvbs;
86 static const inline Tag dvbc = Tag::dvbc;
87 static const inline Tag dvbt = Tag::dvbt;
88 static const inline Tag isdbs = Tag::isdbs;
89 static const inline Tag isdbs3 = Tag::isdbs3;
90 static const inline Tag isdbt = Tag::isdbt;
91 static const inline Tag dtmb = Tag::dtmb;
92 static const inline Tag iptv = Tag::iptv;
93
94 template<typename _Tp>
95 static constexpr bool _not_self = !std::is_same_v<std::remove_cv_t<std::remove_reference_t<_Tp>>, FrontendSettings>;
96
FrontendSettings()97 FrontendSettings() : _value(std::in_place_index<static_cast<size_t>(analog)>, ::aidl::android::hardware::tv::tuner::FrontendAnalogSettings()) { }
98
99 template <typename _Tp, typename = std::enable_if_t<_not_self<_Tp>>>
100 // NOLINTNEXTLINE(google-explicit-constructor)
FrontendSettings(_Tp && _arg)101 constexpr FrontendSettings(_Tp&& _arg)
102 : _value(std::forward<_Tp>(_arg)) {}
103
104 template <size_t _Np, typename... _Tp>
FrontendSettings(std::in_place_index_t<_Np>,_Tp &&..._args)105 constexpr explicit FrontendSettings(std::in_place_index_t<_Np>, _Tp&&... _args)
106 : _value(std::in_place_index<_Np>, std::forward<_Tp>(_args)...) {}
107
108 template <Tag _tag, typename... _Tp>
make(_Tp &&..._args)109 static FrontendSettings make(_Tp&&... _args) {
110 return FrontendSettings(std::in_place_index<static_cast<size_t>(_tag)>, std::forward<_Tp>(_args)...);
111 }
112
113 template <Tag _tag, typename _Tp, typename... _Up>
make(std::initializer_list<_Tp> _il,_Up &&..._args)114 static FrontendSettings make(std::initializer_list<_Tp> _il, _Up&&... _args) {
115 return FrontendSettings(std::in_place_index<static_cast<size_t>(_tag)>, std::move(_il), std::forward<_Up>(_args)...);
116 }
117
getTag()118 Tag getTag() const {
119 return static_cast<Tag>(_value.index());
120 }
121
122 template <Tag _tag>
get()123 const auto& get() const {
124 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
125 return std::get<static_cast<size_t>(_tag)>(_value);
126 }
127
128 template <Tag _tag>
get()129 auto& get() {
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, typename... _Tp>
set(_Tp &&..._args)135 void set(_Tp&&... _args) {
136 _value.emplace<static_cast<size_t>(_tag)>(std::forward<_Tp>(_args)...);
137 }
138
139 binder_status_t readFromParcel(const AParcel* _parcel);
140 binder_status_t writeToParcel(AParcel* _parcel) const;
141
142 inline bool operator==(const FrontendSettings& _rhs) const {
143 return _value == _rhs._value;
144 }
145 inline bool operator<(const FrontendSettings& _rhs) const {
146 return _value < _rhs._value;
147 }
148 inline bool operator!=(const FrontendSettings& _rhs) const {
149 return !(*this == _rhs);
150 }
151 inline bool operator>(const FrontendSettings& _rhs) const {
152 return _rhs < *this;
153 }
154 inline bool operator>=(const FrontendSettings& _rhs) const {
155 return !(*this < _rhs);
156 }
157 inline bool operator<=(const FrontendSettings& _rhs) const {
158 return !(_rhs < *this);
159 }
160
161 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()162 inline std::string toString() const {
163 std::ostringstream os;
164 os << "FrontendSettings{";
165 switch (getTag()) {
166 case analog: os << "analog: " << ::android::internal::ToString(get<analog>()); break;
167 case atsc: os << "atsc: " << ::android::internal::ToString(get<atsc>()); break;
168 case atsc3: os << "atsc3: " << ::android::internal::ToString(get<atsc3>()); break;
169 case dvbs: os << "dvbs: " << ::android::internal::ToString(get<dvbs>()); break;
170 case dvbc: os << "dvbc: " << ::android::internal::ToString(get<dvbc>()); break;
171 case dvbt: os << "dvbt: " << ::android::internal::ToString(get<dvbt>()); break;
172 case isdbs: os << "isdbs: " << ::android::internal::ToString(get<isdbs>()); break;
173 case isdbs3: os << "isdbs3: " << ::android::internal::ToString(get<isdbs3>()); break;
174 case isdbt: os << "isdbt: " << ::android::internal::ToString(get<isdbt>()); break;
175 case dtmb: os << "dtmb: " << ::android::internal::ToString(get<dtmb>()); break;
176 case iptv: os << "iptv: " << ::android::internal::ToString(get<iptv>()); break;
177 }
178 os << "}";
179 return os.str();
180 }
181 private:
182 std::variant<::aidl::android::hardware::tv::tuner::FrontendAnalogSettings, ::aidl::android::hardware::tv::tuner::FrontendAtscSettings, ::aidl::android::hardware::tv::tuner::FrontendAtsc3Settings, ::aidl::android::hardware::tv::tuner::FrontendDvbsSettings, ::aidl::android::hardware::tv::tuner::FrontendDvbcSettings, ::aidl::android::hardware::tv::tuner::FrontendDvbtSettings, ::aidl::android::hardware::tv::tuner::FrontendIsdbsSettings, ::aidl::android::hardware::tv::tuner::FrontendIsdbs3Settings, ::aidl::android::hardware::tv::tuner::FrontendIsdbtSettings, ::aidl::android::hardware::tv::tuner::FrontendDtmbSettings, std::optional<::aidl::android::hardware::tv::tuner::FrontendIptvSettings>> _value;
183 };
184 } // namespace tuner
185 } // namespace tv
186 } // namespace hardware
187 } // namespace android
188 } // namespace aidl
189 namespace aidl {
190 namespace android {
191 namespace hardware {
192 namespace tv {
193 namespace tuner {
toString(FrontendSettings::Tag val)194 [[nodiscard]] static inline std::string toString(FrontendSettings::Tag val) {
195 switch(val) {
196 case FrontendSettings::Tag::analog:
197 return "analog";
198 case FrontendSettings::Tag::atsc:
199 return "atsc";
200 case FrontendSettings::Tag::atsc3:
201 return "atsc3";
202 case FrontendSettings::Tag::dvbs:
203 return "dvbs";
204 case FrontendSettings::Tag::dvbc:
205 return "dvbc";
206 case FrontendSettings::Tag::dvbt:
207 return "dvbt";
208 case FrontendSettings::Tag::isdbs:
209 return "isdbs";
210 case FrontendSettings::Tag::isdbs3:
211 return "isdbs3";
212 case FrontendSettings::Tag::isdbt:
213 return "isdbt";
214 case FrontendSettings::Tag::dtmb:
215 return "dtmb";
216 case FrontendSettings::Tag::iptv:
217 return "iptv";
218 default:
219 return std::to_string(static_cast<int32_t>(val));
220 }
221 }
222 } // namespace tuner
223 } // namespace tv
224 } // namespace hardware
225 } // namespace android
226 } // namespace aidl
227 namespace ndk {
228 namespace internal {
229 #pragma clang diagnostic push
230 #pragma clang diagnostic ignored "-Wc++17-extensions"
231 template <>
232 constexpr inline std::array<aidl::android::hardware::tv::tuner::FrontendSettings::Tag, 11> enum_values<aidl::android::hardware::tv::tuner::FrontendSettings::Tag> = {
233 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::analog,
234 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::atsc,
235 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::atsc3,
236 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::dvbs,
237 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::dvbc,
238 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::dvbt,
239 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::isdbs,
240 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::isdbs3,
241 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::isdbt,
242 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::dtmb,
243 aidl::android::hardware::tv::tuner::FrontendSettings::Tag::iptv,
244 };
245 #pragma clang diagnostic pop
246 } // namespace internal
247 } // namespace ndk
248