1 /*
2  * This file is auto-generated.  DO NOT MODIFY.
3  * Using: out/host/linux-x86/bin/aidl --lang=ndk -Weverything -Wno-missing-permission-annotation -Werror -Weverything --structured --version 4 --hash notfrozen -t --stability vintf --min_sdk_version 29 --previous_api_dir=system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/3 --previous_hash 0c86a38729dd5d560fe3a0eca6aa9d8cf83efb00 --ninja -d out/soong/.intermediates/system/hardware/interfaces/media/android.media.audio.common.types-V4-ndk-source/gen/staging/android/media/audio/common/MicrophoneInfo.cpp.d -h out/soong/.intermediates/system/hardware/interfaces/media/android.media.audio.common.types-V4-ndk-source/gen/include/staging -o out/soong/.intermediates/system/hardware/interfaces/media/android.media.audio.common.types-V4-ndk-source/gen/staging -Nsystem/hardware/interfaces/media/aidl system/hardware/interfaces/media/aidl/android/media/audio/common/MicrophoneInfo.aidl
4  *
5  * DO NOT CHECK THIS FILE INTO A CODE TREE (e.g. git, etc..).
6  * ALWAYS GENERATE THIS FILE FROM UPDATED AIDL COMPILER
7  * AS A BUILD INTERMEDIATE ONLY. THIS IS NOT SOURCE CODE.
8  */
9 #pragma once
10 
11 #include <array>
12 #include <cstdint>
13 #include <memory>
14 #include <optional>
15 #include <string>
16 #include <vector>
17 #include <android/binder_enums.h>
18 #include <android/binder_interface_utils.h>
19 #include <android/binder_parcelable_utils.h>
20 #include <android/binder_to_string.h>
21 #include <aidl/android/media/audio/common/AudioDevice.h>
22 #include <aidl/android/media/audio/common/MicrophoneInfo.h>
23 #ifdef BINDER_STABILITY_SUPPORT
24 #include <android/binder_stability.h>
25 #endif  // BINDER_STABILITY_SUPPORT
26 
27 namespace aidl::android::media::audio::common {
28 class AudioDevice;
29 }  // namespace aidl::android::media::audio::common
30 namespace aidl {
31 namespace android {
32 namespace media {
33 namespace audio {
34 namespace common {
35 class MicrophoneInfo {
36 public:
37   typedef std::false_type fixed_size;
38   static const char* descriptor;
39 
40   enum class Location : int32_t {
41     UNKNOWN = 0,
42     MAINBODY = 1,
43     MAINBODY_MOVABLE = 2,
44     PERIPHERAL = 3,
45   };
46 
47   class Sensitivity {
48   public:
49     typedef std::false_type fixed_size;
50     static const char* descriptor;
51 
52     float leveldBFS = 0.000000f;
53     float maxSpldB = 0.000000f;
54     float minSpldB = 0.000000f;
55 
56     binder_status_t readFromParcel(const AParcel* parcel);
57     binder_status_t writeToParcel(AParcel* parcel) const;
58 
59     inline bool operator==(const Sensitivity& _rhs) const {
60       return std::tie(leveldBFS, maxSpldB, minSpldB) == std::tie(_rhs.leveldBFS, _rhs.maxSpldB, _rhs.minSpldB);
61     }
62     inline bool operator<(const Sensitivity& _rhs) const {
63       return std::tie(leveldBFS, maxSpldB, minSpldB) < std::tie(_rhs.leveldBFS, _rhs.maxSpldB, _rhs.minSpldB);
64     }
65     inline bool operator!=(const Sensitivity& _rhs) const {
66       return !(*this == _rhs);
67     }
68     inline bool operator>(const Sensitivity& _rhs) const {
69       return _rhs < *this;
70     }
71     inline bool operator>=(const Sensitivity& _rhs) const {
72       return !(*this < _rhs);
73     }
74     inline bool operator<=(const Sensitivity& _rhs) const {
75       return !(_rhs < *this);
76     }
77 
78     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()79     inline std::string toString() const {
80       std::ostringstream _aidl_os;
81       _aidl_os << "Sensitivity{";
82       _aidl_os << "leveldBFS: " << ::android::internal::ToString(leveldBFS);
83       _aidl_os << ", maxSpldB: " << ::android::internal::ToString(maxSpldB);
84       _aidl_os << ", minSpldB: " << ::android::internal::ToString(minSpldB);
85       _aidl_os << "}";
86       return _aidl_os.str();
87     }
88   };
89   enum class Directionality : int32_t {
90     UNKNOWN = 0,
91     OMNI = 1,
92     BI_DIRECTIONAL = 2,
93     CARDIOID = 3,
94     HYPER_CARDIOID = 4,
95     SUPER_CARDIOID = 5,
96   };
97 
98   class FrequencyResponsePoint {
99   public:
100     typedef std::false_type fixed_size;
101     static const char* descriptor;
102 
103     float frequencyHz = 0.000000f;
104     float leveldB = 0.000000f;
105 
106     binder_status_t readFromParcel(const AParcel* parcel);
107     binder_status_t writeToParcel(AParcel* parcel) const;
108 
109     inline bool operator==(const FrequencyResponsePoint& _rhs) const {
110       return std::tie(frequencyHz, leveldB) == std::tie(_rhs.frequencyHz, _rhs.leveldB);
111     }
112     inline bool operator<(const FrequencyResponsePoint& _rhs) const {
113       return std::tie(frequencyHz, leveldB) < std::tie(_rhs.frequencyHz, _rhs.leveldB);
114     }
115     inline bool operator!=(const FrequencyResponsePoint& _rhs) const {
116       return !(*this == _rhs);
117     }
118     inline bool operator>(const FrequencyResponsePoint& _rhs) const {
119       return _rhs < *this;
120     }
121     inline bool operator>=(const FrequencyResponsePoint& _rhs) const {
122       return !(*this < _rhs);
123     }
124     inline bool operator<=(const FrequencyResponsePoint& _rhs) const {
125       return !(_rhs < *this);
126     }
127 
128     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()129     inline std::string toString() const {
130       std::ostringstream _aidl_os;
131       _aidl_os << "FrequencyResponsePoint{";
132       _aidl_os << "frequencyHz: " << ::android::internal::ToString(frequencyHz);
133       _aidl_os << ", leveldB: " << ::android::internal::ToString(leveldB);
134       _aidl_os << "}";
135       return _aidl_os.str();
136     }
137   };
138   class Coordinate {
139   public:
140     typedef std::false_type fixed_size;
141     static const char* descriptor;
142 
143     float x = 0.000000f;
144     float y = 0.000000f;
145     float z = 0.000000f;
146 
147     binder_status_t readFromParcel(const AParcel* parcel);
148     binder_status_t writeToParcel(AParcel* parcel) const;
149 
150     inline bool operator==(const Coordinate& _rhs) const {
151       return std::tie(x, y, z) == std::tie(_rhs.x, _rhs.y, _rhs.z);
152     }
153     inline bool operator<(const Coordinate& _rhs) const {
154       return std::tie(x, y, z) < std::tie(_rhs.x, _rhs.y, _rhs.z);
155     }
156     inline bool operator!=(const Coordinate& _rhs) const {
157       return !(*this == _rhs);
158     }
159     inline bool operator>(const Coordinate& _rhs) const {
160       return _rhs < *this;
161     }
162     inline bool operator>=(const Coordinate& _rhs) const {
163       return !(*this < _rhs);
164     }
165     inline bool operator<=(const Coordinate& _rhs) const {
166       return !(_rhs < *this);
167     }
168 
169     static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
toString()170     inline std::string toString() const {
171       std::ostringstream _aidl_os;
172       _aidl_os << "Coordinate{";
173       _aidl_os << "x: " << ::android::internal::ToString(x);
174       _aidl_os << ", y: " << ::android::internal::ToString(y);
175       _aidl_os << ", z: " << ::android::internal::ToString(z);
176       _aidl_os << "}";
177       return _aidl_os.str();
178     }
179   };
180   std::string id;
181   ::aidl::android::media::audio::common::AudioDevice device;
182   ::aidl::android::media::audio::common::MicrophoneInfo::Location location = ::aidl::android::media::audio::common::MicrophoneInfo::Location::UNKNOWN;
183   int32_t group = -1;
184   int32_t indexInTheGroup = -1;
185   std::optional<::aidl::android::media::audio::common::MicrophoneInfo::Sensitivity> sensitivity;
186   ::aidl::android::media::audio::common::MicrophoneInfo::Directionality directionality = ::aidl::android::media::audio::common::MicrophoneInfo::Directionality::UNKNOWN;
187   std::vector<::aidl::android::media::audio::common::MicrophoneInfo::FrequencyResponsePoint> frequencyResponse;
188   std::optional<::aidl::android::media::audio::common::MicrophoneInfo::Coordinate> position;
189   std::optional<::aidl::android::media::audio::common::MicrophoneInfo::Coordinate> orientation;
190 
191   binder_status_t readFromParcel(const AParcel* parcel);
192   binder_status_t writeToParcel(AParcel* parcel) const;
193 
194   inline bool operator==(const MicrophoneInfo& _rhs) const {
195     return std::tie(id, device, location, group, indexInTheGroup, sensitivity, directionality, frequencyResponse, position, orientation) == std::tie(_rhs.id, _rhs.device, _rhs.location, _rhs.group, _rhs.indexInTheGroup, _rhs.sensitivity, _rhs.directionality, _rhs.frequencyResponse, _rhs.position, _rhs.orientation);
196   }
197   inline bool operator<(const MicrophoneInfo& _rhs) const {
198     return std::tie(id, device, location, group, indexInTheGroup, sensitivity, directionality, frequencyResponse, position, orientation) < std::tie(_rhs.id, _rhs.device, _rhs.location, _rhs.group, _rhs.indexInTheGroup, _rhs.sensitivity, _rhs.directionality, _rhs.frequencyResponse, _rhs.position, _rhs.orientation);
199   }
200   inline bool operator!=(const MicrophoneInfo& _rhs) const {
201     return !(*this == _rhs);
202   }
203   inline bool operator>(const MicrophoneInfo& _rhs) const {
204     return _rhs < *this;
205   }
206   inline bool operator>=(const MicrophoneInfo& _rhs) const {
207     return !(*this < _rhs);
208   }
209   inline bool operator<=(const MicrophoneInfo& _rhs) const {
210     return !(_rhs < *this);
211   }
212 
213   static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
214   enum : int32_t { GROUP_UNKNOWN = -1 };
215   enum : int32_t { INDEX_IN_THE_GROUP_UNKNOWN = -1 };
toString()216   inline std::string toString() const {
217     std::ostringstream _aidl_os;
218     _aidl_os << "MicrophoneInfo{";
219     _aidl_os << "id: " << ::android::internal::ToString(id);
220     _aidl_os << ", device: " << ::android::internal::ToString(device);
221     _aidl_os << ", location: " << ::android::internal::ToString(location);
222     _aidl_os << ", group: " << ::android::internal::ToString(group);
223     _aidl_os << ", indexInTheGroup: " << ::android::internal::ToString(indexInTheGroup);
224     _aidl_os << ", sensitivity: " << ::android::internal::ToString(sensitivity);
225     _aidl_os << ", directionality: " << ::android::internal::ToString(directionality);
226     _aidl_os << ", frequencyResponse: " << ::android::internal::ToString(frequencyResponse);
227     _aidl_os << ", position: " << ::android::internal::ToString(position);
228     _aidl_os << ", orientation: " << ::android::internal::ToString(orientation);
229     _aidl_os << "}";
230     return _aidl_os.str();
231   }
232 };
233 }  // namespace common
234 }  // namespace audio
235 }  // namespace media
236 }  // namespace android
237 }  // namespace aidl
238 namespace aidl {
239 namespace android {
240 namespace media {
241 namespace audio {
242 namespace common {
toString(MicrophoneInfo::Location val)243 [[nodiscard]] static inline std::string toString(MicrophoneInfo::Location val) {
244   switch(val) {
245   case MicrophoneInfo::Location::UNKNOWN:
246     return "UNKNOWN";
247   case MicrophoneInfo::Location::MAINBODY:
248     return "MAINBODY";
249   case MicrophoneInfo::Location::MAINBODY_MOVABLE:
250     return "MAINBODY_MOVABLE";
251   case MicrophoneInfo::Location::PERIPHERAL:
252     return "PERIPHERAL";
253   default:
254     return std::to_string(static_cast<int32_t>(val));
255   }
256 }
257 }  // namespace common
258 }  // namespace audio
259 }  // namespace media
260 }  // namespace android
261 }  // namespace aidl
262 namespace ndk {
263 namespace internal {
264 #pragma clang diagnostic push
265 #pragma clang diagnostic ignored "-Wc++17-extensions"
266 template <>
267 constexpr inline std::array<aidl::android::media::audio::common::MicrophoneInfo::Location, 4> enum_values<aidl::android::media::audio::common::MicrophoneInfo::Location> = {
268   aidl::android::media::audio::common::MicrophoneInfo::Location::UNKNOWN,
269   aidl::android::media::audio::common::MicrophoneInfo::Location::MAINBODY,
270   aidl::android::media::audio::common::MicrophoneInfo::Location::MAINBODY_MOVABLE,
271   aidl::android::media::audio::common::MicrophoneInfo::Location::PERIPHERAL,
272 };
273 #pragma clang diagnostic pop
274 }  // namespace internal
275 }  // namespace ndk
276 namespace aidl {
277 namespace android {
278 namespace media {
279 namespace audio {
280 namespace common {
toString(MicrophoneInfo::Directionality val)281 [[nodiscard]] static inline std::string toString(MicrophoneInfo::Directionality val) {
282   switch(val) {
283   case MicrophoneInfo::Directionality::UNKNOWN:
284     return "UNKNOWN";
285   case MicrophoneInfo::Directionality::OMNI:
286     return "OMNI";
287   case MicrophoneInfo::Directionality::BI_DIRECTIONAL:
288     return "BI_DIRECTIONAL";
289   case MicrophoneInfo::Directionality::CARDIOID:
290     return "CARDIOID";
291   case MicrophoneInfo::Directionality::HYPER_CARDIOID:
292     return "HYPER_CARDIOID";
293   case MicrophoneInfo::Directionality::SUPER_CARDIOID:
294     return "SUPER_CARDIOID";
295   default:
296     return std::to_string(static_cast<int32_t>(val));
297   }
298 }
299 }  // namespace common
300 }  // namespace audio
301 }  // namespace media
302 }  // namespace android
303 }  // namespace aidl
304 namespace ndk {
305 namespace internal {
306 #pragma clang diagnostic push
307 #pragma clang diagnostic ignored "-Wc++17-extensions"
308 template <>
309 constexpr inline std::array<aidl::android::media::audio::common::MicrophoneInfo::Directionality, 6> enum_values<aidl::android::media::audio::common::MicrophoneInfo::Directionality> = {
310   aidl::android::media::audio::common::MicrophoneInfo::Directionality::UNKNOWN,
311   aidl::android::media::audio::common::MicrophoneInfo::Directionality::OMNI,
312   aidl::android::media::audio::common::MicrophoneInfo::Directionality::BI_DIRECTIONAL,
313   aidl::android::media::audio::common::MicrophoneInfo::Directionality::CARDIOID,
314   aidl::android::media::audio::common::MicrophoneInfo::Directionality::HYPER_CARDIOID,
315   aidl::android::media::audio::common::MicrophoneInfo::Directionality::SUPER_CARDIOID,
316 };
317 #pragma clang diagnostic pop
318 }  // namespace internal
319 }  // namespace ndk
320