1 #ifndef HIDL_GENERATED_ANDROID_HARDWARE_AUDIO_COMMON_V7_0_TYPES_H
2 #define HIDL_GENERATED_ANDROID_HARDWARE_AUDIO_COMMON_V7_0_TYPES_H
3 
4 #include <android/hidl/safe_union/1.0/types.h>
5 
6 #include <hidl/HidlSupport.h>
7 #include <hidl/MQDescriptor.h>
8 #include <utils/NativeHandle.h>
9 #include <utils/misc.h>
10 
11 namespace android {
12 namespace hardware {
13 namespace audio {
14 namespace common {
15 namespace V7_0 {
16 
17 // Forward declaration for forward reference support:
18 struct Uuid;
19 enum class AudioSessionConsts : int32_t;
20 struct AudioConfigBase;
21 struct AudioConfigBaseOptional;
22 struct AudioProfile;
23 struct AudioTransport;
24 enum class AudioMode : int32_t;
25 struct DeviceAddress;
26 enum class AudioEncapsulationMode : int32_t;
27 enum class AudioEncapsulationMetadataType : int32_t;
28 struct AudioOffloadInfo;
29 struct AudioConfig;
30 struct PlaybackTrackMetadata;
31 struct SourceMetadata;
32 struct RecordTrackMetadata;
33 struct SinkMetadata;
34 struct AudioGain;
35 struct AudioGainConfig;
36 struct AudioPortExtendedInfo;
37 struct AudioPortConfig;
38 struct AudioPort;
39 
40 /**
41  * Handle type for identifying audio resources. Handles are allocated by the framework.
42  */
43 typedef int32_t AudioIoHandle;
44 
45 /**
46  * Each port has a unique ID or handle allocated by policy manager.
47  */
48 typedef int32_t AudioPortHandle;
49 
50 /**
51  * Each patch is identified by a handle allocated by the HAL.
52  */
53 typedef int32_t AudioPatchHandle;
54 
55 /**
56  * A HW synchronization source returned by the audio HAL.
57  */
58 typedef uint32_t AudioHwSync;
59 
60 /**
61  * Commonly used structure for passing unique identifieds (UUID).
62  * For the definition of UUID, refer to ITU-T X.667 spec.
63  */
64 struct Uuid final {
65     uint32_t timeLow __attribute__ ((aligned(4)));
66     uint16_t timeMid __attribute__ ((aligned(2)));
67     uint16_t versionAndTimeHigh __attribute__ ((aligned(2)));
68     uint16_t variantAndClockSeqHigh __attribute__ ((aligned(2)));
69     ::android::hardware::hidl_array<uint8_t, 6> node __attribute__ ((aligned(1)));
70 };
71 
72 static_assert(offsetof(::android::hardware::audio::common::V7_0::Uuid, timeLow) == 0, "wrong offset");
73 static_assert(offsetof(::android::hardware::audio::common::V7_0::Uuid, timeMid) == 4, "wrong offset");
74 static_assert(offsetof(::android::hardware::audio::common::V7_0::Uuid, versionAndTimeHigh) == 6, "wrong offset");
75 static_assert(offsetof(::android::hardware::audio::common::V7_0::Uuid, variantAndClockSeqHigh) == 8, "wrong offset");
76 static_assert(offsetof(::android::hardware::audio::common::V7_0::Uuid, node) == 10, "wrong offset");
77 static_assert(sizeof(::android::hardware::audio::common::V7_0::Uuid) == 16, "wrong size");
78 static_assert(__alignof(::android::hardware::audio::common::V7_0::Uuid) == 4, "wrong alignment");
79 
80 /*
81  *  Audio streams
82  *
83  *
84  *
85  * Audio stream type describing the intended use case of a stream.
86  * See 'audioStreamType' in audio_policy_configuration.xsd for the
87  * list of allowed values.
88  *
89  * An empty string is used to specify the "default" stream type.
90  */
91 typedef ::android::hardware::hidl_string AudioStreamType;
92 
93 /**
94  * An audio source defines the intended use case for the sound being recorded.
95  * See 'audioSource' in audio_policy_configuration.xsd for the
96  * list of allowed values.
97  */
98 typedef ::android::hardware::hidl_string AudioSource;
99 
100 /**
101  * An audio session identifier is used to designate the particular
102  * playback or recording session (e.g. playback performed by a certain
103  * application).
104  */
105 typedef int32_t AudioSession;
106 
107 enum class AudioSessionConsts : int32_t {
108     /**
109      * Session for effects attached to a particular sink or source audio device
110      * (e.g an effect only applied to a speaker)
111      */
112     DEVICE = -2 /* -2 */,
113     /**
114      * Session for effects attached to a particular output stream
115      * (value must be less than 0)
116      */
117     OUTPUT_STAGE = -1 /* -1 */,
118     /**
119      * Session for effects applied to output mix. These effects can
120      * be moved by audio policy manager to another output stream
121      * (value must be 0)
122      */
123     OUTPUT_MIX = 0,
124 };
125 
126 /**
127  * Audio format indicates audio codec type.
128  * See 'audioFormat' in audio_policy_configuration.xsd for the
129  * list of allowed values.
130  */
131 typedef ::android::hardware::hidl_string AudioFormat;
132 
133 /**
134  * Audio channel mask indicates presence of particular channels.
135  * Note that every value is already a mask comprised of individual
136  * channels.
137  * See 'audioChannelMask' in audio_policy_configuration.xsd for the
138  * list of allowed values.
139  */
140 typedef ::android::hardware::hidl_string AudioChannelMask;
141 
142 /**
143  * Base configuration attributes applicable to any stream of audio.
144  */
145 struct AudioConfigBase final {
146     ::android::hardware::hidl_string format __attribute__ ((aligned(8)));
147     uint32_t sampleRateHz __attribute__ ((aligned(4)));
148     ::android::hardware::hidl_string channelMask __attribute__ ((aligned(8)));
149 };
150 
151 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioConfigBase, format) == 0, "wrong offset");
152 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioConfigBase, sampleRateHz) == 16, "wrong offset");
153 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioConfigBase, channelMask) == 24, "wrong offset");
154 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBase) == 40, "wrong size");
155 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBase) == 8, "wrong alignment");
156 
157 /**
158  * Base configuration attributes applicable to any stream of audio.
159  * Any attribute may be left unspecified.
160  */
161 struct AudioConfigBaseOptional final {
162     // Forward declaration for forward reference support:
163     struct Format;
164     struct SampleRate;
165     struct ChannelMask;
166 
167     struct Format final {
168         enum class hidl_discriminator : uint8_t {
169             unspecified = 0,  // ::android::hidl::safe_union::V1_0::Monostate
170             value = 1,  // ::android::hardware::hidl_string
171         };
172 
173         Format();
174         ~Format();
175         Format(Format&&);
176         Format(const Format&);
177         Format& operator=(Format&&);
178         Format& operator=(const Format&);
179 
180         void unspecified(const ::android::hidl::safe_union::V1_0::Monostate&);
181         void unspecified(::android::hidl::safe_union::V1_0::Monostate&&);
182         ::android::hidl::safe_union::V1_0::Monostate& unspecified();
183         const ::android::hidl::safe_union::V1_0::Monostate& unspecified() const;
184 
185         void value(const ::android::hardware::hidl_string&);
186         void value(::android::hardware::hidl_string&&);
187         ::android::hardware::hidl_string& value();
188         const ::android::hardware::hidl_string& value() const;
189 
190         // Utility methods
191         hidl_discriminator getDiscriminator() const;
192 
hidl_getUnionOffsetfinal::final193         constexpr size_t hidl_getUnionOffset() const {
194             return offsetof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format, hidl_u);
195         }
196 
197     private:
198         void hidl_destructUnion();
199 
200         hidl_discriminator hidl_d __attribute__ ((aligned(1))) ;
201         union hidl_union final {
202             ::android::hidl::safe_union::V1_0::Monostate unspecified __attribute__ ((aligned(1)));
203             ::android::hardware::hidl_string value __attribute__ ((aligned(8)));
204 
205             hidl_union();
206             ~hidl_union();
207         } hidl_u;
208 
209         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format::hidl_union) == 16, "wrong size");
210         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format::hidl_union) == 8, "wrong alignment");
211         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format::hidl_discriminator) == 1, "wrong size");
212         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format::hidl_discriminator) == 1, "wrong alignment");
213     };
214 
215     static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format) == 24, "wrong size");
216     static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format) == 8, "wrong alignment");
217 
218     struct SampleRate final {
219         enum class hidl_discriminator : uint8_t {
220             unspecified = 0,  // ::android::hidl::safe_union::V1_0::Monostate
221             value = 1,  // uint32_t
222         };
223 
224         SampleRate();
225         ~SampleRate();
226         SampleRate(SampleRate&&);
227         SampleRate(const SampleRate&);
228         SampleRate& operator=(SampleRate&&);
229         SampleRate& operator=(const SampleRate&);
230 
231         void unspecified(const ::android::hidl::safe_union::V1_0::Monostate&);
232         void unspecified(::android::hidl::safe_union::V1_0::Monostate&&);
233         ::android::hidl::safe_union::V1_0::Monostate& unspecified();
234         const ::android::hidl::safe_union::V1_0::Monostate& unspecified() const;
235 
236         void value(uint32_t);
237         uint32_t& value();
238         uint32_t value() const;
239 
240         // Utility methods
241         hidl_discriminator getDiscriminator() const;
242 
hidl_getUnionOffsetfinal::final243         constexpr size_t hidl_getUnionOffset() const {
244             return offsetof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate, hidl_u);
245         }
246 
247     private:
248         void hidl_destructUnion();
249 
250         hidl_discriminator hidl_d __attribute__ ((aligned(1))) ;
251         union hidl_union final {
252             ::android::hidl::safe_union::V1_0::Monostate unspecified __attribute__ ((aligned(1)));
253             uint32_t value __attribute__ ((aligned(4)));
254 
255             hidl_union();
256             ~hidl_union();
257         } hidl_u;
258 
259         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate::hidl_union) == 4, "wrong size");
260         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate::hidl_union) == 4, "wrong alignment");
261         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate::hidl_discriminator) == 1, "wrong size");
262         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate::hidl_discriminator) == 1, "wrong alignment");
263     };
264 
265     static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate) == 8, "wrong size");
266     static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate) == 4, "wrong alignment");
267 
268     struct ChannelMask final {
269         enum class hidl_discriminator : uint8_t {
270             unspecified = 0,  // ::android::hidl::safe_union::V1_0::Monostate
271             value = 1,  // ::android::hardware::hidl_string
272         };
273 
274         ChannelMask();
275         ~ChannelMask();
276         ChannelMask(ChannelMask&&);
277         ChannelMask(const ChannelMask&);
278         ChannelMask& operator=(ChannelMask&&);
279         ChannelMask& operator=(const ChannelMask&);
280 
281         void unspecified(const ::android::hidl::safe_union::V1_0::Monostate&);
282         void unspecified(::android::hidl::safe_union::V1_0::Monostate&&);
283         ::android::hidl::safe_union::V1_0::Monostate& unspecified();
284         const ::android::hidl::safe_union::V1_0::Monostate& unspecified() const;
285 
286         void value(const ::android::hardware::hidl_string&);
287         void value(::android::hardware::hidl_string&&);
288         ::android::hardware::hidl_string& value();
289         const ::android::hardware::hidl_string& value() const;
290 
291         // Utility methods
292         hidl_discriminator getDiscriminator() const;
293 
hidl_getUnionOffsetfinal::final294         constexpr size_t hidl_getUnionOffset() const {
295             return offsetof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask, hidl_u);
296         }
297 
298     private:
299         void hidl_destructUnion();
300 
301         hidl_discriminator hidl_d __attribute__ ((aligned(1))) ;
302         union hidl_union final {
303             ::android::hidl::safe_union::V1_0::Monostate unspecified __attribute__ ((aligned(1)));
304             ::android::hardware::hidl_string value __attribute__ ((aligned(8)));
305 
306             hidl_union();
307             ~hidl_union();
308         } hidl_u;
309 
310         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask::hidl_union) == 16, "wrong size");
311         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask::hidl_union) == 8, "wrong alignment");
312         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask::hidl_discriminator) == 1, "wrong size");
313         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask::hidl_discriminator) == 1, "wrong alignment");
314     };
315 
316     static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask) == 24, "wrong size");
317     static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask) == 8, "wrong alignment");
318 
319     ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format format __attribute__ ((aligned(8)));
320     ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate sampleRateHz __attribute__ ((aligned(4)));
321     ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask channelMask __attribute__ ((aligned(8)));
322 };
323 
324 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional, format) == 0, "wrong offset");
325 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional, sampleRateHz) == 24, "wrong offset");
326 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional, channelMask) == 32, "wrong offset");
327 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional) == 56, "wrong size");
328 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfigBaseOptional) == 8, "wrong alignment");
329 
330 /**
331  * Audio encapsulation type indicates the encapsulation type that is required
332  * for playback/capture.
333  * See 'audioEncapsulationType' in audio_policy_configuration.xsd for the list
334  * of allowed values.
335  */
336 typedef ::android::hardware::hidl_string AudioEncapsulationType;
337 
338 /**
339  * Configurations supported for a certain audio format.
340  */
341 struct AudioProfile final {
342     ::android::hardware::hidl_string format __attribute__ ((aligned(8)));
343     /**
344      * List of the sample rates (in Hz) supported by the profile.
345      */
346     ::android::hardware::hidl_vec<uint32_t> sampleRates __attribute__ ((aligned(8)));
347     /**
348      * List of channel masks supported by the profile.
349      */
350     ::android::hardware::hidl_vec<::android::hardware::hidl_string> channelMasks __attribute__ ((aligned(8)));
351 };
352 
353 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioProfile, format) == 0, "wrong offset");
354 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioProfile, sampleRates) == 16, "wrong offset");
355 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioProfile, channelMasks) == 32, "wrong offset");
356 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioProfile) == 48, "wrong size");
357 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioProfile) == 8, "wrong alignment");
358 
359 /**
360  * AudioTransport struct describes the capability of an audio port. The
361  * capability is described via AudioProfile or raw hardware descriptors for
362  * for formats that are not supported by the platform.
363  */
364 struct AudioTransport final {
365     // Forward declaration for forward reference support:
366     struct AudioCapability;
367 
368     struct AudioCapability final {
369         enum class hidl_discriminator : uint8_t {
370             /**
371              * A certain audio format that is known by the platform and its
372              * corresponding configuration.
373              */
374             profile = 0,  // ::android::hardware::audio::common::V7_0::AudioProfile
375             /**
376              * The audio descriptor that is reported from EDID. See HDMI
377              * specification 1.4b section 7 and CEA-861-G section 7.5.2 for more
378              * information. When this value is set, it indicates the standard is
379              * AUDIO_STANDARD_EDID.
380              */
381             edid = 1,  // ::android::hardware::hidl_vec<uint8_t>
382         };
383 
384         AudioCapability();
385         ~AudioCapability();
386         AudioCapability(AudioCapability&&);
387         AudioCapability(const AudioCapability&);
388         AudioCapability& operator=(AudioCapability&&);
389         AudioCapability& operator=(const AudioCapability&);
390 
391         void profile(const ::android::hardware::audio::common::V7_0::AudioProfile&);
392         void profile(::android::hardware::audio::common::V7_0::AudioProfile&&);
393         ::android::hardware::audio::common::V7_0::AudioProfile& profile();
394         const ::android::hardware::audio::common::V7_0::AudioProfile& profile() const;
395 
396         void edid(const ::android::hardware::hidl_vec<uint8_t>&);
397         void edid(::android::hardware::hidl_vec<uint8_t>&&);
398         ::android::hardware::hidl_vec<uint8_t>& edid();
399         const ::android::hardware::hidl_vec<uint8_t>& edid() const;
400 
401         // Utility methods
402         hidl_discriminator getDiscriminator() const;
403 
hidl_getUnionOffsetfinal::final404         constexpr size_t hidl_getUnionOffset() const {
405             return offsetof(::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability, hidl_u);
406         }
407 
408     private:
409         void hidl_destructUnion();
410 
411         hidl_discriminator hidl_d __attribute__ ((aligned(1))) ;
412         union hidl_union final {
413             ::android::hardware::audio::common::V7_0::AudioProfile profile __attribute__ ((aligned(8)));
414             ::android::hardware::hidl_vec<uint8_t> edid __attribute__ ((aligned(8)));
415 
416             hidl_union();
417             ~hidl_union();
418         } hidl_u;
419 
420         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability::hidl_union) == 48, "wrong size");
421         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability::hidl_union) == 8, "wrong alignment");
422         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability::hidl_discriminator) == 1, "wrong size");
423         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability::hidl_discriminator) == 1, "wrong alignment");
424     };
425 
426     static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability) == 56, "wrong size");
427     static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability) == 8, "wrong alignment");
428 
429     ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability audioCapability __attribute__ ((aligned(8)));
430     /**
431      * The encapsulation type that is required when the framework is using this
432      * format when playing or capturing to/from a stream or device exposing this
433      * audio transport.
434      */
435     ::android::hardware::hidl_string encapsulationType __attribute__ ((aligned(8)));
436 };
437 
438 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioTransport, audioCapability) == 0, "wrong offset");
439 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioTransport, encapsulationType) == 56, "wrong offset");
440 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioTransport) == 72, "wrong size");
441 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioTransport) == 8, "wrong alignment");
442 
443 /**
444  * Major modes for a mobile device. The current mode setting affects audio
445  * routing.
446  */
447 enum class AudioMode : int32_t {
448     NORMAL = 0,
449     RINGTONE = 1,
450     /**
451      * Calls handled by the telephony stack (Eg: PSTN).
452      */
453     IN_CALL = 2,
454     /**
455      * Calls handled by apps (Eg: Hangout).
456      */
457     IN_COMMUNICATION = 3,
458     /**
459      * Call screening in progress.
460      */
461     CALL_SCREEN = 4,
462 };
463 
464 /**
465  * Audio device specifies type (or category) of audio I/O device
466  * (e.g. speaker or headphones).
467  * See 'audioDevice' in audio_policy_configuration.xsd for the
468  * list of allowed values.
469  */
470 typedef ::android::hardware::hidl_string AudioDevice;
471 
472 /**
473  * Specifies a device address in case when several devices of the same type
474  * can be connected (e.g. BT A2DP, USB).
475  */
476 struct DeviceAddress final {
477     // Forward declaration for forward reference support:
478     struct Address;
479 
480     struct Address final {
481         // Forward declaration for forward reference support:
482         struct Alsa;
483 
484         struct Alsa final {
485             int32_t card __attribute__ ((aligned(4)));
486             int32_t device __attribute__ ((aligned(4)));
487         };
488 
489         static_assert(offsetof(::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa, card) == 0, "wrong offset");
490         static_assert(offsetof(::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa, device) == 4, "wrong offset");
491         static_assert(sizeof(::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa) == 8, "wrong size");
492         static_assert(__alignof(::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa) == 4, "wrong alignment");
493 
494         enum class hidl_discriminator : uint8_t {
495             /**
496              * String uniquely identifying the device among other devices
497              * of the same type. Can be empty in case there is only one device
498              * of this type.
499              *
500              * Depending on the device type, its id may be assigned by the framework
501              * (this is done for REMOTE_SUBMIX), or specified in the audio policy
502              * configuration file (typically done for BUS devices), or assigned
503              * by the HAL service. In any case, both framework and HAL must
504              * never attempt to parse the value of the id. If the address must
505              * be parsed, one of the members below must be used instead of 'id'.
506              */
507             id = 0,  // ::android::hardware::hidl_string
508             /**
509              * IEEE 802 MAC address. Set for Bluetooth devices.
510              */
511             mac = 1,  // ::android::hardware::hidl_array<uint8_t, 6>
512             /**
513              * IPv4 Address. Set for IPv4 devices.
514              */
515             ipv4 = 2,  // ::android::hardware::hidl_array<uint8_t, 4>
516             /**
517              * IPv6 Address. Set for IPv6 devices.
518              */
519             ipv6 = 3,  // ::android::hardware::hidl_array<uint16_t, 8>
520             /**
521              * PCI bus Address. Set for USB devices.
522              */
523             alsa = 4,  // ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa
524         };
525 
526         Address();
527         ~Address();
528         Address(Address&&);
529         Address(const Address&);
530         Address& operator=(Address&&);
531         Address& operator=(const Address&);
532 
533         void id(const ::android::hardware::hidl_string&);
534         void id(::android::hardware::hidl_string&&);
535         ::android::hardware::hidl_string& id();
536         const ::android::hardware::hidl_string& id() const;
537 
538         void mac(const ::android::hardware::hidl_array<uint8_t, 6>&);
539         void mac(::android::hardware::hidl_array<uint8_t, 6>&&);
540         ::android::hardware::hidl_array<uint8_t, 6>& mac();
541         const ::android::hardware::hidl_array<uint8_t, 6>& mac() const;
542 
543         void ipv4(const ::android::hardware::hidl_array<uint8_t, 4>&);
544         void ipv4(::android::hardware::hidl_array<uint8_t, 4>&&);
545         ::android::hardware::hidl_array<uint8_t, 4>& ipv4();
546         const ::android::hardware::hidl_array<uint8_t, 4>& ipv4() const;
547 
548         void ipv6(const ::android::hardware::hidl_array<uint16_t, 8>&);
549         void ipv6(::android::hardware::hidl_array<uint16_t, 8>&&);
550         ::android::hardware::hidl_array<uint16_t, 8>& ipv6();
551         const ::android::hardware::hidl_array<uint16_t, 8>& ipv6() const;
552 
553         void alsa(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa&);
554         void alsa(::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa&&);
555         ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& alsa();
556         const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& alsa() const;
557 
558         // Utility methods
559         hidl_discriminator getDiscriminator() const;
560 
hidl_getUnionOffsetfinal::final561         constexpr size_t hidl_getUnionOffset() const {
562             return offsetof(::android::hardware::audio::common::V7_0::DeviceAddress::Address, hidl_u);
563         }
564 
565     private:
566         void hidl_destructUnion();
567 
568         hidl_discriminator hidl_d __attribute__ ((aligned(1))) ;
569         union hidl_union final {
570             ::android::hardware::hidl_string id __attribute__ ((aligned(8)));
571             ::android::hardware::hidl_array<uint8_t, 6> mac __attribute__ ((aligned(1)));
572             ::android::hardware::hidl_array<uint8_t, 4> ipv4 __attribute__ ((aligned(1)));
573             ::android::hardware::hidl_array<uint16_t, 8> ipv6 __attribute__ ((aligned(2)));
574             ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa alsa __attribute__ ((aligned(4)));
575 
576             hidl_union();
577             ~hidl_union();
578         } hidl_u;
579 
580         static_assert(sizeof(::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_union) == 16, "wrong size");
581         static_assert(__alignof(::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_union) == 8, "wrong alignment");
582         static_assert(sizeof(::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator) == 1, "wrong size");
583         static_assert(__alignof(::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator) == 1, "wrong alignment");
584     };
585 
586     static_assert(sizeof(::android::hardware::audio::common::V7_0::DeviceAddress::Address) == 24, "wrong size");
587     static_assert(__alignof(::android::hardware::audio::common::V7_0::DeviceAddress::Address) == 8, "wrong alignment");
588 
589     /**
590      * The type of the device.
591      */
592     ::android::hardware::hidl_string deviceType __attribute__ ((aligned(8)));
593     ::android::hardware::audio::common::V7_0::DeviceAddress::Address address __attribute__ ((aligned(8)));
594 };
595 
596 static_assert(offsetof(::android::hardware::audio::common::V7_0::DeviceAddress, deviceType) == 0, "wrong offset");
597 static_assert(offsetof(::android::hardware::audio::common::V7_0::DeviceAddress, address) == 16, "wrong offset");
598 static_assert(sizeof(::android::hardware::audio::common::V7_0::DeviceAddress) == 40, "wrong size");
599 static_assert(__alignof(::android::hardware::audio::common::V7_0::DeviceAddress) == 8, "wrong alignment");
600 
601 /**
602  * Audio usage specifies the intended use case for the sound being played.
603  * See 'audioUsage' in audio_policy_configuration.xsd for the
604  * list of allowed values.
605  */
606 typedef ::android::hardware::hidl_string AudioUsage;
607 
608 /**
609  * Audio content type expresses the general category of the content.
610  * See 'audioContentType' in audio_policy_configuration.xsd for the
611  * list of allowed values.
612  */
613 typedef ::android::hardware::hidl_string AudioContentType;
614 
615 /**
616  * Encapsulation mode used for sending audio compressed data.
617  */
618 enum class AudioEncapsulationMode : int32_t {
619     /**
620      * No encapsulation mode for metadata.
621      */
622     NONE = 0,
623     /**
624      * Elementary stream payload with metadata
625      */
626     ELEMENTARY_STREAM = 1,
627     /**
628      *  Handle-based payload with metadata
629      */
630     HANDLE = 2,
631 };
632 
633 /**
634  * Enumeration of metadata types permitted for use by
635  * encapsulation mode audio streams.
636  */
637 enum class AudioEncapsulationMetadataType : int32_t {
638     /**
639      * No metadata.
640      */
641     NONE = 0,
642     /**
643      * Encapsulation metadata type for framework tuner information.
644      */
645     FRAMEWORK_TUNER = 1,
646     /**
647      * Encapsulation metadata type for DVB AD descriptor.
648      * This metadata is formatted per ETSI TS 101 154 Table E.1: AD_descriptor.
649      */
650     DVB_AD_DESCRIPTOR = 2,
651 };
652 
653 /**
654  * Additional information about the stream passed to hardware decoders.
655  */
656 struct AudioOffloadInfo final {
657     ::android::hardware::audio::common::V7_0::AudioConfigBase base __attribute__ ((aligned(8)));
658     ::android::hardware::hidl_string streamType __attribute__ ((aligned(8)));
659     uint32_t bitRatePerSecond __attribute__ ((aligned(4)));
660     int64_t durationMicroseconds __attribute__ ((aligned(8)));
661     bool hasVideo __attribute__ ((aligned(1)));
662     bool isStreaming __attribute__ ((aligned(1)));
663     uint32_t bitWidth __attribute__ ((aligned(4)));
664     uint32_t bufferSize __attribute__ ((aligned(4)));
665     ::android::hardware::hidl_string usage __attribute__ ((aligned(8)));
666     ::android::hardware::audio::common::V7_0::AudioEncapsulationMode encapsulationMode __attribute__ ((aligned(4)));
667     int32_t contentId __attribute__ ((aligned(4)));
668     int32_t syncId __attribute__ ((aligned(4)));
669 };
670 
671 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, base) == 0, "wrong offset");
672 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, streamType) == 40, "wrong offset");
673 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, bitRatePerSecond) == 56, "wrong offset");
674 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, durationMicroseconds) == 64, "wrong offset");
675 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, hasVideo) == 72, "wrong offset");
676 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, isStreaming) == 73, "wrong offset");
677 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, bitWidth) == 76, "wrong offset");
678 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, bufferSize) == 80, "wrong offset");
679 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, usage) == 88, "wrong offset");
680 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, encapsulationMode) == 104, "wrong offset");
681 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, contentId) == 108, "wrong offset");
682 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioOffloadInfo, syncId) == 112, "wrong offset");
683 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioOffloadInfo) == 120, "wrong size");
684 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioOffloadInfo) == 8, "wrong alignment");
685 
686 /**
687  * Commonly used audio stream configuration parameters.
688  */
689 struct AudioConfig final {
690     // Forward declaration for forward reference support:
691     struct OffloadInfo;
692 
693     struct OffloadInfo final {
694         enum class hidl_discriminator : uint8_t {
695             unspecified = 0,  // ::android::hidl::safe_union::V1_0::Monostate
696             info = 1,  // ::android::hardware::audio::common::V7_0::AudioOffloadInfo
697         };
698 
699         OffloadInfo();
700         ~OffloadInfo();
701         OffloadInfo(OffloadInfo&&);
702         OffloadInfo(const OffloadInfo&);
703         OffloadInfo& operator=(OffloadInfo&&);
704         OffloadInfo& operator=(const OffloadInfo&);
705 
706         void unspecified(const ::android::hidl::safe_union::V1_0::Monostate&);
707         void unspecified(::android::hidl::safe_union::V1_0::Monostate&&);
708         ::android::hidl::safe_union::V1_0::Monostate& unspecified();
709         const ::android::hidl::safe_union::V1_0::Monostate& unspecified() const;
710 
711         void info(const ::android::hardware::audio::common::V7_0::AudioOffloadInfo&);
712         void info(::android::hardware::audio::common::V7_0::AudioOffloadInfo&&);
713         ::android::hardware::audio::common::V7_0::AudioOffloadInfo& info();
714         const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& info() const;
715 
716         // Utility methods
717         hidl_discriminator getDiscriminator() const;
718 
hidl_getUnionOffsetfinal::final719         constexpr size_t hidl_getUnionOffset() const {
720             return offsetof(::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo, hidl_u);
721         }
722 
723     private:
724         void hidl_destructUnion();
725 
726         hidl_discriminator hidl_d __attribute__ ((aligned(1))) ;
727         union hidl_union final {
728             ::android::hidl::safe_union::V1_0::Monostate unspecified __attribute__ ((aligned(1)));
729             ::android::hardware::audio::common::V7_0::AudioOffloadInfo info __attribute__ ((aligned(8)));
730 
731             hidl_union();
732             ~hidl_union();
733         } hidl_u;
734 
735         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo::hidl_union) == 120, "wrong size");
736         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo::hidl_union) == 8, "wrong alignment");
737         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo::hidl_discriminator) == 1, "wrong size");
738         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo::hidl_discriminator) == 1, "wrong alignment");
739     };
740 
741     static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo) == 128, "wrong size");
742     static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo) == 8, "wrong alignment");
743 
744     ::android::hardware::audio::common::V7_0::AudioConfigBase base __attribute__ ((aligned(8)));
745     ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo offloadInfo __attribute__ ((aligned(8)));
746     uint64_t frameCount __attribute__ ((aligned(8)));
747 };
748 
749 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioConfig, base) == 0, "wrong offset");
750 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioConfig, offloadInfo) == 40, "wrong offset");
751 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioConfig, frameCount) == 168, "wrong offset");
752 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioConfig) == 176, "wrong size");
753 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioConfig) == 8, "wrong alignment");
754 
755 /**
756  * AudioTag is an additional use case qualifier complementing
757  * AudioUsage and AudioContentType. Tags are set by vendor specific applications
758  * and must be prefixed by "VX_". Vendor must namespace their tag
759  * names to avoid conflicts. See 'vendorExtension' in audio_policy_configuration.xsd
760  * for a formal definition.
761  */
762 typedef ::android::hardware::hidl_string AudioTag;
763 
764 /**
765  * Metadata of a playback track for a StreamOut.
766  */
767 struct PlaybackTrackMetadata final {
768     ::android::hardware::hidl_string usage __attribute__ ((aligned(8)));
769     ::android::hardware::hidl_string contentType __attribute__ ((aligned(8)));
770     /**
771      * Positive linear gain applied to the track samples. 0 being muted and 1 is no attenuation,
772      * 2 means double amplification...
773      * Must not be negative.
774      */
775     float gain __attribute__ ((aligned(4)));
776     ::android::hardware::hidl_string channelMask __attribute__ ((aligned(8)));
777     /**
778      * Tags from AudioTrack audio atttributes
779      */
780     ::android::hardware::hidl_vec<::android::hardware::hidl_string> tags __attribute__ ((aligned(8)));
781 };
782 
783 static_assert(offsetof(::android::hardware::audio::common::V7_0::PlaybackTrackMetadata, usage) == 0, "wrong offset");
784 static_assert(offsetof(::android::hardware::audio::common::V7_0::PlaybackTrackMetadata, contentType) == 16, "wrong offset");
785 static_assert(offsetof(::android::hardware::audio::common::V7_0::PlaybackTrackMetadata, gain) == 32, "wrong offset");
786 static_assert(offsetof(::android::hardware::audio::common::V7_0::PlaybackTrackMetadata, channelMask) == 40, "wrong offset");
787 static_assert(offsetof(::android::hardware::audio::common::V7_0::PlaybackTrackMetadata, tags) == 56, "wrong offset");
788 static_assert(sizeof(::android::hardware::audio::common::V7_0::PlaybackTrackMetadata) == 72, "wrong size");
789 static_assert(__alignof(::android::hardware::audio::common::V7_0::PlaybackTrackMetadata) == 8, "wrong alignment");
790 
791 /**
792  * Metadatas of the source of a StreamOut.
793  */
794 struct SourceMetadata final {
795     ::android::hardware::hidl_vec<::android::hardware::audio::common::V7_0::PlaybackTrackMetadata> tracks __attribute__ ((aligned(8)));
796 };
797 
798 static_assert(offsetof(::android::hardware::audio::common::V7_0::SourceMetadata, tracks) == 0, "wrong offset");
799 static_assert(sizeof(::android::hardware::audio::common::V7_0::SourceMetadata) == 16, "wrong size");
800 static_assert(__alignof(::android::hardware::audio::common::V7_0::SourceMetadata) == 8, "wrong alignment");
801 
802 /**
803  * Metadata of a record track for a StreamIn.
804  */
805 struct RecordTrackMetadata final {
806     // Forward declaration for forward reference support:
807     struct Destination;
808 
809     struct Destination final {
810         enum class hidl_discriminator : uint8_t {
811             unspecified = 0,  // ::android::hidl::safe_union::V1_0::Monostate
812             device = 1,  // ::android::hardware::audio::common::V7_0::DeviceAddress
813         };
814 
815         Destination();
816         ~Destination();
817         Destination(Destination&&);
818         Destination(const Destination&);
819         Destination& operator=(Destination&&);
820         Destination& operator=(const Destination&);
821 
822         void unspecified(const ::android::hidl::safe_union::V1_0::Monostate&);
823         void unspecified(::android::hidl::safe_union::V1_0::Monostate&&);
824         ::android::hidl::safe_union::V1_0::Monostate& unspecified();
825         const ::android::hidl::safe_union::V1_0::Monostate& unspecified() const;
826 
827         void device(const ::android::hardware::audio::common::V7_0::DeviceAddress&);
828         void device(::android::hardware::audio::common::V7_0::DeviceAddress&&);
829         ::android::hardware::audio::common::V7_0::DeviceAddress& device();
830         const ::android::hardware::audio::common::V7_0::DeviceAddress& device() const;
831 
832         // Utility methods
833         hidl_discriminator getDiscriminator() const;
834 
hidl_getUnionOffsetfinal::final835         constexpr size_t hidl_getUnionOffset() const {
836             return offsetof(::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination, hidl_u);
837         }
838 
839     private:
840         void hidl_destructUnion();
841 
842         hidl_discriminator hidl_d __attribute__ ((aligned(1))) ;
843         union hidl_union final {
844             ::android::hidl::safe_union::V1_0::Monostate unspecified __attribute__ ((aligned(1)));
845             ::android::hardware::audio::common::V7_0::DeviceAddress device __attribute__ ((aligned(8)));
846 
847             hidl_union();
848             ~hidl_union();
849         } hidl_u;
850 
851         static_assert(sizeof(::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination::hidl_union) == 40, "wrong size");
852         static_assert(__alignof(::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination::hidl_union) == 8, "wrong alignment");
853         static_assert(sizeof(::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination::hidl_discriminator) == 1, "wrong size");
854         static_assert(__alignof(::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination::hidl_discriminator) == 1, "wrong alignment");
855     };
856 
857     static_assert(sizeof(::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination) == 48, "wrong size");
858     static_assert(__alignof(::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination) == 8, "wrong alignment");
859 
860     ::android::hardware::hidl_string source __attribute__ ((aligned(8)));
861     /**
862      * Positive linear gain applied to the track samples. 0 being muted and 1 is no attenuation,
863      * 2 means double amplification...
864      * Must not be negative.
865      */
866     float gain __attribute__ ((aligned(4)));
867     /**
868      * Indicates the destination of an input stream, can be left unspecified.
869      */
870     ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination destination __attribute__ ((aligned(8)));
871     ::android::hardware::hidl_string channelMask __attribute__ ((aligned(8)));
872     /**
873      * Tags from AudioRecord audio atttributes
874      */
875     ::android::hardware::hidl_vec<::android::hardware::hidl_string> tags __attribute__ ((aligned(8)));
876 };
877 
878 static_assert(offsetof(::android::hardware::audio::common::V7_0::RecordTrackMetadata, source) == 0, "wrong offset");
879 static_assert(offsetof(::android::hardware::audio::common::V7_0::RecordTrackMetadata, gain) == 16, "wrong offset");
880 static_assert(offsetof(::android::hardware::audio::common::V7_0::RecordTrackMetadata, destination) == 24, "wrong offset");
881 static_assert(offsetof(::android::hardware::audio::common::V7_0::RecordTrackMetadata, channelMask) == 72, "wrong offset");
882 static_assert(offsetof(::android::hardware::audio::common::V7_0::RecordTrackMetadata, tags) == 88, "wrong offset");
883 static_assert(sizeof(::android::hardware::audio::common::V7_0::RecordTrackMetadata) == 104, "wrong size");
884 static_assert(__alignof(::android::hardware::audio::common::V7_0::RecordTrackMetadata) == 8, "wrong alignment");
885 
886 /**
887  * Metadatas of the sink of a StreamIn.
888  */
889 struct SinkMetadata final {
890     ::android::hardware::hidl_vec<::android::hardware::audio::common::V7_0::RecordTrackMetadata> tracks __attribute__ ((aligned(8)));
891 };
892 
893 static_assert(offsetof(::android::hardware::audio::common::V7_0::SinkMetadata, tracks) == 0, "wrong offset");
894 static_assert(sizeof(::android::hardware::audio::common::V7_0::SinkMetadata) == 16, "wrong size");
895 static_assert(__alignof(::android::hardware::audio::common::V7_0::SinkMetadata) == 8, "wrong alignment");
896 
897 /*
898  *  Volume control
899  *
900  *
901  *
902  * Type of gain control exposed by an audio port.
903  * See 'audioGainMode' in audio_policy_configuration.xsd for the
904  * list of allowed values.
905  */
906 typedef ::android::hardware::hidl_string AudioGainMode;
907 
908 /**
909  * An audio_gain struct is a representation of a gain stage.
910  * A gain stage is always attached to an audio port.
911  */
912 struct AudioGain final {
913     /**
914      * Modes of operation.
915      */
916     ::android::hardware::hidl_vec<::android::hardware::hidl_string> mode __attribute__ ((aligned(8)));
917     /**
918      * Channels which gain can be controlled.
919      */
920     ::android::hardware::hidl_string channelMask __attribute__ ((aligned(8)));
921     /**
922      * Minimum gain value in millibels.
923      */
924     int32_t minValue __attribute__ ((aligned(4)));
925     /**
926      * Maximum gain value in millibels.
927      */
928     int32_t maxValue __attribute__ ((aligned(4)));
929     /**
930      * Default gain value in millibels.
931      */
932     int32_t defaultValue __attribute__ ((aligned(4)));
933     /**
934      * Gain step in millibels.
935      */
936     uint32_t stepValue __attribute__ ((aligned(4)));
937     /**
938      * Ramp duration in ms.
939      */
940     uint32_t minRampMs __attribute__ ((aligned(4)));
941     /**
942      * Maximum ramp duration in ms.
943      */
944     uint32_t maxRampMs __attribute__ ((aligned(4)));
945 };
946 
947 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGain, mode) == 0, "wrong offset");
948 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGain, channelMask) == 16, "wrong offset");
949 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGain, minValue) == 32, "wrong offset");
950 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGain, maxValue) == 36, "wrong offset");
951 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGain, defaultValue) == 40, "wrong offset");
952 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGain, stepValue) == 44, "wrong offset");
953 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGain, minRampMs) == 48, "wrong offset");
954 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGain, maxRampMs) == 52, "wrong offset");
955 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioGain) == 56, "wrong size");
956 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioGain) == 8, "wrong alignment");
957 
958 /**
959  * The gain configuration structure is used to get or set the gain values of a
960  * given port.
961  */
962 struct AudioGainConfig final {
963     /**
964      * Index of the corresponding AudioGain in AudioPort.gains.
965      */
966     int32_t index __attribute__ ((aligned(4)));
967     /**
968      * Modes of operation.
969      */
970     ::android::hardware::hidl_vec<::android::hardware::hidl_string> mode __attribute__ ((aligned(8)));
971     /**
972      * Channels which gain value follows.
973      */
974     ::android::hardware::hidl_string channelMask __attribute__ ((aligned(8)));
975     /**
976      * Gain values in millibels for each channel ordered from LSb to MSb in
977      * channel mask. The number of values is 1 in joint mode or
978      * the number of channels in the channel mask.
979      */
980     ::android::hardware::hidl_vec<int32_t> values __attribute__ ((aligned(8)));
981     /**
982      * Ramp duration in ms.
983      */
984     uint32_t rampDurationMs __attribute__ ((aligned(4)));
985 };
986 
987 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGainConfig, index) == 0, "wrong offset");
988 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGainConfig, mode) == 8, "wrong offset");
989 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGainConfig, channelMask) == 24, "wrong offset");
990 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGainConfig, values) == 40, "wrong offset");
991 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioGainConfig, rampDurationMs) == 56, "wrong offset");
992 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioGainConfig) == 64, "wrong size");
993 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioGainConfig) == 8, "wrong alignment");
994 
995 /*
996  *  Routing control
997  *
998  *
999  *
1000  * Types defined here are used to describe an audio source or sink at internal
1001  * framework interfaces (audio policy, patch panel) or at the audio HAL.
1002  * Sink and sources are grouped in a concept of “audio port” representing an
1003  * audio end point at the edge of the system managed by the module exposing
1004  * the interface.
1005  *
1006  *
1007  * A helper aggregate structure providing parameters that depend on the
1008  * port role.
1009  */
1010 struct AudioPortExtendedInfo final {
1011     // Forward declaration for forward reference support:
1012     struct AudioPortMixExt;
1013 
1014     struct AudioPortMixExt final {
1015         // Forward declaration for forward reference support:
1016         struct UseCase;
1017 
1018         struct UseCase final {
1019             enum class hidl_discriminator : uint8_t {
1020                 /**
1021                  * Specified when the port is in the SOURCE role.
1022                  */
1023                 stream = 0,  // ::android::hardware::hidl_string
1024                 /**
1025                  * Specified when the port is in the SINK role.
1026                  */
1027                 source = 1,  // ::android::hardware::hidl_string
1028             };
1029 
1030             UseCase();
1031             ~UseCase();
1032             UseCase(UseCase&&);
1033             UseCase(const UseCase&);
1034             UseCase& operator=(UseCase&&);
1035             UseCase& operator=(const UseCase&);
1036 
1037             void stream(const ::android::hardware::hidl_string&);
1038             void stream(::android::hardware::hidl_string&&);
1039             ::android::hardware::hidl_string& stream();
1040             const ::android::hardware::hidl_string& stream() const;
1041 
1042             void source(const ::android::hardware::hidl_string&);
1043             void source(::android::hardware::hidl_string&&);
1044             ::android::hardware::hidl_string& source();
1045             const ::android::hardware::hidl_string& source() const;
1046 
1047             // Utility methods
1048             hidl_discriminator getDiscriminator() const;
1049 
hidl_getUnionOffsetfinal::final::final1050             constexpr size_t hidl_getUnionOffset() const {
1051                 return offsetof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase, hidl_u);
1052             }
1053 
1054         private:
1055             void hidl_destructUnion();
1056 
1057             hidl_discriminator hidl_d __attribute__ ((aligned(1))) ;
1058             union hidl_union final {
1059                 ::android::hardware::hidl_string stream __attribute__ ((aligned(8)));
1060                 ::android::hardware::hidl_string source __attribute__ ((aligned(8)));
1061 
1062                 hidl_union();
1063                 ~hidl_union();
1064             } hidl_u;
1065 
1066             static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase::hidl_union) == 16, "wrong size");
1067             static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase::hidl_union) == 8, "wrong alignment");
1068             static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase::hidl_discriminator) == 1, "wrong size");
1069             static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase::hidl_discriminator) == 1, "wrong alignment");
1070         };
1071 
1072         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase) == 24, "wrong size");
1073         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase) == 8, "wrong alignment");
1074 
1075         /**
1076          * I/O handle of the input/output stream.
1077          */
1078         int32_t ioHandle __attribute__ ((aligned(4)));
1079         ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase useCase __attribute__ ((aligned(8)));
1080     };
1081 
1082     static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt, ioHandle) == 0, "wrong offset");
1083     static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt, useCase) == 8, "wrong offset");
1084     static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt) == 32, "wrong size");
1085     static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt) == 8, "wrong alignment");
1086 
1087     enum class hidl_discriminator : uint8_t {
1088         /**
1089          * Set when no information is provided.
1090          */
1091         unspecified = 0,  // ::android::hidl::safe_union::V1_0::Monostate
1092         /**
1093          * Set when the audio port is an audio device.
1094          */
1095         device = 1,  // ::android::hardware::audio::common::V7_0::DeviceAddress
1096         /**
1097          * Set when the audio port is a mix. The handle is of a stream.
1098          */
1099         mix = 2,  // ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt
1100         /**
1101          * Set when the audio port is an audio session.
1102          */
1103         session = 3,  // int32_t
1104     };
1105 
1106     AudioPortExtendedInfo();
1107     ~AudioPortExtendedInfo();
1108     AudioPortExtendedInfo(AudioPortExtendedInfo&&);
1109     AudioPortExtendedInfo(const AudioPortExtendedInfo&);
1110     AudioPortExtendedInfo& operator=(AudioPortExtendedInfo&&);
1111     AudioPortExtendedInfo& operator=(const AudioPortExtendedInfo&);
1112 
1113     void unspecified(const ::android::hidl::safe_union::V1_0::Monostate&);
1114     void unspecified(::android::hidl::safe_union::V1_0::Monostate&&);
1115     ::android::hidl::safe_union::V1_0::Monostate& unspecified();
1116     const ::android::hidl::safe_union::V1_0::Monostate& unspecified() const;
1117 
1118     void device(const ::android::hardware::audio::common::V7_0::DeviceAddress&);
1119     void device(::android::hardware::audio::common::V7_0::DeviceAddress&&);
1120     ::android::hardware::audio::common::V7_0::DeviceAddress& device();
1121     const ::android::hardware::audio::common::V7_0::DeviceAddress& device() const;
1122 
1123     void mix(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt&);
1124     void mix(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt&&);
1125     ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& mix();
1126     const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& mix() const;
1127 
1128     void session(int32_t);
1129     int32_t& session();
1130     int32_t session() const;
1131 
1132     // Utility methods
1133     hidl_discriminator getDiscriminator() const;
1134 
hidl_getUnionOffsetfinal1135     constexpr size_t hidl_getUnionOffset() const {
1136         return offsetof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo, hidl_u);
1137     }
1138 
1139 private:
1140     void hidl_destructUnion();
1141 
1142     hidl_discriminator hidl_d __attribute__ ((aligned(1))) ;
1143     union hidl_union final {
1144         ::android::hidl::safe_union::V1_0::Monostate unspecified __attribute__ ((aligned(1)));
1145         ::android::hardware::audio::common::V7_0::DeviceAddress device __attribute__ ((aligned(8)));
1146         ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt mix __attribute__ ((aligned(8)));
1147         int32_t session __attribute__ ((aligned(4)));
1148 
1149         hidl_union();
1150         ~hidl_union();
1151     } hidl_u;
1152 
1153     static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_union) == 40, "wrong size");
1154     static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_union) == 8, "wrong alignment");
1155     static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_discriminator) == 1, "wrong size");
1156     static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_discriminator) == 1, "wrong alignment");
1157 };
1158 
1159 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo) == 48, "wrong size");
1160 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortExtendedInfo) == 8, "wrong alignment");
1161 
1162 /**
1163  * Audio port configuration structure used to specify a particular configuration
1164  * of an audio port.
1165  */
1166 struct AudioPortConfig final {
1167     // Forward declaration for forward reference support:
1168     struct OptionalGain;
1169 
1170     struct OptionalGain final {
1171         enum class hidl_discriminator : uint8_t {
1172             unspecified = 0,  // ::android::hidl::safe_union::V1_0::Monostate
1173             config = 1,  // ::android::hardware::audio::common::V7_0::AudioGainConfig
1174         };
1175 
1176         OptionalGain();
1177         ~OptionalGain();
1178         OptionalGain(OptionalGain&&);
1179         OptionalGain(const OptionalGain&);
1180         OptionalGain& operator=(OptionalGain&&);
1181         OptionalGain& operator=(const OptionalGain&);
1182 
1183         void unspecified(const ::android::hidl::safe_union::V1_0::Monostate&);
1184         void unspecified(::android::hidl::safe_union::V1_0::Monostate&&);
1185         ::android::hidl::safe_union::V1_0::Monostate& unspecified();
1186         const ::android::hidl::safe_union::V1_0::Monostate& unspecified() const;
1187 
1188         void config(const ::android::hardware::audio::common::V7_0::AudioGainConfig&);
1189         void config(::android::hardware::audio::common::V7_0::AudioGainConfig&&);
1190         ::android::hardware::audio::common::V7_0::AudioGainConfig& config();
1191         const ::android::hardware::audio::common::V7_0::AudioGainConfig& config() const;
1192 
1193         // Utility methods
1194         hidl_discriminator getDiscriminator() const;
1195 
hidl_getUnionOffsetfinal::final1196         constexpr size_t hidl_getUnionOffset() const {
1197             return offsetof(::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain, hidl_u);
1198         }
1199 
1200     private:
1201         void hidl_destructUnion();
1202 
1203         hidl_discriminator hidl_d __attribute__ ((aligned(1))) ;
1204         union hidl_union final {
1205             ::android::hidl::safe_union::V1_0::Monostate unspecified __attribute__ ((aligned(1)));
1206             ::android::hardware::audio::common::V7_0::AudioGainConfig config __attribute__ ((aligned(8)));
1207 
1208             hidl_union();
1209             ~hidl_union();
1210         } hidl_u;
1211 
1212         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain::hidl_union) == 64, "wrong size");
1213         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain::hidl_union) == 8, "wrong alignment");
1214         static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain::hidl_discriminator) == 1, "wrong size");
1215         static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain::hidl_discriminator) == 1, "wrong alignment");
1216     };
1217 
1218     static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain) == 72, "wrong size");
1219     static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain) == 8, "wrong alignment");
1220 
1221     /**
1222      * The 'id' field is set when it is needed to select the port and
1223      * apply new configuration for it.
1224      */
1225     int32_t id __attribute__ ((aligned(4)));
1226     /**
1227      * Basic parameters: sampling rate, format, channel mask.
1228      */
1229     ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional base __attribute__ ((aligned(8)));
1230     /**
1231      * Associated gain control.
1232      */
1233     ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain gain __attribute__ ((aligned(8)));
1234     /**
1235      * Parameters that depend on the actual port role.
1236      */
1237     ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo ext __attribute__ ((aligned(8)));
1238 };
1239 
1240 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPortConfig, id) == 0, "wrong offset");
1241 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPortConfig, base) == 8, "wrong offset");
1242 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPortConfig, gain) == 64, "wrong offset");
1243 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPortConfig, ext) == 136, "wrong offset");
1244 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPortConfig) == 184, "wrong size");
1245 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPortConfig) == 8, "wrong alignment");
1246 
1247 /**
1248  * Audio port structure describes the capabilities of an audio port
1249  * as well as its current configuration.
1250  */
1251 struct AudioPort final {
1252     /**
1253      * Unique identifier of the port within this HAL service. When calling
1254      * from the client side functions like IDevice.getAudioPort is it allowed
1255      * to only specify the 'id' and leave the other fields unspecified.
1256      */
1257     int32_t id __attribute__ ((aligned(4)));
1258     /**
1259      * Human-readable name describing the function of the port.
1260      * E.g. "telephony_tx" or "fm_tuner".
1261      */
1262     ::android::hardware::hidl_string name __attribute__ ((aligned(8)));
1263     /**
1264      * List of audio transports supported by the audio port. This includes
1265      * supported formats and raw hardware descriptors for formats not supported
1266      * by the platform.
1267      */
1268     ::android::hardware::hidl_vec<::android::hardware::audio::common::V7_0::AudioTransport> transports __attribute__ ((aligned(8)));
1269     /**
1270      * List of gain controls attached to the port.
1271      */
1272     ::android::hardware::hidl_vec<::android::hardware::audio::common::V7_0::AudioGain> gains __attribute__ ((aligned(8)));
1273     /**
1274      * Parameters that depend on the actual port role.
1275      */
1276     ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo ext __attribute__ ((aligned(8)));
1277     /**
1278      * Current configuration of the audio port, may have all the fields left
1279      * unspecified.
1280      */
1281     ::android::hardware::audio::common::V7_0::AudioPortConfig activeConfig __attribute__ ((aligned(8)));
1282 };
1283 
1284 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPort, id) == 0, "wrong offset");
1285 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPort, name) == 8, "wrong offset");
1286 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPort, transports) == 24, "wrong offset");
1287 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPort, gains) == 40, "wrong offset");
1288 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPort, ext) == 56, "wrong offset");
1289 static_assert(offsetof(::android::hardware::audio::common::V7_0::AudioPort, activeConfig) == 104, "wrong offset");
1290 static_assert(sizeof(::android::hardware::audio::common::V7_0::AudioPort) == 288, "wrong size");
1291 static_assert(__alignof(::android::hardware::audio::common::V7_0::AudioPort) == 8, "wrong alignment");
1292 
1293 //
1294 // type declarations for package
1295 //
1296 
1297 static inline std::string toString(const ::android::hardware::audio::common::V7_0::Uuid& o);
1298 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::Uuid& o, ::std::ostream*);
1299 static inline bool operator==(const ::android::hardware::audio::common::V7_0::Uuid& lhs, const ::android::hardware::audio::common::V7_0::Uuid& rhs);
1300 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::Uuid& lhs, const ::android::hardware::audio::common::V7_0::Uuid& rhs);
1301 
1302 template<typename>
1303 static inline std::string toString(int32_t o);
1304 static inline std::string toString(::android::hardware::audio::common::V7_0::AudioSessionConsts o);
1305 static inline void PrintTo(::android::hardware::audio::common::V7_0::AudioSessionConsts o, ::std::ostream* os);
1306 constexpr int32_t operator|(const ::android::hardware::audio::common::V7_0::AudioSessionConsts lhs, const ::android::hardware::audio::common::V7_0::AudioSessionConsts rhs) {
1307     return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
1308 }
1309 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::audio::common::V7_0::AudioSessionConsts rhs) {
1310     return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
1311 }
1312 constexpr int32_t operator|(const ::android::hardware::audio::common::V7_0::AudioSessionConsts lhs, const int32_t rhs) {
1313     return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
1314 }
1315 constexpr int32_t operator&(const ::android::hardware::audio::common::V7_0::AudioSessionConsts lhs, const ::android::hardware::audio::common::V7_0::AudioSessionConsts rhs) {
1316     return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
1317 }
1318 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::audio::common::V7_0::AudioSessionConsts rhs) {
1319     return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
1320 }
1321 constexpr int32_t operator&(const ::android::hardware::audio::common::V7_0::AudioSessionConsts lhs, const int32_t rhs) {
1322     return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
1323 }
1324 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::audio::common::V7_0::AudioSessionConsts e) {
1325     v |= static_cast<int32_t>(e);
1326     return v;
1327 }
1328 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::audio::common::V7_0::AudioSessionConsts e) {
1329     v &= static_cast<int32_t>(e);
1330     return v;
1331 }
1332 
1333 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfigBase& o);
1334 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfigBase& o, ::std::ostream*);
1335 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfigBase& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBase& rhs);
1336 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfigBase& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBase& rhs);
1337 
1338 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& o);
1339 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& o, ::std::ostream*);
1340 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& rhs);
1341 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& rhs);
1342 
1343 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& o);
1344 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& o, ::std::ostream*);
1345 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& rhs);
1346 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& rhs);
1347 
1348 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& o);
1349 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& o, ::std::ostream*);
1350 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& rhs);
1351 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& rhs);
1352 
1353 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& o);
1354 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& o, ::std::ostream*);
1355 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& rhs);
1356 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& rhs);
1357 
1358 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioProfile& o);
1359 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioProfile& o, ::std::ostream*);
1360 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioProfile& lhs, const ::android::hardware::audio::common::V7_0::AudioProfile& rhs);
1361 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioProfile& lhs, const ::android::hardware::audio::common::V7_0::AudioProfile& rhs);
1362 
1363 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& o);
1364 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& o, ::std::ostream*);
1365 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& lhs, const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& rhs);
1366 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& lhs, const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& rhs);
1367 
1368 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioTransport& o);
1369 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioTransport& o, ::std::ostream*);
1370 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioTransport& lhs, const ::android::hardware::audio::common::V7_0::AudioTransport& rhs);
1371 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioTransport& lhs, const ::android::hardware::audio::common::V7_0::AudioTransport& rhs);
1372 
1373 template<typename>
1374 static inline std::string toString(int32_t o);
1375 static inline std::string toString(::android::hardware::audio::common::V7_0::AudioMode o);
1376 static inline void PrintTo(::android::hardware::audio::common::V7_0::AudioMode o, ::std::ostream* os);
1377 constexpr int32_t operator|(const ::android::hardware::audio::common::V7_0::AudioMode lhs, const ::android::hardware::audio::common::V7_0::AudioMode rhs) {
1378     return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
1379 }
1380 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::audio::common::V7_0::AudioMode rhs) {
1381     return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
1382 }
1383 constexpr int32_t operator|(const ::android::hardware::audio::common::V7_0::AudioMode lhs, const int32_t rhs) {
1384     return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
1385 }
1386 constexpr int32_t operator&(const ::android::hardware::audio::common::V7_0::AudioMode lhs, const ::android::hardware::audio::common::V7_0::AudioMode rhs) {
1387     return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
1388 }
1389 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::audio::common::V7_0::AudioMode rhs) {
1390     return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
1391 }
1392 constexpr int32_t operator&(const ::android::hardware::audio::common::V7_0::AudioMode lhs, const int32_t rhs) {
1393     return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
1394 }
1395 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::audio::common::V7_0::AudioMode e) {
1396     v |= static_cast<int32_t>(e);
1397     return v;
1398 }
1399 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::audio::common::V7_0::AudioMode e) {
1400     v &= static_cast<int32_t>(e);
1401     return v;
1402 }
1403 
1404 static inline std::string toString(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& o);
1405 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& o, ::std::ostream*);
1406 static inline bool operator==(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& rhs);
1407 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& rhs);
1408 
1409 static inline std::string toString(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& o);
1410 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& o, ::std::ostream*);
1411 static inline bool operator==(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& rhs);
1412 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& rhs);
1413 
1414 static inline std::string toString(const ::android::hardware::audio::common::V7_0::DeviceAddress& o);
1415 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::DeviceAddress& o, ::std::ostream*);
1416 static inline bool operator==(const ::android::hardware::audio::common::V7_0::DeviceAddress& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress& rhs);
1417 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::DeviceAddress& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress& rhs);
1418 
1419 template<typename>
1420 static inline std::string toString(int32_t o);
1421 static inline std::string toString(::android::hardware::audio::common::V7_0::AudioEncapsulationMode o);
1422 static inline void PrintTo(::android::hardware::audio::common::V7_0::AudioEncapsulationMode o, ::std::ostream* os);
1423 constexpr int32_t operator|(const ::android::hardware::audio::common::V7_0::AudioEncapsulationMode lhs, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMode rhs) {
1424     return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
1425 }
1426 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMode rhs) {
1427     return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
1428 }
1429 constexpr int32_t operator|(const ::android::hardware::audio::common::V7_0::AudioEncapsulationMode lhs, const int32_t rhs) {
1430     return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
1431 }
1432 constexpr int32_t operator&(const ::android::hardware::audio::common::V7_0::AudioEncapsulationMode lhs, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMode rhs) {
1433     return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
1434 }
1435 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMode rhs) {
1436     return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
1437 }
1438 constexpr int32_t operator&(const ::android::hardware::audio::common::V7_0::AudioEncapsulationMode lhs, const int32_t rhs) {
1439     return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
1440 }
1441 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMode e) {
1442     v |= static_cast<int32_t>(e);
1443     return v;
1444 }
1445 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMode e) {
1446     v &= static_cast<int32_t>(e);
1447     return v;
1448 }
1449 
1450 template<typename>
1451 static inline std::string toString(int32_t o);
1452 static inline std::string toString(::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType o);
1453 static inline void PrintTo(::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType o, ::std::ostream* os);
1454 constexpr int32_t operator|(const ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType lhs, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType rhs) {
1455     return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
1456 }
1457 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType rhs) {
1458     return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
1459 }
1460 constexpr int32_t operator|(const ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType lhs, const int32_t rhs) {
1461     return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
1462 }
1463 constexpr int32_t operator&(const ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType lhs, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType rhs) {
1464     return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
1465 }
1466 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType rhs) {
1467     return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
1468 }
1469 constexpr int32_t operator&(const ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType lhs, const int32_t rhs) {
1470     return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
1471 }
1472 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType e) {
1473     v |= static_cast<int32_t>(e);
1474     return v;
1475 }
1476 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType e) {
1477     v &= static_cast<int32_t>(e);
1478     return v;
1479 }
1480 
1481 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& o);
1482 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& o, ::std::ostream*);
1483 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& rhs);
1484 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& rhs);
1485 
1486 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& o);
1487 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& o, ::std::ostream*);
1488 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& rhs);
1489 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& rhs);
1490 
1491 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfig& o);
1492 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfig& o, ::std::ostream*);
1493 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioConfig& rhs);
1494 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioConfig& rhs);
1495 
1496 static inline std::string toString(const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& o);
1497 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& o, ::std::ostream*);
1498 static inline bool operator==(const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& lhs, const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& rhs);
1499 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& lhs, const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& rhs);
1500 
1501 static inline std::string toString(const ::android::hardware::audio::common::V7_0::SourceMetadata& o);
1502 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::SourceMetadata& o, ::std::ostream*);
1503 static inline bool operator==(const ::android::hardware::audio::common::V7_0::SourceMetadata& lhs, const ::android::hardware::audio::common::V7_0::SourceMetadata& rhs);
1504 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::SourceMetadata& lhs, const ::android::hardware::audio::common::V7_0::SourceMetadata& rhs);
1505 
1506 static inline std::string toString(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& o);
1507 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& o, ::std::ostream*);
1508 static inline bool operator==(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& lhs, const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& rhs);
1509 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& lhs, const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& rhs);
1510 
1511 static inline std::string toString(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& o);
1512 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& o, ::std::ostream*);
1513 static inline bool operator==(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& lhs, const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& rhs);
1514 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& lhs, const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& rhs);
1515 
1516 static inline std::string toString(const ::android::hardware::audio::common::V7_0::SinkMetadata& o);
1517 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::SinkMetadata& o, ::std::ostream*);
1518 static inline bool operator==(const ::android::hardware::audio::common::V7_0::SinkMetadata& lhs, const ::android::hardware::audio::common::V7_0::SinkMetadata& rhs);
1519 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::SinkMetadata& lhs, const ::android::hardware::audio::common::V7_0::SinkMetadata& rhs);
1520 
1521 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioGain& o);
1522 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioGain& o, ::std::ostream*);
1523 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioGain& lhs, const ::android::hardware::audio::common::V7_0::AudioGain& rhs);
1524 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioGain& lhs, const ::android::hardware::audio::common::V7_0::AudioGain& rhs);
1525 
1526 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioGainConfig& o);
1527 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioGainConfig& o, ::std::ostream*);
1528 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioGainConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioGainConfig& rhs);
1529 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioGainConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioGainConfig& rhs);
1530 
1531 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& o);
1532 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& o, ::std::ostream*);
1533 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& rhs);
1534 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& rhs);
1535 
1536 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& o);
1537 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& o, ::std::ostream*);
1538 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& rhs);
1539 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& rhs);
1540 
1541 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& o);
1542 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& o, ::std::ostream*);
1543 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& rhs);
1544 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& rhs);
1545 
1546 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& o);
1547 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& o, ::std::ostream*);
1548 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& lhs, const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& rhs);
1549 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& lhs, const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& rhs);
1550 
1551 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPortConfig& o);
1552 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPortConfig& o, ::std::ostream*);
1553 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPortConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioPortConfig& rhs);
1554 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPortConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioPortConfig& rhs);
1555 
1556 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPort& o);
1557 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPort& o, ::std::ostream*);
1558 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPort& lhs, const ::android::hardware::audio::common::V7_0::AudioPort& rhs);
1559 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPort& lhs, const ::android::hardware::audio::common::V7_0::AudioPort& rhs);
1560 
1561 //
1562 // type header definitions for package
1563 //
1564 
toString(const::android::hardware::audio::common::V7_0::Uuid & o)1565 static inline std::string toString(const ::android::hardware::audio::common::V7_0::Uuid& o) {
1566     using ::android::hardware::toString;
1567     std::string os;
1568     os += "{";
1569     os += ".timeLow = ";
1570     os += ::android::hardware::toString(o.timeLow);
1571     os += ", .timeMid = ";
1572     os += ::android::hardware::toString(o.timeMid);
1573     os += ", .versionAndTimeHigh = ";
1574     os += ::android::hardware::toString(o.versionAndTimeHigh);
1575     os += ", .variantAndClockSeqHigh = ";
1576     os += ::android::hardware::toString(o.variantAndClockSeqHigh);
1577     os += ", .node = ";
1578     os += ::android::hardware::toString(o.node);
1579     os += "}"; return os;
1580 }
1581 
PrintTo(const::android::hardware::audio::common::V7_0::Uuid & o,::std::ostream * os)1582 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::Uuid& o, ::std::ostream* os) {
1583     *os << toString(o);
1584 }
1585 
1586 static inline bool operator==(const ::android::hardware::audio::common::V7_0::Uuid& lhs, const ::android::hardware::audio::common::V7_0::Uuid& rhs) {
1587     if (lhs.timeLow != rhs.timeLow) {
1588         return false;
1589     }
1590     if (lhs.timeMid != rhs.timeMid) {
1591         return false;
1592     }
1593     if (lhs.versionAndTimeHigh != rhs.versionAndTimeHigh) {
1594         return false;
1595     }
1596     if (lhs.variantAndClockSeqHigh != rhs.variantAndClockSeqHigh) {
1597         return false;
1598     }
1599     if (lhs.node != rhs.node) {
1600         return false;
1601     }
1602     return true;
1603 }
1604 
1605 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::Uuid& lhs, const ::android::hardware::audio::common::V7_0::Uuid& rhs){
1606     return !(lhs == rhs);
1607 }
1608 
1609 template<>
1610 inline std::string toString<::android::hardware::audio::common::V7_0::AudioSessionConsts>(int32_t o) {
1611     using ::android::hardware::details::toHexString;
1612     std::string os;
1613     ::android::hardware::hidl_bitfield<::android::hardware::audio::common::V7_0::AudioSessionConsts> flipped = 0;
1614     bool first = true;
1615     if ((o & ::android::hardware::audio::common::V7_0::AudioSessionConsts::DEVICE) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioSessionConsts::DEVICE)) {
1616         os += (first ? "" : " | ");
1617         os += "DEVICE";
1618         first = false;
1619         flipped |= ::android::hardware::audio::common::V7_0::AudioSessionConsts::DEVICE;
1620     }
1621     if ((o & ::android::hardware::audio::common::V7_0::AudioSessionConsts::OUTPUT_STAGE) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioSessionConsts::OUTPUT_STAGE)) {
1622         os += (first ? "" : " | ");
1623         os += "OUTPUT_STAGE";
1624         first = false;
1625         flipped |= ::android::hardware::audio::common::V7_0::AudioSessionConsts::OUTPUT_STAGE;
1626     }
1627     if ((o & ::android::hardware::audio::common::V7_0::AudioSessionConsts::OUTPUT_MIX) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioSessionConsts::OUTPUT_MIX)) {
1628         os += (first ? "" : " | ");
1629         os += "OUTPUT_MIX";
1630         first = false;
1631         flipped |= ::android::hardware::audio::common::V7_0::AudioSessionConsts::OUTPUT_MIX;
1632     }
1633     if (o != flipped) {
1634         os += (first ? "" : " | ");
1635         os += toHexString(o & (~flipped));
1636     }os += " (";
1637     os += toHexString(o);
1638     os += ")";
1639     return os;
1640 }
1641 
toString(::android::hardware::audio::common::V7_0::AudioSessionConsts o)1642 static inline std::string toString(::android::hardware::audio::common::V7_0::AudioSessionConsts o) {
1643     using ::android::hardware::details::toHexString;
1644     if (o == ::android::hardware::audio::common::V7_0::AudioSessionConsts::DEVICE) {
1645         return "DEVICE";
1646     }
1647     if (o == ::android::hardware::audio::common::V7_0::AudioSessionConsts::OUTPUT_STAGE) {
1648         return "OUTPUT_STAGE";
1649     }
1650     if (o == ::android::hardware::audio::common::V7_0::AudioSessionConsts::OUTPUT_MIX) {
1651         return "OUTPUT_MIX";
1652     }
1653     std::string os;
1654     os += toHexString(static_cast<int32_t>(o));
1655     return os;
1656 }
1657 
PrintTo(::android::hardware::audio::common::V7_0::AudioSessionConsts o,::std::ostream * os)1658 static inline void PrintTo(::android::hardware::audio::common::V7_0::AudioSessionConsts o, ::std::ostream* os) {
1659     *os << toString(o);
1660 }
1661 
toString(const::android::hardware::audio::common::V7_0::AudioConfigBase & o)1662 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfigBase& o) {
1663     using ::android::hardware::toString;
1664     std::string os;
1665     os += "{";
1666     os += ".format = ";
1667     os += ::android::hardware::toString(o.format);
1668     os += ", .sampleRateHz = ";
1669     os += ::android::hardware::toString(o.sampleRateHz);
1670     os += ", .channelMask = ";
1671     os += ::android::hardware::toString(o.channelMask);
1672     os += "}"; return os;
1673 }
1674 
PrintTo(const::android::hardware::audio::common::V7_0::AudioConfigBase & o,::std::ostream * os)1675 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfigBase& o, ::std::ostream* os) {
1676     *os << toString(o);
1677 }
1678 
1679 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfigBase& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBase& rhs) {
1680     if (lhs.format != rhs.format) {
1681         return false;
1682     }
1683     if (lhs.sampleRateHz != rhs.sampleRateHz) {
1684         return false;
1685     }
1686     if (lhs.channelMask != rhs.channelMask) {
1687         return false;
1688     }
1689     return true;
1690 }
1691 
1692 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfigBase& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBase& rhs){
1693     return !(lhs == rhs);
1694 }
1695 
toString(const::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format & o)1696 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& o) {
1697     using ::android::hardware::toString;
1698     std::string os;
1699     os += "{";
1700 
1701     switch (o.getDiscriminator()) {
1702         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format::hidl_discriminator::unspecified: {
1703             os += ".unspecified = ";
1704             os += toString(o.unspecified());
1705             break;
1706         }
1707         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format::hidl_discriminator::value: {
1708             os += ".value = ";
1709             os += toString(o.value());
1710             break;
1711         }
1712         default: {
1713             ::android::hardware::details::logAlwaysFatal((
1714                     "Unknown union discriminator (value: " +
1715                     std::to_string(static_cast<uint8_t>(o.getDiscriminator())) + ").").c_str());
1716         }
1717     }
1718     os += "}"; return os;
1719 }
1720 
PrintTo(const::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format & o,::std::ostream * os)1721 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& o, ::std::ostream* os) {
1722     *os << toString(o);
1723 }
1724 
1725 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& rhs) {
1726     if (lhs.getDiscriminator() != rhs.getDiscriminator()) {
1727         return false;
1728     }
1729     switch (lhs.getDiscriminator()) {
1730         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format::hidl_discriminator::unspecified: {
1731             return (lhs.unspecified() == rhs.unspecified());
1732         }
1733         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format::hidl_discriminator::value: {
1734             return (lhs.value() == rhs.value());
1735         }
1736         default: {
1737             ::android::hardware::details::logAlwaysFatal((
1738                     "Unknown union discriminator (value: " +
1739                     std::to_string(static_cast<uint8_t>(lhs.getDiscriminator())) + ").").c_str());
1740         }
1741     }
1742     return true;
1743 }
1744 
1745 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::Format& rhs){
1746     return !(lhs == rhs);
1747 }
1748 
toString(const::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate & o)1749 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& o) {
1750     using ::android::hardware::toString;
1751     std::string os;
1752     os += "{";
1753 
1754     switch (o.getDiscriminator()) {
1755         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate::hidl_discriminator::unspecified: {
1756             os += ".unspecified = ";
1757             os += toString(o.unspecified());
1758             break;
1759         }
1760         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate::hidl_discriminator::value: {
1761             os += ".value = ";
1762             os += toString(o.value());
1763             break;
1764         }
1765         default: {
1766             ::android::hardware::details::logAlwaysFatal((
1767                     "Unknown union discriminator (value: " +
1768                     std::to_string(static_cast<uint8_t>(o.getDiscriminator())) + ").").c_str());
1769         }
1770     }
1771     os += "}"; return os;
1772 }
1773 
PrintTo(const::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate & o,::std::ostream * os)1774 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& o, ::std::ostream* os) {
1775     *os << toString(o);
1776 }
1777 
1778 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& rhs) {
1779     if (lhs.getDiscriminator() != rhs.getDiscriminator()) {
1780         return false;
1781     }
1782     switch (lhs.getDiscriminator()) {
1783         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate::hidl_discriminator::unspecified: {
1784             return (lhs.unspecified() == rhs.unspecified());
1785         }
1786         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate::hidl_discriminator::value: {
1787             return (lhs.value() == rhs.value());
1788         }
1789         default: {
1790             ::android::hardware::details::logAlwaysFatal((
1791                     "Unknown union discriminator (value: " +
1792                     std::to_string(static_cast<uint8_t>(lhs.getDiscriminator())) + ").").c_str());
1793         }
1794     }
1795     return true;
1796 }
1797 
1798 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::SampleRate& rhs){
1799     return !(lhs == rhs);
1800 }
1801 
toString(const::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask & o)1802 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& o) {
1803     using ::android::hardware::toString;
1804     std::string os;
1805     os += "{";
1806 
1807     switch (o.getDiscriminator()) {
1808         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask::hidl_discriminator::unspecified: {
1809             os += ".unspecified = ";
1810             os += toString(o.unspecified());
1811             break;
1812         }
1813         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask::hidl_discriminator::value: {
1814             os += ".value = ";
1815             os += toString(o.value());
1816             break;
1817         }
1818         default: {
1819             ::android::hardware::details::logAlwaysFatal((
1820                     "Unknown union discriminator (value: " +
1821                     std::to_string(static_cast<uint8_t>(o.getDiscriminator())) + ").").c_str());
1822         }
1823     }
1824     os += "}"; return os;
1825 }
1826 
PrintTo(const::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask & o,::std::ostream * os)1827 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& o, ::std::ostream* os) {
1828     *os << toString(o);
1829 }
1830 
1831 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& rhs) {
1832     if (lhs.getDiscriminator() != rhs.getDiscriminator()) {
1833         return false;
1834     }
1835     switch (lhs.getDiscriminator()) {
1836         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask::hidl_discriminator::unspecified: {
1837             return (lhs.unspecified() == rhs.unspecified());
1838         }
1839         case ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask::hidl_discriminator::value: {
1840             return (lhs.value() == rhs.value());
1841         }
1842         default: {
1843             ::android::hardware::details::logAlwaysFatal((
1844                     "Unknown union discriminator (value: " +
1845                     std::to_string(static_cast<uint8_t>(lhs.getDiscriminator())) + ").").c_str());
1846         }
1847     }
1848     return true;
1849 }
1850 
1851 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional::ChannelMask& rhs){
1852     return !(lhs == rhs);
1853 }
1854 
toString(const::android::hardware::audio::common::V7_0::AudioConfigBaseOptional & o)1855 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& o) {
1856     using ::android::hardware::toString;
1857     std::string os;
1858     os += "{";
1859     os += ".format = ";
1860     os += ::android::hardware::audio::common::V7_0::toString(o.format);
1861     os += ", .sampleRateHz = ";
1862     os += ::android::hardware::audio::common::V7_0::toString(o.sampleRateHz);
1863     os += ", .channelMask = ";
1864     os += ::android::hardware::audio::common::V7_0::toString(o.channelMask);
1865     os += "}"; return os;
1866 }
1867 
PrintTo(const::android::hardware::audio::common::V7_0::AudioConfigBaseOptional & o,::std::ostream * os)1868 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& o, ::std::ostream* os) {
1869     *os << toString(o);
1870 }
1871 
1872 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& rhs) {
1873     if (lhs.format != rhs.format) {
1874         return false;
1875     }
1876     if (lhs.sampleRateHz != rhs.sampleRateHz) {
1877         return false;
1878     }
1879     if (lhs.channelMask != rhs.channelMask) {
1880         return false;
1881     }
1882     return true;
1883 }
1884 
1885 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& lhs, const ::android::hardware::audio::common::V7_0::AudioConfigBaseOptional& rhs){
1886     return !(lhs == rhs);
1887 }
1888 
toString(const::android::hardware::audio::common::V7_0::AudioProfile & o)1889 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioProfile& o) {
1890     using ::android::hardware::toString;
1891     std::string os;
1892     os += "{";
1893     os += ".format = ";
1894     os += ::android::hardware::toString(o.format);
1895     os += ", .sampleRates = ";
1896     os += ::android::hardware::toString(o.sampleRates);
1897     os += ", .channelMasks = ";
1898     os += ::android::hardware::toString(o.channelMasks);
1899     os += "}"; return os;
1900 }
1901 
PrintTo(const::android::hardware::audio::common::V7_0::AudioProfile & o,::std::ostream * os)1902 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioProfile& o, ::std::ostream* os) {
1903     *os << toString(o);
1904 }
1905 
1906 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioProfile& lhs, const ::android::hardware::audio::common::V7_0::AudioProfile& rhs) {
1907     if (lhs.format != rhs.format) {
1908         return false;
1909     }
1910     if (lhs.sampleRates != rhs.sampleRates) {
1911         return false;
1912     }
1913     if (lhs.channelMasks != rhs.channelMasks) {
1914         return false;
1915     }
1916     return true;
1917 }
1918 
1919 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioProfile& lhs, const ::android::hardware::audio::common::V7_0::AudioProfile& rhs){
1920     return !(lhs == rhs);
1921 }
1922 
toString(const::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability & o)1923 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& o) {
1924     using ::android::hardware::toString;
1925     std::string os;
1926     os += "{";
1927 
1928     switch (o.getDiscriminator()) {
1929         case ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability::hidl_discriminator::profile: {
1930             os += ".profile = ";
1931             os += toString(o.profile());
1932             break;
1933         }
1934         case ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability::hidl_discriminator::edid: {
1935             os += ".edid = ";
1936             os += toString(o.edid());
1937             break;
1938         }
1939         default: {
1940             ::android::hardware::details::logAlwaysFatal((
1941                     "Unknown union discriminator (value: " +
1942                     std::to_string(static_cast<uint8_t>(o.getDiscriminator())) + ").").c_str());
1943         }
1944     }
1945     os += "}"; return os;
1946 }
1947 
PrintTo(const::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability & o,::std::ostream * os)1948 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& o, ::std::ostream* os) {
1949     *os << toString(o);
1950 }
1951 
1952 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& lhs, const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& rhs) {
1953     if (lhs.getDiscriminator() != rhs.getDiscriminator()) {
1954         return false;
1955     }
1956     switch (lhs.getDiscriminator()) {
1957         case ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability::hidl_discriminator::profile: {
1958             return (lhs.profile() == rhs.profile());
1959         }
1960         case ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability::hidl_discriminator::edid: {
1961             return (lhs.edid() == rhs.edid());
1962         }
1963         default: {
1964             ::android::hardware::details::logAlwaysFatal((
1965                     "Unknown union discriminator (value: " +
1966                     std::to_string(static_cast<uint8_t>(lhs.getDiscriminator())) + ").").c_str());
1967         }
1968     }
1969     return true;
1970 }
1971 
1972 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& lhs, const ::android::hardware::audio::common::V7_0::AudioTransport::AudioCapability& rhs){
1973     return !(lhs == rhs);
1974 }
1975 
toString(const::android::hardware::audio::common::V7_0::AudioTransport & o)1976 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioTransport& o) {
1977     using ::android::hardware::toString;
1978     std::string os;
1979     os += "{";
1980     os += ".audioCapability = ";
1981     os += ::android::hardware::audio::common::V7_0::toString(o.audioCapability);
1982     os += ", .encapsulationType = ";
1983     os += ::android::hardware::toString(o.encapsulationType);
1984     os += "}"; return os;
1985 }
1986 
PrintTo(const::android::hardware::audio::common::V7_0::AudioTransport & o,::std::ostream * os)1987 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioTransport& o, ::std::ostream* os) {
1988     *os << toString(o);
1989 }
1990 
1991 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioTransport& lhs, const ::android::hardware::audio::common::V7_0::AudioTransport& rhs) {
1992     if (lhs.audioCapability != rhs.audioCapability) {
1993         return false;
1994     }
1995     if (lhs.encapsulationType != rhs.encapsulationType) {
1996         return false;
1997     }
1998     return true;
1999 }
2000 
2001 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioTransport& lhs, const ::android::hardware::audio::common::V7_0::AudioTransport& rhs){
2002     return !(lhs == rhs);
2003 }
2004 
2005 template<>
2006 inline std::string toString<::android::hardware::audio::common::V7_0::AudioMode>(int32_t o) {
2007     using ::android::hardware::details::toHexString;
2008     std::string os;
2009     ::android::hardware::hidl_bitfield<::android::hardware::audio::common::V7_0::AudioMode> flipped = 0;
2010     bool first = true;
2011     if ((o & ::android::hardware::audio::common::V7_0::AudioMode::NORMAL) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioMode::NORMAL)) {
2012         os += (first ? "" : " | ");
2013         os += "NORMAL";
2014         first = false;
2015         flipped |= ::android::hardware::audio::common::V7_0::AudioMode::NORMAL;
2016     }
2017     if ((o & ::android::hardware::audio::common::V7_0::AudioMode::RINGTONE) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioMode::RINGTONE)) {
2018         os += (first ? "" : " | ");
2019         os += "RINGTONE";
2020         first = false;
2021         flipped |= ::android::hardware::audio::common::V7_0::AudioMode::RINGTONE;
2022     }
2023     if ((o & ::android::hardware::audio::common::V7_0::AudioMode::IN_CALL) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioMode::IN_CALL)) {
2024         os += (first ? "" : " | ");
2025         os += "IN_CALL";
2026         first = false;
2027         flipped |= ::android::hardware::audio::common::V7_0::AudioMode::IN_CALL;
2028     }
2029     if ((o & ::android::hardware::audio::common::V7_0::AudioMode::IN_COMMUNICATION) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioMode::IN_COMMUNICATION)) {
2030         os += (first ? "" : " | ");
2031         os += "IN_COMMUNICATION";
2032         first = false;
2033         flipped |= ::android::hardware::audio::common::V7_0::AudioMode::IN_COMMUNICATION;
2034     }
2035     if ((o & ::android::hardware::audio::common::V7_0::AudioMode::CALL_SCREEN) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioMode::CALL_SCREEN)) {
2036         os += (first ? "" : " | ");
2037         os += "CALL_SCREEN";
2038         first = false;
2039         flipped |= ::android::hardware::audio::common::V7_0::AudioMode::CALL_SCREEN;
2040     }
2041     if (o != flipped) {
2042         os += (first ? "" : " | ");
2043         os += toHexString(o & (~flipped));
2044     }os += " (";
2045     os += toHexString(o);
2046     os += ")";
2047     return os;
2048 }
2049 
toString(::android::hardware::audio::common::V7_0::AudioMode o)2050 static inline std::string toString(::android::hardware::audio::common::V7_0::AudioMode o) {
2051     using ::android::hardware::details::toHexString;
2052     if (o == ::android::hardware::audio::common::V7_0::AudioMode::NORMAL) {
2053         return "NORMAL";
2054     }
2055     if (o == ::android::hardware::audio::common::V7_0::AudioMode::RINGTONE) {
2056         return "RINGTONE";
2057     }
2058     if (o == ::android::hardware::audio::common::V7_0::AudioMode::IN_CALL) {
2059         return "IN_CALL";
2060     }
2061     if (o == ::android::hardware::audio::common::V7_0::AudioMode::IN_COMMUNICATION) {
2062         return "IN_COMMUNICATION";
2063     }
2064     if (o == ::android::hardware::audio::common::V7_0::AudioMode::CALL_SCREEN) {
2065         return "CALL_SCREEN";
2066     }
2067     std::string os;
2068     os += toHexString(static_cast<int32_t>(o));
2069     return os;
2070 }
2071 
PrintTo(::android::hardware::audio::common::V7_0::AudioMode o,::std::ostream * os)2072 static inline void PrintTo(::android::hardware::audio::common::V7_0::AudioMode o, ::std::ostream* os) {
2073     *os << toString(o);
2074 }
2075 
toString(const::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa & o)2076 static inline std::string toString(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& o) {
2077     using ::android::hardware::toString;
2078     std::string os;
2079     os += "{";
2080     os += ".card = ";
2081     os += ::android::hardware::toString(o.card);
2082     os += ", .device = ";
2083     os += ::android::hardware::toString(o.device);
2084     os += "}"; return os;
2085 }
2086 
PrintTo(const::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa & o,::std::ostream * os)2087 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& o, ::std::ostream* os) {
2088     *os << toString(o);
2089 }
2090 
2091 static inline bool operator==(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& rhs) {
2092     if (lhs.card != rhs.card) {
2093         return false;
2094     }
2095     if (lhs.device != rhs.device) {
2096         return false;
2097     }
2098     return true;
2099 }
2100 
2101 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress::Address::Alsa& rhs){
2102     return !(lhs == rhs);
2103 }
2104 
toString(const::android::hardware::audio::common::V7_0::DeviceAddress::Address & o)2105 static inline std::string toString(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& o) {
2106     using ::android::hardware::toString;
2107     std::string os;
2108     os += "{";
2109 
2110     switch (o.getDiscriminator()) {
2111         case ::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator::id: {
2112             os += ".id = ";
2113             os += toString(o.id());
2114             break;
2115         }
2116         case ::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator::mac: {
2117             os += ".mac = ";
2118             os += toString(o.mac());
2119             break;
2120         }
2121         case ::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator::ipv4: {
2122             os += ".ipv4 = ";
2123             os += toString(o.ipv4());
2124             break;
2125         }
2126         case ::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator::ipv6: {
2127             os += ".ipv6 = ";
2128             os += toString(o.ipv6());
2129             break;
2130         }
2131         case ::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator::alsa: {
2132             os += ".alsa = ";
2133             os += toString(o.alsa());
2134             break;
2135         }
2136         default: {
2137             ::android::hardware::details::logAlwaysFatal((
2138                     "Unknown union discriminator (value: " +
2139                     std::to_string(static_cast<uint8_t>(o.getDiscriminator())) + ").").c_str());
2140         }
2141     }
2142     os += "}"; return os;
2143 }
2144 
PrintTo(const::android::hardware::audio::common::V7_0::DeviceAddress::Address & o,::std::ostream * os)2145 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& o, ::std::ostream* os) {
2146     *os << toString(o);
2147 }
2148 
2149 static inline bool operator==(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& rhs) {
2150     if (lhs.getDiscriminator() != rhs.getDiscriminator()) {
2151         return false;
2152     }
2153     switch (lhs.getDiscriminator()) {
2154         case ::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator::id: {
2155             return (lhs.id() == rhs.id());
2156         }
2157         case ::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator::mac: {
2158             return (lhs.mac() == rhs.mac());
2159         }
2160         case ::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator::ipv4: {
2161             return (lhs.ipv4() == rhs.ipv4());
2162         }
2163         case ::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator::ipv6: {
2164             return (lhs.ipv6() == rhs.ipv6());
2165         }
2166         case ::android::hardware::audio::common::V7_0::DeviceAddress::Address::hidl_discriminator::alsa: {
2167             return (lhs.alsa() == rhs.alsa());
2168         }
2169         default: {
2170             ::android::hardware::details::logAlwaysFatal((
2171                     "Unknown union discriminator (value: " +
2172                     std::to_string(static_cast<uint8_t>(lhs.getDiscriminator())) + ").").c_str());
2173         }
2174     }
2175     return true;
2176 }
2177 
2178 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress::Address& rhs){
2179     return !(lhs == rhs);
2180 }
2181 
toString(const::android::hardware::audio::common::V7_0::DeviceAddress & o)2182 static inline std::string toString(const ::android::hardware::audio::common::V7_0::DeviceAddress& o) {
2183     using ::android::hardware::toString;
2184     std::string os;
2185     os += "{";
2186     os += ".deviceType = ";
2187     os += ::android::hardware::toString(o.deviceType);
2188     os += ", .address = ";
2189     os += ::android::hardware::audio::common::V7_0::toString(o.address);
2190     os += "}"; return os;
2191 }
2192 
PrintTo(const::android::hardware::audio::common::V7_0::DeviceAddress & o,::std::ostream * os)2193 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::DeviceAddress& o, ::std::ostream* os) {
2194     *os << toString(o);
2195 }
2196 
2197 static inline bool operator==(const ::android::hardware::audio::common::V7_0::DeviceAddress& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress& rhs) {
2198     if (lhs.deviceType != rhs.deviceType) {
2199         return false;
2200     }
2201     if (lhs.address != rhs.address) {
2202         return false;
2203     }
2204     return true;
2205 }
2206 
2207 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::DeviceAddress& lhs, const ::android::hardware::audio::common::V7_0::DeviceAddress& rhs){
2208     return !(lhs == rhs);
2209 }
2210 
2211 template<>
2212 inline std::string toString<::android::hardware::audio::common::V7_0::AudioEncapsulationMode>(int32_t o) {
2213     using ::android::hardware::details::toHexString;
2214     std::string os;
2215     ::android::hardware::hidl_bitfield<::android::hardware::audio::common::V7_0::AudioEncapsulationMode> flipped = 0;
2216     bool first = true;
2217     if ((o & ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::NONE) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioEncapsulationMode::NONE)) {
2218         os += (first ? "" : " | ");
2219         os += "NONE";
2220         first = false;
2221         flipped |= ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::NONE;
2222     }
2223     if ((o & ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::ELEMENTARY_STREAM) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioEncapsulationMode::ELEMENTARY_STREAM)) {
2224         os += (first ? "" : " | ");
2225         os += "ELEMENTARY_STREAM";
2226         first = false;
2227         flipped |= ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::ELEMENTARY_STREAM;
2228     }
2229     if ((o & ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::HANDLE) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioEncapsulationMode::HANDLE)) {
2230         os += (first ? "" : " | ");
2231         os += "HANDLE";
2232         first = false;
2233         flipped |= ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::HANDLE;
2234     }
2235     if (o != flipped) {
2236         os += (first ? "" : " | ");
2237         os += toHexString(o & (~flipped));
2238     }os += " (";
2239     os += toHexString(o);
2240     os += ")";
2241     return os;
2242 }
2243 
toString(::android::hardware::audio::common::V7_0::AudioEncapsulationMode o)2244 static inline std::string toString(::android::hardware::audio::common::V7_0::AudioEncapsulationMode o) {
2245     using ::android::hardware::details::toHexString;
2246     if (o == ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::NONE) {
2247         return "NONE";
2248     }
2249     if (o == ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::ELEMENTARY_STREAM) {
2250         return "ELEMENTARY_STREAM";
2251     }
2252     if (o == ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::HANDLE) {
2253         return "HANDLE";
2254     }
2255     std::string os;
2256     os += toHexString(static_cast<int32_t>(o));
2257     return os;
2258 }
2259 
PrintTo(::android::hardware::audio::common::V7_0::AudioEncapsulationMode o,::std::ostream * os)2260 static inline void PrintTo(::android::hardware::audio::common::V7_0::AudioEncapsulationMode o, ::std::ostream* os) {
2261     *os << toString(o);
2262 }
2263 
2264 template<>
2265 inline std::string toString<::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType>(int32_t o) {
2266     using ::android::hardware::details::toHexString;
2267     std::string os;
2268     ::android::hardware::hidl_bitfield<::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType> flipped = 0;
2269     bool first = true;
2270     if ((o & ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::NONE) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::NONE)) {
2271         os += (first ? "" : " | ");
2272         os += "NONE";
2273         first = false;
2274         flipped |= ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::NONE;
2275     }
2276     if ((o & ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::FRAMEWORK_TUNER) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::FRAMEWORK_TUNER)) {
2277         os += (first ? "" : " | ");
2278         os += "FRAMEWORK_TUNER";
2279         first = false;
2280         flipped |= ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::FRAMEWORK_TUNER;
2281     }
2282     if ((o & ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::DVB_AD_DESCRIPTOR) == static_cast<int32_t>(::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::DVB_AD_DESCRIPTOR)) {
2283         os += (first ? "" : " | ");
2284         os += "DVB_AD_DESCRIPTOR";
2285         first = false;
2286         flipped |= ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::DVB_AD_DESCRIPTOR;
2287     }
2288     if (o != flipped) {
2289         os += (first ? "" : " | ");
2290         os += toHexString(o & (~flipped));
2291     }os += " (";
2292     os += toHexString(o);
2293     os += ")";
2294     return os;
2295 }
2296 
toString(::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType o)2297 static inline std::string toString(::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType o) {
2298     using ::android::hardware::details::toHexString;
2299     if (o == ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::NONE) {
2300         return "NONE";
2301     }
2302     if (o == ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::FRAMEWORK_TUNER) {
2303         return "FRAMEWORK_TUNER";
2304     }
2305     if (o == ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::DVB_AD_DESCRIPTOR) {
2306         return "DVB_AD_DESCRIPTOR";
2307     }
2308     std::string os;
2309     os += toHexString(static_cast<int32_t>(o));
2310     return os;
2311 }
2312 
PrintTo(::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType o,::std::ostream * os)2313 static inline void PrintTo(::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType o, ::std::ostream* os) {
2314     *os << toString(o);
2315 }
2316 
toString(const::android::hardware::audio::common::V7_0::AudioOffloadInfo & o)2317 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& o) {
2318     using ::android::hardware::toString;
2319     std::string os;
2320     os += "{";
2321     os += ".base = ";
2322     os += ::android::hardware::audio::common::V7_0::toString(o.base);
2323     os += ", .streamType = ";
2324     os += ::android::hardware::toString(o.streamType);
2325     os += ", .bitRatePerSecond = ";
2326     os += ::android::hardware::toString(o.bitRatePerSecond);
2327     os += ", .durationMicroseconds = ";
2328     os += ::android::hardware::toString(o.durationMicroseconds);
2329     os += ", .hasVideo = ";
2330     os += ::android::hardware::toString(o.hasVideo);
2331     os += ", .isStreaming = ";
2332     os += ::android::hardware::toString(o.isStreaming);
2333     os += ", .bitWidth = ";
2334     os += ::android::hardware::toString(o.bitWidth);
2335     os += ", .bufferSize = ";
2336     os += ::android::hardware::toString(o.bufferSize);
2337     os += ", .usage = ";
2338     os += ::android::hardware::toString(o.usage);
2339     os += ", .encapsulationMode = ";
2340     os += ::android::hardware::audio::common::V7_0::toString(o.encapsulationMode);
2341     os += ", .contentId = ";
2342     os += ::android::hardware::toString(o.contentId);
2343     os += ", .syncId = ";
2344     os += ::android::hardware::toString(o.syncId);
2345     os += "}"; return os;
2346 }
2347 
PrintTo(const::android::hardware::audio::common::V7_0::AudioOffloadInfo & o,::std::ostream * os)2348 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& o, ::std::ostream* os) {
2349     *os << toString(o);
2350 }
2351 
2352 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& rhs) {
2353     if (lhs.base != rhs.base) {
2354         return false;
2355     }
2356     if (lhs.streamType != rhs.streamType) {
2357         return false;
2358     }
2359     if (lhs.bitRatePerSecond != rhs.bitRatePerSecond) {
2360         return false;
2361     }
2362     if (lhs.durationMicroseconds != rhs.durationMicroseconds) {
2363         return false;
2364     }
2365     if (lhs.hasVideo != rhs.hasVideo) {
2366         return false;
2367     }
2368     if (lhs.isStreaming != rhs.isStreaming) {
2369         return false;
2370     }
2371     if (lhs.bitWidth != rhs.bitWidth) {
2372         return false;
2373     }
2374     if (lhs.bufferSize != rhs.bufferSize) {
2375         return false;
2376     }
2377     if (lhs.usage != rhs.usage) {
2378         return false;
2379     }
2380     if (lhs.encapsulationMode != rhs.encapsulationMode) {
2381         return false;
2382     }
2383     if (lhs.contentId != rhs.contentId) {
2384         return false;
2385     }
2386     if (lhs.syncId != rhs.syncId) {
2387         return false;
2388     }
2389     return true;
2390 }
2391 
2392 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioOffloadInfo& rhs){
2393     return !(lhs == rhs);
2394 }
2395 
toString(const::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo & o)2396 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& o) {
2397     using ::android::hardware::toString;
2398     std::string os;
2399     os += "{";
2400 
2401     switch (o.getDiscriminator()) {
2402         case ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo::hidl_discriminator::unspecified: {
2403             os += ".unspecified = ";
2404             os += toString(o.unspecified());
2405             break;
2406         }
2407         case ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo::hidl_discriminator::info: {
2408             os += ".info = ";
2409             os += toString(o.info());
2410             break;
2411         }
2412         default: {
2413             ::android::hardware::details::logAlwaysFatal((
2414                     "Unknown union discriminator (value: " +
2415                     std::to_string(static_cast<uint8_t>(o.getDiscriminator())) + ").").c_str());
2416         }
2417     }
2418     os += "}"; return os;
2419 }
2420 
PrintTo(const::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo & o,::std::ostream * os)2421 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& o, ::std::ostream* os) {
2422     *os << toString(o);
2423 }
2424 
2425 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& rhs) {
2426     if (lhs.getDiscriminator() != rhs.getDiscriminator()) {
2427         return false;
2428     }
2429     switch (lhs.getDiscriminator()) {
2430         case ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo::hidl_discriminator::unspecified: {
2431             return (lhs.unspecified() == rhs.unspecified());
2432         }
2433         case ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo::hidl_discriminator::info: {
2434             return (lhs.info() == rhs.info());
2435         }
2436         default: {
2437             ::android::hardware::details::logAlwaysFatal((
2438                     "Unknown union discriminator (value: " +
2439                     std::to_string(static_cast<uint8_t>(lhs.getDiscriminator())) + ").").c_str());
2440         }
2441     }
2442     return true;
2443 }
2444 
2445 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioConfig::OffloadInfo& rhs){
2446     return !(lhs == rhs);
2447 }
2448 
toString(const::android::hardware::audio::common::V7_0::AudioConfig & o)2449 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioConfig& o) {
2450     using ::android::hardware::toString;
2451     std::string os;
2452     os += "{";
2453     os += ".base = ";
2454     os += ::android::hardware::audio::common::V7_0::toString(o.base);
2455     os += ", .offloadInfo = ";
2456     os += ::android::hardware::audio::common::V7_0::toString(o.offloadInfo);
2457     os += ", .frameCount = ";
2458     os += ::android::hardware::toString(o.frameCount);
2459     os += "}"; return os;
2460 }
2461 
PrintTo(const::android::hardware::audio::common::V7_0::AudioConfig & o,::std::ostream * os)2462 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioConfig& o, ::std::ostream* os) {
2463     *os << toString(o);
2464 }
2465 
2466 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioConfig& rhs) {
2467     if (lhs.base != rhs.base) {
2468         return false;
2469     }
2470     if (lhs.offloadInfo != rhs.offloadInfo) {
2471         return false;
2472     }
2473     if (lhs.frameCount != rhs.frameCount) {
2474         return false;
2475     }
2476     return true;
2477 }
2478 
2479 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioConfig& rhs){
2480     return !(lhs == rhs);
2481 }
2482 
toString(const::android::hardware::audio::common::V7_0::PlaybackTrackMetadata & o)2483 static inline std::string toString(const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& o) {
2484     using ::android::hardware::toString;
2485     std::string os;
2486     os += "{";
2487     os += ".usage = ";
2488     os += ::android::hardware::toString(o.usage);
2489     os += ", .contentType = ";
2490     os += ::android::hardware::toString(o.contentType);
2491     os += ", .gain = ";
2492     os += ::android::hardware::toString(o.gain);
2493     os += ", .channelMask = ";
2494     os += ::android::hardware::toString(o.channelMask);
2495     os += ", .tags = ";
2496     os += ::android::hardware::toString(o.tags);
2497     os += "}"; return os;
2498 }
2499 
PrintTo(const::android::hardware::audio::common::V7_0::PlaybackTrackMetadata & o,::std::ostream * os)2500 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& o, ::std::ostream* os) {
2501     *os << toString(o);
2502 }
2503 
2504 static inline bool operator==(const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& lhs, const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& rhs) {
2505     if (lhs.usage != rhs.usage) {
2506         return false;
2507     }
2508     if (lhs.contentType != rhs.contentType) {
2509         return false;
2510     }
2511     if (lhs.gain != rhs.gain) {
2512         return false;
2513     }
2514     if (lhs.channelMask != rhs.channelMask) {
2515         return false;
2516     }
2517     if (lhs.tags != rhs.tags) {
2518         return false;
2519     }
2520     return true;
2521 }
2522 
2523 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& lhs, const ::android::hardware::audio::common::V7_0::PlaybackTrackMetadata& rhs){
2524     return !(lhs == rhs);
2525 }
2526 
toString(const::android::hardware::audio::common::V7_0::SourceMetadata & o)2527 static inline std::string toString(const ::android::hardware::audio::common::V7_0::SourceMetadata& o) {
2528     using ::android::hardware::toString;
2529     std::string os;
2530     os += "{";
2531     os += ".tracks = ";
2532     os += ::android::hardware::toString(o.tracks);
2533     os += "}"; return os;
2534 }
2535 
PrintTo(const::android::hardware::audio::common::V7_0::SourceMetadata & o,::std::ostream * os)2536 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::SourceMetadata& o, ::std::ostream* os) {
2537     *os << toString(o);
2538 }
2539 
2540 static inline bool operator==(const ::android::hardware::audio::common::V7_0::SourceMetadata& lhs, const ::android::hardware::audio::common::V7_0::SourceMetadata& rhs) {
2541     if (lhs.tracks != rhs.tracks) {
2542         return false;
2543     }
2544     return true;
2545 }
2546 
2547 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::SourceMetadata& lhs, const ::android::hardware::audio::common::V7_0::SourceMetadata& rhs){
2548     return !(lhs == rhs);
2549 }
2550 
toString(const::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination & o)2551 static inline std::string toString(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& o) {
2552     using ::android::hardware::toString;
2553     std::string os;
2554     os += "{";
2555 
2556     switch (o.getDiscriminator()) {
2557         case ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination::hidl_discriminator::unspecified: {
2558             os += ".unspecified = ";
2559             os += toString(o.unspecified());
2560             break;
2561         }
2562         case ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination::hidl_discriminator::device: {
2563             os += ".device = ";
2564             os += toString(o.device());
2565             break;
2566         }
2567         default: {
2568             ::android::hardware::details::logAlwaysFatal((
2569                     "Unknown union discriminator (value: " +
2570                     std::to_string(static_cast<uint8_t>(o.getDiscriminator())) + ").").c_str());
2571         }
2572     }
2573     os += "}"; return os;
2574 }
2575 
PrintTo(const::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination & o,::std::ostream * os)2576 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& o, ::std::ostream* os) {
2577     *os << toString(o);
2578 }
2579 
2580 static inline bool operator==(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& lhs, const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& rhs) {
2581     if (lhs.getDiscriminator() != rhs.getDiscriminator()) {
2582         return false;
2583     }
2584     switch (lhs.getDiscriminator()) {
2585         case ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination::hidl_discriminator::unspecified: {
2586             return (lhs.unspecified() == rhs.unspecified());
2587         }
2588         case ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination::hidl_discriminator::device: {
2589             return (lhs.device() == rhs.device());
2590         }
2591         default: {
2592             ::android::hardware::details::logAlwaysFatal((
2593                     "Unknown union discriminator (value: " +
2594                     std::to_string(static_cast<uint8_t>(lhs.getDiscriminator())) + ").").c_str());
2595         }
2596     }
2597     return true;
2598 }
2599 
2600 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& lhs, const ::android::hardware::audio::common::V7_0::RecordTrackMetadata::Destination& rhs){
2601     return !(lhs == rhs);
2602 }
2603 
toString(const::android::hardware::audio::common::V7_0::RecordTrackMetadata & o)2604 static inline std::string toString(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& o) {
2605     using ::android::hardware::toString;
2606     std::string os;
2607     os += "{";
2608     os += ".source = ";
2609     os += ::android::hardware::toString(o.source);
2610     os += ", .gain = ";
2611     os += ::android::hardware::toString(o.gain);
2612     os += ", .destination = ";
2613     os += ::android::hardware::audio::common::V7_0::toString(o.destination);
2614     os += ", .channelMask = ";
2615     os += ::android::hardware::toString(o.channelMask);
2616     os += ", .tags = ";
2617     os += ::android::hardware::toString(o.tags);
2618     os += "}"; return os;
2619 }
2620 
PrintTo(const::android::hardware::audio::common::V7_0::RecordTrackMetadata & o,::std::ostream * os)2621 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& o, ::std::ostream* os) {
2622     *os << toString(o);
2623 }
2624 
2625 static inline bool operator==(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& lhs, const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& rhs) {
2626     if (lhs.source != rhs.source) {
2627         return false;
2628     }
2629     if (lhs.gain != rhs.gain) {
2630         return false;
2631     }
2632     if (lhs.destination != rhs.destination) {
2633         return false;
2634     }
2635     if (lhs.channelMask != rhs.channelMask) {
2636         return false;
2637     }
2638     if (lhs.tags != rhs.tags) {
2639         return false;
2640     }
2641     return true;
2642 }
2643 
2644 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& lhs, const ::android::hardware::audio::common::V7_0::RecordTrackMetadata& rhs){
2645     return !(lhs == rhs);
2646 }
2647 
toString(const::android::hardware::audio::common::V7_0::SinkMetadata & o)2648 static inline std::string toString(const ::android::hardware::audio::common::V7_0::SinkMetadata& o) {
2649     using ::android::hardware::toString;
2650     std::string os;
2651     os += "{";
2652     os += ".tracks = ";
2653     os += ::android::hardware::toString(o.tracks);
2654     os += "}"; return os;
2655 }
2656 
PrintTo(const::android::hardware::audio::common::V7_0::SinkMetadata & o,::std::ostream * os)2657 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::SinkMetadata& o, ::std::ostream* os) {
2658     *os << toString(o);
2659 }
2660 
2661 static inline bool operator==(const ::android::hardware::audio::common::V7_0::SinkMetadata& lhs, const ::android::hardware::audio::common::V7_0::SinkMetadata& rhs) {
2662     if (lhs.tracks != rhs.tracks) {
2663         return false;
2664     }
2665     return true;
2666 }
2667 
2668 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::SinkMetadata& lhs, const ::android::hardware::audio::common::V7_0::SinkMetadata& rhs){
2669     return !(lhs == rhs);
2670 }
2671 
toString(const::android::hardware::audio::common::V7_0::AudioGain & o)2672 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioGain& o) {
2673     using ::android::hardware::toString;
2674     std::string os;
2675     os += "{";
2676     os += ".mode = ";
2677     os += ::android::hardware::toString(o.mode);
2678     os += ", .channelMask = ";
2679     os += ::android::hardware::toString(o.channelMask);
2680     os += ", .minValue = ";
2681     os += ::android::hardware::toString(o.minValue);
2682     os += ", .maxValue = ";
2683     os += ::android::hardware::toString(o.maxValue);
2684     os += ", .defaultValue = ";
2685     os += ::android::hardware::toString(o.defaultValue);
2686     os += ", .stepValue = ";
2687     os += ::android::hardware::toString(o.stepValue);
2688     os += ", .minRampMs = ";
2689     os += ::android::hardware::toString(o.minRampMs);
2690     os += ", .maxRampMs = ";
2691     os += ::android::hardware::toString(o.maxRampMs);
2692     os += "}"; return os;
2693 }
2694 
PrintTo(const::android::hardware::audio::common::V7_0::AudioGain & o,::std::ostream * os)2695 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioGain& o, ::std::ostream* os) {
2696     *os << toString(o);
2697 }
2698 
2699 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioGain& lhs, const ::android::hardware::audio::common::V7_0::AudioGain& rhs) {
2700     if (lhs.mode != rhs.mode) {
2701         return false;
2702     }
2703     if (lhs.channelMask != rhs.channelMask) {
2704         return false;
2705     }
2706     if (lhs.minValue != rhs.minValue) {
2707         return false;
2708     }
2709     if (lhs.maxValue != rhs.maxValue) {
2710         return false;
2711     }
2712     if (lhs.defaultValue != rhs.defaultValue) {
2713         return false;
2714     }
2715     if (lhs.stepValue != rhs.stepValue) {
2716         return false;
2717     }
2718     if (lhs.minRampMs != rhs.minRampMs) {
2719         return false;
2720     }
2721     if (lhs.maxRampMs != rhs.maxRampMs) {
2722         return false;
2723     }
2724     return true;
2725 }
2726 
2727 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioGain& lhs, const ::android::hardware::audio::common::V7_0::AudioGain& rhs){
2728     return !(lhs == rhs);
2729 }
2730 
toString(const::android::hardware::audio::common::V7_0::AudioGainConfig & o)2731 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioGainConfig& o) {
2732     using ::android::hardware::toString;
2733     std::string os;
2734     os += "{";
2735     os += ".index = ";
2736     os += ::android::hardware::toString(o.index);
2737     os += ", .mode = ";
2738     os += ::android::hardware::toString(o.mode);
2739     os += ", .channelMask = ";
2740     os += ::android::hardware::toString(o.channelMask);
2741     os += ", .values = ";
2742     os += ::android::hardware::toString(o.values);
2743     os += ", .rampDurationMs = ";
2744     os += ::android::hardware::toString(o.rampDurationMs);
2745     os += "}"; return os;
2746 }
2747 
PrintTo(const::android::hardware::audio::common::V7_0::AudioGainConfig & o,::std::ostream * os)2748 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioGainConfig& o, ::std::ostream* os) {
2749     *os << toString(o);
2750 }
2751 
2752 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioGainConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioGainConfig& rhs) {
2753     if (lhs.index != rhs.index) {
2754         return false;
2755     }
2756     if (lhs.mode != rhs.mode) {
2757         return false;
2758     }
2759     if (lhs.channelMask != rhs.channelMask) {
2760         return false;
2761     }
2762     if (lhs.values != rhs.values) {
2763         return false;
2764     }
2765     if (lhs.rampDurationMs != rhs.rampDurationMs) {
2766         return false;
2767     }
2768     return true;
2769 }
2770 
2771 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioGainConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioGainConfig& rhs){
2772     return !(lhs == rhs);
2773 }
2774 
toString(const::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase & o)2775 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& o) {
2776     using ::android::hardware::toString;
2777     std::string os;
2778     os += "{";
2779 
2780     switch (o.getDiscriminator()) {
2781         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase::hidl_discriminator::stream: {
2782             os += ".stream = ";
2783             os += toString(o.stream());
2784             break;
2785         }
2786         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase::hidl_discriminator::source: {
2787             os += ".source = ";
2788             os += toString(o.source());
2789             break;
2790         }
2791         default: {
2792             ::android::hardware::details::logAlwaysFatal((
2793                     "Unknown union discriminator (value: " +
2794                     std::to_string(static_cast<uint8_t>(o.getDiscriminator())) + ").").c_str());
2795         }
2796     }
2797     os += "}"; return os;
2798 }
2799 
PrintTo(const::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase & o,::std::ostream * os)2800 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& o, ::std::ostream* os) {
2801     *os << toString(o);
2802 }
2803 
2804 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& rhs) {
2805     if (lhs.getDiscriminator() != rhs.getDiscriminator()) {
2806         return false;
2807     }
2808     switch (lhs.getDiscriminator()) {
2809         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase::hidl_discriminator::stream: {
2810             return (lhs.stream() == rhs.stream());
2811         }
2812         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase::hidl_discriminator::source: {
2813             return (lhs.source() == rhs.source());
2814         }
2815         default: {
2816             ::android::hardware::details::logAlwaysFatal((
2817                     "Unknown union discriminator (value: " +
2818                     std::to_string(static_cast<uint8_t>(lhs.getDiscriminator())) + ").").c_str());
2819         }
2820     }
2821     return true;
2822 }
2823 
2824 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt::UseCase& rhs){
2825     return !(lhs == rhs);
2826 }
2827 
toString(const::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt & o)2828 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& o) {
2829     using ::android::hardware::toString;
2830     std::string os;
2831     os += "{";
2832     os += ".ioHandle = ";
2833     os += ::android::hardware::toString(o.ioHandle);
2834     os += ", .useCase = ";
2835     os += ::android::hardware::audio::common::V7_0::toString(o.useCase);
2836     os += "}"; return os;
2837 }
2838 
PrintTo(const::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt & o,::std::ostream * os)2839 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& o, ::std::ostream* os) {
2840     *os << toString(o);
2841 }
2842 
2843 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& rhs) {
2844     if (lhs.ioHandle != rhs.ioHandle) {
2845         return false;
2846     }
2847     if (lhs.useCase != rhs.useCase) {
2848         return false;
2849     }
2850     return true;
2851 }
2852 
2853 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::AudioPortMixExt& rhs){
2854     return !(lhs == rhs);
2855 }
2856 
toString(const::android::hardware::audio::common::V7_0::AudioPortExtendedInfo & o)2857 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& o) {
2858     using ::android::hardware::toString;
2859     std::string os;
2860     os += "{";
2861 
2862     switch (o.getDiscriminator()) {
2863         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_discriminator::unspecified: {
2864             os += ".unspecified = ";
2865             os += toString(o.unspecified());
2866             break;
2867         }
2868         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_discriminator::device: {
2869             os += ".device = ";
2870             os += toString(o.device());
2871             break;
2872         }
2873         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_discriminator::mix: {
2874             os += ".mix = ";
2875             os += toString(o.mix());
2876             break;
2877         }
2878         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_discriminator::session: {
2879             os += ".session = ";
2880             os += toString(o.session());
2881             break;
2882         }
2883         default: {
2884             ::android::hardware::details::logAlwaysFatal((
2885                     "Unknown union discriminator (value: " +
2886                     std::to_string(static_cast<uint8_t>(o.getDiscriminator())) + ").").c_str());
2887         }
2888     }
2889     os += "}"; return os;
2890 }
2891 
PrintTo(const::android::hardware::audio::common::V7_0::AudioPortExtendedInfo & o,::std::ostream * os)2892 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& o, ::std::ostream* os) {
2893     *os << toString(o);
2894 }
2895 
2896 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& rhs) {
2897     if (lhs.getDiscriminator() != rhs.getDiscriminator()) {
2898         return false;
2899     }
2900     switch (lhs.getDiscriminator()) {
2901         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_discriminator::unspecified: {
2902             return (lhs.unspecified() == rhs.unspecified());
2903         }
2904         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_discriminator::device: {
2905             return (lhs.device() == rhs.device());
2906         }
2907         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_discriminator::mix: {
2908             return (lhs.mix() == rhs.mix());
2909         }
2910         case ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo::hidl_discriminator::session: {
2911             return (lhs.session() == rhs.session());
2912         }
2913         default: {
2914             ::android::hardware::details::logAlwaysFatal((
2915                     "Unknown union discriminator (value: " +
2916                     std::to_string(static_cast<uint8_t>(lhs.getDiscriminator())) + ").").c_str());
2917         }
2918     }
2919     return true;
2920 }
2921 
2922 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& lhs, const ::android::hardware::audio::common::V7_0::AudioPortExtendedInfo& rhs){
2923     return !(lhs == rhs);
2924 }
2925 
toString(const::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain & o)2926 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& o) {
2927     using ::android::hardware::toString;
2928     std::string os;
2929     os += "{";
2930 
2931     switch (o.getDiscriminator()) {
2932         case ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain::hidl_discriminator::unspecified: {
2933             os += ".unspecified = ";
2934             os += toString(o.unspecified());
2935             break;
2936         }
2937         case ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain::hidl_discriminator::config: {
2938             os += ".config = ";
2939             os += toString(o.config());
2940             break;
2941         }
2942         default: {
2943             ::android::hardware::details::logAlwaysFatal((
2944                     "Unknown union discriminator (value: " +
2945                     std::to_string(static_cast<uint8_t>(o.getDiscriminator())) + ").").c_str());
2946         }
2947     }
2948     os += "}"; return os;
2949 }
2950 
PrintTo(const::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain & o,::std::ostream * os)2951 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& o, ::std::ostream* os) {
2952     *os << toString(o);
2953 }
2954 
2955 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& lhs, const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& rhs) {
2956     if (lhs.getDiscriminator() != rhs.getDiscriminator()) {
2957         return false;
2958     }
2959     switch (lhs.getDiscriminator()) {
2960         case ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain::hidl_discriminator::unspecified: {
2961             return (lhs.unspecified() == rhs.unspecified());
2962         }
2963         case ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain::hidl_discriminator::config: {
2964             return (lhs.config() == rhs.config());
2965         }
2966         default: {
2967             ::android::hardware::details::logAlwaysFatal((
2968                     "Unknown union discriminator (value: " +
2969                     std::to_string(static_cast<uint8_t>(lhs.getDiscriminator())) + ").").c_str());
2970         }
2971     }
2972     return true;
2973 }
2974 
2975 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& lhs, const ::android::hardware::audio::common::V7_0::AudioPortConfig::OptionalGain& rhs){
2976     return !(lhs == rhs);
2977 }
2978 
toString(const::android::hardware::audio::common::V7_0::AudioPortConfig & o)2979 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPortConfig& o) {
2980     using ::android::hardware::toString;
2981     std::string os;
2982     os += "{";
2983     os += ".id = ";
2984     os += ::android::hardware::toString(o.id);
2985     os += ", .base = ";
2986     os += ::android::hardware::audio::common::V7_0::toString(o.base);
2987     os += ", .gain = ";
2988     os += ::android::hardware::audio::common::V7_0::toString(o.gain);
2989     os += ", .ext = ";
2990     os += ::android::hardware::audio::common::V7_0::toString(o.ext);
2991     os += "}"; return os;
2992 }
2993 
PrintTo(const::android::hardware::audio::common::V7_0::AudioPortConfig & o,::std::ostream * os)2994 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPortConfig& o, ::std::ostream* os) {
2995     *os << toString(o);
2996 }
2997 
2998 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPortConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioPortConfig& rhs) {
2999     if (lhs.id != rhs.id) {
3000         return false;
3001     }
3002     if (lhs.base != rhs.base) {
3003         return false;
3004     }
3005     if (lhs.gain != rhs.gain) {
3006         return false;
3007     }
3008     if (lhs.ext != rhs.ext) {
3009         return false;
3010     }
3011     return true;
3012 }
3013 
3014 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPortConfig& lhs, const ::android::hardware::audio::common::V7_0::AudioPortConfig& rhs){
3015     return !(lhs == rhs);
3016 }
3017 
toString(const::android::hardware::audio::common::V7_0::AudioPort & o)3018 static inline std::string toString(const ::android::hardware::audio::common::V7_0::AudioPort& o) {
3019     using ::android::hardware::toString;
3020     std::string os;
3021     os += "{";
3022     os += ".id = ";
3023     os += ::android::hardware::toString(o.id);
3024     os += ", .name = ";
3025     os += ::android::hardware::toString(o.name);
3026     os += ", .transports = ";
3027     os += ::android::hardware::toString(o.transports);
3028     os += ", .gains = ";
3029     os += ::android::hardware::toString(o.gains);
3030     os += ", .ext = ";
3031     os += ::android::hardware::audio::common::V7_0::toString(o.ext);
3032     os += ", .activeConfig = ";
3033     os += ::android::hardware::audio::common::V7_0::toString(o.activeConfig);
3034     os += "}"; return os;
3035 }
3036 
PrintTo(const::android::hardware::audio::common::V7_0::AudioPort & o,::std::ostream * os)3037 static inline void PrintTo(const ::android::hardware::audio::common::V7_0::AudioPort& o, ::std::ostream* os) {
3038     *os << toString(o);
3039 }
3040 
3041 static inline bool operator==(const ::android::hardware::audio::common::V7_0::AudioPort& lhs, const ::android::hardware::audio::common::V7_0::AudioPort& rhs) {
3042     if (lhs.id != rhs.id) {
3043         return false;
3044     }
3045     if (lhs.name != rhs.name) {
3046         return false;
3047     }
3048     if (lhs.transports != rhs.transports) {
3049         return false;
3050     }
3051     if (lhs.gains != rhs.gains) {
3052         return false;
3053     }
3054     if (lhs.ext != rhs.ext) {
3055         return false;
3056     }
3057     if (lhs.activeConfig != rhs.activeConfig) {
3058         return false;
3059     }
3060     return true;
3061 }
3062 
3063 static inline bool operator!=(const ::android::hardware::audio::common::V7_0::AudioPort& lhs, const ::android::hardware::audio::common::V7_0::AudioPort& rhs){
3064     return !(lhs == rhs);
3065 }
3066 
3067 
3068 }  // namespace V7_0
3069 }  // namespace common
3070 }  // namespace audio
3071 }  // namespace hardware
3072 }  // namespace android
3073 
3074 //
3075 // global type declarations for package
3076 //
3077 
3078 namespace android {
3079 namespace hardware {
3080 namespace details {
3081 #pragma clang diagnostic push
3082 #pragma clang diagnostic ignored "-Wc++17-extensions"
3083 template<> inline constexpr std::array<::android::hardware::audio::common::V7_0::AudioSessionConsts, 3> hidl_enum_values<::android::hardware::audio::common::V7_0::AudioSessionConsts> = {
3084     ::android::hardware::audio::common::V7_0::AudioSessionConsts::DEVICE,
3085     ::android::hardware::audio::common::V7_0::AudioSessionConsts::OUTPUT_STAGE,
3086     ::android::hardware::audio::common::V7_0::AudioSessionConsts::OUTPUT_MIX,
3087 };
3088 #pragma clang diagnostic pop
3089 }  // namespace details
3090 }  // namespace hardware
3091 }  // namespace android
3092 
3093 namespace android {
3094 namespace hardware {
3095 namespace details {
3096 #pragma clang diagnostic push
3097 #pragma clang diagnostic ignored "-Wc++17-extensions"
3098 template<> inline constexpr std::array<::android::hardware::audio::common::V7_0::AudioMode, 5> hidl_enum_values<::android::hardware::audio::common::V7_0::AudioMode> = {
3099     ::android::hardware::audio::common::V7_0::AudioMode::NORMAL,
3100     ::android::hardware::audio::common::V7_0::AudioMode::RINGTONE,
3101     ::android::hardware::audio::common::V7_0::AudioMode::IN_CALL,
3102     ::android::hardware::audio::common::V7_0::AudioMode::IN_COMMUNICATION,
3103     ::android::hardware::audio::common::V7_0::AudioMode::CALL_SCREEN,
3104 };
3105 #pragma clang diagnostic pop
3106 }  // namespace details
3107 }  // namespace hardware
3108 }  // namespace android
3109 
3110 namespace android {
3111 namespace hardware {
3112 namespace details {
3113 #pragma clang diagnostic push
3114 #pragma clang diagnostic ignored "-Wc++17-extensions"
3115 template<> inline constexpr std::array<::android::hardware::audio::common::V7_0::AudioEncapsulationMode, 3> hidl_enum_values<::android::hardware::audio::common::V7_0::AudioEncapsulationMode> = {
3116     ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::NONE,
3117     ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::ELEMENTARY_STREAM,
3118     ::android::hardware::audio::common::V7_0::AudioEncapsulationMode::HANDLE,
3119 };
3120 #pragma clang diagnostic pop
3121 }  // namespace details
3122 }  // namespace hardware
3123 }  // namespace android
3124 
3125 namespace android {
3126 namespace hardware {
3127 namespace details {
3128 #pragma clang diagnostic push
3129 #pragma clang diagnostic ignored "-Wc++17-extensions"
3130 template<> inline constexpr std::array<::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType, 3> hidl_enum_values<::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType> = {
3131     ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::NONE,
3132     ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::FRAMEWORK_TUNER,
3133     ::android::hardware::audio::common::V7_0::AudioEncapsulationMetadataType::DVB_AD_DESCRIPTOR,
3134 };
3135 #pragma clang diagnostic pop
3136 }  // namespace details
3137 }  // namespace hardware
3138 }  // namespace android
3139 
3140 
3141 #endif  // HIDL_GENERATED_ANDROID_HARDWARE_AUDIO_COMMON_V7_0_TYPES_H
3142