1 #ifndef ANDROID_AUDIO_POLICY_ENGINE_CONFIGURATION_ENUMS_H
2 #define ANDROID_AUDIO_POLICY_ENGINE_CONFIGURATION_ENUMS_H
3 
4 #include <array>
5 #include <string>
6 
7 #include <xsdc/XsdcSupport.h>
8 
9 namespace android {
10     namespace audio {
11         namespace policy {
12             namespace engine {
13                 namespace configuration {
14                     enum class Version {
15                         UNKNOWN = -1,
16                         _1_0,
17                     };
18                     Version stringToVersion(const std::string& value);
19                     std::string toString(Version o);
20 
21                     enum class Stream {
22                         UNKNOWN = -1,
23                         AUDIO_STREAM_DEFAULT,
24                         AUDIO_STREAM_VOICE_CALL,
25                         AUDIO_STREAM_SYSTEM,
26                         AUDIO_STREAM_RING,
27                         AUDIO_STREAM_MUSIC,
28                         AUDIO_STREAM_ALARM,
29                         AUDIO_STREAM_NOTIFICATION,
30                         AUDIO_STREAM_BLUETOOTH_SCO,
31                         AUDIO_STREAM_ENFORCED_AUDIBLE,
32                         AUDIO_STREAM_DTMF,
33                         AUDIO_STREAM_TTS,
34                         AUDIO_STREAM_ACCESSIBILITY,
35                         AUDIO_STREAM_ASSISTANT,
36                     };
37                     Stream stringToStream(const std::string& value);
38                     std::string toString(Stream o);
39 
40                     enum class DeviceCategory {
41                         UNKNOWN = -1,
42                         DEVICE_CATEGORY_HEADSET,
43                         DEVICE_CATEGORY_SPEAKER,
44                         DEVICE_CATEGORY_EARPIECE,
45                         DEVICE_CATEGORY_EXT_MEDIA,
46                         DEVICE_CATEGORY_HEARING_AID,
47                     };
48                     DeviceCategory stringToDeviceCategory(const std::string& value);
49                     std::string toString(DeviceCategory o);
50 
51                     enum class ContentType {
52                         UNKNOWN = -1,
53                         AUDIO_CONTENT_TYPE_UNKNOWN,
54                         AUDIO_CONTENT_TYPE_SPEECH,
55                         AUDIO_CONTENT_TYPE_MUSIC,
56                         AUDIO_CONTENT_TYPE_MOVIE,
57                         AUDIO_CONTENT_TYPE_SONIFICATION,
58                     };
59                     ContentType stringToContentType(const std::string& value);
60                     std::string toString(ContentType o);
61 
62                     enum class UsageEnumType {
63                         UNKNOWN = -1,
64                         AUDIO_USAGE_UNKNOWN,
65                         AUDIO_USAGE_MEDIA,
66                         AUDIO_USAGE_VOICE_COMMUNICATION,
67                         AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING,
68                         AUDIO_USAGE_ALARM,
69                         AUDIO_USAGE_NOTIFICATION,
70                         AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE,
71                         AUDIO_USAGE_NOTIFICATION_COMMUNICATION_REQUEST,
72                         AUDIO_USAGE_NOTIFICATION_COMMUNICATION_INSTANT,
73                         AUDIO_USAGE_NOTIFICATION_COMMUNICATION_DELAYED,
74                         AUDIO_USAGE_NOTIFICATION_EVENT,
75                         AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY,
76                         AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE,
77                         AUDIO_USAGE_ASSISTANCE_SONIFICATION,
78                         AUDIO_USAGE_GAME,
79                         AUDIO_USAGE_VIRTUAL_SOURCE,
80                         AUDIO_USAGE_ASSISTANT,
81                         AUDIO_USAGE_CALL_ASSISTANT,
82                         AUDIO_USAGE_EMERGENCY,
83                         AUDIO_USAGE_SAFETY,
84                         AUDIO_USAGE_VEHICLE_STATUS,
85                         AUDIO_USAGE_ANNOUNCEMENT,
86                         AUDIO_USAGE_SPEAKER_CLEANUP,
87                     };
88                     UsageEnumType stringToUsageEnumType(const std::string& value);
89                     std::string toString(UsageEnumType o);
90 
91                     enum class FlagType {
92                         UNKNOWN = -1,
93                         AUDIO_FLAG_NONE,
94                         AUDIO_FLAG_AUDIBILITY_ENFORCED,
95                         AUDIO_FLAG_SECURE,
96                         AUDIO_FLAG_SCO,
97                         AUDIO_FLAG_BEACON,
98                         AUDIO_FLAG_HW_AV_SYNC,
99                         AUDIO_FLAG_HW_HOTWORD,
100                         AUDIO_FLAG_BYPASS_INTERRUPTION_POLICY,
101                         AUDIO_FLAG_BYPASS_MUTE,
102                         AUDIO_FLAG_LOW_LATENCY,
103                         AUDIO_FLAG_DEEP_BUFFER,
104                         AUDIO_FLAG_NO_MEDIA_PROJECTION,
105                         AUDIO_FLAG_MUTE_HAPTIC,
106                         AUDIO_FLAG_NO_SYSTEM_CAPTURE,
107                         AUDIO_FLAG_CAPTURE_PRIVATE,
108                     };
109                     FlagType stringToFlagType(const std::string& value);
110                     std::string toString(FlagType o);
111 
112                     enum class ForcedConfigCommunicationDeviceType {
113                         UNKNOWN = -1,
114                         NONE,
115                         SPEAKER,
116                         BT_SCO,
117                         BT_BLE,
118                         WIRED_ACCESSORY,
119                     };
120                     ForcedConfigCommunicationDeviceType stringToForcedConfigCommunicationDeviceType(const std::string& value);
121                     std::string toString(ForcedConfigCommunicationDeviceType o);
122 
123                     enum class ForcedConfigMediaDeviceType {
124                         UNKNOWN = -1,
125                         NONE,
126                         SPEAKER,
127                         HEADPHONES,
128                         BT_A2DP,
129                         ANALOG_DOCK,
130                         DIGITAL_DOCK,
131                         WIRED_ACCESSORY,
132                         NO_BT_A2DP,
133                     };
134                     ForcedConfigMediaDeviceType stringToForcedConfigMediaDeviceType(const std::string& value);
135                     std::string toString(ForcedConfigMediaDeviceType o);
136 
137                     enum class ForcedConfigDockType {
138                         UNKNOWN = -1,
139                         NONE,
140                         BT_CAR_DOCK,
141                         BT_DESK_DOCK,
142                         ANALOG_DOCK,
143                         DIGITAL_DOCK,
144                         WIRED_ACCESSORY,
145                     };
146                     ForcedConfigDockType stringToForcedConfigDockType(const std::string& value);
147                     std::string toString(ForcedConfigDockType o);
148 
149                     enum class ForcedEncodingSourroundConfigType {
150                         UNKNOWN = -1,
151                         UNSPECIFIED,
152                         NEVER,
153                         ALWAYS,
154                         MANUAL,
155                     };
156                     ForcedEncodingSourroundConfigType stringToForcedEncodingSourroundConfigType(const std::string& value);
157                     std::string toString(ForcedEncodingSourroundConfigType o);
158 
159                     enum class SourceEnumType {
160                         UNKNOWN = -1,
161                         AUDIO_SOURCE_DEFAULT,
162                         AUDIO_SOURCE_MIC,
163                         AUDIO_SOURCE_VOICE_UPLINK,
164                         AUDIO_SOURCE_VOICE_DOWNLINK,
165                         AUDIO_SOURCE_VOICE_CALL,
166                         AUDIO_SOURCE_CAMCORDER,
167                         AUDIO_SOURCE_VOICE_RECOGNITION,
168                         AUDIO_SOURCE_VOICE_COMMUNICATION,
169                         AUDIO_SOURCE_REMOTE_SUBMIX,
170                         AUDIO_SOURCE_UNPROCESSED,
171                         AUDIO_SOURCE_VOICE_PERFORMANCE,
172                         AUDIO_SOURCE_ECHO_REFERENCE,
173                         AUDIO_SOURCE_FM_TUNER,
174                     };
175                     SourceEnumType stringToSourceEnumType(const std::string& value);
176                     std::string toString(SourceEnumType o);
177 
178                     enum class PfwCriterionTypeEnum {
179                         UNKNOWN = -1,
180                         inclusive,
181                         exclusive,
182                     };
183                     PfwCriterionTypeEnum stringToPfwCriterionTypeEnum(const std::string& value);
184                     std::string toString(PfwCriterionTypeEnum o);
185 
186                 } // configuration
187             } // engine
188         } // policy
189     } // audio
190 } // android
191 
192 //
193 // global type declarations for package
194 //
195 
196 namespace android {
197     namespace details {
198         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::Version, 1> xsdc_enum_values<::android::audio::policy::engine::configuration::Version> = {
199             ::android::audio::policy::engine::configuration::Version::_1_0,
200         };
201         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::Stream, 13> xsdc_enum_values<::android::audio::policy::engine::configuration::Stream> = {
202             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_DEFAULT,
203             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_VOICE_CALL,
204             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_SYSTEM,
205             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_RING,
206             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_MUSIC,
207             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_ALARM,
208             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_NOTIFICATION,
209             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_BLUETOOTH_SCO,
210             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_ENFORCED_AUDIBLE,
211             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_DTMF,
212             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_TTS,
213             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_ACCESSIBILITY,
214             ::android::audio::policy::engine::configuration::Stream::AUDIO_STREAM_ASSISTANT,
215         };
216         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::DeviceCategory, 5> xsdc_enum_values<::android::audio::policy::engine::configuration::DeviceCategory> = {
217             ::android::audio::policy::engine::configuration::DeviceCategory::DEVICE_CATEGORY_HEADSET,
218             ::android::audio::policy::engine::configuration::DeviceCategory::DEVICE_CATEGORY_SPEAKER,
219             ::android::audio::policy::engine::configuration::DeviceCategory::DEVICE_CATEGORY_EARPIECE,
220             ::android::audio::policy::engine::configuration::DeviceCategory::DEVICE_CATEGORY_EXT_MEDIA,
221             ::android::audio::policy::engine::configuration::DeviceCategory::DEVICE_CATEGORY_HEARING_AID,
222         };
223         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::ContentType, 5> xsdc_enum_values<::android::audio::policy::engine::configuration::ContentType> = {
224             ::android::audio::policy::engine::configuration::ContentType::AUDIO_CONTENT_TYPE_UNKNOWN,
225             ::android::audio::policy::engine::configuration::ContentType::AUDIO_CONTENT_TYPE_SPEECH,
226             ::android::audio::policy::engine::configuration::ContentType::AUDIO_CONTENT_TYPE_MUSIC,
227             ::android::audio::policy::engine::configuration::ContentType::AUDIO_CONTENT_TYPE_MOVIE,
228             ::android::audio::policy::engine::configuration::ContentType::AUDIO_CONTENT_TYPE_SONIFICATION,
229         };
230         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::UsageEnumType, 23> xsdc_enum_values<::android::audio::policy::engine::configuration::UsageEnumType> = {
231             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_UNKNOWN,
232             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_MEDIA,
233             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_VOICE_COMMUNICATION,
234             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING,
235             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_ALARM,
236             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_NOTIFICATION,
237             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE,
238             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_NOTIFICATION_COMMUNICATION_REQUEST,
239             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_NOTIFICATION_COMMUNICATION_INSTANT,
240             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_NOTIFICATION_COMMUNICATION_DELAYED,
241             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_NOTIFICATION_EVENT,
242             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY,
243             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE,
244             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_ASSISTANCE_SONIFICATION,
245             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_GAME,
246             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_VIRTUAL_SOURCE,
247             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_ASSISTANT,
248             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_CALL_ASSISTANT,
249             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_EMERGENCY,
250             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_SAFETY,
251             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_VEHICLE_STATUS,
252             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_ANNOUNCEMENT,
253             ::android::audio::policy::engine::configuration::UsageEnumType::AUDIO_USAGE_SPEAKER_CLEANUP,
254         };
255         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::FlagType, 15> xsdc_enum_values<::android::audio::policy::engine::configuration::FlagType> = {
256             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_NONE,
257             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_AUDIBILITY_ENFORCED,
258             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_SECURE,
259             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_SCO,
260             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_BEACON,
261             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_HW_AV_SYNC,
262             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_HW_HOTWORD,
263             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_BYPASS_INTERRUPTION_POLICY,
264             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_BYPASS_MUTE,
265             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_LOW_LATENCY,
266             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_DEEP_BUFFER,
267             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_NO_MEDIA_PROJECTION,
268             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_MUTE_HAPTIC,
269             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_NO_SYSTEM_CAPTURE,
270             ::android::audio::policy::engine::configuration::FlagType::AUDIO_FLAG_CAPTURE_PRIVATE,
271         };
272         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::ForcedConfigCommunicationDeviceType, 5> xsdc_enum_values<::android::audio::policy::engine::configuration::ForcedConfigCommunicationDeviceType> = {
273             ::android::audio::policy::engine::configuration::ForcedConfigCommunicationDeviceType::NONE,
274             ::android::audio::policy::engine::configuration::ForcedConfigCommunicationDeviceType::SPEAKER,
275             ::android::audio::policy::engine::configuration::ForcedConfigCommunicationDeviceType::BT_SCO,
276             ::android::audio::policy::engine::configuration::ForcedConfigCommunicationDeviceType::BT_BLE,
277             ::android::audio::policy::engine::configuration::ForcedConfigCommunicationDeviceType::WIRED_ACCESSORY,
278         };
279         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::ForcedConfigMediaDeviceType, 8> xsdc_enum_values<::android::audio::policy::engine::configuration::ForcedConfigMediaDeviceType> = {
280             ::android::audio::policy::engine::configuration::ForcedConfigMediaDeviceType::NONE,
281             ::android::audio::policy::engine::configuration::ForcedConfigMediaDeviceType::SPEAKER,
282             ::android::audio::policy::engine::configuration::ForcedConfigMediaDeviceType::HEADPHONES,
283             ::android::audio::policy::engine::configuration::ForcedConfigMediaDeviceType::BT_A2DP,
284             ::android::audio::policy::engine::configuration::ForcedConfigMediaDeviceType::ANALOG_DOCK,
285             ::android::audio::policy::engine::configuration::ForcedConfigMediaDeviceType::DIGITAL_DOCK,
286             ::android::audio::policy::engine::configuration::ForcedConfigMediaDeviceType::WIRED_ACCESSORY,
287             ::android::audio::policy::engine::configuration::ForcedConfigMediaDeviceType::NO_BT_A2DP,
288         };
289         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::ForcedConfigDockType, 6> xsdc_enum_values<::android::audio::policy::engine::configuration::ForcedConfigDockType> = {
290             ::android::audio::policy::engine::configuration::ForcedConfigDockType::NONE,
291             ::android::audio::policy::engine::configuration::ForcedConfigDockType::BT_CAR_DOCK,
292             ::android::audio::policy::engine::configuration::ForcedConfigDockType::BT_DESK_DOCK,
293             ::android::audio::policy::engine::configuration::ForcedConfigDockType::ANALOG_DOCK,
294             ::android::audio::policy::engine::configuration::ForcedConfigDockType::DIGITAL_DOCK,
295             ::android::audio::policy::engine::configuration::ForcedConfigDockType::WIRED_ACCESSORY,
296         };
297         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::ForcedEncodingSourroundConfigType, 4> xsdc_enum_values<::android::audio::policy::engine::configuration::ForcedEncodingSourroundConfigType> = {
298             ::android::audio::policy::engine::configuration::ForcedEncodingSourroundConfigType::UNSPECIFIED,
299             ::android::audio::policy::engine::configuration::ForcedEncodingSourroundConfigType::NEVER,
300             ::android::audio::policy::engine::configuration::ForcedEncodingSourroundConfigType::ALWAYS,
301             ::android::audio::policy::engine::configuration::ForcedEncodingSourroundConfigType::MANUAL,
302         };
303         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::SourceEnumType, 13> xsdc_enum_values<::android::audio::policy::engine::configuration::SourceEnumType> = {
304             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_DEFAULT,
305             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_MIC,
306             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_VOICE_UPLINK,
307             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_VOICE_DOWNLINK,
308             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_VOICE_CALL,
309             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_CAMCORDER,
310             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_VOICE_RECOGNITION,
311             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_VOICE_COMMUNICATION,
312             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_REMOTE_SUBMIX,
313             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_UNPROCESSED,
314             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_VOICE_PERFORMANCE,
315             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_ECHO_REFERENCE,
316             ::android::audio::policy::engine::configuration::SourceEnumType::AUDIO_SOURCE_FM_TUNER,
317         };
318         template<> inline constexpr std::array<::android::audio::policy::engine::configuration::PfwCriterionTypeEnum, 2> xsdc_enum_values<::android::audio::policy::engine::configuration::PfwCriterionTypeEnum> = {
319             ::android::audio::policy::engine::configuration::PfwCriterionTypeEnum::inclusive,
320             ::android::audio::policy::engine::configuration::PfwCriterionTypeEnum::exclusive,
321         };
322     }  // namespace details
323 }  // namespace android
324 
325 #endif // ANDROID_AUDIO_POLICY_ENGINE_CONFIGURATION_ENUMS_H
326