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/IBluetoothAudioProvider.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/IBluetoothAudioProvider.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 <cstdint>
13 #include <memory>
14 #include <optional>
15 #include <string>
16 #include <vector>
17 #include <android/binder_enums.h>
18 #include <android/binder_interface_utils.h>
19 #include <android/binder_parcelable_utils.h>
20 #include <android/binder_to_string.h>
21 #include <aidl/android/hardware/bluetooth/audio/A2dpConfiguration.h>
22 #include <aidl/android/hardware/bluetooth/audio/A2dpConfigurationHint.h>
23 #include <aidl/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.h>
24 #include <aidl/android/hardware/bluetooth/audio/A2dpStatus.h>
25 #include <aidl/android/hardware/bluetooth/audio/AudioConfiguration.h>
26 #include <aidl/android/hardware/bluetooth/audio/AudioContext.h>
27 #include <aidl/android/hardware/bluetooth/audio/BluetoothAudioStatus.h>
28 #include <aidl/android/hardware/bluetooth/audio/CodecId.h>
29 #include <aidl/android/hardware/bluetooth/audio/CodecParameters.h>
30 #include <aidl/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.h>
31 #include <aidl/android/hardware/bluetooth/audio/ConfigurationFlags.h>
32 #include <aidl/android/hardware/bluetooth/audio/IBluetoothAudioPort.h>
33 #include <aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.h>
34 #include <aidl/android/hardware/bluetooth/audio/LatencyMode.h>
35 #include <aidl/android/hardware/bluetooth/audio/LeAudioAseConfiguration.h>
36 #include <aidl/android/hardware/bluetooth/audio/LeAudioBisConfiguration.h>
37 #include <aidl/android/hardware/bluetooth/audio/LeAudioBroadcastConfiguration.h>
38 #include <aidl/android/hardware/bluetooth/audio/LeAudioConfiguration.h>
39 #include <aidl/android/hardware/bluetooth/audio/MetadataLtv.h>
40 #include <aidl/android/hardware/bluetooth/audio/Phy.h>
41 #include <aidl/android/hardware/common/fmq/MQDescriptor.h>
42 #include <aidl/android/hardware/common/fmq/SynchronizedReadWrite.h>
43 #ifdef BINDER_STABILITY_SUPPORT
44 #include <android/binder_stability.h>
45 #endif  // BINDER_STABILITY_SUPPORT
46 
47 namespace aidl::android::hardware::bluetooth::audio {
48 class A2dpConfiguration;
49 class A2dpConfigurationHint;
50 class A2dpRemoteCapabilities;
51 class AudioContext;
52 class CodecParameters;
53 class ConfigurationFlags;
54 class IBluetoothAudioPort;
55 class LeAudioAseConfiguration;
56 class LeAudioBisConfiguration;
57 }  // namespace aidl::android::hardware::bluetooth::audio
58 namespace aidl::android::hardware::common::fmq {
59 template <typename T, typename Flavor>
60 class MQDescriptor;
61 }  // namespace aidl::android::hardware::common::fmq
62 namespace aidl {
63 namespace android {
64 namespace hardware {
65 namespace bluetooth {
66 namespace audio {
67 class IBluetoothAudioProviderDelegator;
68 
69 class IBluetoothAudioProvider : public ::ndk::ICInterface {
70 public:
71   typedef IBluetoothAudioProviderDelegator DefaultDelegator;
72   static const char* descriptor;
73   IBluetoothAudioProvider();
74   virtual ~IBluetoothAudioProvider();
75 
76   class LeAudioDeviceCapabilities {
77   public:
78     typedef std::false_type fixed_size;
79     static const char* descriptor;
80 
81     ::aidl::android::hardware::bluetooth::audio::CodecId codecId;
82     std::vector<::aidl::android::hardware::bluetooth::audio::CodecSpecificCapabilitiesLtv> codecSpecificCapabilities;
83     std::optional<std::vector<uint8_t>> vendorCodecSpecificCapabilities;
84     std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::MetadataLtv>>> metadata;
85 
86     binder_status_t readFromParcel(const AParcel* parcel);
87     binder_status_t writeToParcel(AParcel* parcel) const;
88 
89     inline bool operator==(const LeAudioDeviceCapabilities& _rhs) const {
90       return std::tie(codecId, codecSpecificCapabilities, vendorCodecSpecificCapabilities, metadata) == std::tie(_rhs.codecId, _rhs.codecSpecificCapabilities, _rhs.vendorCodecSpecificCapabilities, _rhs.metadata);
91     }
92     inline bool operator<(const LeAudioDeviceCapabilities& _rhs) const {
93       return std::tie(codecId, codecSpecificCapabilities, vendorCodecSpecificCapabilities, metadata) < std::tie(_rhs.codecId, _rhs.codecSpecificCapabilities, _rhs.vendorCodecSpecificCapabilities, _rhs.metadata);
94     }
95     inline bool operator!=(const LeAudioDeviceCapabilities& _rhs) const {
96       return !(*this == _rhs);
97     }
98     inline bool operator>(const LeAudioDeviceCapabilities& _rhs) const {
99       return _rhs < *this;
100     }
101     inline bool operator>=(const LeAudioDeviceCapabilities& _rhs) const {
102       return !(*this < _rhs);
103     }
104     inline bool operator<=(const LeAudioDeviceCapabilities& _rhs) const {
105       return !(_rhs < *this);
106     }
107 
108     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()109     inline std::string toString() const {
110       std::ostringstream _aidl_os;
111       _aidl_os << "LeAudioDeviceCapabilities{";
112       _aidl_os << "codecId: " << ::android::internal::ToString(codecId);
113       _aidl_os << ", codecSpecificCapabilities: " << ::android::internal::ToString(codecSpecificCapabilities);
114       _aidl_os << ", vendorCodecSpecificCapabilities: " << ::android::internal::ToString(vendorCodecSpecificCapabilities);
115       _aidl_os << ", metadata: " << ::android::internal::ToString(metadata);
116       _aidl_os << "}";
117       return _aidl_os.str();
118     }
119   };
120   class LeAudioDataPathConfiguration {
121   public:
122     typedef std::false_type fixed_size;
123     static const char* descriptor;
124 
125     class IsoDataPathConfiguration {
126     public:
127       typedef std::false_type fixed_size;
128       static const char* descriptor;
129 
130       ::aidl::android::hardware::bluetooth::audio::CodecId codecId;
131       bool isTransparent = false;
132       int32_t controllerDelayUs = 0;
133       std::optional<std::vector<uint8_t>> configuration;
134 
135       binder_status_t readFromParcel(const AParcel* parcel);
136       binder_status_t writeToParcel(AParcel* parcel) const;
137 
138       inline bool operator==(const IsoDataPathConfiguration& _rhs) const {
139         return std::tie(codecId, isTransparent, controllerDelayUs, configuration) == std::tie(_rhs.codecId, _rhs.isTransparent, _rhs.controllerDelayUs, _rhs.configuration);
140       }
141       inline bool operator<(const IsoDataPathConfiguration& _rhs) const {
142         return std::tie(codecId, isTransparent, controllerDelayUs, configuration) < std::tie(_rhs.codecId, _rhs.isTransparent, _rhs.controllerDelayUs, _rhs.configuration);
143       }
144       inline bool operator!=(const IsoDataPathConfiguration& _rhs) const {
145         return !(*this == _rhs);
146       }
147       inline bool operator>(const IsoDataPathConfiguration& _rhs) const {
148         return _rhs < *this;
149       }
150       inline bool operator>=(const IsoDataPathConfiguration& _rhs) const {
151         return !(*this < _rhs);
152       }
153       inline bool operator<=(const IsoDataPathConfiguration& _rhs) const {
154         return !(_rhs < *this);
155       }
156 
157       static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()158       inline std::string toString() const {
159         std::ostringstream _aidl_os;
160         _aidl_os << "IsoDataPathConfiguration{";
161         _aidl_os << "codecId: " << ::android::internal::ToString(codecId);
162         _aidl_os << ", isTransparent: " << ::android::internal::ToString(isTransparent);
163         _aidl_os << ", controllerDelayUs: " << ::android::internal::ToString(controllerDelayUs);
164         _aidl_os << ", configuration: " << ::android::internal::ToString(configuration);
165         _aidl_os << "}";
166         return _aidl_os.str();
167       }
168     };
169     class DataPathConfiguration {
170     public:
171       typedef std::false_type fixed_size;
172       static const char* descriptor;
173 
174       std::optional<std::vector<uint8_t>> configuration;
175 
176       binder_status_t readFromParcel(const AParcel* parcel);
177       binder_status_t writeToParcel(AParcel* parcel) const;
178 
179       inline bool operator==(const DataPathConfiguration& _rhs) const {
180         return std::tie(configuration) == std::tie(_rhs.configuration);
181       }
182       inline bool operator<(const DataPathConfiguration& _rhs) const {
183         return std::tie(configuration) < std::tie(_rhs.configuration);
184       }
185       inline bool operator!=(const DataPathConfiguration& _rhs) const {
186         return !(*this == _rhs);
187       }
188       inline bool operator>(const DataPathConfiguration& _rhs) const {
189         return _rhs < *this;
190       }
191       inline bool operator>=(const DataPathConfiguration& _rhs) const {
192         return !(*this < _rhs);
193       }
194       inline bool operator<=(const DataPathConfiguration& _rhs) const {
195         return !(_rhs < *this);
196       }
197 
198       static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()199       inline std::string toString() const {
200         std::ostringstream _aidl_os;
201         _aidl_os << "DataPathConfiguration{";
202         _aidl_os << "configuration: " << ::android::internal::ToString(configuration);
203         _aidl_os << "}";
204         return _aidl_os.str();
205       }
206     };
207     int32_t dataPathId = 0;
208     ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDataPathConfiguration::DataPathConfiguration dataPathConfiguration;
209     ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDataPathConfiguration::IsoDataPathConfiguration isoDataPathConfiguration;
210 
211     binder_status_t readFromParcel(const AParcel* parcel);
212     binder_status_t writeToParcel(AParcel* parcel) const;
213 
214     inline bool operator==(const LeAudioDataPathConfiguration& _rhs) const {
215       return std::tie(dataPathId, dataPathConfiguration, isoDataPathConfiguration) == std::tie(_rhs.dataPathId, _rhs.dataPathConfiguration, _rhs.isoDataPathConfiguration);
216     }
217     inline bool operator<(const LeAudioDataPathConfiguration& _rhs) const {
218       return std::tie(dataPathId, dataPathConfiguration, isoDataPathConfiguration) < std::tie(_rhs.dataPathId, _rhs.dataPathConfiguration, _rhs.isoDataPathConfiguration);
219     }
220     inline bool operator!=(const LeAudioDataPathConfiguration& _rhs) const {
221       return !(*this == _rhs);
222     }
223     inline bool operator>(const LeAudioDataPathConfiguration& _rhs) const {
224       return _rhs < *this;
225     }
226     inline bool operator>=(const LeAudioDataPathConfiguration& _rhs) const {
227       return !(*this < _rhs);
228     }
229     inline bool operator<=(const LeAudioDataPathConfiguration& _rhs) const {
230       return !(_rhs < *this);
231     }
232 
233     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()234     inline std::string toString() const {
235       std::ostringstream _aidl_os;
236       _aidl_os << "LeAudioDataPathConfiguration{";
237       _aidl_os << "dataPathId: " << ::android::internal::ToString(dataPathId);
238       _aidl_os << ", dataPathConfiguration: " << ::android::internal::ToString(dataPathConfiguration);
239       _aidl_os << ", isoDataPathConfiguration: " << ::android::internal::ToString(isoDataPathConfiguration);
240       _aidl_os << "}";
241       return _aidl_os.str();
242     }
243   };
244   enum class Framing : int8_t {
245     UNFRAMED = 0,
246     FRAMED = 1,
247   };
248 
249   class LeAudioAseQosConfiguration {
250   public:
251     typedef std::false_type fixed_size;
252     static const char* descriptor;
253 
254     int32_t sduIntervalUs = 0;
255     ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Framing framing = ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Framing(0);
256     std::vector<::aidl::android::hardware::bluetooth::audio::Phy> phy;
257     int32_t maxTransportLatencyMs = 0;
258     int32_t maxSdu = 0;
259     int32_t retransmissionNum = 0;
260 
261     binder_status_t readFromParcel(const AParcel* parcel);
262     binder_status_t writeToParcel(AParcel* parcel) const;
263 
264     inline bool operator==(const LeAudioAseQosConfiguration& _rhs) const {
265       return std::tie(sduIntervalUs, framing, phy, maxTransportLatencyMs, maxSdu, retransmissionNum) == std::tie(_rhs.sduIntervalUs, _rhs.framing, _rhs.phy, _rhs.maxTransportLatencyMs, _rhs.maxSdu, _rhs.retransmissionNum);
266     }
267     inline bool operator<(const LeAudioAseQosConfiguration& _rhs) const {
268       return std::tie(sduIntervalUs, framing, phy, maxTransportLatencyMs, maxSdu, retransmissionNum) < std::tie(_rhs.sduIntervalUs, _rhs.framing, _rhs.phy, _rhs.maxTransportLatencyMs, _rhs.maxSdu, _rhs.retransmissionNum);
269     }
270     inline bool operator!=(const LeAudioAseQosConfiguration& _rhs) const {
271       return !(*this == _rhs);
272     }
273     inline bool operator>(const LeAudioAseQosConfiguration& _rhs) const {
274       return _rhs < *this;
275     }
276     inline bool operator>=(const LeAudioAseQosConfiguration& _rhs) const {
277       return !(*this < _rhs);
278     }
279     inline bool operator<=(const LeAudioAseQosConfiguration& _rhs) const {
280       return !(_rhs < *this);
281     }
282 
283     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()284     inline std::string toString() const {
285       std::ostringstream _aidl_os;
286       _aidl_os << "LeAudioAseQosConfiguration{";
287       _aidl_os << "sduIntervalUs: " << ::android::internal::ToString(sduIntervalUs);
288       _aidl_os << ", framing: " << ::android::internal::ToString(framing);
289       _aidl_os << ", phy: " << ::android::internal::ToString(phy);
290       _aidl_os << ", maxTransportLatencyMs: " << ::android::internal::ToString(maxTransportLatencyMs);
291       _aidl_os << ", maxSdu: " << ::android::internal::ToString(maxSdu);
292       _aidl_os << ", retransmissionNum: " << ::android::internal::ToString(retransmissionNum);
293       _aidl_os << "}";
294       return _aidl_os.str();
295     }
296   };
297   enum class Packing : int8_t {
298     SEQUENTIAL = 0,
299     INTERLEAVED = 1,
300   };
301 
302   class LeAudioAseConfigurationSetting {
303   public:
304     typedef std::false_type fixed_size;
305     static const char* descriptor;
306 
307     class AseDirectionConfiguration {
308     public:
309       typedef std::false_type fixed_size;
310       static const char* descriptor;
311 
312       ::aidl::android::hardware::bluetooth::audio::LeAudioAseConfiguration aseConfiguration;
313       std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseQosConfiguration> qosConfiguration;
314       std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDataPathConfiguration> dataPathConfiguration;
315 
316       binder_status_t readFromParcel(const AParcel* parcel);
317       binder_status_t writeToParcel(AParcel* parcel) const;
318 
319       inline bool operator==(const AseDirectionConfiguration& _rhs) const {
320         return std::tie(aseConfiguration, qosConfiguration, dataPathConfiguration) == std::tie(_rhs.aseConfiguration, _rhs.qosConfiguration, _rhs.dataPathConfiguration);
321       }
322       inline bool operator<(const AseDirectionConfiguration& _rhs) const {
323         return std::tie(aseConfiguration, qosConfiguration, dataPathConfiguration) < std::tie(_rhs.aseConfiguration, _rhs.qosConfiguration, _rhs.dataPathConfiguration);
324       }
325       inline bool operator!=(const AseDirectionConfiguration& _rhs) const {
326         return !(*this == _rhs);
327       }
328       inline bool operator>(const AseDirectionConfiguration& _rhs) const {
329         return _rhs < *this;
330       }
331       inline bool operator>=(const AseDirectionConfiguration& _rhs) const {
332         return !(*this < _rhs);
333       }
334       inline bool operator<=(const AseDirectionConfiguration& _rhs) const {
335         return !(_rhs < *this);
336       }
337 
338       static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()339       inline std::string toString() const {
340         std::ostringstream _aidl_os;
341         _aidl_os << "AseDirectionConfiguration{";
342         _aidl_os << "aseConfiguration: " << ::android::internal::ToString(aseConfiguration);
343         _aidl_os << ", qosConfiguration: " << ::android::internal::ToString(qosConfiguration);
344         _aidl_os << ", dataPathConfiguration: " << ::android::internal::ToString(dataPathConfiguration);
345         _aidl_os << "}";
346         return _aidl_os.str();
347       }
348     };
349     ::aidl::android::hardware::bluetooth::audio::AudioContext audioContext;
350     ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Packing packing = ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Packing(0);
351     std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseConfigurationSetting::AseDirectionConfiguration>>> sinkAseConfiguration;
352     std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseConfigurationSetting::AseDirectionConfiguration>>> sourceAseConfiguration;
353     std::optional<::aidl::android::hardware::bluetooth::audio::ConfigurationFlags> flags;
354 
355     binder_status_t readFromParcel(const AParcel* parcel);
356     binder_status_t writeToParcel(AParcel* parcel) const;
357 
358     inline bool operator==(const LeAudioAseConfigurationSetting& _rhs) const {
359       return std::tie(audioContext, packing, sinkAseConfiguration, sourceAseConfiguration, flags) == std::tie(_rhs.audioContext, _rhs.packing, _rhs.sinkAseConfiguration, _rhs.sourceAseConfiguration, _rhs.flags);
360     }
361     inline bool operator<(const LeAudioAseConfigurationSetting& _rhs) const {
362       return std::tie(audioContext, packing, sinkAseConfiguration, sourceAseConfiguration, flags) < std::tie(_rhs.audioContext, _rhs.packing, _rhs.sinkAseConfiguration, _rhs.sourceAseConfiguration, _rhs.flags);
363     }
364     inline bool operator!=(const LeAudioAseConfigurationSetting& _rhs) const {
365       return !(*this == _rhs);
366     }
367     inline bool operator>(const LeAudioAseConfigurationSetting& _rhs) const {
368       return _rhs < *this;
369     }
370     inline bool operator>=(const LeAudioAseConfigurationSetting& _rhs) const {
371       return !(*this < _rhs);
372     }
373     inline bool operator<=(const LeAudioAseConfigurationSetting& _rhs) const {
374       return !(_rhs < *this);
375     }
376 
377     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()378     inline std::string toString() const {
379       std::ostringstream _aidl_os;
380       _aidl_os << "LeAudioAseConfigurationSetting{";
381       _aidl_os << "audioContext: " << ::android::internal::ToString(audioContext);
382       _aidl_os << ", packing: " << ::android::internal::ToString(packing);
383       _aidl_os << ", sinkAseConfiguration: " << ::android::internal::ToString(sinkAseConfiguration);
384       _aidl_os << ", sourceAseConfiguration: " << ::android::internal::ToString(sourceAseConfiguration);
385       _aidl_os << ", flags: " << ::android::internal::ToString(flags);
386       _aidl_os << "}";
387       return _aidl_os.str();
388     }
389   };
390   class LeAudioConfigurationRequirement {
391   public:
392     typedef std::false_type fixed_size;
393     static const char* descriptor;
394 
395     class AseDirectionRequirement {
396     public:
397       typedef std::false_type fixed_size;
398       static const char* descriptor;
399 
400       ::aidl::android::hardware::bluetooth::audio::LeAudioAseConfiguration aseConfiguration;
401 
402       binder_status_t readFromParcel(const AParcel* parcel);
403       binder_status_t writeToParcel(AParcel* parcel) const;
404 
405       inline bool operator==(const AseDirectionRequirement& _rhs) const {
406         return std::tie(aseConfiguration) == std::tie(_rhs.aseConfiguration);
407       }
408       inline bool operator<(const AseDirectionRequirement& _rhs) const {
409         return std::tie(aseConfiguration) < std::tie(_rhs.aseConfiguration);
410       }
411       inline bool operator!=(const AseDirectionRequirement& _rhs) const {
412         return !(*this == _rhs);
413       }
414       inline bool operator>(const AseDirectionRequirement& _rhs) const {
415         return _rhs < *this;
416       }
417       inline bool operator>=(const AseDirectionRequirement& _rhs) const {
418         return !(*this < _rhs);
419       }
420       inline bool operator<=(const AseDirectionRequirement& _rhs) const {
421         return !(_rhs < *this);
422       }
423 
424       static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()425       inline std::string toString() const {
426         std::ostringstream _aidl_os;
427         _aidl_os << "AseDirectionRequirement{";
428         _aidl_os << "aseConfiguration: " << ::android::internal::ToString(aseConfiguration);
429         _aidl_os << "}";
430         return _aidl_os.str();
431       }
432     };
433     ::aidl::android::hardware::bluetooth::audio::AudioContext audioContext;
434     std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioConfigurationRequirement::AseDirectionRequirement>>> sinkAseRequirement;
435     std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioConfigurationRequirement::AseDirectionRequirement>>> sourceAseRequirement;
436     std::optional<::aidl::android::hardware::bluetooth::audio::ConfigurationFlags> flags;
437 
438     binder_status_t readFromParcel(const AParcel* parcel);
439     binder_status_t writeToParcel(AParcel* parcel) const;
440 
441     inline bool operator==(const LeAudioConfigurationRequirement& _rhs) const {
442       return std::tie(audioContext, sinkAseRequirement, sourceAseRequirement, flags) == std::tie(_rhs.audioContext, _rhs.sinkAseRequirement, _rhs.sourceAseRequirement, _rhs.flags);
443     }
444     inline bool operator<(const LeAudioConfigurationRequirement& _rhs) const {
445       return std::tie(audioContext, sinkAseRequirement, sourceAseRequirement, flags) < std::tie(_rhs.audioContext, _rhs.sinkAseRequirement, _rhs.sourceAseRequirement, _rhs.flags);
446     }
447     inline bool operator!=(const LeAudioConfigurationRequirement& _rhs) const {
448       return !(*this == _rhs);
449     }
450     inline bool operator>(const LeAudioConfigurationRequirement& _rhs) const {
451       return _rhs < *this;
452     }
453     inline bool operator>=(const LeAudioConfigurationRequirement& _rhs) const {
454       return !(*this < _rhs);
455     }
456     inline bool operator<=(const LeAudioConfigurationRequirement& _rhs) const {
457       return !(_rhs < *this);
458     }
459 
460     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()461     inline std::string toString() const {
462       std::ostringstream _aidl_os;
463       _aidl_os << "LeAudioConfigurationRequirement{";
464       _aidl_os << "audioContext: " << ::android::internal::ToString(audioContext);
465       _aidl_os << ", sinkAseRequirement: " << ::android::internal::ToString(sinkAseRequirement);
466       _aidl_os << ", sourceAseRequirement: " << ::android::internal::ToString(sourceAseRequirement);
467       _aidl_os << ", flags: " << ::android::internal::ToString(flags);
468       _aidl_os << "}";
469       return _aidl_os.str();
470     }
471   };
472   class LeAudioAseQosConfigurationRequirement {
473   public:
474     typedef std::false_type fixed_size;
475     static const char* descriptor;
476 
477     class AseQosDirectionRequirement {
478     public:
479       typedef std::false_type fixed_size;
480       static const char* descriptor;
481 
482       ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Framing framing = ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Framing(0);
483       std::vector<::aidl::android::hardware::bluetooth::audio::Phy> preferredPhy;
484       int32_t preferredRetransmissionNum = 0;
485       int32_t maxTransportLatencyMs = 0;
486       int32_t presentationDelayMinUs = 0;
487       int32_t presentationDelayMaxUs = 0;
488       int32_t preferredPresentationDelayMinUs = 0;
489       int32_t preferredPresentationDelayMaxUs = 0;
490       ::aidl::android::hardware::bluetooth::audio::LeAudioAseConfiguration aseConfiguration;
491 
492       binder_status_t readFromParcel(const AParcel* parcel);
493       binder_status_t writeToParcel(AParcel* parcel) const;
494 
495       inline bool operator==(const AseQosDirectionRequirement& _rhs) const {
496         return std::tie(framing, preferredPhy, preferredRetransmissionNum, maxTransportLatencyMs, presentationDelayMinUs, presentationDelayMaxUs, preferredPresentationDelayMinUs, preferredPresentationDelayMaxUs, aseConfiguration) == std::tie(_rhs.framing, _rhs.preferredPhy, _rhs.preferredRetransmissionNum, _rhs.maxTransportLatencyMs, _rhs.presentationDelayMinUs, _rhs.presentationDelayMaxUs, _rhs.preferredPresentationDelayMinUs, _rhs.preferredPresentationDelayMaxUs, _rhs.aseConfiguration);
497       }
498       inline bool operator<(const AseQosDirectionRequirement& _rhs) const {
499         return std::tie(framing, preferredPhy, preferredRetransmissionNum, maxTransportLatencyMs, presentationDelayMinUs, presentationDelayMaxUs, preferredPresentationDelayMinUs, preferredPresentationDelayMaxUs, aseConfiguration) < std::tie(_rhs.framing, _rhs.preferredPhy, _rhs.preferredRetransmissionNum, _rhs.maxTransportLatencyMs, _rhs.presentationDelayMinUs, _rhs.presentationDelayMaxUs, _rhs.preferredPresentationDelayMinUs, _rhs.preferredPresentationDelayMaxUs, _rhs.aseConfiguration);
500       }
501       inline bool operator!=(const AseQosDirectionRequirement& _rhs) const {
502         return !(*this == _rhs);
503       }
504       inline bool operator>(const AseQosDirectionRequirement& _rhs) const {
505         return _rhs < *this;
506       }
507       inline bool operator>=(const AseQosDirectionRequirement& _rhs) const {
508         return !(*this < _rhs);
509       }
510       inline bool operator<=(const AseQosDirectionRequirement& _rhs) const {
511         return !(_rhs < *this);
512       }
513 
514       static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()515       inline std::string toString() const {
516         std::ostringstream _aidl_os;
517         _aidl_os << "AseQosDirectionRequirement{";
518         _aidl_os << "framing: " << ::android::internal::ToString(framing);
519         _aidl_os << ", preferredPhy: " << ::android::internal::ToString(preferredPhy);
520         _aidl_os << ", preferredRetransmissionNum: " << ::android::internal::ToString(preferredRetransmissionNum);
521         _aidl_os << ", maxTransportLatencyMs: " << ::android::internal::ToString(maxTransportLatencyMs);
522         _aidl_os << ", presentationDelayMinUs: " << ::android::internal::ToString(presentationDelayMinUs);
523         _aidl_os << ", presentationDelayMaxUs: " << ::android::internal::ToString(presentationDelayMaxUs);
524         _aidl_os << ", preferredPresentationDelayMinUs: " << ::android::internal::ToString(preferredPresentationDelayMinUs);
525         _aidl_os << ", preferredPresentationDelayMaxUs: " << ::android::internal::ToString(preferredPresentationDelayMaxUs);
526         _aidl_os << ", aseConfiguration: " << ::android::internal::ToString(aseConfiguration);
527         _aidl_os << "}";
528         return _aidl_os.str();
529       }
530     };
531     ::aidl::android::hardware::bluetooth::audio::AudioContext audioContext;
532     std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseQosConfigurationRequirement::AseQosDirectionRequirement> sinkAseQosRequirement;
533     std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseQosConfigurationRequirement::AseQosDirectionRequirement> sourceAseQosRequirement;
534     std::optional<::aidl::android::hardware::bluetooth::audio::ConfigurationFlags> flags;
535 
536     binder_status_t readFromParcel(const AParcel* parcel);
537     binder_status_t writeToParcel(AParcel* parcel) const;
538 
539     inline bool operator==(const LeAudioAseQosConfigurationRequirement& _rhs) const {
540       return std::tie(audioContext, sinkAseQosRequirement, sourceAseQosRequirement, flags) == std::tie(_rhs.audioContext, _rhs.sinkAseQosRequirement, _rhs.sourceAseQosRequirement, _rhs.flags);
541     }
542     inline bool operator<(const LeAudioAseQosConfigurationRequirement& _rhs) const {
543       return std::tie(audioContext, sinkAseQosRequirement, sourceAseQosRequirement, flags) < std::tie(_rhs.audioContext, _rhs.sinkAseQosRequirement, _rhs.sourceAseQosRequirement, _rhs.flags);
544     }
545     inline bool operator!=(const LeAudioAseQosConfigurationRequirement& _rhs) const {
546       return !(*this == _rhs);
547     }
548     inline bool operator>(const LeAudioAseQosConfigurationRequirement& _rhs) const {
549       return _rhs < *this;
550     }
551     inline bool operator>=(const LeAudioAseQosConfigurationRequirement& _rhs) const {
552       return !(*this < _rhs);
553     }
554     inline bool operator<=(const LeAudioAseQosConfigurationRequirement& _rhs) const {
555       return !(_rhs < *this);
556     }
557 
558     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()559     inline std::string toString() const {
560       std::ostringstream _aidl_os;
561       _aidl_os << "LeAudioAseQosConfigurationRequirement{";
562       _aidl_os << "audioContext: " << ::android::internal::ToString(audioContext);
563       _aidl_os << ", sinkAseQosRequirement: " << ::android::internal::ToString(sinkAseQosRequirement);
564       _aidl_os << ", sourceAseQosRequirement: " << ::android::internal::ToString(sourceAseQosRequirement);
565       _aidl_os << ", flags: " << ::android::internal::ToString(flags);
566       _aidl_os << "}";
567       return _aidl_os.str();
568     }
569   };
570   class LeAudioAseQosConfigurationPair {
571   public:
572     typedef std::false_type fixed_size;
573     static const char* descriptor;
574 
575     std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseQosConfiguration> sinkQosConfiguration;
576     std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseQosConfiguration> sourceQosConfiguration;
577 
578     binder_status_t readFromParcel(const AParcel* parcel);
579     binder_status_t writeToParcel(AParcel* parcel) const;
580 
581     inline bool operator==(const LeAudioAseQosConfigurationPair& _rhs) const {
582       return std::tie(sinkQosConfiguration, sourceQosConfiguration) == std::tie(_rhs.sinkQosConfiguration, _rhs.sourceQosConfiguration);
583     }
584     inline bool operator<(const LeAudioAseQosConfigurationPair& _rhs) const {
585       return std::tie(sinkQosConfiguration, sourceQosConfiguration) < std::tie(_rhs.sinkQosConfiguration, _rhs.sourceQosConfiguration);
586     }
587     inline bool operator!=(const LeAudioAseQosConfigurationPair& _rhs) const {
588       return !(*this == _rhs);
589     }
590     inline bool operator>(const LeAudioAseQosConfigurationPair& _rhs) const {
591       return _rhs < *this;
592     }
593     inline bool operator>=(const LeAudioAseQosConfigurationPair& _rhs) const {
594       return !(*this < _rhs);
595     }
596     inline bool operator<=(const LeAudioAseQosConfigurationPair& _rhs) const {
597       return !(_rhs < *this);
598     }
599 
600     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()601     inline std::string toString() const {
602       std::ostringstream _aidl_os;
603       _aidl_os << "LeAudioAseQosConfigurationPair{";
604       _aidl_os << "sinkQosConfiguration: " << ::android::internal::ToString(sinkQosConfiguration);
605       _aidl_os << ", sourceQosConfiguration: " << ::android::internal::ToString(sourceQosConfiguration);
606       _aidl_os << "}";
607       return _aidl_os.str();
608     }
609   };
610   class LeAudioDataPathConfigurationPair {
611   public:
612     typedef std::false_type fixed_size;
613     static const char* descriptor;
614 
615     std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDataPathConfiguration> inputConfig;
616     std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDataPathConfiguration> outputConfig;
617 
618     binder_status_t readFromParcel(const AParcel* parcel);
619     binder_status_t writeToParcel(AParcel* parcel) const;
620 
621     inline bool operator==(const LeAudioDataPathConfigurationPair& _rhs) const {
622       return std::tie(inputConfig, outputConfig) == std::tie(_rhs.inputConfig, _rhs.outputConfig);
623     }
624     inline bool operator<(const LeAudioDataPathConfigurationPair& _rhs) const {
625       return std::tie(inputConfig, outputConfig) < std::tie(_rhs.inputConfig, _rhs.outputConfig);
626     }
627     inline bool operator!=(const LeAudioDataPathConfigurationPair& _rhs) const {
628       return !(*this == _rhs);
629     }
630     inline bool operator>(const LeAudioDataPathConfigurationPair& _rhs) const {
631       return _rhs < *this;
632     }
633     inline bool operator>=(const LeAudioDataPathConfigurationPair& _rhs) const {
634       return !(*this < _rhs);
635     }
636     inline bool operator<=(const LeAudioDataPathConfigurationPair& _rhs) const {
637       return !(_rhs < *this);
638     }
639 
640     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()641     inline std::string toString() const {
642       std::ostringstream _aidl_os;
643       _aidl_os << "LeAudioDataPathConfigurationPair{";
644       _aidl_os << "inputConfig: " << ::android::internal::ToString(inputConfig);
645       _aidl_os << ", outputConfig: " << ::android::internal::ToString(outputConfig);
646       _aidl_os << "}";
647       return _aidl_os.str();
648     }
649   };
650   class StreamConfig {
651   public:
652     typedef std::false_type fixed_size;
653     static const char* descriptor;
654 
655     ::aidl::android::hardware::bluetooth::audio::AudioContext audioContext;
656     std::vector<::aidl::android::hardware::bluetooth::audio::LeAudioConfiguration::StreamMap> streamMap;
657 
658     binder_status_t readFromParcel(const AParcel* parcel);
659     binder_status_t writeToParcel(AParcel* parcel) const;
660 
661     inline bool operator==(const StreamConfig& _rhs) const {
662       return std::tie(audioContext, streamMap) == std::tie(_rhs.audioContext, _rhs.streamMap);
663     }
664     inline bool operator<(const StreamConfig& _rhs) const {
665       return std::tie(audioContext, streamMap) < std::tie(_rhs.audioContext, _rhs.streamMap);
666     }
667     inline bool operator!=(const StreamConfig& _rhs) const {
668       return !(*this == _rhs);
669     }
670     inline bool operator>(const StreamConfig& _rhs) const {
671       return _rhs < *this;
672     }
673     inline bool operator>=(const StreamConfig& _rhs) const {
674       return !(*this < _rhs);
675     }
676     inline bool operator<=(const StreamConfig& _rhs) const {
677       return !(_rhs < *this);
678     }
679 
680     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()681     inline std::string toString() const {
682       std::ostringstream _aidl_os;
683       _aidl_os << "StreamConfig{";
684       _aidl_os << "audioContext: " << ::android::internal::ToString(audioContext);
685       _aidl_os << ", streamMap: " << ::android::internal::ToString(streamMap);
686       _aidl_os << "}";
687       return _aidl_os.str();
688     }
689   };
690   enum class AseState : int8_t {
691     ENABLING = 0,
692     STREAMING = 1,
693     DISABLING = 2,
694   };
695 
696   enum class BroadcastQuality : int8_t {
697     STANDARD = 0,
698     HIGH = 1,
699   };
700 
701   class LeAudioBroadcastSubgroupConfigurationRequirement {
702   public:
703     typedef std::false_type fixed_size;
704     static const char* descriptor;
705 
706     ::aidl::android::hardware::bluetooth::audio::AudioContext audioContext;
707     ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::BroadcastQuality quality = ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::BroadcastQuality(0);
708     int32_t bisNumPerSubgroup = 0;
709 
710     binder_status_t readFromParcel(const AParcel* parcel);
711     binder_status_t writeToParcel(AParcel* parcel) const;
712 
713     inline bool operator==(const LeAudioBroadcastSubgroupConfigurationRequirement& _rhs) const {
714       return std::tie(audioContext, quality, bisNumPerSubgroup) == std::tie(_rhs.audioContext, _rhs.quality, _rhs.bisNumPerSubgroup);
715     }
716     inline bool operator<(const LeAudioBroadcastSubgroupConfigurationRequirement& _rhs) const {
717       return std::tie(audioContext, quality, bisNumPerSubgroup) < std::tie(_rhs.audioContext, _rhs.quality, _rhs.bisNumPerSubgroup);
718     }
719     inline bool operator!=(const LeAudioBroadcastSubgroupConfigurationRequirement& _rhs) const {
720       return !(*this == _rhs);
721     }
722     inline bool operator>(const LeAudioBroadcastSubgroupConfigurationRequirement& _rhs) const {
723       return _rhs < *this;
724     }
725     inline bool operator>=(const LeAudioBroadcastSubgroupConfigurationRequirement& _rhs) const {
726       return !(*this < _rhs);
727     }
728     inline bool operator<=(const LeAudioBroadcastSubgroupConfigurationRequirement& _rhs) const {
729       return !(_rhs < *this);
730     }
731 
732     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()733     inline std::string toString() const {
734       std::ostringstream _aidl_os;
735       _aidl_os << "LeAudioBroadcastSubgroupConfigurationRequirement{";
736       _aidl_os << "audioContext: " << ::android::internal::ToString(audioContext);
737       _aidl_os << ", quality: " << ::android::internal::ToString(quality);
738       _aidl_os << ", bisNumPerSubgroup: " << ::android::internal::ToString(bisNumPerSubgroup);
739       _aidl_os << "}";
740       return _aidl_os.str();
741     }
742   };
743   class LeAudioBroadcastConfigurationRequirement {
744   public:
745     typedef std::false_type fixed_size;
746     static const char* descriptor;
747 
748     std::vector<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioBroadcastSubgroupConfigurationRequirement> subgroupConfigurationRequirements;
749 
750     binder_status_t readFromParcel(const AParcel* parcel);
751     binder_status_t writeToParcel(AParcel* parcel) const;
752 
753     inline bool operator==(const LeAudioBroadcastConfigurationRequirement& _rhs) const {
754       return std::tie(subgroupConfigurationRequirements) == std::tie(_rhs.subgroupConfigurationRequirements);
755     }
756     inline bool operator<(const LeAudioBroadcastConfigurationRequirement& _rhs) const {
757       return std::tie(subgroupConfigurationRequirements) < std::tie(_rhs.subgroupConfigurationRequirements);
758     }
759     inline bool operator!=(const LeAudioBroadcastConfigurationRequirement& _rhs) const {
760       return !(*this == _rhs);
761     }
762     inline bool operator>(const LeAudioBroadcastConfigurationRequirement& _rhs) const {
763       return _rhs < *this;
764     }
765     inline bool operator>=(const LeAudioBroadcastConfigurationRequirement& _rhs) const {
766       return !(*this < _rhs);
767     }
768     inline bool operator<=(const LeAudioBroadcastConfigurationRequirement& _rhs) const {
769       return !(_rhs < *this);
770     }
771 
772     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()773     inline std::string toString() const {
774       std::ostringstream _aidl_os;
775       _aidl_os << "LeAudioBroadcastConfigurationRequirement{";
776       _aidl_os << "subgroupConfigurationRequirements: " << ::android::internal::ToString(subgroupConfigurationRequirements);
777       _aidl_os << "}";
778       return _aidl_os.str();
779     }
780   };
781   class LeAudioSubgroupBisConfiguration {
782   public:
783     typedef std::false_type fixed_size;
784     static const char* descriptor;
785 
786     int32_t numBis = 0;
787     ::aidl::android::hardware::bluetooth::audio::LeAudioBisConfiguration bisConfiguration;
788 
789     binder_status_t readFromParcel(const AParcel* parcel);
790     binder_status_t writeToParcel(AParcel* parcel) const;
791 
792     inline bool operator==(const LeAudioSubgroupBisConfiguration& _rhs) const {
793       return std::tie(numBis, bisConfiguration) == std::tie(_rhs.numBis, _rhs.bisConfiguration);
794     }
795     inline bool operator<(const LeAudioSubgroupBisConfiguration& _rhs) const {
796       return std::tie(numBis, bisConfiguration) < std::tie(_rhs.numBis, _rhs.bisConfiguration);
797     }
798     inline bool operator!=(const LeAudioSubgroupBisConfiguration& _rhs) const {
799       return !(*this == _rhs);
800     }
801     inline bool operator>(const LeAudioSubgroupBisConfiguration& _rhs) const {
802       return _rhs < *this;
803     }
804     inline bool operator>=(const LeAudioSubgroupBisConfiguration& _rhs) const {
805       return !(*this < _rhs);
806     }
807     inline bool operator<=(const LeAudioSubgroupBisConfiguration& _rhs) const {
808       return !(_rhs < *this);
809     }
810 
811     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()812     inline std::string toString() const {
813       std::ostringstream _aidl_os;
814       _aidl_os << "LeAudioSubgroupBisConfiguration{";
815       _aidl_os << "numBis: " << ::android::internal::ToString(numBis);
816       _aidl_os << ", bisConfiguration: " << ::android::internal::ToString(bisConfiguration);
817       _aidl_os << "}";
818       return _aidl_os.str();
819     }
820   };
821   class LeAudioBroadcastSubgroupConfiguration {
822   public:
823     typedef std::false_type fixed_size;
824     static const char* descriptor;
825 
826     std::vector<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioSubgroupBisConfiguration> bisConfigurations;
827     std::optional<std::vector<uint8_t>> vendorCodecConfiguration;
828 
829     binder_status_t readFromParcel(const AParcel* parcel);
830     binder_status_t writeToParcel(AParcel* parcel) const;
831 
832     inline bool operator==(const LeAudioBroadcastSubgroupConfiguration& _rhs) const {
833       return std::tie(bisConfigurations, vendorCodecConfiguration) == std::tie(_rhs.bisConfigurations, _rhs.vendorCodecConfiguration);
834     }
835     inline bool operator<(const LeAudioBroadcastSubgroupConfiguration& _rhs) const {
836       return std::tie(bisConfigurations, vendorCodecConfiguration) < std::tie(_rhs.bisConfigurations, _rhs.vendorCodecConfiguration);
837     }
838     inline bool operator!=(const LeAudioBroadcastSubgroupConfiguration& _rhs) const {
839       return !(*this == _rhs);
840     }
841     inline bool operator>(const LeAudioBroadcastSubgroupConfiguration& _rhs) const {
842       return _rhs < *this;
843     }
844     inline bool operator>=(const LeAudioBroadcastSubgroupConfiguration& _rhs) const {
845       return !(*this < _rhs);
846     }
847     inline bool operator<=(const LeAudioBroadcastSubgroupConfiguration& _rhs) const {
848       return !(_rhs < *this);
849     }
850 
851     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()852     inline std::string toString() const {
853       std::ostringstream _aidl_os;
854       _aidl_os << "LeAudioBroadcastSubgroupConfiguration{";
855       _aidl_os << "bisConfigurations: " << ::android::internal::ToString(bisConfigurations);
856       _aidl_os << ", vendorCodecConfiguration: " << ::android::internal::ToString(vendorCodecConfiguration);
857       _aidl_os << "}";
858       return _aidl_os.str();
859     }
860   };
861   class LeAudioBroadcastConfigurationSetting {
862   public:
863     typedef std::false_type fixed_size;
864     static const char* descriptor;
865 
866     int32_t sduIntervalUs = 0;
867     int32_t numBis = 0;
868     int32_t maxSduOctets = 0;
869     int32_t maxTransportLatencyMs = 0;
870     int32_t retransmitionNum = 0;
871     std::vector<::aidl::android::hardware::bluetooth::audio::Phy> phy;
872     ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Packing packing = ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Packing(0);
873     ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Framing framing = ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Framing(0);
874     std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDataPathConfiguration> dataPathConfiguration;
875     std::vector<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioBroadcastSubgroupConfiguration> subgroupsConfigurations;
876 
877     binder_status_t readFromParcel(const AParcel* parcel);
878     binder_status_t writeToParcel(AParcel* parcel) const;
879 
880     inline bool operator==(const LeAudioBroadcastConfigurationSetting& _rhs) const {
881       return std::tie(sduIntervalUs, numBis, maxSduOctets, maxTransportLatencyMs, retransmitionNum, phy, packing, framing, dataPathConfiguration, subgroupsConfigurations) == std::tie(_rhs.sduIntervalUs, _rhs.numBis, _rhs.maxSduOctets, _rhs.maxTransportLatencyMs, _rhs.retransmitionNum, _rhs.phy, _rhs.packing, _rhs.framing, _rhs.dataPathConfiguration, _rhs.subgroupsConfigurations);
882     }
883     inline bool operator<(const LeAudioBroadcastConfigurationSetting& _rhs) const {
884       return std::tie(sduIntervalUs, numBis, maxSduOctets, maxTransportLatencyMs, retransmitionNum, phy, packing, framing, dataPathConfiguration, subgroupsConfigurations) < std::tie(_rhs.sduIntervalUs, _rhs.numBis, _rhs.maxSduOctets, _rhs.maxTransportLatencyMs, _rhs.retransmitionNum, _rhs.phy, _rhs.packing, _rhs.framing, _rhs.dataPathConfiguration, _rhs.subgroupsConfigurations);
885     }
886     inline bool operator!=(const LeAudioBroadcastConfigurationSetting& _rhs) const {
887       return !(*this == _rhs);
888     }
889     inline bool operator>(const LeAudioBroadcastConfigurationSetting& _rhs) const {
890       return _rhs < *this;
891     }
892     inline bool operator>=(const LeAudioBroadcastConfigurationSetting& _rhs) const {
893       return !(*this < _rhs);
894     }
895     inline bool operator<=(const LeAudioBroadcastConfigurationSetting& _rhs) const {
896       return !(_rhs < *this);
897     }
898 
899     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()900     inline std::string toString() const {
901       std::ostringstream _aidl_os;
902       _aidl_os << "LeAudioBroadcastConfigurationSetting{";
903       _aidl_os << "sduIntervalUs: " << ::android::internal::ToString(sduIntervalUs);
904       _aidl_os << ", numBis: " << ::android::internal::ToString(numBis);
905       _aidl_os << ", maxSduOctets: " << ::android::internal::ToString(maxSduOctets);
906       _aidl_os << ", maxTransportLatencyMs: " << ::android::internal::ToString(maxTransportLatencyMs);
907       _aidl_os << ", retransmitionNum: " << ::android::internal::ToString(retransmitionNum);
908       _aidl_os << ", phy: " << ::android::internal::ToString(phy);
909       _aidl_os << ", packing: " << ::android::internal::ToString(packing);
910       _aidl_os << ", framing: " << ::android::internal::ToString(framing);
911       _aidl_os << ", dataPathConfiguration: " << ::android::internal::ToString(dataPathConfiguration);
912       _aidl_os << ", subgroupsConfigurations: " << ::android::internal::ToString(subgroupsConfigurations);
913       _aidl_os << "}";
914       return _aidl_os.str();
915     }
916   };
917   enum : int32_t { CODEC_PRIORITY_DISABLED = -1 };
918   enum : int32_t { CODEC_PRIORITY_NONE = 0 };
919   static inline const int32_t version = true ? 4 : 5;
920   static inline const std::string hash = true ? "ac25616dda1c45dc2915d3f5ac82687a1a6f6e46" : "notfrozen";
921   static constexpr uint32_t TRANSACTION_endSession = FIRST_CALL_TRANSACTION + 0;
922   static constexpr uint32_t TRANSACTION_startSession = FIRST_CALL_TRANSACTION + 1;
923   static constexpr uint32_t TRANSACTION_streamStarted = FIRST_CALL_TRANSACTION + 2;
924   static constexpr uint32_t TRANSACTION_streamSuspended = FIRST_CALL_TRANSACTION + 3;
925   static constexpr uint32_t TRANSACTION_updateAudioConfiguration = FIRST_CALL_TRANSACTION + 4;
926   static constexpr uint32_t TRANSACTION_setLowLatencyModeAllowed = FIRST_CALL_TRANSACTION + 5;
927   static constexpr uint32_t TRANSACTION_parseA2dpConfiguration = FIRST_CALL_TRANSACTION + 6;
928   static constexpr uint32_t TRANSACTION_getA2dpConfiguration = FIRST_CALL_TRANSACTION + 7;
929   static constexpr uint32_t TRANSACTION_setCodecPriority = FIRST_CALL_TRANSACTION + 8;
930   static constexpr uint32_t TRANSACTION_getLeAudioAseConfiguration = FIRST_CALL_TRANSACTION + 9;
931   static constexpr uint32_t TRANSACTION_getLeAudioAseQosConfiguration = FIRST_CALL_TRANSACTION + 10;
932   static constexpr uint32_t TRANSACTION_getLeAudioAseDatapathConfiguration = FIRST_CALL_TRANSACTION + 11;
933   static constexpr uint32_t TRANSACTION_onSinkAseMetadataChanged = FIRST_CALL_TRANSACTION + 12;
934   static constexpr uint32_t TRANSACTION_onSourceAseMetadataChanged = FIRST_CALL_TRANSACTION + 13;
935   static constexpr uint32_t TRANSACTION_getLeAudioBroadcastConfiguration = FIRST_CALL_TRANSACTION + 14;
936   static constexpr uint32_t TRANSACTION_getLeAudioBroadcastDatapathConfiguration = FIRST_CALL_TRANSACTION + 15;
937 
938   static std::shared_ptr<IBluetoothAudioProvider> fromBinder(const ::ndk::SpAIBinder& binder);
939   static binder_status_t writeToParcel(AParcel* parcel, const std::shared_ptr<IBluetoothAudioProvider>& instance);
940   static binder_status_t readFromParcel(const AParcel* parcel, std::shared_ptr<IBluetoothAudioProvider>* instance);
941   static bool setDefaultImpl(const std::shared_ptr<IBluetoothAudioProvider>& impl);
942   static const std::shared_ptr<IBluetoothAudioProvider>& getDefaultImpl();
943   virtual ::ndk::ScopedAStatus endSession() = 0;
944   virtual ::ndk::ScopedAStatus startSession(const std::shared_ptr<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioPort>& in_hostIf, const ::aidl::android::hardware::bluetooth::audio::AudioConfiguration& in_audioConfig, const std::vector<::aidl::android::hardware::bluetooth::audio::LatencyMode>& in_supportedLatencyModes, ::aidl::android::hardware::common::fmq::MQDescriptor<int8_t, ::aidl::android::hardware::common::fmq::SynchronizedReadWrite>* _aidl_return) = 0;
945   virtual ::ndk::ScopedAStatus streamStarted(::aidl::android::hardware::bluetooth::audio::BluetoothAudioStatus in_status) = 0;
946   virtual ::ndk::ScopedAStatus streamSuspended(::aidl::android::hardware::bluetooth::audio::BluetoothAudioStatus in_status) = 0;
947   virtual ::ndk::ScopedAStatus updateAudioConfiguration(const ::aidl::android::hardware::bluetooth::audio::AudioConfiguration& in_audioConfig) = 0;
948   virtual ::ndk::ScopedAStatus setLowLatencyModeAllowed(bool in_allowed) = 0;
949   virtual ::ndk::ScopedAStatus parseA2dpConfiguration(const ::aidl::android::hardware::bluetooth::audio::CodecId& in_codecId, const std::vector<uint8_t>& in_configuration, ::aidl::android::hardware::bluetooth::audio::CodecParameters* out_codecParameters, ::aidl::android::hardware::bluetooth::audio::A2dpStatus* _aidl_return) = 0;
950   virtual ::ndk::ScopedAStatus getA2dpConfiguration(const std::vector<::aidl::android::hardware::bluetooth::audio::A2dpRemoteCapabilities>& in_remoteA2dpCapabilities, const ::aidl::android::hardware::bluetooth::audio::A2dpConfigurationHint& in_hint, std::optional<::aidl::android::hardware::bluetooth::audio::A2dpConfiguration>* _aidl_return) = 0;
951   virtual ::ndk::ScopedAStatus setCodecPriority(const ::aidl::android::hardware::bluetooth::audio::CodecId& in_codecId, int32_t in_priority) = 0;
952   virtual ::ndk::ScopedAStatus getLeAudioAseConfiguration(const std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDeviceCapabilities>>>& in_remoteSinkAudioCapabilities, const std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDeviceCapabilities>>>& in_remoteSourceAudioCapabilities, const std::vector<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioConfigurationRequirement>& in_requirements, std::vector<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseConfigurationSetting>* _aidl_return) = 0;
953   virtual ::ndk::ScopedAStatus getLeAudioAseQosConfiguration(const ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseQosConfigurationRequirement& in_qosRequirement, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseQosConfigurationPair* _aidl_return) = 0;
954   virtual ::ndk::ScopedAStatus getLeAudioAseDatapathConfiguration(const std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::StreamConfig>& in_sinkConfig, const std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::StreamConfig>& in_sourceConfig, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDataPathConfigurationPair* _aidl_return) = 0;
955   virtual ::ndk::ScopedAStatus onSinkAseMetadataChanged(::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::AseState in_state, int32_t in_cigId, int32_t in_cisId, const std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::MetadataLtv>>>& in_metadata) = 0;
956   virtual ::ndk::ScopedAStatus onSourceAseMetadataChanged(::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::AseState in_state, int32_t in_cigId, int32_t in_cisId, const std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::MetadataLtv>>>& in_metadata) = 0;
957   virtual ::ndk::ScopedAStatus getLeAudioBroadcastConfiguration(const std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDeviceCapabilities>>>& in_remoteSinkAudioCapabilities, const ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioBroadcastConfigurationRequirement& in_requirement, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioBroadcastConfigurationSetting* _aidl_return) = 0;
958   virtual ::ndk::ScopedAStatus getLeAudioBroadcastDatapathConfiguration(const ::aidl::android::hardware::bluetooth::audio::AudioContext& in_audioContext, const std::vector<::aidl::android::hardware::bluetooth::audio::LeAudioBroadcastConfiguration::BroadcastStreamMap>& in_streamMap, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDataPathConfiguration* _aidl_return) = 0;
959   virtual ::ndk::ScopedAStatus getInterfaceVersion(int32_t* _aidl_return) = 0;
960   virtual ::ndk::ScopedAStatus getInterfaceHash(std::string* _aidl_return) = 0;
961 private:
962   static std::shared_ptr<IBluetoothAudioProvider> default_impl;
963 };
964 class IBluetoothAudioProviderDefault : public IBluetoothAudioProvider {
965 public:
966   ::ndk::ScopedAStatus endSession() override;
967   ::ndk::ScopedAStatus startSession(const std::shared_ptr<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioPort>& in_hostIf, const ::aidl::android::hardware::bluetooth::audio::AudioConfiguration& in_audioConfig, const std::vector<::aidl::android::hardware::bluetooth::audio::LatencyMode>& in_supportedLatencyModes, ::aidl::android::hardware::common::fmq::MQDescriptor<int8_t, ::aidl::android::hardware::common::fmq::SynchronizedReadWrite>* _aidl_return) override;
968   ::ndk::ScopedAStatus streamStarted(::aidl::android::hardware::bluetooth::audio::BluetoothAudioStatus in_status) override;
969   ::ndk::ScopedAStatus streamSuspended(::aidl::android::hardware::bluetooth::audio::BluetoothAudioStatus in_status) override;
970   ::ndk::ScopedAStatus updateAudioConfiguration(const ::aidl::android::hardware::bluetooth::audio::AudioConfiguration& in_audioConfig) override;
971   ::ndk::ScopedAStatus setLowLatencyModeAllowed(bool in_allowed) override;
972   ::ndk::ScopedAStatus parseA2dpConfiguration(const ::aidl::android::hardware::bluetooth::audio::CodecId& in_codecId, const std::vector<uint8_t>& in_configuration, ::aidl::android::hardware::bluetooth::audio::CodecParameters* out_codecParameters, ::aidl::android::hardware::bluetooth::audio::A2dpStatus* _aidl_return) override;
973   ::ndk::ScopedAStatus getA2dpConfiguration(const std::vector<::aidl::android::hardware::bluetooth::audio::A2dpRemoteCapabilities>& in_remoteA2dpCapabilities, const ::aidl::android::hardware::bluetooth::audio::A2dpConfigurationHint& in_hint, std::optional<::aidl::android::hardware::bluetooth::audio::A2dpConfiguration>* _aidl_return) override;
974   ::ndk::ScopedAStatus setCodecPriority(const ::aidl::android::hardware::bluetooth::audio::CodecId& in_codecId, int32_t in_priority) override;
975   ::ndk::ScopedAStatus getLeAudioAseConfiguration(const std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDeviceCapabilities>>>& in_remoteSinkAudioCapabilities, const std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDeviceCapabilities>>>& in_remoteSourceAudioCapabilities, const std::vector<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioConfigurationRequirement>& in_requirements, std::vector<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseConfigurationSetting>* _aidl_return) override;
976   ::ndk::ScopedAStatus getLeAudioAseQosConfiguration(const ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseQosConfigurationRequirement& in_qosRequirement, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioAseQosConfigurationPair* _aidl_return) override;
977   ::ndk::ScopedAStatus getLeAudioAseDatapathConfiguration(const std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::StreamConfig>& in_sinkConfig, const std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::StreamConfig>& in_sourceConfig, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDataPathConfigurationPair* _aidl_return) override;
978   ::ndk::ScopedAStatus onSinkAseMetadataChanged(::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::AseState in_state, int32_t in_cigId, int32_t in_cisId, const std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::MetadataLtv>>>& in_metadata) override;
979   ::ndk::ScopedAStatus onSourceAseMetadataChanged(::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::AseState in_state, int32_t in_cigId, int32_t in_cisId, const std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::MetadataLtv>>>& in_metadata) override;
980   ::ndk::ScopedAStatus getLeAudioBroadcastConfiguration(const std::optional<std::vector<std::optional<::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDeviceCapabilities>>>& in_remoteSinkAudioCapabilities, const ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioBroadcastConfigurationRequirement& in_requirement, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioBroadcastConfigurationSetting* _aidl_return) override;
981   ::ndk::ScopedAStatus getLeAudioBroadcastDatapathConfiguration(const ::aidl::android::hardware::bluetooth::audio::AudioContext& in_audioContext, const std::vector<::aidl::android::hardware::bluetooth::audio::LeAudioBroadcastConfiguration::BroadcastStreamMap>& in_streamMap, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::LeAudioDataPathConfiguration* _aidl_return) override;
982   ::ndk::ScopedAStatus getInterfaceVersion(int32_t* _aidl_return) override;
983   ::ndk::ScopedAStatus getInterfaceHash(std::string* _aidl_return) override;
984   ::ndk::SpAIBinder asBinder() override;
985   bool isRemote() override;
986 };
987 }  // namespace audio
988 }  // namespace bluetooth
989 }  // namespace hardware
990 }  // namespace android
991 }  // namespace aidl
992 namespace aidl {
993 namespace android {
994 namespace hardware {
995 namespace bluetooth {
996 namespace audio {
toString(IBluetoothAudioProvider::Packing val)997 [[nodiscard]] static inline std::string toString(IBluetoothAudioProvider::Packing val) {
998   switch(val) {
999   case IBluetoothAudioProvider::Packing::SEQUENTIAL:
1000     return "SEQUENTIAL";
1001   case IBluetoothAudioProvider::Packing::INTERLEAVED:
1002     return "INTERLEAVED";
1003   default:
1004     return std::to_string(static_cast<int8_t>(val));
1005   }
1006 }
1007 }  // namespace audio
1008 }  // namespace bluetooth
1009 }  // namespace hardware
1010 }  // namespace android
1011 }  // namespace aidl
1012 namespace ndk {
1013 namespace internal {
1014 #pragma clang diagnostic push
1015 #pragma clang diagnostic ignored "-Wc++17-extensions"
1016 template <>
1017 constexpr inline std::array<aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Packing, 2> enum_values<aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Packing> = {
1018   aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Packing::SEQUENTIAL,
1019   aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Packing::INTERLEAVED,
1020 };
1021 #pragma clang diagnostic pop
1022 }  // namespace internal
1023 }  // namespace ndk
1024 namespace aidl {
1025 namespace android {
1026 namespace hardware {
1027 namespace bluetooth {
1028 namespace audio {
toString(IBluetoothAudioProvider::Framing val)1029 [[nodiscard]] static inline std::string toString(IBluetoothAudioProvider::Framing val) {
1030   switch(val) {
1031   case IBluetoothAudioProvider::Framing::UNFRAMED:
1032     return "UNFRAMED";
1033   case IBluetoothAudioProvider::Framing::FRAMED:
1034     return "FRAMED";
1035   default:
1036     return std::to_string(static_cast<int8_t>(val));
1037   }
1038 }
1039 }  // namespace audio
1040 }  // namespace bluetooth
1041 }  // namespace hardware
1042 }  // namespace android
1043 }  // namespace aidl
1044 namespace ndk {
1045 namespace internal {
1046 #pragma clang diagnostic push
1047 #pragma clang diagnostic ignored "-Wc++17-extensions"
1048 template <>
1049 constexpr inline std::array<aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Framing, 2> enum_values<aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Framing> = {
1050   aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Framing::UNFRAMED,
1051   aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::Framing::FRAMED,
1052 };
1053 #pragma clang diagnostic pop
1054 }  // namespace internal
1055 }  // namespace ndk
1056 namespace aidl {
1057 namespace android {
1058 namespace hardware {
1059 namespace bluetooth {
1060 namespace audio {
toString(IBluetoothAudioProvider::AseState val)1061 [[nodiscard]] static inline std::string toString(IBluetoothAudioProvider::AseState val) {
1062   switch(val) {
1063   case IBluetoothAudioProvider::AseState::ENABLING:
1064     return "ENABLING";
1065   case IBluetoothAudioProvider::AseState::STREAMING:
1066     return "STREAMING";
1067   case IBluetoothAudioProvider::AseState::DISABLING:
1068     return "DISABLING";
1069   default:
1070     return std::to_string(static_cast<int8_t>(val));
1071   }
1072 }
1073 }  // namespace audio
1074 }  // namespace bluetooth
1075 }  // namespace hardware
1076 }  // namespace android
1077 }  // namespace aidl
1078 namespace ndk {
1079 namespace internal {
1080 #pragma clang diagnostic push
1081 #pragma clang diagnostic ignored "-Wc++17-extensions"
1082 template <>
1083 constexpr inline std::array<aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::AseState, 3> enum_values<aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::AseState> = {
1084   aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::AseState::ENABLING,
1085   aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::AseState::STREAMING,
1086   aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::AseState::DISABLING,
1087 };
1088 #pragma clang diagnostic pop
1089 }  // namespace internal
1090 }  // namespace ndk
1091 namespace aidl {
1092 namespace android {
1093 namespace hardware {
1094 namespace bluetooth {
1095 namespace audio {
toString(IBluetoothAudioProvider::BroadcastQuality val)1096 [[nodiscard]] static inline std::string toString(IBluetoothAudioProvider::BroadcastQuality val) {
1097   switch(val) {
1098   case IBluetoothAudioProvider::BroadcastQuality::STANDARD:
1099     return "STANDARD";
1100   case IBluetoothAudioProvider::BroadcastQuality::HIGH:
1101     return "HIGH";
1102   default:
1103     return std::to_string(static_cast<int8_t>(val));
1104   }
1105 }
1106 }  // namespace audio
1107 }  // namespace bluetooth
1108 }  // namespace hardware
1109 }  // namespace android
1110 }  // namespace aidl
1111 namespace ndk {
1112 namespace internal {
1113 #pragma clang diagnostic push
1114 #pragma clang diagnostic ignored "-Wc++17-extensions"
1115 template <>
1116 constexpr inline std::array<aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::BroadcastQuality, 2> enum_values<aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::BroadcastQuality> = {
1117   aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::BroadcastQuality::STANDARD,
1118   aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::BroadcastQuality::HIGH,
1119 };
1120 #pragma clang diagnostic pop
1121 }  // namespace internal
1122 }  // namespace ndk
1123