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 5 --hash notfrozen -t --stability vintf --min_sdk_version 31 -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/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4 --previous_hash ac25616dda1c45dc2915d3f5ac82687a1a6f6e46 --ninja -d out/soong/.intermediates/hardware/interfaces/bluetooth/audio/aidl/android.hardware.bluetooth.audio-V5-ndk-source/gen/staging/android/hardware/bluetooth/audio/CodecCapabilities.cpp.d -h out/soong/.intermediates/hardware/interfaces/bluetooth/audio/aidl/android.hardware.bluetooth.audio-V5-ndk-source/gen/include/staging -o out/soong/.intermediates/hardware/interfaces/bluetooth/audio/aidl/android.hardware.bluetooth.audio-V5-ndk-source/gen/staging -Nhardware/interfaces/bluetooth/audio/aidl hardware/interfaces/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecCapabilities.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/bluetooth/audio/AacCapabilities.h>
26 #include <aidl/android/hardware/bluetooth/audio/AptxAdaptiveCapabilities.h>
27 #include <aidl/android/hardware/bluetooth/audio/AptxCapabilities.h>
28 #include <aidl/android/hardware/bluetooth/audio/CodecCapabilities.h>
29 #include <aidl/android/hardware/bluetooth/audio/CodecType.h>
30 #include <aidl/android/hardware/bluetooth/audio/Lc3Capabilities.h>
31 #include <aidl/android/hardware/bluetooth/audio/LdacCapabilities.h>
32 #include <aidl/android/hardware/bluetooth/audio/OpusCapabilities.h>
33 #include <aidl/android/hardware/bluetooth/audio/SbcCapabilities.h>
34 #ifdef BINDER_STABILITY_SUPPORT
35 #include <android/binder_stability.h>
36 #endif // BINDER_STABILITY_SUPPORT
37
38 #ifndef __BIONIC__
39 #define __assert2(a,b,c,d) ((void)0)
40 #endif
41
42 namespace aidl::android::hardware::bluetooth::audio {
43 class AacCapabilities;
44 class AptxAdaptiveCapabilities;
45 class AptxCapabilities;
46 class Lc3Capabilities;
47 class LdacCapabilities;
48 class OpusCapabilities;
49 class SbcCapabilities;
50 } // namespace aidl::android::hardware::bluetooth::audio
51 namespace aidl {
52 namespace android {
53 namespace hardware {
54 namespace bluetooth {
55 namespace audio {
56 class CodecCapabilities {
57 public:
58 typedef std::false_type fixed_size;
59 static const char* descriptor;
60
61 class VendorCapabilities {
62 public:
63 typedef std::false_type fixed_size;
64 static const char* descriptor;
65
66 ::ndk::AParcelableHolder extension{::ndk::STABILITY_VINTF};
67
68 binder_status_t readFromParcel(const AParcel* parcel);
69 binder_status_t writeToParcel(AParcel* parcel) const;
70
71 inline bool operator==(const VendorCapabilities& _rhs) const {
72 return std::tie(extension) == std::tie(_rhs.extension);
73 }
74 inline bool operator<(const VendorCapabilities& _rhs) const {
75 return std::tie(extension) < std::tie(_rhs.extension);
76 }
77 inline bool operator!=(const VendorCapabilities& _rhs) const {
78 return !(*this == _rhs);
79 }
80 inline bool operator>(const VendorCapabilities& _rhs) const {
81 return _rhs < *this;
82 }
83 inline bool operator>=(const VendorCapabilities& _rhs) const {
84 return !(*this < _rhs);
85 }
86 inline bool operator<=(const VendorCapabilities& _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 << "VendorCapabilities{";
94 _aidl_os << "extension: " << ::android::internal::ToString(extension);
95 _aidl_os << "}";
96 return _aidl_os.str();
97 }
98 };
99 class Capabilities {
100 public:
101 typedef std::false_type fixed_size;
102 static const char* descriptor;
103
104 enum class Tag : int32_t {
105 sbcCapabilities = 0,
106 aacCapabilities = 1,
107 ldacCapabilities = 2,
108 aptxCapabilities = 3,
109 aptxAdaptiveCapabilities = 4,
110 lc3Capabilities = 5,
111 vendorCapabilities = 6,
112 opusCapabilities = 7,
113 };
114
115 // Expose tag symbols for legacy code
116 static const inline Tag sbcCapabilities = Tag::sbcCapabilities;
117 static const inline Tag aacCapabilities = Tag::aacCapabilities;
118 static const inline Tag ldacCapabilities = Tag::ldacCapabilities;
119 static const inline Tag aptxCapabilities = Tag::aptxCapabilities;
120 static const inline Tag aptxAdaptiveCapabilities = Tag::aptxAdaptiveCapabilities;
121 static const inline Tag lc3Capabilities = Tag::lc3Capabilities;
122 static const inline Tag vendorCapabilities = Tag::vendorCapabilities;
123 static const inline Tag opusCapabilities = Tag::opusCapabilities;
124
125 template<typename _Tp>
126 static constexpr bool _not_self = !std::is_same_v<std::remove_cv_t<std::remove_reference_t<_Tp>>, Capabilities>;
127
Capabilities()128 Capabilities() : _value(std::in_place_index<static_cast<size_t>(sbcCapabilities)>, ::aidl::android::hardware::bluetooth::audio::SbcCapabilities()) { }
129
130 template <typename _Tp, typename = std::enable_if_t<_not_self<_Tp>>>
131 // NOLINTNEXTLINE(google-explicit-constructor)
Capabilities(_Tp && _arg)132 constexpr Capabilities(_Tp&& _arg)
133 : _value(std::forward<_Tp>(_arg)) {}
134
135 template <size_t _Np, typename... _Tp>
Capabilities(std::in_place_index_t<_Np>,_Tp &&..._args)136 constexpr explicit Capabilities(std::in_place_index_t<_Np>, _Tp&&... _args)
137 : _value(std::in_place_index<_Np>, std::forward<_Tp>(_args)...) {}
138
139 template <Tag _tag, typename... _Tp>
make(_Tp &&..._args)140 static Capabilities make(_Tp&&... _args) {
141 return Capabilities(std::in_place_index<static_cast<size_t>(_tag)>, std::forward<_Tp>(_args)...);
142 }
143
144 template <Tag _tag, typename _Tp, typename... _Up>
make(std::initializer_list<_Tp> _il,_Up &&..._args)145 static Capabilities make(std::initializer_list<_Tp> _il, _Up&&... _args) {
146 return Capabilities(std::in_place_index<static_cast<size_t>(_tag)>, std::move(_il), std::forward<_Up>(_args)...);
147 }
148
getTag()149 Tag getTag() const {
150 return static_cast<Tag>(_value.index());
151 }
152
153 template <Tag _tag>
get()154 const auto& get() const {
155 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
156 return std::get<static_cast<size_t>(_tag)>(_value);
157 }
158
159 template <Tag _tag>
get()160 auto& get() {
161 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
162 return std::get<static_cast<size_t>(_tag)>(_value);
163 }
164
165 template <Tag _tag, typename... _Tp>
set(_Tp &&..._args)166 void set(_Tp&&... _args) {
167 _value.emplace<static_cast<size_t>(_tag)>(std::forward<_Tp>(_args)...);
168 }
169
170 binder_status_t readFromParcel(const AParcel* _parcel);
171 binder_status_t writeToParcel(AParcel* _parcel) const;
172
173 inline bool operator==(const Capabilities& _rhs) const {
174 return _value == _rhs._value;
175 }
176 inline bool operator<(const Capabilities& _rhs) const {
177 return _value < _rhs._value;
178 }
179 inline bool operator!=(const Capabilities& _rhs) const {
180 return !(*this == _rhs);
181 }
182 inline bool operator>(const Capabilities& _rhs) const {
183 return _rhs < *this;
184 }
185 inline bool operator>=(const Capabilities& _rhs) const {
186 return !(*this < _rhs);
187 }
188 inline bool operator<=(const Capabilities& _rhs) const {
189 return !(_rhs < *this);
190 }
191
192 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()193 inline std::string toString() const {
194 std::ostringstream os;
195 os << "Capabilities{";
196 switch (getTag()) {
197 case sbcCapabilities: os << "sbcCapabilities: " << ::android::internal::ToString(get<sbcCapabilities>()); break;
198 case aacCapabilities: os << "aacCapabilities: " << ::android::internal::ToString(get<aacCapabilities>()); break;
199 case ldacCapabilities: os << "ldacCapabilities: " << ::android::internal::ToString(get<ldacCapabilities>()); break;
200 case aptxCapabilities: os << "aptxCapabilities: " << ::android::internal::ToString(get<aptxCapabilities>()); break;
201 case aptxAdaptiveCapabilities: os << "aptxAdaptiveCapabilities: " << ::android::internal::ToString(get<aptxAdaptiveCapabilities>()); break;
202 case lc3Capabilities: os << "lc3Capabilities: " << ::android::internal::ToString(get<lc3Capabilities>()); break;
203 case vendorCapabilities: os << "vendorCapabilities: " << ::android::internal::ToString(get<vendorCapabilities>()); break;
204 case opusCapabilities: os << "opusCapabilities: " << ::android::internal::ToString(get<opusCapabilities>()); break;
205 }
206 os << "}";
207 return os.str();
208 }
209 private:
210 std::variant<::aidl::android::hardware::bluetooth::audio::SbcCapabilities, ::aidl::android::hardware::bluetooth::audio::AacCapabilities, ::aidl::android::hardware::bluetooth::audio::LdacCapabilities, ::aidl::android::hardware::bluetooth::audio::AptxCapabilities, ::aidl::android::hardware::bluetooth::audio::AptxAdaptiveCapabilities, ::aidl::android::hardware::bluetooth::audio::Lc3Capabilities, ::aidl::android::hardware::bluetooth::audio::CodecCapabilities::VendorCapabilities, std::optional<::aidl::android::hardware::bluetooth::audio::OpusCapabilities>> _value;
211 };
212 ::aidl::android::hardware::bluetooth::audio::CodecType codecType = ::aidl::android::hardware::bluetooth::audio::CodecType(0);
213 ::aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities capabilities;
214
215 binder_status_t readFromParcel(const AParcel* parcel);
216 binder_status_t writeToParcel(AParcel* parcel) const;
217
218 inline bool operator==(const CodecCapabilities& _rhs) const {
219 return std::tie(codecType, capabilities) == std::tie(_rhs.codecType, _rhs.capabilities);
220 }
221 inline bool operator<(const CodecCapabilities& _rhs) const {
222 return std::tie(codecType, capabilities) < std::tie(_rhs.codecType, _rhs.capabilities);
223 }
224 inline bool operator!=(const CodecCapabilities& _rhs) const {
225 return !(*this == _rhs);
226 }
227 inline bool operator>(const CodecCapabilities& _rhs) const {
228 return _rhs < *this;
229 }
230 inline bool operator>=(const CodecCapabilities& _rhs) const {
231 return !(*this < _rhs);
232 }
233 inline bool operator<=(const CodecCapabilities& _rhs) const {
234 return !(_rhs < *this);
235 }
236
237 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()238 inline std::string toString() const {
239 std::ostringstream _aidl_os;
240 _aidl_os << "CodecCapabilities{";
241 _aidl_os << "codecType: " << ::android::internal::ToString(codecType);
242 _aidl_os << ", capabilities: " << ::android::internal::ToString(capabilities);
243 _aidl_os << "}";
244 return _aidl_os.str();
245 }
246 };
247 } // namespace audio
248 } // namespace bluetooth
249 } // namespace hardware
250 } // namespace android
251 } // namespace aidl
252 namespace aidl {
253 namespace android {
254 namespace hardware {
255 namespace bluetooth {
256 namespace audio {
toString(CodecCapabilities::Capabilities::Tag val)257 [[nodiscard]] static inline std::string toString(CodecCapabilities::Capabilities::Tag val) {
258 switch(val) {
259 case CodecCapabilities::Capabilities::Tag::sbcCapabilities:
260 return "sbcCapabilities";
261 case CodecCapabilities::Capabilities::Tag::aacCapabilities:
262 return "aacCapabilities";
263 case CodecCapabilities::Capabilities::Tag::ldacCapabilities:
264 return "ldacCapabilities";
265 case CodecCapabilities::Capabilities::Tag::aptxCapabilities:
266 return "aptxCapabilities";
267 case CodecCapabilities::Capabilities::Tag::aptxAdaptiveCapabilities:
268 return "aptxAdaptiveCapabilities";
269 case CodecCapabilities::Capabilities::Tag::lc3Capabilities:
270 return "lc3Capabilities";
271 case CodecCapabilities::Capabilities::Tag::vendorCapabilities:
272 return "vendorCapabilities";
273 case CodecCapabilities::Capabilities::Tag::opusCapabilities:
274 return "opusCapabilities";
275 default:
276 return std::to_string(static_cast<int32_t>(val));
277 }
278 }
279 } // namespace audio
280 } // namespace bluetooth
281 } // namespace hardware
282 } // namespace android
283 } // namespace aidl
284 namespace ndk {
285 namespace internal {
286 #pragma clang diagnostic push
287 #pragma clang diagnostic ignored "-Wc++17-extensions"
288 template <>
289 constexpr inline std::array<aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities::Tag, 8> enum_values<aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities::Tag> = {
290 aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities::Tag::sbcCapabilities,
291 aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities::Tag::aacCapabilities,
292 aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities::Tag::ldacCapabilities,
293 aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities::Tag::aptxCapabilities,
294 aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities::Tag::aptxAdaptiveCapabilities,
295 aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities::Tag::lc3Capabilities,
296 aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities::Tag::vendorCapabilities,
297 aidl::android::hardware::bluetooth::audio::CodecCapabilities::Capabilities::Tag::opusCapabilities,
298 };
299 #pragma clang diagnostic pop
300 } // namespace internal
301 } // namespace ndk
302