• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2012 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 /**
18  * !! Do not reference this file directly !!
19  *
20  * It is logically a part of camera_metadata.c.  It is broken out for ease of
21  * maintaining the tag info.
22  *
23  * Array assignments are done using specified-index syntax to keep things in
24  * sync with camera_metadata_tags.h
25  */
26 
27 /**
28  * ! Do not edit this file directly !
29  *
30  * Generated automatically from camera_metadata_tag_info.mako
31  */
32 
33 const char *camera_metadata_section_names[ANDROID_SECTION_COUNT] = {
34     [ANDROID_COLOR_CORRECTION]     = "android.colorCorrection",
35     [ANDROID_CONTROL]              = "android.control",
36     [ANDROID_DEMOSAIC]             = "android.demosaic",
37     [ANDROID_EDGE]                 = "android.edge",
38     [ANDROID_FLASH]                = "android.flash",
39     [ANDROID_FLASH_INFO]           = "android.flash.info",
40     [ANDROID_HOT_PIXEL]            = "android.hotPixel",
41     [ANDROID_JPEG]                 = "android.jpeg",
42     [ANDROID_LENS]                 = "android.lens",
43     [ANDROID_LENS_INFO]            = "android.lens.info",
44     [ANDROID_NOISE_REDUCTION]      = "android.noiseReduction",
45     [ANDROID_QUIRKS]               = "android.quirks",
46     [ANDROID_REQUEST]              = "android.request",
47     [ANDROID_SCALER]               = "android.scaler",
48     [ANDROID_SENSOR]               = "android.sensor",
49     [ANDROID_SENSOR_INFO]          = "android.sensor.info",
50     [ANDROID_SHADING]              = "android.shading",
51     [ANDROID_STATISTICS]           = "android.statistics",
52     [ANDROID_STATISTICS_INFO]      = "android.statistics.info",
53     [ANDROID_TONEMAP]              = "android.tonemap",
54     [ANDROID_LED]                  = "android.led",
55     [ANDROID_INFO]                 = "android.info",
56     [ANDROID_BLACK_LEVEL]          = "android.blackLevel",
57     [ANDROID_SYNC]                 = "android.sync",
58     [ANDROID_REPROCESS]            = "android.reprocess",
59     [ANDROID_DEPTH]                = "android.depth",
60     [ANDROID_LOGICAL_MULTI_CAMERA] = "android.logicalMultiCamera",
61     [ANDROID_DISTORTION_CORRECTION]
62                                     = "android.distortionCorrection",
63     [ANDROID_HEIC]                 = "android.heic",
64     [ANDROID_HEIC_INFO]            = "android.heic.info",
65     [ANDROID_AUTOMOTIVE]           = "android.automotive",
66     [ANDROID_AUTOMOTIVE_LENS]      = "android.automotive.lens",
67     [ANDROID_EXTENSION]            = "android.extension",
68     [ANDROID_JPEGR]                = "android.jpegr",
69 };
70 
71 unsigned int camera_metadata_section_bounds[ANDROID_SECTION_COUNT][2] = {
72     [ANDROID_COLOR_CORRECTION]     = { ANDROID_COLOR_CORRECTION_START,
73                                        ANDROID_COLOR_CORRECTION_END },
74     [ANDROID_CONTROL]              = { ANDROID_CONTROL_START,
75                                        ANDROID_CONTROL_END },
76     [ANDROID_DEMOSAIC]             = { ANDROID_DEMOSAIC_START,
77                                        ANDROID_DEMOSAIC_END },
78     [ANDROID_EDGE]                 = { ANDROID_EDGE_START,
79                                        ANDROID_EDGE_END },
80     [ANDROID_FLASH]                = { ANDROID_FLASH_START,
81                                        ANDROID_FLASH_END },
82     [ANDROID_FLASH_INFO]           = { ANDROID_FLASH_INFO_START,
83                                        ANDROID_FLASH_INFO_END },
84     [ANDROID_HOT_PIXEL]            = { ANDROID_HOT_PIXEL_START,
85                                        ANDROID_HOT_PIXEL_END },
86     [ANDROID_JPEG]                 = { ANDROID_JPEG_START,
87                                        ANDROID_JPEG_END },
88     [ANDROID_LENS]                 = { ANDROID_LENS_START,
89                                        ANDROID_LENS_END },
90     [ANDROID_LENS_INFO]            = { ANDROID_LENS_INFO_START,
91                                        ANDROID_LENS_INFO_END },
92     [ANDROID_NOISE_REDUCTION]      = { ANDROID_NOISE_REDUCTION_START,
93                                        ANDROID_NOISE_REDUCTION_END },
94     [ANDROID_QUIRKS]               = { ANDROID_QUIRKS_START,
95                                        ANDROID_QUIRKS_END },
96     [ANDROID_REQUEST]              = { ANDROID_REQUEST_START,
97                                        ANDROID_REQUEST_END },
98     [ANDROID_SCALER]               = { ANDROID_SCALER_START,
99                                        ANDROID_SCALER_END },
100     [ANDROID_SENSOR]               = { ANDROID_SENSOR_START,
101                                        ANDROID_SENSOR_END },
102     [ANDROID_SENSOR_INFO]          = { ANDROID_SENSOR_INFO_START,
103                                        ANDROID_SENSOR_INFO_END },
104     [ANDROID_SHADING]              = { ANDROID_SHADING_START,
105                                        ANDROID_SHADING_END },
106     [ANDROID_STATISTICS]           = { ANDROID_STATISTICS_START,
107                                        ANDROID_STATISTICS_END },
108     [ANDROID_STATISTICS_INFO]      = { ANDROID_STATISTICS_INFO_START,
109                                        ANDROID_STATISTICS_INFO_END },
110     [ANDROID_TONEMAP]              = { ANDROID_TONEMAP_START,
111                                        ANDROID_TONEMAP_END },
112     [ANDROID_LED]                  = { ANDROID_LED_START,
113                                        ANDROID_LED_END },
114     [ANDROID_INFO]                 = { ANDROID_INFO_START,
115                                        ANDROID_INFO_END },
116     [ANDROID_BLACK_LEVEL]          = { ANDROID_BLACK_LEVEL_START,
117                                        ANDROID_BLACK_LEVEL_END },
118     [ANDROID_SYNC]                 = { ANDROID_SYNC_START,
119                                        ANDROID_SYNC_END },
120     [ANDROID_REPROCESS]            = { ANDROID_REPROCESS_START,
121                                        ANDROID_REPROCESS_END },
122     [ANDROID_DEPTH]                = { ANDROID_DEPTH_START,
123                                        ANDROID_DEPTH_END },
124     [ANDROID_LOGICAL_MULTI_CAMERA] = { ANDROID_LOGICAL_MULTI_CAMERA_START,
125                                        ANDROID_LOGICAL_MULTI_CAMERA_END },
126     [ANDROID_DISTORTION_CORRECTION]
127                                     = { ANDROID_DISTORTION_CORRECTION_START,
128                                        ANDROID_DISTORTION_CORRECTION_END },
129     [ANDROID_HEIC]                 = { ANDROID_HEIC_START,
130                                        ANDROID_HEIC_END },
131     [ANDROID_HEIC_INFO]            = { ANDROID_HEIC_INFO_START,
132                                        ANDROID_HEIC_INFO_END },
133     [ANDROID_AUTOMOTIVE]           = { ANDROID_AUTOMOTIVE_START,
134                                        ANDROID_AUTOMOTIVE_END },
135     [ANDROID_AUTOMOTIVE_LENS]      = { ANDROID_AUTOMOTIVE_LENS_START,
136                                        ANDROID_AUTOMOTIVE_LENS_END },
137     [ANDROID_EXTENSION]            = { ANDROID_EXTENSION_START,
138                                        ANDROID_EXTENSION_END },
139     [ANDROID_JPEGR]                = { ANDROID_JPEGR_START,
140                                        ANDROID_JPEGR_END },
141 };
142 
143 static tag_info_t android_color_correction[ANDROID_COLOR_CORRECTION_END -
144         ANDROID_COLOR_CORRECTION_START] = {
145     [ ANDROID_COLOR_CORRECTION_MODE - ANDROID_COLOR_CORRECTION_START ] =
146     { "mode",                          TYPE_BYTE   },
147     [ ANDROID_COLOR_CORRECTION_TRANSFORM - ANDROID_COLOR_CORRECTION_START ] =
148     { "transform",                     TYPE_RATIONAL
149                 },
150     [ ANDROID_COLOR_CORRECTION_GAINS - ANDROID_COLOR_CORRECTION_START ] =
151     { "gains",                         TYPE_FLOAT  },
152     [ ANDROID_COLOR_CORRECTION_ABERRATION_MODE - ANDROID_COLOR_CORRECTION_START ] =
153     { "aberrationMode",                TYPE_BYTE   },
154     [ ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES - ANDROID_COLOR_CORRECTION_START ] =
155     { "availableAberrationModes",      TYPE_BYTE   },
156 };
157 
158 static tag_info_t android_control[ANDROID_CONTROL_END -
159         ANDROID_CONTROL_START] = {
160     [ ANDROID_CONTROL_AE_ANTIBANDING_MODE - ANDROID_CONTROL_START ] =
161     { "aeAntibandingMode",             TYPE_BYTE   },
162     [ ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION - ANDROID_CONTROL_START ] =
163     { "aeExposureCompensation",        TYPE_INT32  },
164     [ ANDROID_CONTROL_AE_LOCK - ANDROID_CONTROL_START ] =
165     { "aeLock",                        TYPE_BYTE   },
166     [ ANDROID_CONTROL_AE_MODE - ANDROID_CONTROL_START ] =
167     { "aeMode",                        TYPE_BYTE   },
168     [ ANDROID_CONTROL_AE_REGIONS - ANDROID_CONTROL_START ] =
169     { "aeRegions",                     TYPE_INT32  },
170     [ ANDROID_CONTROL_AE_TARGET_FPS_RANGE - ANDROID_CONTROL_START ] =
171     { "aeTargetFpsRange",              TYPE_INT32  },
172     [ ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER - ANDROID_CONTROL_START ] =
173     { "aePrecaptureTrigger",           TYPE_BYTE   },
174     [ ANDROID_CONTROL_AF_MODE - ANDROID_CONTROL_START ] =
175     { "afMode",                        TYPE_BYTE   },
176     [ ANDROID_CONTROL_AF_REGIONS - ANDROID_CONTROL_START ] =
177     { "afRegions",                     TYPE_INT32  },
178     [ ANDROID_CONTROL_AF_TRIGGER - ANDROID_CONTROL_START ] =
179     { "afTrigger",                     TYPE_BYTE   },
180     [ ANDROID_CONTROL_AWB_LOCK - ANDROID_CONTROL_START ] =
181     { "awbLock",                       TYPE_BYTE   },
182     [ ANDROID_CONTROL_AWB_MODE - ANDROID_CONTROL_START ] =
183     { "awbMode",                       TYPE_BYTE   },
184     [ ANDROID_CONTROL_AWB_REGIONS - ANDROID_CONTROL_START ] =
185     { "awbRegions",                    TYPE_INT32  },
186     [ ANDROID_CONTROL_CAPTURE_INTENT - ANDROID_CONTROL_START ] =
187     { "captureIntent",                 TYPE_BYTE   },
188     [ ANDROID_CONTROL_EFFECT_MODE - ANDROID_CONTROL_START ] =
189     { "effectMode",                    TYPE_BYTE   },
190     [ ANDROID_CONTROL_MODE - ANDROID_CONTROL_START ] =
191     { "mode",                          TYPE_BYTE   },
192     [ ANDROID_CONTROL_SCENE_MODE - ANDROID_CONTROL_START ] =
193     { "sceneMode",                     TYPE_BYTE   },
194     [ ANDROID_CONTROL_VIDEO_STABILIZATION_MODE - ANDROID_CONTROL_START ] =
195     { "videoStabilizationMode",        TYPE_BYTE   },
196     [ ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES - ANDROID_CONTROL_START ] =
197     { "aeAvailableAntibandingModes",   TYPE_BYTE   },
198     [ ANDROID_CONTROL_AE_AVAILABLE_MODES - ANDROID_CONTROL_START ] =
199     { "aeAvailableModes",              TYPE_BYTE   },
200     [ ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES - ANDROID_CONTROL_START ] =
201     { "aeAvailableTargetFpsRanges",    TYPE_INT32  },
202     [ ANDROID_CONTROL_AE_COMPENSATION_RANGE - ANDROID_CONTROL_START ] =
203     { "aeCompensationRange",           TYPE_INT32  },
204     [ ANDROID_CONTROL_AE_COMPENSATION_STEP - ANDROID_CONTROL_START ] =
205     { "aeCompensationStep",            TYPE_RATIONAL
206                 },
207     [ ANDROID_CONTROL_AF_AVAILABLE_MODES - ANDROID_CONTROL_START ] =
208     { "afAvailableModes",              TYPE_BYTE   },
209     [ ANDROID_CONTROL_AVAILABLE_EFFECTS - ANDROID_CONTROL_START ] =
210     { "availableEffects",              TYPE_BYTE   },
211     [ ANDROID_CONTROL_AVAILABLE_SCENE_MODES - ANDROID_CONTROL_START ] =
212     { "availableSceneModes",           TYPE_BYTE   },
213     [ ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES - ANDROID_CONTROL_START ] =
214     { "availableVideoStabilizationModes",
215                                         TYPE_BYTE   },
216     [ ANDROID_CONTROL_AWB_AVAILABLE_MODES - ANDROID_CONTROL_START ] =
217     { "awbAvailableModes",             TYPE_BYTE   },
218     [ ANDROID_CONTROL_MAX_REGIONS - ANDROID_CONTROL_START ] =
219     { "maxRegions",                    TYPE_INT32  },
220     [ ANDROID_CONTROL_SCENE_MODE_OVERRIDES - ANDROID_CONTROL_START ] =
221     { "sceneModeOverrides",            TYPE_BYTE   },
222     [ ANDROID_CONTROL_AE_PRECAPTURE_ID - ANDROID_CONTROL_START ] =
223     { "aePrecaptureId",                TYPE_INT32  },
224     [ ANDROID_CONTROL_AE_STATE - ANDROID_CONTROL_START ] =
225     { "aeState",                       TYPE_BYTE   },
226     [ ANDROID_CONTROL_AF_STATE - ANDROID_CONTROL_START ] =
227     { "afState",                       TYPE_BYTE   },
228     [ ANDROID_CONTROL_AF_TRIGGER_ID - ANDROID_CONTROL_START ] =
229     { "afTriggerId",                   TYPE_INT32  },
230     [ ANDROID_CONTROL_AWB_STATE - ANDROID_CONTROL_START ] =
231     { "awbState",                      TYPE_BYTE   },
232     [ ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS - ANDROID_CONTROL_START ] =
233     { "availableHighSpeedVideoConfigurations",
234                                         TYPE_INT32  },
235     [ ANDROID_CONTROL_AE_LOCK_AVAILABLE - ANDROID_CONTROL_START ] =
236     { "aeLockAvailable",               TYPE_BYTE   },
237     [ ANDROID_CONTROL_AWB_LOCK_AVAILABLE - ANDROID_CONTROL_START ] =
238     { "awbLockAvailable",              TYPE_BYTE   },
239     [ ANDROID_CONTROL_AVAILABLE_MODES - ANDROID_CONTROL_START ] =
240     { "availableModes",                TYPE_BYTE   },
241     [ ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE - ANDROID_CONTROL_START ] =
242     { "postRawSensitivityBoostRange",  TYPE_INT32  },
243     [ ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST - ANDROID_CONTROL_START ] =
244     { "postRawSensitivityBoost",       TYPE_INT32  },
245     [ ANDROID_CONTROL_ENABLE_ZSL - ANDROID_CONTROL_START ] =
246     { "enableZsl",                     TYPE_BYTE   },
247     [ ANDROID_CONTROL_AF_SCENE_CHANGE - ANDROID_CONTROL_START ] =
248     { "afSceneChange",                 TYPE_BYTE   },
249     [ ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES - ANDROID_CONTROL_START ] =
250     { "availableExtendedSceneModeMaxSizes",
251                                         TYPE_INT32  },
252     [ ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES - ANDROID_CONTROL_START ] =
253     { "availableExtendedSceneModeZoomRatioRanges",
254                                         TYPE_FLOAT  },
255     [ ANDROID_CONTROL_EXTENDED_SCENE_MODE - ANDROID_CONTROL_START ] =
256     { "extendedSceneMode",             TYPE_BYTE   },
257     [ ANDROID_CONTROL_ZOOM_RATIO_RANGE - ANDROID_CONTROL_START ] =
258     { "zoomRatioRange",                TYPE_FLOAT  },
259     [ ANDROID_CONTROL_ZOOM_RATIO - ANDROID_CONTROL_START ] =
260     { "zoomRatio",                     TYPE_FLOAT  },
261     [ ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS_MAXIMUM_RESOLUTION - ANDROID_CONTROL_START ] =
262     { "availableHighSpeedVideoConfigurationsMaximumResolution",
263                                         TYPE_INT32  },
264     [ ANDROID_CONTROL_AF_REGIONS_SET - ANDROID_CONTROL_START ] =
265     { "afRegionsSet",                  TYPE_BYTE   },
266     [ ANDROID_CONTROL_AE_REGIONS_SET - ANDROID_CONTROL_START ] =
267     { "aeRegionsSet",                  TYPE_BYTE   },
268     [ ANDROID_CONTROL_AWB_REGIONS_SET - ANDROID_CONTROL_START ] =
269     { "awbRegionsSet",                 TYPE_BYTE   },
270     [ ANDROID_CONTROL_SETTINGS_OVERRIDE - ANDROID_CONTROL_START ] =
271     { "settingsOverride",              TYPE_INT32  },
272     [ ANDROID_CONTROL_AVAILABLE_SETTINGS_OVERRIDES - ANDROID_CONTROL_START ] =
273     { "availableSettingsOverrides",    TYPE_INT32  },
274     [ ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER - ANDROID_CONTROL_START ] =
275     { "settingsOverridingFrameNumber", TYPE_INT32  },
276     [ ANDROID_CONTROL_AUTOFRAMING - ANDROID_CONTROL_START ] =
277     { "autoframing",                   TYPE_BYTE   },
278     [ ANDROID_CONTROL_AUTOFRAMING_AVAILABLE - ANDROID_CONTROL_START ] =
279     { "autoframingAvailable",          TYPE_BYTE   },
280     [ ANDROID_CONTROL_AUTOFRAMING_STATE - ANDROID_CONTROL_START ] =
281     { "autoframingState",              TYPE_BYTE   },
282 };
283 
284 static tag_info_t android_demosaic[ANDROID_DEMOSAIC_END -
285         ANDROID_DEMOSAIC_START] = {
286     [ ANDROID_DEMOSAIC_MODE - ANDROID_DEMOSAIC_START ] =
287     { "mode",                          TYPE_BYTE   },
288 };
289 
290 static tag_info_t android_edge[ANDROID_EDGE_END -
291         ANDROID_EDGE_START] = {
292     [ ANDROID_EDGE_MODE - ANDROID_EDGE_START ] =
293     { "mode",                          TYPE_BYTE   },
294     [ ANDROID_EDGE_STRENGTH - ANDROID_EDGE_START ] =
295     { "strength",                      TYPE_BYTE   },
296     [ ANDROID_EDGE_AVAILABLE_EDGE_MODES - ANDROID_EDGE_START ] =
297     { "availableEdgeModes",            TYPE_BYTE   },
298 };
299 
300 static tag_info_t android_flash[ANDROID_FLASH_END -
301         ANDROID_FLASH_START] = {
302     [ ANDROID_FLASH_FIRING_POWER - ANDROID_FLASH_START ] =
303     { "firingPower",                   TYPE_BYTE   },
304     [ ANDROID_FLASH_FIRING_TIME - ANDROID_FLASH_START ] =
305     { "firingTime",                    TYPE_INT64  },
306     [ ANDROID_FLASH_MODE - ANDROID_FLASH_START ] =
307     { "mode",                          TYPE_BYTE   },
308     [ ANDROID_FLASH_COLOR_TEMPERATURE - ANDROID_FLASH_START ] =
309     { "colorTemperature",              TYPE_BYTE   },
310     [ ANDROID_FLASH_MAX_ENERGY - ANDROID_FLASH_START ] =
311     { "maxEnergy",                     TYPE_BYTE   },
312     [ ANDROID_FLASH_STATE - ANDROID_FLASH_START ] =
313     { "state",                         TYPE_BYTE   },
314 };
315 
316 static tag_info_t android_flash_info[ANDROID_FLASH_INFO_END -
317         ANDROID_FLASH_INFO_START] = {
318     [ ANDROID_FLASH_INFO_AVAILABLE - ANDROID_FLASH_INFO_START ] =
319     { "available",                     TYPE_BYTE   },
320     [ ANDROID_FLASH_INFO_CHARGE_DURATION - ANDROID_FLASH_INFO_START ] =
321     { "chargeDuration",                TYPE_INT64  },
322     [ ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL - ANDROID_FLASH_INFO_START ] =
323     { "strengthMaximumLevel",          TYPE_INT32  },
324     [ ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL - ANDROID_FLASH_INFO_START ] =
325     { "strengthDefaultLevel",          TYPE_INT32  },
326 };
327 
328 static tag_info_t android_hot_pixel[ANDROID_HOT_PIXEL_END -
329         ANDROID_HOT_PIXEL_START] = {
330     [ ANDROID_HOT_PIXEL_MODE - ANDROID_HOT_PIXEL_START ] =
331     { "mode",                          TYPE_BYTE   },
332     [ ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES - ANDROID_HOT_PIXEL_START ] =
333     { "availableHotPixelModes",        TYPE_BYTE   },
334 };
335 
336 static tag_info_t android_jpeg[ANDROID_JPEG_END -
337         ANDROID_JPEG_START] = {
338     [ ANDROID_JPEG_GPS_COORDINATES - ANDROID_JPEG_START ] =
339     { "gpsCoordinates",                TYPE_DOUBLE },
340     [ ANDROID_JPEG_GPS_PROCESSING_METHOD - ANDROID_JPEG_START ] =
341     { "gpsProcessingMethod",           TYPE_BYTE   },
342     [ ANDROID_JPEG_GPS_TIMESTAMP - ANDROID_JPEG_START ] =
343     { "gpsTimestamp",                  TYPE_INT64  },
344     [ ANDROID_JPEG_ORIENTATION - ANDROID_JPEG_START ] =
345     { "orientation",                   TYPE_INT32  },
346     [ ANDROID_JPEG_QUALITY - ANDROID_JPEG_START ] =
347     { "quality",                       TYPE_BYTE   },
348     [ ANDROID_JPEG_THUMBNAIL_QUALITY - ANDROID_JPEG_START ] =
349     { "thumbnailQuality",              TYPE_BYTE   },
350     [ ANDROID_JPEG_THUMBNAIL_SIZE - ANDROID_JPEG_START ] =
351     { "thumbnailSize",                 TYPE_INT32  },
352     [ ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES - ANDROID_JPEG_START ] =
353     { "availableThumbnailSizes",       TYPE_INT32  },
354     [ ANDROID_JPEG_MAX_SIZE - ANDROID_JPEG_START ] =
355     { "maxSize",                       TYPE_INT32  },
356     [ ANDROID_JPEG_SIZE - ANDROID_JPEG_START ] =
357     { "size",                          TYPE_INT32  },
358 };
359 
360 static tag_info_t android_lens[ANDROID_LENS_END -
361         ANDROID_LENS_START] = {
362     [ ANDROID_LENS_APERTURE - ANDROID_LENS_START ] =
363     { "aperture",                      TYPE_FLOAT  },
364     [ ANDROID_LENS_FILTER_DENSITY - ANDROID_LENS_START ] =
365     { "filterDensity",                 TYPE_FLOAT  },
366     [ ANDROID_LENS_FOCAL_LENGTH - ANDROID_LENS_START ] =
367     { "focalLength",                   TYPE_FLOAT  },
368     [ ANDROID_LENS_FOCUS_DISTANCE - ANDROID_LENS_START ] =
369     { "focusDistance",                 TYPE_FLOAT  },
370     [ ANDROID_LENS_OPTICAL_STABILIZATION_MODE - ANDROID_LENS_START ] =
371     { "opticalStabilizationMode",      TYPE_BYTE   },
372     [ ANDROID_LENS_FACING - ANDROID_LENS_START ] =
373     { "facing",                        TYPE_BYTE   },
374     [ ANDROID_LENS_POSE_ROTATION - ANDROID_LENS_START ] =
375     { "poseRotation",                  TYPE_FLOAT  },
376     [ ANDROID_LENS_POSE_TRANSLATION - ANDROID_LENS_START ] =
377     { "poseTranslation",               TYPE_FLOAT  },
378     [ ANDROID_LENS_FOCUS_RANGE - ANDROID_LENS_START ] =
379     { "focusRange",                    TYPE_FLOAT  },
380     [ ANDROID_LENS_STATE - ANDROID_LENS_START ] =
381     { "state",                         TYPE_BYTE   },
382     [ ANDROID_LENS_INTRINSIC_CALIBRATION - ANDROID_LENS_START ] =
383     { "intrinsicCalibration",          TYPE_FLOAT  },
384     [ ANDROID_LENS_RADIAL_DISTORTION - ANDROID_LENS_START ] =
385     { "radialDistortion",              TYPE_FLOAT  },
386     [ ANDROID_LENS_POSE_REFERENCE - ANDROID_LENS_START ] =
387     { "poseReference",                 TYPE_BYTE   },
388     [ ANDROID_LENS_DISTORTION - ANDROID_LENS_START ] =
389     { "distortion",                    TYPE_FLOAT  },
390     [ ANDROID_LENS_DISTORTION_MAXIMUM_RESOLUTION - ANDROID_LENS_START ] =
391     { "distortionMaximumResolution",   TYPE_FLOAT  },
392     [ ANDROID_LENS_INTRINSIC_CALIBRATION_MAXIMUM_RESOLUTION - ANDROID_LENS_START ] =
393     { "intrinsicCalibrationMaximumResolution",
394                                         TYPE_FLOAT  },
395 };
396 
397 static tag_info_t android_lens_info[ANDROID_LENS_INFO_END -
398         ANDROID_LENS_INFO_START] = {
399     [ ANDROID_LENS_INFO_AVAILABLE_APERTURES - ANDROID_LENS_INFO_START ] =
400     { "availableApertures",            TYPE_FLOAT  },
401     [ ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES - ANDROID_LENS_INFO_START ] =
402     { "availableFilterDensities",      TYPE_FLOAT  },
403     [ ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS - ANDROID_LENS_INFO_START ] =
404     { "availableFocalLengths",         TYPE_FLOAT  },
405     [ ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION - ANDROID_LENS_INFO_START ] =
406     { "availableOpticalStabilization", TYPE_BYTE   },
407     [ ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE - ANDROID_LENS_INFO_START ] =
408     { "hyperfocalDistance",            TYPE_FLOAT  },
409     [ ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE - ANDROID_LENS_INFO_START ] =
410     { "minimumFocusDistance",          TYPE_FLOAT  },
411     [ ANDROID_LENS_INFO_SHADING_MAP_SIZE - ANDROID_LENS_INFO_START ] =
412     { "shadingMapSize",                TYPE_INT32  },
413     [ ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION - ANDROID_LENS_INFO_START ] =
414     { "focusDistanceCalibration",      TYPE_BYTE   },
415 };
416 
417 static tag_info_t android_noise_reduction[ANDROID_NOISE_REDUCTION_END -
418         ANDROID_NOISE_REDUCTION_START] = {
419     [ ANDROID_NOISE_REDUCTION_MODE - ANDROID_NOISE_REDUCTION_START ] =
420     { "mode",                          TYPE_BYTE   },
421     [ ANDROID_NOISE_REDUCTION_STRENGTH - ANDROID_NOISE_REDUCTION_START ] =
422     { "strength",                      TYPE_BYTE   },
423     [ ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES - ANDROID_NOISE_REDUCTION_START ] =
424     { "availableNoiseReductionModes",  TYPE_BYTE   },
425 };
426 
427 static tag_info_t android_quirks[ANDROID_QUIRKS_END -
428         ANDROID_QUIRKS_START] = {
429     [ ANDROID_QUIRKS_METERING_CROP_REGION - ANDROID_QUIRKS_START ] =
430     { "meteringCropRegion",            TYPE_BYTE   },
431     [ ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO - ANDROID_QUIRKS_START ] =
432     { "triggerAfWithAuto",             TYPE_BYTE   },
433     [ ANDROID_QUIRKS_USE_ZSL_FORMAT - ANDROID_QUIRKS_START ] =
434     { "useZslFormat",                  TYPE_BYTE   },
435     [ ANDROID_QUIRKS_USE_PARTIAL_RESULT - ANDROID_QUIRKS_START ] =
436     { "usePartialResult",              TYPE_BYTE   },
437     [ ANDROID_QUIRKS_PARTIAL_RESULT - ANDROID_QUIRKS_START ] =
438     { "partialResult",                 TYPE_BYTE   },
439 };
440 
441 static tag_info_t android_request[ANDROID_REQUEST_END -
442         ANDROID_REQUEST_START] = {
443     [ ANDROID_REQUEST_FRAME_COUNT - ANDROID_REQUEST_START ] =
444     { "frameCount",                    TYPE_INT32  },
445     [ ANDROID_REQUEST_ID - ANDROID_REQUEST_START ] =
446     { "id",                            TYPE_INT32  },
447     [ ANDROID_REQUEST_INPUT_STREAMS - ANDROID_REQUEST_START ] =
448     { "inputStreams",                  TYPE_INT32  },
449     [ ANDROID_REQUEST_METADATA_MODE - ANDROID_REQUEST_START ] =
450     { "metadataMode",                  TYPE_BYTE   },
451     [ ANDROID_REQUEST_OUTPUT_STREAMS - ANDROID_REQUEST_START ] =
452     { "outputStreams",                 TYPE_INT32  },
453     [ ANDROID_REQUEST_TYPE - ANDROID_REQUEST_START ] =
454     { "type",                          TYPE_BYTE   },
455     [ ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS - ANDROID_REQUEST_START ] =
456     { "maxNumOutputStreams",           TYPE_INT32  },
457     [ ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS - ANDROID_REQUEST_START ] =
458     { "maxNumReprocessStreams",        TYPE_INT32  },
459     [ ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS - ANDROID_REQUEST_START ] =
460     { "maxNumInputStreams",            TYPE_INT32  },
461     [ ANDROID_REQUEST_PIPELINE_DEPTH - ANDROID_REQUEST_START ] =
462     { "pipelineDepth",                 TYPE_BYTE   },
463     [ ANDROID_REQUEST_PIPELINE_MAX_DEPTH - ANDROID_REQUEST_START ] =
464     { "pipelineMaxDepth",              TYPE_BYTE   },
465     [ ANDROID_REQUEST_PARTIAL_RESULT_COUNT - ANDROID_REQUEST_START ] =
466     { "partialResultCount",            TYPE_INT32  },
467     [ ANDROID_REQUEST_AVAILABLE_CAPABILITIES - ANDROID_REQUEST_START ] =
468     { "availableCapabilities",         TYPE_BYTE   },
469     [ ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS - ANDROID_REQUEST_START ] =
470     { "availableRequestKeys",          TYPE_INT32  },
471     [ ANDROID_REQUEST_AVAILABLE_RESULT_KEYS - ANDROID_REQUEST_START ] =
472     { "availableResultKeys",           TYPE_INT32  },
473     [ ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS - ANDROID_REQUEST_START ] =
474     { "availableCharacteristicsKeys",  TYPE_INT32  },
475     [ ANDROID_REQUEST_AVAILABLE_SESSION_KEYS - ANDROID_REQUEST_START ] =
476     { "availableSessionKeys",          TYPE_INT32  },
477     [ ANDROID_REQUEST_AVAILABLE_PHYSICAL_CAMERA_REQUEST_KEYS - ANDROID_REQUEST_START ] =
478     { "availablePhysicalCameraRequestKeys",
479                                         TYPE_INT32  },
480     [ ANDROID_REQUEST_CHARACTERISTIC_KEYS_NEEDING_PERMISSION - ANDROID_REQUEST_START ] =
481     { "characteristicKeysNeedingPermission",
482                                         TYPE_INT32  },
483     [ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP - ANDROID_REQUEST_START ] =
484     { "availableDynamicRangeProfilesMap",
485                                         TYPE_INT64  },
486     [ ANDROID_REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE - ANDROID_REQUEST_START ] =
487     { "recommendedTenBitDynamicRangeProfile",
488                                         TYPE_INT64  },
489     [ ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP - ANDROID_REQUEST_START ] =
490     { "availableColorSpaceProfilesMap",
491                                         TYPE_INT64  },
492 };
493 
494 static tag_info_t android_scaler[ANDROID_SCALER_END -
495         ANDROID_SCALER_START] = {
496     [ ANDROID_SCALER_CROP_REGION - ANDROID_SCALER_START ] =
497     { "cropRegion",                    TYPE_INT32  },
498     [ ANDROID_SCALER_AVAILABLE_FORMATS - ANDROID_SCALER_START ] =
499     { "availableFormats",              TYPE_INT32  },
500     [ ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS - ANDROID_SCALER_START ] =
501     { "availableJpegMinDurations",     TYPE_INT64  },
502     [ ANDROID_SCALER_AVAILABLE_JPEG_SIZES - ANDROID_SCALER_START ] =
503     { "availableJpegSizes",            TYPE_INT32  },
504     [ ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM - ANDROID_SCALER_START ] =
505     { "availableMaxDigitalZoom",       TYPE_FLOAT  },
506     [ ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS - ANDROID_SCALER_START ] =
507     { "availableProcessedMinDurations",
508                                         TYPE_INT64  },
509     [ ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES - ANDROID_SCALER_START ] =
510     { "availableProcessedSizes",       TYPE_INT32  },
511     [ ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS - ANDROID_SCALER_START ] =
512     { "availableRawMinDurations",      TYPE_INT64  },
513     [ ANDROID_SCALER_AVAILABLE_RAW_SIZES - ANDROID_SCALER_START ] =
514     { "availableRawSizes",             TYPE_INT32  },
515     [ ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP - ANDROID_SCALER_START ] =
516     { "availableInputOutputFormatsMap",
517                                         TYPE_INT32  },
518     [ ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS - ANDROID_SCALER_START ] =
519     { "availableStreamConfigurations", TYPE_INT32  },
520     [ ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS - ANDROID_SCALER_START ] =
521     { "availableMinFrameDurations",    TYPE_INT64  },
522     [ ANDROID_SCALER_AVAILABLE_STALL_DURATIONS - ANDROID_SCALER_START ] =
523     { "availableStallDurations",       TYPE_INT64  },
524     [ ANDROID_SCALER_CROPPING_TYPE - ANDROID_SCALER_START ] =
525     { "croppingType",                  TYPE_BYTE   },
526     [ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS - ANDROID_SCALER_START ] =
527     { "availableRecommendedStreamConfigurations",
528                                         TYPE_INT32  },
529     [ ANDROID_SCALER_AVAILABLE_RECOMMENDED_INPUT_OUTPUT_FORMATS_MAP - ANDROID_SCALER_START ] =
530     { "availableRecommendedInputOutputFormatsMap",
531                                         TYPE_INT32  },
532     [ ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES - ANDROID_SCALER_START ] =
533     { "availableRotateAndCropModes",   TYPE_BYTE   },
534     [ ANDROID_SCALER_ROTATE_AND_CROP - ANDROID_SCALER_START ] =
535     { "rotateAndCrop",                 TYPE_BYTE   },
536     [ ANDROID_SCALER_DEFAULT_SECURE_IMAGE_SIZE - ANDROID_SCALER_START ] =
537     { "defaultSecureImageSize",        TYPE_INT32  },
538     [ ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS - ANDROID_SCALER_START ] =
539     { "physicalCameraMultiResolutionStreamConfigurations",
540                                         TYPE_INT32  },
541     [ ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION - ANDROID_SCALER_START ] =
542     { "availableStreamConfigurationsMaximumResolution",
543                                         TYPE_INT32  },
544     [ ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION - ANDROID_SCALER_START ] =
545     { "availableMinFrameDurationsMaximumResolution",
546                                         TYPE_INT64  },
547     [ ANDROID_SCALER_AVAILABLE_STALL_DURATIONS_MAXIMUM_RESOLUTION - ANDROID_SCALER_START ] =
548     { "availableStallDurationsMaximumResolution",
549                                         TYPE_INT64  },
550     [ ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP_MAXIMUM_RESOLUTION - ANDROID_SCALER_START ] =
551     { "availableInputOutputFormatsMapMaximumResolution",
552                                         TYPE_INT32  },
553     [ ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED - ANDROID_SCALER_START ] =
554     { "multiResolutionStreamSupported",
555                                         TYPE_BYTE   },
556     [ ANDROID_SCALER_CROP_REGION_SET - ANDROID_SCALER_START ] =
557     { "cropRegionSet",                 TYPE_BYTE   },
558     [ ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES - ANDROID_SCALER_START ] =
559     { "availableStreamUseCases",       TYPE_INT64  },
560     [ ANDROID_SCALER_RAW_CROP_REGION - ANDROID_SCALER_START ] =
561     { "rawCropRegion",                 TYPE_INT32  },
562 };
563 
564 static tag_info_t android_sensor[ANDROID_SENSOR_END -
565         ANDROID_SENSOR_START] = {
566     [ ANDROID_SENSOR_EXPOSURE_TIME - ANDROID_SENSOR_START ] =
567     { "exposureTime",                  TYPE_INT64  },
568     [ ANDROID_SENSOR_FRAME_DURATION - ANDROID_SENSOR_START ] =
569     { "frameDuration",                 TYPE_INT64  },
570     [ ANDROID_SENSOR_SENSITIVITY - ANDROID_SENSOR_START ] =
571     { "sensitivity",                   TYPE_INT32  },
572     [ ANDROID_SENSOR_REFERENCE_ILLUMINANT1 - ANDROID_SENSOR_START ] =
573     { "referenceIlluminant1",          TYPE_BYTE   },
574     [ ANDROID_SENSOR_REFERENCE_ILLUMINANT2 - ANDROID_SENSOR_START ] =
575     { "referenceIlluminant2",          TYPE_BYTE   },
576     [ ANDROID_SENSOR_CALIBRATION_TRANSFORM1 - ANDROID_SENSOR_START ] =
577     { "calibrationTransform1",         TYPE_RATIONAL
578                 },
579     [ ANDROID_SENSOR_CALIBRATION_TRANSFORM2 - ANDROID_SENSOR_START ] =
580     { "calibrationTransform2",         TYPE_RATIONAL
581                 },
582     [ ANDROID_SENSOR_COLOR_TRANSFORM1 - ANDROID_SENSOR_START ] =
583     { "colorTransform1",               TYPE_RATIONAL
584                 },
585     [ ANDROID_SENSOR_COLOR_TRANSFORM2 - ANDROID_SENSOR_START ] =
586     { "colorTransform2",               TYPE_RATIONAL
587                 },
588     [ ANDROID_SENSOR_FORWARD_MATRIX1 - ANDROID_SENSOR_START ] =
589     { "forwardMatrix1",                TYPE_RATIONAL
590                 },
591     [ ANDROID_SENSOR_FORWARD_MATRIX2 - ANDROID_SENSOR_START ] =
592     { "forwardMatrix2",                TYPE_RATIONAL
593                 },
594     [ ANDROID_SENSOR_BASE_GAIN_FACTOR - ANDROID_SENSOR_START ] =
595     { "baseGainFactor",                TYPE_RATIONAL
596                 },
597     [ ANDROID_SENSOR_BLACK_LEVEL_PATTERN - ANDROID_SENSOR_START ] =
598     { "blackLevelPattern",             TYPE_INT32  },
599     [ ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY - ANDROID_SENSOR_START ] =
600     { "maxAnalogSensitivity",          TYPE_INT32  },
601     [ ANDROID_SENSOR_ORIENTATION - ANDROID_SENSOR_START ] =
602     { "orientation",                   TYPE_INT32  },
603     [ ANDROID_SENSOR_PROFILE_HUE_SAT_MAP_DIMENSIONS - ANDROID_SENSOR_START ] =
604     { "profileHueSatMapDimensions",    TYPE_INT32  },
605     [ ANDROID_SENSOR_TIMESTAMP - ANDROID_SENSOR_START ] =
606     { "timestamp",                     TYPE_INT64  },
607     [ ANDROID_SENSOR_TEMPERATURE - ANDROID_SENSOR_START ] =
608     { "temperature",                   TYPE_FLOAT  },
609     [ ANDROID_SENSOR_NEUTRAL_COLOR_POINT - ANDROID_SENSOR_START ] =
610     { "neutralColorPoint",             TYPE_RATIONAL
611                 },
612     [ ANDROID_SENSOR_NOISE_PROFILE - ANDROID_SENSOR_START ] =
613     { "noiseProfile",                  TYPE_DOUBLE },
614     [ ANDROID_SENSOR_PROFILE_HUE_SAT_MAP - ANDROID_SENSOR_START ] =
615     { "profileHueSatMap",              TYPE_FLOAT  },
616     [ ANDROID_SENSOR_PROFILE_TONE_CURVE - ANDROID_SENSOR_START ] =
617     { "profileToneCurve",              TYPE_FLOAT  },
618     [ ANDROID_SENSOR_GREEN_SPLIT - ANDROID_SENSOR_START ] =
619     { "greenSplit",                    TYPE_FLOAT  },
620     [ ANDROID_SENSOR_TEST_PATTERN_DATA - ANDROID_SENSOR_START ] =
621     { "testPatternData",               TYPE_INT32  },
622     [ ANDROID_SENSOR_TEST_PATTERN_MODE - ANDROID_SENSOR_START ] =
623     { "testPatternMode",               TYPE_INT32  },
624     [ ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES - ANDROID_SENSOR_START ] =
625     { "availableTestPatternModes",     TYPE_INT32  },
626     [ ANDROID_SENSOR_ROLLING_SHUTTER_SKEW - ANDROID_SENSOR_START ] =
627     { "rollingShutterSkew",            TYPE_INT64  },
628     [ ANDROID_SENSOR_OPTICAL_BLACK_REGIONS - ANDROID_SENSOR_START ] =
629     { "opticalBlackRegions",           TYPE_INT32  },
630     [ ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL - ANDROID_SENSOR_START ] =
631     { "dynamicBlackLevel",             TYPE_FLOAT  },
632     [ ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL - ANDROID_SENSOR_START ] =
633     { "dynamicWhiteLevel",             TYPE_INT32  },
634     [ ANDROID_SENSOR_OPAQUE_RAW_SIZE - ANDROID_SENSOR_START ] =
635     { "opaqueRawSize",                 TYPE_INT32  },
636     [ ANDROID_SENSOR_OPAQUE_RAW_SIZE_MAXIMUM_RESOLUTION - ANDROID_SENSOR_START ] =
637     { "opaqueRawSizeMaximumResolution",
638                                         TYPE_INT32  },
639     [ ANDROID_SENSOR_PIXEL_MODE - ANDROID_SENSOR_START ] =
640     { "pixelMode",                     TYPE_BYTE   },
641     [ ANDROID_SENSOR_RAW_BINNING_FACTOR_USED - ANDROID_SENSOR_START ] =
642     { "rawBinningFactorUsed",          TYPE_BYTE   },
643     [ ANDROID_SENSOR_READOUT_TIMESTAMP - ANDROID_SENSOR_START ] =
644     { "readoutTimestamp",              TYPE_BYTE   },
645 };
646 
647 static tag_info_t android_sensor_info[ANDROID_SENSOR_INFO_END -
648         ANDROID_SENSOR_INFO_START] = {
649     [ ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE - ANDROID_SENSOR_INFO_START ] =
650     { "activeArraySize",               TYPE_INT32  },
651     [ ANDROID_SENSOR_INFO_SENSITIVITY_RANGE - ANDROID_SENSOR_INFO_START ] =
652     { "sensitivityRange",              TYPE_INT32  },
653     [ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT - ANDROID_SENSOR_INFO_START ] =
654     { "colorFilterArrangement",        TYPE_BYTE   },
655     [ ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE - ANDROID_SENSOR_INFO_START ] =
656     { "exposureTimeRange",             TYPE_INT64  },
657     [ ANDROID_SENSOR_INFO_MAX_FRAME_DURATION - ANDROID_SENSOR_INFO_START ] =
658     { "maxFrameDuration",              TYPE_INT64  },
659     [ ANDROID_SENSOR_INFO_PHYSICAL_SIZE - ANDROID_SENSOR_INFO_START ] =
660     { "physicalSize",                  TYPE_FLOAT  },
661     [ ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE - ANDROID_SENSOR_INFO_START ] =
662     { "pixelArraySize",                TYPE_INT32  },
663     [ ANDROID_SENSOR_INFO_WHITE_LEVEL - ANDROID_SENSOR_INFO_START ] =
664     { "whiteLevel",                    TYPE_INT32  },
665     [ ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE - ANDROID_SENSOR_INFO_START ] =
666     { "timestampSource",               TYPE_BYTE   },
667     [ ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED - ANDROID_SENSOR_INFO_START ] =
668     { "lensShadingApplied",            TYPE_BYTE   },
669     [ ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE - ANDROID_SENSOR_INFO_START ] =
670     { "preCorrectionActiveArraySize",  TYPE_INT32  },
671     [ ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION - ANDROID_SENSOR_INFO_START ] =
672     { "activeArraySizeMaximumResolution",
673                                         TYPE_INT32  },
674     [ ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION - ANDROID_SENSOR_INFO_START ] =
675     { "pixelArraySizeMaximumResolution",
676                                         TYPE_INT32  },
677     [ ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION - ANDROID_SENSOR_INFO_START ] =
678     { "preCorrectionActiveArraySizeMaximumResolution",
679                                         TYPE_INT32  },
680     [ ANDROID_SENSOR_INFO_BINNING_FACTOR - ANDROID_SENSOR_INFO_START ] =
681     { "binningFactor",                 TYPE_INT32  },
682 };
683 
684 static tag_info_t android_shading[ANDROID_SHADING_END -
685         ANDROID_SHADING_START] = {
686     [ ANDROID_SHADING_MODE - ANDROID_SHADING_START ] =
687     { "mode",                          TYPE_BYTE   },
688     [ ANDROID_SHADING_STRENGTH - ANDROID_SHADING_START ] =
689     { "strength",                      TYPE_BYTE   },
690     [ ANDROID_SHADING_AVAILABLE_MODES - ANDROID_SHADING_START ] =
691     { "availableModes",                TYPE_BYTE   },
692 };
693 
694 static tag_info_t android_statistics[ANDROID_STATISTICS_END -
695         ANDROID_STATISTICS_START] = {
696     [ ANDROID_STATISTICS_FACE_DETECT_MODE - ANDROID_STATISTICS_START ] =
697     { "faceDetectMode",                TYPE_BYTE   },
698     [ ANDROID_STATISTICS_HISTOGRAM_MODE - ANDROID_STATISTICS_START ] =
699     { "histogramMode",                 TYPE_BYTE   },
700     [ ANDROID_STATISTICS_SHARPNESS_MAP_MODE - ANDROID_STATISTICS_START ] =
701     { "sharpnessMapMode",              TYPE_BYTE   },
702     [ ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE - ANDROID_STATISTICS_START ] =
703     { "hotPixelMapMode",               TYPE_BYTE   },
704     [ ANDROID_STATISTICS_FACE_IDS - ANDROID_STATISTICS_START ] =
705     { "faceIds",                       TYPE_INT32  },
706     [ ANDROID_STATISTICS_FACE_LANDMARKS - ANDROID_STATISTICS_START ] =
707     { "faceLandmarks",                 TYPE_INT32  },
708     [ ANDROID_STATISTICS_FACE_RECTANGLES - ANDROID_STATISTICS_START ] =
709     { "faceRectangles",                TYPE_INT32  },
710     [ ANDROID_STATISTICS_FACE_SCORES - ANDROID_STATISTICS_START ] =
711     { "faceScores",                    TYPE_BYTE   },
712     [ ANDROID_STATISTICS_HISTOGRAM - ANDROID_STATISTICS_START ] =
713     { "histogram",                     TYPE_INT32  },
714     [ ANDROID_STATISTICS_SHARPNESS_MAP - ANDROID_STATISTICS_START ] =
715     { "sharpnessMap",                  TYPE_INT32  },
716     [ ANDROID_STATISTICS_LENS_SHADING_CORRECTION_MAP - ANDROID_STATISTICS_START ] =
717     { "lensShadingCorrectionMap",      TYPE_BYTE   },
718     [ ANDROID_STATISTICS_LENS_SHADING_MAP - ANDROID_STATISTICS_START ] =
719     { "lensShadingMap",                TYPE_FLOAT  },
720     [ ANDROID_STATISTICS_PREDICTED_COLOR_GAINS - ANDROID_STATISTICS_START ] =
721     { "predictedColorGains",           TYPE_FLOAT  },
722     [ ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM - ANDROID_STATISTICS_START ] =
723     { "predictedColorTransform",       TYPE_RATIONAL
724                 },
725     [ ANDROID_STATISTICS_SCENE_FLICKER - ANDROID_STATISTICS_START ] =
726     { "sceneFlicker",                  TYPE_BYTE   },
727     [ ANDROID_STATISTICS_HOT_PIXEL_MAP - ANDROID_STATISTICS_START ] =
728     { "hotPixelMap",                   TYPE_INT32  },
729     [ ANDROID_STATISTICS_LENS_SHADING_MAP_MODE - ANDROID_STATISTICS_START ] =
730     { "lensShadingMapMode",            TYPE_BYTE   },
731     [ ANDROID_STATISTICS_OIS_DATA_MODE - ANDROID_STATISTICS_START ] =
732     { "oisDataMode",                   TYPE_BYTE   },
733     [ ANDROID_STATISTICS_OIS_TIMESTAMPS - ANDROID_STATISTICS_START ] =
734     { "oisTimestamps",                 TYPE_INT64  },
735     [ ANDROID_STATISTICS_OIS_X_SHIFTS - ANDROID_STATISTICS_START ] =
736     { "oisXShifts",                    TYPE_FLOAT  },
737     [ ANDROID_STATISTICS_OIS_Y_SHIFTS - ANDROID_STATISTICS_START ] =
738     { "oisYShifts",                    TYPE_FLOAT  },
739 };
740 
741 static tag_info_t android_statistics_info[ANDROID_STATISTICS_INFO_END -
742         ANDROID_STATISTICS_INFO_START] = {
743     [ ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES - ANDROID_STATISTICS_INFO_START ] =
744     { "availableFaceDetectModes",      TYPE_BYTE   },
745     [ ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT - ANDROID_STATISTICS_INFO_START ] =
746     { "histogramBucketCount",          TYPE_INT32  },
747     [ ANDROID_STATISTICS_INFO_MAX_FACE_COUNT - ANDROID_STATISTICS_INFO_START ] =
748     { "maxFaceCount",                  TYPE_INT32  },
749     [ ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT - ANDROID_STATISTICS_INFO_START ] =
750     { "maxHistogramCount",             TYPE_INT32  },
751     [ ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE - ANDROID_STATISTICS_INFO_START ] =
752     { "maxSharpnessMapValue",          TYPE_INT32  },
753     [ ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE - ANDROID_STATISTICS_INFO_START ] =
754     { "sharpnessMapSize",              TYPE_INT32  },
755     [ ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES - ANDROID_STATISTICS_INFO_START ] =
756     { "availableHotPixelMapModes",     TYPE_BYTE   },
757     [ ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES - ANDROID_STATISTICS_INFO_START ] =
758     { "availableLensShadingMapModes",  TYPE_BYTE   },
759     [ ANDROID_STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES - ANDROID_STATISTICS_INFO_START ] =
760     { "availableOisDataModes",         TYPE_BYTE   },
761 };
762 
763 static tag_info_t android_tonemap[ANDROID_TONEMAP_END -
764         ANDROID_TONEMAP_START] = {
765     [ ANDROID_TONEMAP_CURVE_BLUE - ANDROID_TONEMAP_START ] =
766     { "curveBlue",                     TYPE_FLOAT  },
767     [ ANDROID_TONEMAP_CURVE_GREEN - ANDROID_TONEMAP_START ] =
768     { "curveGreen",                    TYPE_FLOAT  },
769     [ ANDROID_TONEMAP_CURVE_RED - ANDROID_TONEMAP_START ] =
770     { "curveRed",                      TYPE_FLOAT  },
771     [ ANDROID_TONEMAP_MODE - ANDROID_TONEMAP_START ] =
772     { "mode",                          TYPE_BYTE   },
773     [ ANDROID_TONEMAP_MAX_CURVE_POINTS - ANDROID_TONEMAP_START ] =
774     { "maxCurvePoints",                TYPE_INT32  },
775     [ ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES - ANDROID_TONEMAP_START ] =
776     { "availableToneMapModes",         TYPE_BYTE   },
777     [ ANDROID_TONEMAP_GAMMA - ANDROID_TONEMAP_START ] =
778     { "gamma",                         TYPE_FLOAT  },
779     [ ANDROID_TONEMAP_PRESET_CURVE - ANDROID_TONEMAP_START ] =
780     { "presetCurve",                   TYPE_BYTE   },
781 };
782 
783 static tag_info_t android_led[ANDROID_LED_END -
784         ANDROID_LED_START] = {
785     [ ANDROID_LED_TRANSMIT - ANDROID_LED_START ] =
786     { "transmit",                      TYPE_BYTE   },
787     [ ANDROID_LED_AVAILABLE_LEDS - ANDROID_LED_START ] =
788     { "availableLeds",                 TYPE_BYTE   },
789 };
790 
791 static tag_info_t android_info[ANDROID_INFO_END -
792         ANDROID_INFO_START] = {
793     [ ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL - ANDROID_INFO_START ] =
794     { "supportedHardwareLevel",        TYPE_BYTE   },
795     [ ANDROID_INFO_VERSION - ANDROID_INFO_START ] =
796     { "version",                       TYPE_BYTE   },
797     [ ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION - ANDROID_INFO_START ] =
798     { "supportedBufferManagementVersion",
799                                         TYPE_BYTE   },
800     [ ANDROID_INFO_DEVICE_STATE_ORIENTATIONS - ANDROID_INFO_START ] =
801     { "deviceStateOrientations",       TYPE_INT64  },
802 };
803 
804 static tag_info_t android_black_level[ANDROID_BLACK_LEVEL_END -
805         ANDROID_BLACK_LEVEL_START] = {
806     [ ANDROID_BLACK_LEVEL_LOCK - ANDROID_BLACK_LEVEL_START ] =
807     { "lock",                          TYPE_BYTE   },
808 };
809 
810 static tag_info_t android_sync[ANDROID_SYNC_END -
811         ANDROID_SYNC_START] = {
812     [ ANDROID_SYNC_FRAME_NUMBER - ANDROID_SYNC_START ] =
813     { "frameNumber",                   TYPE_INT64  },
814     [ ANDROID_SYNC_MAX_LATENCY - ANDROID_SYNC_START ] =
815     { "maxLatency",                    TYPE_INT32  },
816 };
817 
818 static tag_info_t android_reprocess[ANDROID_REPROCESS_END -
819         ANDROID_REPROCESS_START] = {
820     [ ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR - ANDROID_REPROCESS_START ] =
821     { "effectiveExposureFactor",       TYPE_FLOAT  },
822     [ ANDROID_REPROCESS_MAX_CAPTURE_STALL - ANDROID_REPROCESS_START ] =
823     { "maxCaptureStall",               TYPE_INT32  },
824 };
825 
826 static tag_info_t android_depth[ANDROID_DEPTH_END -
827         ANDROID_DEPTH_START] = {
828     [ ANDROID_DEPTH_MAX_DEPTH_SAMPLES - ANDROID_DEPTH_START ] =
829     { "maxDepthSamples",               TYPE_INT32  },
830     [ ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS - ANDROID_DEPTH_START ] =
831     { "availableDepthStreamConfigurations",
832                                         TYPE_INT32  },
833     [ ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS - ANDROID_DEPTH_START ] =
834     { "availableDepthMinFrameDurations",
835                                         TYPE_INT64  },
836     [ ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS - ANDROID_DEPTH_START ] =
837     { "availableDepthStallDurations",  TYPE_INT64  },
838     [ ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE - ANDROID_DEPTH_START ] =
839     { "depthIsExclusive",              TYPE_BYTE   },
840     [ ANDROID_DEPTH_AVAILABLE_RECOMMENDED_DEPTH_STREAM_CONFIGURATIONS - ANDROID_DEPTH_START ] =
841     { "availableRecommendedDepthStreamConfigurations",
842                                         TYPE_INT32  },
843     [ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS - ANDROID_DEPTH_START ] =
844     { "availableDynamicDepthStreamConfigurations",
845                                         TYPE_INT32  },
846     [ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS - ANDROID_DEPTH_START ] =
847     { "availableDynamicDepthMinFrameDurations",
848                                         TYPE_INT64  },
849     [ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS - ANDROID_DEPTH_START ] =
850     { "availableDynamicDepthStallDurations",
851                                         TYPE_INT64  },
852     [ ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION - ANDROID_DEPTH_START ] =
853     { "availableDepthStreamConfigurationsMaximumResolution",
854                                         TYPE_INT32  },
855     [ ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION - ANDROID_DEPTH_START ] =
856     { "availableDepthMinFrameDurationsMaximumResolution",
857                                         TYPE_INT64  },
858     [ ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION - ANDROID_DEPTH_START ] =
859     { "availableDepthStallDurationsMaximumResolution",
860                                         TYPE_INT64  },
861     [ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION - ANDROID_DEPTH_START ] =
862     { "availableDynamicDepthStreamConfigurationsMaximumResolution",
863                                         TYPE_INT32  },
864     [ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION - ANDROID_DEPTH_START ] =
865     { "availableDynamicDepthMinFrameDurationsMaximumResolution",
866                                         TYPE_INT64  },
867     [ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION - ANDROID_DEPTH_START ] =
868     { "availableDynamicDepthStallDurationsMaximumResolution",
869                                         TYPE_INT64  },
870 };
871 
872 static tag_info_t android_logical_multi_camera[ANDROID_LOGICAL_MULTI_CAMERA_END -
873         ANDROID_LOGICAL_MULTI_CAMERA_START] = {
874     [ ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS - ANDROID_LOGICAL_MULTI_CAMERA_START ] =
875     { "physicalIds",                   TYPE_BYTE   },
876     [ ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE - ANDROID_LOGICAL_MULTI_CAMERA_START ] =
877     { "sensorSyncType",                TYPE_BYTE   },
878     [ ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID - ANDROID_LOGICAL_MULTI_CAMERA_START ] =
879     { "activePhysicalId",              TYPE_BYTE   },
880 };
881 
882 static tag_info_t android_distortion_correction[ANDROID_DISTORTION_CORRECTION_END -
883         ANDROID_DISTORTION_CORRECTION_START] = {
884     [ ANDROID_DISTORTION_CORRECTION_MODE - ANDROID_DISTORTION_CORRECTION_START ] =
885     { "mode",                          TYPE_BYTE   },
886     [ ANDROID_DISTORTION_CORRECTION_AVAILABLE_MODES - ANDROID_DISTORTION_CORRECTION_START ] =
887     { "availableModes",                TYPE_BYTE   },
888 };
889 
890 static tag_info_t android_heic[ANDROID_HEIC_END -
891         ANDROID_HEIC_START] = {
892     [ ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS - ANDROID_HEIC_START ] =
893     { "availableHeicStreamConfigurations",
894                                         TYPE_INT32  },
895     [ ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS - ANDROID_HEIC_START ] =
896     { "availableHeicMinFrameDurations",
897                                         TYPE_INT64  },
898     [ ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS - ANDROID_HEIC_START ] =
899     { "availableHeicStallDurations",   TYPE_INT64  },
900     [ ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION - ANDROID_HEIC_START ] =
901     { "availableHeicStreamConfigurationsMaximumResolution",
902                                         TYPE_INT32  },
903     [ ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION - ANDROID_HEIC_START ] =
904     { "availableHeicMinFrameDurationsMaximumResolution",
905                                         TYPE_INT64  },
906     [ ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS_MAXIMUM_RESOLUTION - ANDROID_HEIC_START ] =
907     { "availableHeicStallDurationsMaximumResolution",
908                                         TYPE_INT64  },
909 };
910 
911 static tag_info_t android_heic_info[ANDROID_HEIC_INFO_END -
912         ANDROID_HEIC_INFO_START] = {
913     [ ANDROID_HEIC_INFO_SUPPORTED - ANDROID_HEIC_INFO_START ] =
914     { "supported",                     TYPE_BYTE   },
915     [ ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT - ANDROID_HEIC_INFO_START ] =
916     { "maxJpegAppSegmentsCount",       TYPE_BYTE   },
917 };
918 
919 static tag_info_t android_automotive[ANDROID_AUTOMOTIVE_END -
920         ANDROID_AUTOMOTIVE_START] = {
921     [ ANDROID_AUTOMOTIVE_LOCATION - ANDROID_AUTOMOTIVE_START ] =
922     { "location",                      TYPE_BYTE   },
923 };
924 
925 static tag_info_t android_automotive_lens[ANDROID_AUTOMOTIVE_LENS_END -
926         ANDROID_AUTOMOTIVE_LENS_START] = {
927     [ ANDROID_AUTOMOTIVE_LENS_FACING - ANDROID_AUTOMOTIVE_LENS_START ] =
928     { "facing",                        TYPE_BYTE   },
929 };
930 
931 static tag_info_t android_extension[ANDROID_EXTENSION_END -
932         ANDROID_EXTENSION_START] = {
933     [ ANDROID_EXTENSION_STRENGTH - ANDROID_EXTENSION_START ] =
934     { "strength",                      TYPE_INT32  },
935     [ ANDROID_EXTENSION_CURRENT_TYPE - ANDROID_EXTENSION_START ] =
936     { "currentType",                   TYPE_INT32  },
937 };
938 
939 static tag_info_t android_jpegr[ANDROID_JPEGR_END -
940         ANDROID_JPEGR_START] = {
941     [ ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS - ANDROID_JPEGR_START ] =
942     { "availableJpegRStreamConfigurations",
943                                         TYPE_INT32  },
944     [ ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS - ANDROID_JPEGR_START ] =
945     { "availableJpegRMinFrameDurations",
946                                         TYPE_INT64  },
947     [ ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS - ANDROID_JPEGR_START ] =
948     { "availableJpegRStallDurations",  TYPE_INT64  },
949     [ ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION - ANDROID_JPEGR_START ] =
950     { "availableJpegRStreamConfigurationsMaximumResolution",
951                                         TYPE_INT32  },
952     [ ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION - ANDROID_JPEGR_START ] =
953     { "availableJpegRMinFrameDurationsMaximumResolution",
954                                         TYPE_INT64  },
955     [ ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS_MAXIMUM_RESOLUTION - ANDROID_JPEGR_START ] =
956     { "availableJpegRStallDurationsMaximumResolution",
957                                         TYPE_INT64  },
958 };
959 
960 
961 tag_info_t *tag_info[ANDROID_SECTION_COUNT] = {
962     android_color_correction,
963     android_control,
964     android_demosaic,
965     android_edge,
966     android_flash,
967     android_flash_info,
968     android_hot_pixel,
969     android_jpeg,
970     android_lens,
971     android_lens_info,
972     android_noise_reduction,
973     android_quirks,
974     android_request,
975     android_scaler,
976     android_sensor,
977     android_sensor_info,
978     android_shading,
979     android_statistics,
980     android_statistics_info,
981     android_tonemap,
982     android_led,
983     android_info,
984     android_black_level,
985     android_sync,
986     android_reprocess,
987     android_depth,
988     android_logical_multi_camera,
989     android_distortion_correction,
990     android_heic,
991     android_heic_info,
992     android_automotive,
993     android_automotive_lens,
994     android_extension,
995     android_jpegr,
996 };
997 
998 static int32_t tag_permission_needed[18] = {
999     ANDROID_LENS_POSE_ROTATION,
1000     ANDROID_LENS_POSE_TRANSLATION,
1001     ANDROID_LENS_INTRINSIC_CALIBRATION,
1002     ANDROID_LENS_RADIAL_DISTORTION,
1003     ANDROID_LENS_POSE_REFERENCE,
1004     ANDROID_LENS_DISTORTION,
1005     ANDROID_LENS_DISTORTION_MAXIMUM_RESOLUTION,
1006     ANDROID_LENS_INTRINSIC_CALIBRATION_MAXIMUM_RESOLUTION,
1007     ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE,
1008     ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE,
1009     ANDROID_SENSOR_REFERENCE_ILLUMINANT1,
1010     ANDROID_SENSOR_REFERENCE_ILLUMINANT2,
1011     ANDROID_SENSOR_CALIBRATION_TRANSFORM1,
1012     ANDROID_SENSOR_CALIBRATION_TRANSFORM2,
1013     ANDROID_SENSOR_COLOR_TRANSFORM1,
1014     ANDROID_SENSOR_COLOR_TRANSFORM2,
1015     ANDROID_SENSOR_FORWARD_MATRIX1,
1016     ANDROID_SENSOR_FORWARD_MATRIX2,
1017 };
1018 
camera_metadata_enum_snprint(uint32_t tag,uint32_t value,char * dst,size_t size)1019 int camera_metadata_enum_snprint(uint32_t tag,
1020                                  uint32_t value,
1021                                  char *dst,
1022                                  size_t size) {
1023     const char *msg = "error: not an enum";
1024     int ret = -1;
1025 
1026     switch(tag) {
1027         case ANDROID_COLOR_CORRECTION_MODE: {
1028             switch (value) {
1029                 case ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX:
1030                     msg = "TRANSFORM_MATRIX";
1031                     ret = 0;
1032                     break;
1033                 case ANDROID_COLOR_CORRECTION_MODE_FAST:
1034                     msg = "FAST";
1035                     ret = 0;
1036                     break;
1037                 case ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY:
1038                     msg = "HIGH_QUALITY";
1039                     ret = 0;
1040                     break;
1041                 default:
1042                     msg = "error: enum value out of range";
1043             }
1044             break;
1045         }
1046         case ANDROID_COLOR_CORRECTION_TRANSFORM: {
1047             break;
1048         }
1049         case ANDROID_COLOR_CORRECTION_GAINS: {
1050             break;
1051         }
1052         case ANDROID_COLOR_CORRECTION_ABERRATION_MODE: {
1053             switch (value) {
1054                 case ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF:
1055                     msg = "OFF";
1056                     ret = 0;
1057                     break;
1058                 case ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST:
1059                     msg = "FAST";
1060                     ret = 0;
1061                     break;
1062                 case ANDROID_COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY:
1063                     msg = "HIGH_QUALITY";
1064                     ret = 0;
1065                     break;
1066                 default:
1067                     msg = "error: enum value out of range";
1068             }
1069             break;
1070         }
1071         case ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES: {
1072             break;
1073         }
1074 
1075         case ANDROID_CONTROL_AE_ANTIBANDING_MODE: {
1076             switch (value) {
1077                 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF:
1078                     msg = "OFF";
1079                     ret = 0;
1080                     break;
1081                 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ:
1082                     msg = "50HZ";
1083                     ret = 0;
1084                     break;
1085                 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ:
1086                     msg = "60HZ";
1087                     ret = 0;
1088                     break;
1089                 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO:
1090                     msg = "AUTO";
1091                     ret = 0;
1092                     break;
1093                 default:
1094                     msg = "error: enum value out of range";
1095             }
1096             break;
1097         }
1098         case ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION: {
1099             break;
1100         }
1101         case ANDROID_CONTROL_AE_LOCK: {
1102             switch (value) {
1103                 case ANDROID_CONTROL_AE_LOCK_OFF:
1104                     msg = "OFF";
1105                     ret = 0;
1106                     break;
1107                 case ANDROID_CONTROL_AE_LOCK_ON:
1108                     msg = "ON";
1109                     ret = 0;
1110                     break;
1111                 default:
1112                     msg = "error: enum value out of range";
1113             }
1114             break;
1115         }
1116         case ANDROID_CONTROL_AE_MODE: {
1117             switch (value) {
1118                 case ANDROID_CONTROL_AE_MODE_OFF:
1119                     msg = "OFF";
1120                     ret = 0;
1121                     break;
1122                 case ANDROID_CONTROL_AE_MODE_ON:
1123                     msg = "ON";
1124                     ret = 0;
1125                     break;
1126                 case ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH:
1127                     msg = "ON_AUTO_FLASH";
1128                     ret = 0;
1129                     break;
1130                 case ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH:
1131                     msg = "ON_ALWAYS_FLASH";
1132                     ret = 0;
1133                     break;
1134                 case ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE:
1135                     msg = "ON_AUTO_FLASH_REDEYE";
1136                     ret = 0;
1137                     break;
1138                 case ANDROID_CONTROL_AE_MODE_ON_EXTERNAL_FLASH:
1139                     msg = "ON_EXTERNAL_FLASH";
1140                     ret = 0;
1141                     break;
1142                 default:
1143                     msg = "error: enum value out of range";
1144             }
1145             break;
1146         }
1147         case ANDROID_CONTROL_AE_REGIONS: {
1148             break;
1149         }
1150         case ANDROID_CONTROL_AE_TARGET_FPS_RANGE: {
1151             break;
1152         }
1153         case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER: {
1154             switch (value) {
1155                 case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE:
1156                     msg = "IDLE";
1157                     ret = 0;
1158                     break;
1159                 case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START:
1160                     msg = "START";
1161                     ret = 0;
1162                     break;
1163                 case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL:
1164                     msg = "CANCEL";
1165                     ret = 0;
1166                     break;
1167                 default:
1168                     msg = "error: enum value out of range";
1169             }
1170             break;
1171         }
1172         case ANDROID_CONTROL_AF_MODE: {
1173             switch (value) {
1174                 case ANDROID_CONTROL_AF_MODE_OFF:
1175                     msg = "OFF";
1176                     ret = 0;
1177                     break;
1178                 case ANDROID_CONTROL_AF_MODE_AUTO:
1179                     msg = "AUTO";
1180                     ret = 0;
1181                     break;
1182                 case ANDROID_CONTROL_AF_MODE_MACRO:
1183                     msg = "MACRO";
1184                     ret = 0;
1185                     break;
1186                 case ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO:
1187                     msg = "CONTINUOUS_VIDEO";
1188                     ret = 0;
1189                     break;
1190                 case ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE:
1191                     msg = "CONTINUOUS_PICTURE";
1192                     ret = 0;
1193                     break;
1194                 case ANDROID_CONTROL_AF_MODE_EDOF:
1195                     msg = "EDOF";
1196                     ret = 0;
1197                     break;
1198                 default:
1199                     msg = "error: enum value out of range";
1200             }
1201             break;
1202         }
1203         case ANDROID_CONTROL_AF_REGIONS: {
1204             break;
1205         }
1206         case ANDROID_CONTROL_AF_TRIGGER: {
1207             switch (value) {
1208                 case ANDROID_CONTROL_AF_TRIGGER_IDLE:
1209                     msg = "IDLE";
1210                     ret = 0;
1211                     break;
1212                 case ANDROID_CONTROL_AF_TRIGGER_START:
1213                     msg = "START";
1214                     ret = 0;
1215                     break;
1216                 case ANDROID_CONTROL_AF_TRIGGER_CANCEL:
1217                     msg = "CANCEL";
1218                     ret = 0;
1219                     break;
1220                 default:
1221                     msg = "error: enum value out of range";
1222             }
1223             break;
1224         }
1225         case ANDROID_CONTROL_AWB_LOCK: {
1226             switch (value) {
1227                 case ANDROID_CONTROL_AWB_LOCK_OFF:
1228                     msg = "OFF";
1229                     ret = 0;
1230                     break;
1231                 case ANDROID_CONTROL_AWB_LOCK_ON:
1232                     msg = "ON";
1233                     ret = 0;
1234                     break;
1235                 default:
1236                     msg = "error: enum value out of range";
1237             }
1238             break;
1239         }
1240         case ANDROID_CONTROL_AWB_MODE: {
1241             switch (value) {
1242                 case ANDROID_CONTROL_AWB_MODE_OFF:
1243                     msg = "OFF";
1244                     ret = 0;
1245                     break;
1246                 case ANDROID_CONTROL_AWB_MODE_AUTO:
1247                     msg = "AUTO";
1248                     ret = 0;
1249                     break;
1250                 case ANDROID_CONTROL_AWB_MODE_INCANDESCENT:
1251                     msg = "INCANDESCENT";
1252                     ret = 0;
1253                     break;
1254                 case ANDROID_CONTROL_AWB_MODE_FLUORESCENT:
1255                     msg = "FLUORESCENT";
1256                     ret = 0;
1257                     break;
1258                 case ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT:
1259                     msg = "WARM_FLUORESCENT";
1260                     ret = 0;
1261                     break;
1262                 case ANDROID_CONTROL_AWB_MODE_DAYLIGHT:
1263                     msg = "DAYLIGHT";
1264                     ret = 0;
1265                     break;
1266                 case ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT:
1267                     msg = "CLOUDY_DAYLIGHT";
1268                     ret = 0;
1269                     break;
1270                 case ANDROID_CONTROL_AWB_MODE_TWILIGHT:
1271                     msg = "TWILIGHT";
1272                     ret = 0;
1273                     break;
1274                 case ANDROID_CONTROL_AWB_MODE_SHADE:
1275                     msg = "SHADE";
1276                     ret = 0;
1277                     break;
1278                 default:
1279                     msg = "error: enum value out of range";
1280             }
1281             break;
1282         }
1283         case ANDROID_CONTROL_AWB_REGIONS: {
1284             break;
1285         }
1286         case ANDROID_CONTROL_CAPTURE_INTENT: {
1287             switch (value) {
1288                 case ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM:
1289                     msg = "CUSTOM";
1290                     ret = 0;
1291                     break;
1292                 case ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW:
1293                     msg = "PREVIEW";
1294                     ret = 0;
1295                     break;
1296                 case ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE:
1297                     msg = "STILL_CAPTURE";
1298                     ret = 0;
1299                     break;
1300                 case ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD:
1301                     msg = "VIDEO_RECORD";
1302                     ret = 0;
1303                     break;
1304                 case ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT:
1305                     msg = "VIDEO_SNAPSHOT";
1306                     ret = 0;
1307                     break;
1308                 case ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG:
1309                     msg = "ZERO_SHUTTER_LAG";
1310                     ret = 0;
1311                     break;
1312                 case ANDROID_CONTROL_CAPTURE_INTENT_MANUAL:
1313                     msg = "MANUAL";
1314                     ret = 0;
1315                     break;
1316                 case ANDROID_CONTROL_CAPTURE_INTENT_MOTION_TRACKING:
1317                     msg = "MOTION_TRACKING";
1318                     ret = 0;
1319                     break;
1320                 default:
1321                     msg = "error: enum value out of range";
1322             }
1323             break;
1324         }
1325         case ANDROID_CONTROL_EFFECT_MODE: {
1326             switch (value) {
1327                 case ANDROID_CONTROL_EFFECT_MODE_OFF:
1328                     msg = "OFF";
1329                     ret = 0;
1330                     break;
1331                 case ANDROID_CONTROL_EFFECT_MODE_MONO:
1332                     msg = "MONO";
1333                     ret = 0;
1334                     break;
1335                 case ANDROID_CONTROL_EFFECT_MODE_NEGATIVE:
1336                     msg = "NEGATIVE";
1337                     ret = 0;
1338                     break;
1339                 case ANDROID_CONTROL_EFFECT_MODE_SOLARIZE:
1340                     msg = "SOLARIZE";
1341                     ret = 0;
1342                     break;
1343                 case ANDROID_CONTROL_EFFECT_MODE_SEPIA:
1344                     msg = "SEPIA";
1345                     ret = 0;
1346                     break;
1347                 case ANDROID_CONTROL_EFFECT_MODE_POSTERIZE:
1348                     msg = "POSTERIZE";
1349                     ret = 0;
1350                     break;
1351                 case ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD:
1352                     msg = "WHITEBOARD";
1353                     ret = 0;
1354                     break;
1355                 case ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD:
1356                     msg = "BLACKBOARD";
1357                     ret = 0;
1358                     break;
1359                 case ANDROID_CONTROL_EFFECT_MODE_AQUA:
1360                     msg = "AQUA";
1361                     ret = 0;
1362                     break;
1363                 default:
1364                     msg = "error: enum value out of range";
1365             }
1366             break;
1367         }
1368         case ANDROID_CONTROL_MODE: {
1369             switch (value) {
1370                 case ANDROID_CONTROL_MODE_OFF:
1371                     msg = "OFF";
1372                     ret = 0;
1373                     break;
1374                 case ANDROID_CONTROL_MODE_AUTO:
1375                     msg = "AUTO";
1376                     ret = 0;
1377                     break;
1378                 case ANDROID_CONTROL_MODE_USE_SCENE_MODE:
1379                     msg = "USE_SCENE_MODE";
1380                     ret = 0;
1381                     break;
1382                 case ANDROID_CONTROL_MODE_OFF_KEEP_STATE:
1383                     msg = "OFF_KEEP_STATE";
1384                     ret = 0;
1385                     break;
1386                 case ANDROID_CONTROL_MODE_USE_EXTENDED_SCENE_MODE:
1387                     msg = "USE_EXTENDED_SCENE_MODE";
1388                     ret = 0;
1389                     break;
1390                 default:
1391                     msg = "error: enum value out of range";
1392             }
1393             break;
1394         }
1395         case ANDROID_CONTROL_SCENE_MODE: {
1396             switch (value) {
1397                 case ANDROID_CONTROL_SCENE_MODE_DISABLED:
1398                     msg = "DISABLED";
1399                     ret = 0;
1400                     break;
1401                 case ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY:
1402                     msg = "FACE_PRIORITY";
1403                     ret = 0;
1404                     break;
1405                 case ANDROID_CONTROL_SCENE_MODE_ACTION:
1406                     msg = "ACTION";
1407                     ret = 0;
1408                     break;
1409                 case ANDROID_CONTROL_SCENE_MODE_PORTRAIT:
1410                     msg = "PORTRAIT";
1411                     ret = 0;
1412                     break;
1413                 case ANDROID_CONTROL_SCENE_MODE_LANDSCAPE:
1414                     msg = "LANDSCAPE";
1415                     ret = 0;
1416                     break;
1417                 case ANDROID_CONTROL_SCENE_MODE_NIGHT:
1418                     msg = "NIGHT";
1419                     ret = 0;
1420                     break;
1421                 case ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT:
1422                     msg = "NIGHT_PORTRAIT";
1423                     ret = 0;
1424                     break;
1425                 case ANDROID_CONTROL_SCENE_MODE_THEATRE:
1426                     msg = "THEATRE";
1427                     ret = 0;
1428                     break;
1429                 case ANDROID_CONTROL_SCENE_MODE_BEACH:
1430                     msg = "BEACH";
1431                     ret = 0;
1432                     break;
1433                 case ANDROID_CONTROL_SCENE_MODE_SNOW:
1434                     msg = "SNOW";
1435                     ret = 0;
1436                     break;
1437                 case ANDROID_CONTROL_SCENE_MODE_SUNSET:
1438                     msg = "SUNSET";
1439                     ret = 0;
1440                     break;
1441                 case ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO:
1442                     msg = "STEADYPHOTO";
1443                     ret = 0;
1444                     break;
1445                 case ANDROID_CONTROL_SCENE_MODE_FIREWORKS:
1446                     msg = "FIREWORKS";
1447                     ret = 0;
1448                     break;
1449                 case ANDROID_CONTROL_SCENE_MODE_SPORTS:
1450                     msg = "SPORTS";
1451                     ret = 0;
1452                     break;
1453                 case ANDROID_CONTROL_SCENE_MODE_PARTY:
1454                     msg = "PARTY";
1455                     ret = 0;
1456                     break;
1457                 case ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT:
1458                     msg = "CANDLELIGHT";
1459                     ret = 0;
1460                     break;
1461                 case ANDROID_CONTROL_SCENE_MODE_BARCODE:
1462                     msg = "BARCODE";
1463                     ret = 0;
1464                     break;
1465                 case ANDROID_CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO:
1466                     msg = "HIGH_SPEED_VIDEO";
1467                     ret = 0;
1468                     break;
1469                 case ANDROID_CONTROL_SCENE_MODE_HDR:
1470                     msg = "HDR";
1471                     ret = 0;
1472                     break;
1473                 case ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT:
1474                     msg = "FACE_PRIORITY_LOW_LIGHT";
1475                     ret = 0;
1476                     break;
1477                 case ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_START:
1478                     msg = "DEVICE_CUSTOM_START";
1479                     ret = 0;
1480                     break;
1481                 case ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_END:
1482                     msg = "DEVICE_CUSTOM_END";
1483                     ret = 0;
1484                     break;
1485                 default:
1486                     msg = "error: enum value out of range";
1487             }
1488             break;
1489         }
1490         case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE: {
1491             switch (value) {
1492                 case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF:
1493                     msg = "OFF";
1494                     ret = 0;
1495                     break;
1496                 case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON:
1497                     msg = "ON";
1498                     ret = 0;
1499                     break;
1500                 case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION:
1501                     msg = "PREVIEW_STABILIZATION";
1502                     ret = 0;
1503                     break;
1504                 default:
1505                     msg = "error: enum value out of range";
1506             }
1507             break;
1508         }
1509         case ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES: {
1510             break;
1511         }
1512         case ANDROID_CONTROL_AE_AVAILABLE_MODES: {
1513             break;
1514         }
1515         case ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES: {
1516             break;
1517         }
1518         case ANDROID_CONTROL_AE_COMPENSATION_RANGE: {
1519             break;
1520         }
1521         case ANDROID_CONTROL_AE_COMPENSATION_STEP: {
1522             break;
1523         }
1524         case ANDROID_CONTROL_AF_AVAILABLE_MODES: {
1525             break;
1526         }
1527         case ANDROID_CONTROL_AVAILABLE_EFFECTS: {
1528             break;
1529         }
1530         case ANDROID_CONTROL_AVAILABLE_SCENE_MODES: {
1531             break;
1532         }
1533         case ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES: {
1534             break;
1535         }
1536         case ANDROID_CONTROL_AWB_AVAILABLE_MODES: {
1537             break;
1538         }
1539         case ANDROID_CONTROL_MAX_REGIONS: {
1540             break;
1541         }
1542         case ANDROID_CONTROL_SCENE_MODE_OVERRIDES: {
1543             break;
1544         }
1545         case ANDROID_CONTROL_AE_PRECAPTURE_ID: {
1546             break;
1547         }
1548         case ANDROID_CONTROL_AE_STATE: {
1549             switch (value) {
1550                 case ANDROID_CONTROL_AE_STATE_INACTIVE:
1551                     msg = "INACTIVE";
1552                     ret = 0;
1553                     break;
1554                 case ANDROID_CONTROL_AE_STATE_SEARCHING:
1555                     msg = "SEARCHING";
1556                     ret = 0;
1557                     break;
1558                 case ANDROID_CONTROL_AE_STATE_CONVERGED:
1559                     msg = "CONVERGED";
1560                     ret = 0;
1561                     break;
1562                 case ANDROID_CONTROL_AE_STATE_LOCKED:
1563                     msg = "LOCKED";
1564                     ret = 0;
1565                     break;
1566                 case ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED:
1567                     msg = "FLASH_REQUIRED";
1568                     ret = 0;
1569                     break;
1570                 case ANDROID_CONTROL_AE_STATE_PRECAPTURE:
1571                     msg = "PRECAPTURE";
1572                     ret = 0;
1573                     break;
1574                 default:
1575                     msg = "error: enum value out of range";
1576             }
1577             break;
1578         }
1579         case ANDROID_CONTROL_AF_STATE: {
1580             switch (value) {
1581                 case ANDROID_CONTROL_AF_STATE_INACTIVE:
1582                     msg = "INACTIVE";
1583                     ret = 0;
1584                     break;
1585                 case ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN:
1586                     msg = "PASSIVE_SCAN";
1587                     ret = 0;
1588                     break;
1589                 case ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED:
1590                     msg = "PASSIVE_FOCUSED";
1591                     ret = 0;
1592                     break;
1593                 case ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN:
1594                     msg = "ACTIVE_SCAN";
1595                     ret = 0;
1596                     break;
1597                 case ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED:
1598                     msg = "FOCUSED_LOCKED";
1599                     ret = 0;
1600                     break;
1601                 case ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED:
1602                     msg = "NOT_FOCUSED_LOCKED";
1603                     ret = 0;
1604                     break;
1605                 case ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED:
1606                     msg = "PASSIVE_UNFOCUSED";
1607                     ret = 0;
1608                     break;
1609                 default:
1610                     msg = "error: enum value out of range";
1611             }
1612             break;
1613         }
1614         case ANDROID_CONTROL_AF_TRIGGER_ID: {
1615             break;
1616         }
1617         case ANDROID_CONTROL_AWB_STATE: {
1618             switch (value) {
1619                 case ANDROID_CONTROL_AWB_STATE_INACTIVE:
1620                     msg = "INACTIVE";
1621                     ret = 0;
1622                     break;
1623                 case ANDROID_CONTROL_AWB_STATE_SEARCHING:
1624                     msg = "SEARCHING";
1625                     ret = 0;
1626                     break;
1627                 case ANDROID_CONTROL_AWB_STATE_CONVERGED:
1628                     msg = "CONVERGED";
1629                     ret = 0;
1630                     break;
1631                 case ANDROID_CONTROL_AWB_STATE_LOCKED:
1632                     msg = "LOCKED";
1633                     ret = 0;
1634                     break;
1635                 default:
1636                     msg = "error: enum value out of range";
1637             }
1638             break;
1639         }
1640         case ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS: {
1641             break;
1642         }
1643         case ANDROID_CONTROL_AE_LOCK_AVAILABLE: {
1644             switch (value) {
1645                 case ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE:
1646                     msg = "FALSE";
1647                     ret = 0;
1648                     break;
1649                 case ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE:
1650                     msg = "TRUE";
1651                     ret = 0;
1652                     break;
1653                 default:
1654                     msg = "error: enum value out of range";
1655             }
1656             break;
1657         }
1658         case ANDROID_CONTROL_AWB_LOCK_AVAILABLE: {
1659             switch (value) {
1660                 case ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE:
1661                     msg = "FALSE";
1662                     ret = 0;
1663                     break;
1664                 case ANDROID_CONTROL_AWB_LOCK_AVAILABLE_TRUE:
1665                     msg = "TRUE";
1666                     ret = 0;
1667                     break;
1668                 default:
1669                     msg = "error: enum value out of range";
1670             }
1671             break;
1672         }
1673         case ANDROID_CONTROL_AVAILABLE_MODES: {
1674             break;
1675         }
1676         case ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE: {
1677             break;
1678         }
1679         case ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST: {
1680             break;
1681         }
1682         case ANDROID_CONTROL_ENABLE_ZSL: {
1683             switch (value) {
1684                 case ANDROID_CONTROL_ENABLE_ZSL_FALSE:
1685                     msg = "FALSE";
1686                     ret = 0;
1687                     break;
1688                 case ANDROID_CONTROL_ENABLE_ZSL_TRUE:
1689                     msg = "TRUE";
1690                     ret = 0;
1691                     break;
1692                 default:
1693                     msg = "error: enum value out of range";
1694             }
1695             break;
1696         }
1697         case ANDROID_CONTROL_AF_SCENE_CHANGE: {
1698             switch (value) {
1699                 case ANDROID_CONTROL_AF_SCENE_CHANGE_NOT_DETECTED:
1700                     msg = "NOT_DETECTED";
1701                     ret = 0;
1702                     break;
1703                 case ANDROID_CONTROL_AF_SCENE_CHANGE_DETECTED:
1704                     msg = "DETECTED";
1705                     ret = 0;
1706                     break;
1707                 default:
1708                     msg = "error: enum value out of range";
1709             }
1710             break;
1711         }
1712         case ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES: {
1713             break;
1714         }
1715         case ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES: {
1716             break;
1717         }
1718         case ANDROID_CONTROL_EXTENDED_SCENE_MODE: {
1719             switch (value) {
1720                 case ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED:
1721                     msg = "DISABLED";
1722                     ret = 0;
1723                     break;
1724                 case ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE:
1725                     msg = "BOKEH_STILL_CAPTURE";
1726                     ret = 0;
1727                     break;
1728                 case ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS:
1729                     msg = "BOKEH_CONTINUOUS";
1730                     ret = 0;
1731                     break;
1732                 case ANDROID_CONTROL_EXTENDED_SCENE_MODE_VENDOR_START:
1733                     msg = "VENDOR_START";
1734                     ret = 0;
1735                     break;
1736                 default:
1737                     msg = "error: enum value out of range";
1738             }
1739             break;
1740         }
1741         case ANDROID_CONTROL_ZOOM_RATIO_RANGE: {
1742             break;
1743         }
1744         case ANDROID_CONTROL_ZOOM_RATIO: {
1745             break;
1746         }
1747         case ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
1748             break;
1749         }
1750         case ANDROID_CONTROL_AF_REGIONS_SET: {
1751             switch (value) {
1752                 case ANDROID_CONTROL_AF_REGIONS_SET_FALSE:
1753                     msg = "FALSE";
1754                     ret = 0;
1755                     break;
1756                 case ANDROID_CONTROL_AF_REGIONS_SET_TRUE:
1757                     msg = "TRUE";
1758                     ret = 0;
1759                     break;
1760                 default:
1761                     msg = "error: enum value out of range";
1762             }
1763             break;
1764         }
1765         case ANDROID_CONTROL_AE_REGIONS_SET: {
1766             switch (value) {
1767                 case ANDROID_CONTROL_AE_REGIONS_SET_FALSE:
1768                     msg = "FALSE";
1769                     ret = 0;
1770                     break;
1771                 case ANDROID_CONTROL_AE_REGIONS_SET_TRUE:
1772                     msg = "TRUE";
1773                     ret = 0;
1774                     break;
1775                 default:
1776                     msg = "error: enum value out of range";
1777             }
1778             break;
1779         }
1780         case ANDROID_CONTROL_AWB_REGIONS_SET: {
1781             switch (value) {
1782                 case ANDROID_CONTROL_AWB_REGIONS_SET_FALSE:
1783                     msg = "FALSE";
1784                     ret = 0;
1785                     break;
1786                 case ANDROID_CONTROL_AWB_REGIONS_SET_TRUE:
1787                     msg = "TRUE";
1788                     ret = 0;
1789                     break;
1790                 default:
1791                     msg = "error: enum value out of range";
1792             }
1793             break;
1794         }
1795         case ANDROID_CONTROL_SETTINGS_OVERRIDE: {
1796             switch (value) {
1797                 case ANDROID_CONTROL_SETTINGS_OVERRIDE_OFF:
1798                     msg = "OFF";
1799                     ret = 0;
1800                     break;
1801                 case ANDROID_CONTROL_SETTINGS_OVERRIDE_ZOOM:
1802                     msg = "ZOOM";
1803                     ret = 0;
1804                     break;
1805                 case ANDROID_CONTROL_SETTINGS_OVERRIDE_VENDOR_START:
1806                     msg = "VENDOR_START";
1807                     ret = 0;
1808                     break;
1809                 default:
1810                     msg = "error: enum value out of range";
1811             }
1812             break;
1813         }
1814         case ANDROID_CONTROL_AVAILABLE_SETTINGS_OVERRIDES: {
1815             break;
1816         }
1817         case ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER: {
1818             break;
1819         }
1820         case ANDROID_CONTROL_AUTOFRAMING: {
1821             switch (value) {
1822                 case ANDROID_CONTROL_AUTOFRAMING_OFF:
1823                     msg = "OFF";
1824                     ret = 0;
1825                     break;
1826                 case ANDROID_CONTROL_AUTOFRAMING_ON:
1827                     msg = "ON";
1828                     ret = 0;
1829                     break;
1830                 case ANDROID_CONTROL_AUTOFRAMING_AUTO:
1831                     msg = "AUTO";
1832                     ret = 0;
1833                     break;
1834                 default:
1835                     msg = "error: enum value out of range";
1836             }
1837             break;
1838         }
1839         case ANDROID_CONTROL_AUTOFRAMING_AVAILABLE: {
1840             switch (value) {
1841                 case ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_FALSE:
1842                     msg = "FALSE";
1843                     ret = 0;
1844                     break;
1845                 case ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_TRUE:
1846                     msg = "TRUE";
1847                     ret = 0;
1848                     break;
1849                 default:
1850                     msg = "error: enum value out of range";
1851             }
1852             break;
1853         }
1854         case ANDROID_CONTROL_AUTOFRAMING_STATE: {
1855             switch (value) {
1856                 case ANDROID_CONTROL_AUTOFRAMING_STATE_INACTIVE:
1857                     msg = "INACTIVE";
1858                     ret = 0;
1859                     break;
1860                 case ANDROID_CONTROL_AUTOFRAMING_STATE_FRAMING:
1861                     msg = "FRAMING";
1862                     ret = 0;
1863                     break;
1864                 case ANDROID_CONTROL_AUTOFRAMING_STATE_CONVERGED:
1865                     msg = "CONVERGED";
1866                     ret = 0;
1867                     break;
1868                 default:
1869                     msg = "error: enum value out of range";
1870             }
1871             break;
1872         }
1873 
1874         case ANDROID_DEMOSAIC_MODE: {
1875             switch (value) {
1876                 case ANDROID_DEMOSAIC_MODE_FAST:
1877                     msg = "FAST";
1878                     ret = 0;
1879                     break;
1880                 case ANDROID_DEMOSAIC_MODE_HIGH_QUALITY:
1881                     msg = "HIGH_QUALITY";
1882                     ret = 0;
1883                     break;
1884                 default:
1885                     msg = "error: enum value out of range";
1886             }
1887             break;
1888         }
1889 
1890         case ANDROID_EDGE_MODE: {
1891             switch (value) {
1892                 case ANDROID_EDGE_MODE_OFF:
1893                     msg = "OFF";
1894                     ret = 0;
1895                     break;
1896                 case ANDROID_EDGE_MODE_FAST:
1897                     msg = "FAST";
1898                     ret = 0;
1899                     break;
1900                 case ANDROID_EDGE_MODE_HIGH_QUALITY:
1901                     msg = "HIGH_QUALITY";
1902                     ret = 0;
1903                     break;
1904                 case ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG:
1905                     msg = "ZERO_SHUTTER_LAG";
1906                     ret = 0;
1907                     break;
1908                 default:
1909                     msg = "error: enum value out of range";
1910             }
1911             break;
1912         }
1913         case ANDROID_EDGE_STRENGTH: {
1914             break;
1915         }
1916         case ANDROID_EDGE_AVAILABLE_EDGE_MODES: {
1917             break;
1918         }
1919 
1920         case ANDROID_FLASH_FIRING_POWER: {
1921             break;
1922         }
1923         case ANDROID_FLASH_FIRING_TIME: {
1924             break;
1925         }
1926         case ANDROID_FLASH_MODE: {
1927             switch (value) {
1928                 case ANDROID_FLASH_MODE_OFF:
1929                     msg = "OFF";
1930                     ret = 0;
1931                     break;
1932                 case ANDROID_FLASH_MODE_SINGLE:
1933                     msg = "SINGLE";
1934                     ret = 0;
1935                     break;
1936                 case ANDROID_FLASH_MODE_TORCH:
1937                     msg = "TORCH";
1938                     ret = 0;
1939                     break;
1940                 default:
1941                     msg = "error: enum value out of range";
1942             }
1943             break;
1944         }
1945         case ANDROID_FLASH_COLOR_TEMPERATURE: {
1946             break;
1947         }
1948         case ANDROID_FLASH_MAX_ENERGY: {
1949             break;
1950         }
1951         case ANDROID_FLASH_STATE: {
1952             switch (value) {
1953                 case ANDROID_FLASH_STATE_UNAVAILABLE:
1954                     msg = "UNAVAILABLE";
1955                     ret = 0;
1956                     break;
1957                 case ANDROID_FLASH_STATE_CHARGING:
1958                     msg = "CHARGING";
1959                     ret = 0;
1960                     break;
1961                 case ANDROID_FLASH_STATE_READY:
1962                     msg = "READY";
1963                     ret = 0;
1964                     break;
1965                 case ANDROID_FLASH_STATE_FIRED:
1966                     msg = "FIRED";
1967                     ret = 0;
1968                     break;
1969                 case ANDROID_FLASH_STATE_PARTIAL:
1970                     msg = "PARTIAL";
1971                     ret = 0;
1972                     break;
1973                 default:
1974                     msg = "error: enum value out of range";
1975             }
1976             break;
1977         }
1978 
1979         case ANDROID_FLASH_INFO_AVAILABLE: {
1980             switch (value) {
1981                 case ANDROID_FLASH_INFO_AVAILABLE_FALSE:
1982                     msg = "FALSE";
1983                     ret = 0;
1984                     break;
1985                 case ANDROID_FLASH_INFO_AVAILABLE_TRUE:
1986                     msg = "TRUE";
1987                     ret = 0;
1988                     break;
1989                 default:
1990                     msg = "error: enum value out of range";
1991             }
1992             break;
1993         }
1994         case ANDROID_FLASH_INFO_CHARGE_DURATION: {
1995             break;
1996         }
1997         case ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL: {
1998             break;
1999         }
2000         case ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL: {
2001             break;
2002         }
2003 
2004         case ANDROID_HOT_PIXEL_MODE: {
2005             switch (value) {
2006                 case ANDROID_HOT_PIXEL_MODE_OFF:
2007                     msg = "OFF";
2008                     ret = 0;
2009                     break;
2010                 case ANDROID_HOT_PIXEL_MODE_FAST:
2011                     msg = "FAST";
2012                     ret = 0;
2013                     break;
2014                 case ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY:
2015                     msg = "HIGH_QUALITY";
2016                     ret = 0;
2017                     break;
2018                 default:
2019                     msg = "error: enum value out of range";
2020             }
2021             break;
2022         }
2023         case ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES: {
2024             break;
2025         }
2026 
2027         case ANDROID_JPEG_GPS_COORDINATES: {
2028             break;
2029         }
2030         case ANDROID_JPEG_GPS_PROCESSING_METHOD: {
2031             break;
2032         }
2033         case ANDROID_JPEG_GPS_TIMESTAMP: {
2034             break;
2035         }
2036         case ANDROID_JPEG_ORIENTATION: {
2037             break;
2038         }
2039         case ANDROID_JPEG_QUALITY: {
2040             break;
2041         }
2042         case ANDROID_JPEG_THUMBNAIL_QUALITY: {
2043             break;
2044         }
2045         case ANDROID_JPEG_THUMBNAIL_SIZE: {
2046             break;
2047         }
2048         case ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES: {
2049             break;
2050         }
2051         case ANDROID_JPEG_MAX_SIZE: {
2052             break;
2053         }
2054         case ANDROID_JPEG_SIZE: {
2055             break;
2056         }
2057 
2058         case ANDROID_LENS_APERTURE: {
2059             break;
2060         }
2061         case ANDROID_LENS_FILTER_DENSITY: {
2062             break;
2063         }
2064         case ANDROID_LENS_FOCAL_LENGTH: {
2065             break;
2066         }
2067         case ANDROID_LENS_FOCUS_DISTANCE: {
2068             break;
2069         }
2070         case ANDROID_LENS_OPTICAL_STABILIZATION_MODE: {
2071             switch (value) {
2072                 case ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF:
2073                     msg = "OFF";
2074                     ret = 0;
2075                     break;
2076                 case ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON:
2077                     msg = "ON";
2078                     ret = 0;
2079                     break;
2080                 default:
2081                     msg = "error: enum value out of range";
2082             }
2083             break;
2084         }
2085         case ANDROID_LENS_FACING: {
2086             switch (value) {
2087                 case ANDROID_LENS_FACING_FRONT:
2088                     msg = "FRONT";
2089                     ret = 0;
2090                     break;
2091                 case ANDROID_LENS_FACING_BACK:
2092                     msg = "BACK";
2093                     ret = 0;
2094                     break;
2095                 case ANDROID_LENS_FACING_EXTERNAL:
2096                     msg = "EXTERNAL";
2097                     ret = 0;
2098                     break;
2099                 default:
2100                     msg = "error: enum value out of range";
2101             }
2102             break;
2103         }
2104         case ANDROID_LENS_POSE_ROTATION: {
2105             break;
2106         }
2107         case ANDROID_LENS_POSE_TRANSLATION: {
2108             break;
2109         }
2110         case ANDROID_LENS_FOCUS_RANGE: {
2111             break;
2112         }
2113         case ANDROID_LENS_STATE: {
2114             switch (value) {
2115                 case ANDROID_LENS_STATE_STATIONARY:
2116                     msg = "STATIONARY";
2117                     ret = 0;
2118                     break;
2119                 case ANDROID_LENS_STATE_MOVING:
2120                     msg = "MOVING";
2121                     ret = 0;
2122                     break;
2123                 default:
2124                     msg = "error: enum value out of range";
2125             }
2126             break;
2127         }
2128         case ANDROID_LENS_INTRINSIC_CALIBRATION: {
2129             break;
2130         }
2131         case ANDROID_LENS_RADIAL_DISTORTION: {
2132             break;
2133         }
2134         case ANDROID_LENS_POSE_REFERENCE: {
2135             switch (value) {
2136                 case ANDROID_LENS_POSE_REFERENCE_PRIMARY_CAMERA:
2137                     msg = "PRIMARY_CAMERA";
2138                     ret = 0;
2139                     break;
2140                 case ANDROID_LENS_POSE_REFERENCE_GYROSCOPE:
2141                     msg = "GYROSCOPE";
2142                     ret = 0;
2143                     break;
2144                 case ANDROID_LENS_POSE_REFERENCE_UNDEFINED:
2145                     msg = "UNDEFINED";
2146                     ret = 0;
2147                     break;
2148                 case ANDROID_LENS_POSE_REFERENCE_AUTOMOTIVE:
2149                     msg = "AUTOMOTIVE";
2150                     ret = 0;
2151                     break;
2152                 default:
2153                     msg = "error: enum value out of range";
2154             }
2155             break;
2156         }
2157         case ANDROID_LENS_DISTORTION: {
2158             break;
2159         }
2160         case ANDROID_LENS_DISTORTION_MAXIMUM_RESOLUTION: {
2161             break;
2162         }
2163         case ANDROID_LENS_INTRINSIC_CALIBRATION_MAXIMUM_RESOLUTION: {
2164             break;
2165         }
2166 
2167         case ANDROID_LENS_INFO_AVAILABLE_APERTURES: {
2168             break;
2169         }
2170         case ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES: {
2171             break;
2172         }
2173         case ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS: {
2174             break;
2175         }
2176         case ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION: {
2177             break;
2178         }
2179         case ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE: {
2180             break;
2181         }
2182         case ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE: {
2183             break;
2184         }
2185         case ANDROID_LENS_INFO_SHADING_MAP_SIZE: {
2186             break;
2187         }
2188         case ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION: {
2189             switch (value) {
2190                 case ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED:
2191                     msg = "UNCALIBRATED";
2192                     ret = 0;
2193                     break;
2194                 case ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE:
2195                     msg = "APPROXIMATE";
2196                     ret = 0;
2197                     break;
2198                 case ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED:
2199                     msg = "CALIBRATED";
2200                     ret = 0;
2201                     break;
2202                 default:
2203                     msg = "error: enum value out of range";
2204             }
2205             break;
2206         }
2207 
2208         case ANDROID_NOISE_REDUCTION_MODE: {
2209             switch (value) {
2210                 case ANDROID_NOISE_REDUCTION_MODE_OFF:
2211                     msg = "OFF";
2212                     ret = 0;
2213                     break;
2214                 case ANDROID_NOISE_REDUCTION_MODE_FAST:
2215                     msg = "FAST";
2216                     ret = 0;
2217                     break;
2218                 case ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY:
2219                     msg = "HIGH_QUALITY";
2220                     ret = 0;
2221                     break;
2222                 case ANDROID_NOISE_REDUCTION_MODE_MINIMAL:
2223                     msg = "MINIMAL";
2224                     ret = 0;
2225                     break;
2226                 case ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG:
2227                     msg = "ZERO_SHUTTER_LAG";
2228                     ret = 0;
2229                     break;
2230                 default:
2231                     msg = "error: enum value out of range";
2232             }
2233             break;
2234         }
2235         case ANDROID_NOISE_REDUCTION_STRENGTH: {
2236             break;
2237         }
2238         case ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES: {
2239             break;
2240         }
2241 
2242         case ANDROID_QUIRKS_METERING_CROP_REGION: {
2243             break;
2244         }
2245         case ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO: {
2246             break;
2247         }
2248         case ANDROID_QUIRKS_USE_ZSL_FORMAT: {
2249             break;
2250         }
2251         case ANDROID_QUIRKS_USE_PARTIAL_RESULT: {
2252             break;
2253         }
2254         case ANDROID_QUIRKS_PARTIAL_RESULT: {
2255             switch (value) {
2256                 case ANDROID_QUIRKS_PARTIAL_RESULT_FINAL:
2257                     msg = "FINAL";
2258                     ret = 0;
2259                     break;
2260                 case ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL:
2261                     msg = "PARTIAL";
2262                     ret = 0;
2263                     break;
2264                 default:
2265                     msg = "error: enum value out of range";
2266             }
2267             break;
2268         }
2269 
2270         case ANDROID_REQUEST_FRAME_COUNT: {
2271             break;
2272         }
2273         case ANDROID_REQUEST_ID: {
2274             break;
2275         }
2276         case ANDROID_REQUEST_INPUT_STREAMS: {
2277             break;
2278         }
2279         case ANDROID_REQUEST_METADATA_MODE: {
2280             switch (value) {
2281                 case ANDROID_REQUEST_METADATA_MODE_NONE:
2282                     msg = "NONE";
2283                     ret = 0;
2284                     break;
2285                 case ANDROID_REQUEST_METADATA_MODE_FULL:
2286                     msg = "FULL";
2287                     ret = 0;
2288                     break;
2289                 default:
2290                     msg = "error: enum value out of range";
2291             }
2292             break;
2293         }
2294         case ANDROID_REQUEST_OUTPUT_STREAMS: {
2295             break;
2296         }
2297         case ANDROID_REQUEST_TYPE: {
2298             switch (value) {
2299                 case ANDROID_REQUEST_TYPE_CAPTURE:
2300                     msg = "CAPTURE";
2301                     ret = 0;
2302                     break;
2303                 case ANDROID_REQUEST_TYPE_REPROCESS:
2304                     msg = "REPROCESS";
2305                     ret = 0;
2306                     break;
2307                 default:
2308                     msg = "error: enum value out of range";
2309             }
2310             break;
2311         }
2312         case ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS: {
2313             break;
2314         }
2315         case ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS: {
2316             break;
2317         }
2318         case ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS: {
2319             break;
2320         }
2321         case ANDROID_REQUEST_PIPELINE_DEPTH: {
2322             break;
2323         }
2324         case ANDROID_REQUEST_PIPELINE_MAX_DEPTH: {
2325             break;
2326         }
2327         case ANDROID_REQUEST_PARTIAL_RESULT_COUNT: {
2328             break;
2329         }
2330         case ANDROID_REQUEST_AVAILABLE_CAPABILITIES: {
2331             switch (value) {
2332                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE:
2333                     msg = "BACKWARD_COMPATIBLE";
2334                     ret = 0;
2335                     break;
2336                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR:
2337                     msg = "MANUAL_SENSOR";
2338                     ret = 0;
2339                     break;
2340                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING:
2341                     msg = "MANUAL_POST_PROCESSING";
2342                     ret = 0;
2343                     break;
2344                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW:
2345                     msg = "RAW";
2346                     ret = 0;
2347                     break;
2348                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING:
2349                     msg = "PRIVATE_REPROCESSING";
2350                     ret = 0;
2351                     break;
2352                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS:
2353                     msg = "READ_SENSOR_SETTINGS";
2354                     ret = 0;
2355                     break;
2356                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE:
2357                     msg = "BURST_CAPTURE";
2358                     ret = 0;
2359                     break;
2360                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING:
2361                     msg = "YUV_REPROCESSING";
2362                     ret = 0;
2363                     break;
2364                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT:
2365                     msg = "DEPTH_OUTPUT";
2366                     ret = 0;
2367                     break;
2368                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO:
2369                     msg = "CONSTRAINED_HIGH_SPEED_VIDEO";
2370                     ret = 0;
2371                     break;
2372                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING:
2373                     msg = "MOTION_TRACKING";
2374                     ret = 0;
2375                     break;
2376                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA:
2377                     msg = "LOGICAL_MULTI_CAMERA";
2378                     ret = 0;
2379                     break;
2380                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME:
2381                     msg = "MONOCHROME";
2382                     ret = 0;
2383                     break;
2384                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA:
2385                     msg = "SECURE_IMAGE_DATA";
2386                     ret = 0;
2387                     break;
2388                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA:
2389                     msg = "SYSTEM_CAMERA";
2390                     ret = 0;
2391                     break;
2392                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING:
2393                     msg = "OFFLINE_PROCESSING";
2394                     ret = 0;
2395                     break;
2396                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR:
2397                     msg = "ULTRA_HIGH_RESOLUTION_SENSOR";
2398                     ret = 0;
2399                     break;
2400                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSING:
2401                     msg = "REMOSAIC_REPROCESSING";
2402                     ret = 0;
2403                     break;
2404                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT:
2405                     msg = "DYNAMIC_RANGE_TEN_BIT";
2406                     ret = 0;
2407                     break;
2408                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE:
2409                     msg = "STREAM_USE_CASE";
2410                     ret = 0;
2411                     break;
2412                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILES:
2413                     msg = "COLOR_SPACE_PROFILES";
2414                     ret = 0;
2415                     break;
2416                 default:
2417                     msg = "error: enum value out of range";
2418             }
2419             break;
2420         }
2421         case ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS: {
2422             break;
2423         }
2424         case ANDROID_REQUEST_AVAILABLE_RESULT_KEYS: {
2425             break;
2426         }
2427         case ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS: {
2428             break;
2429         }
2430         case ANDROID_REQUEST_AVAILABLE_SESSION_KEYS: {
2431             break;
2432         }
2433         case ANDROID_REQUEST_AVAILABLE_PHYSICAL_CAMERA_REQUEST_KEYS: {
2434             break;
2435         }
2436         case ANDROID_REQUEST_CHARACTERISTIC_KEYS_NEEDING_PERMISSION: {
2437             break;
2438         }
2439         case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP: {
2440             switch (value) {
2441                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD:
2442                     msg = "STANDARD";
2443                     ret = 0;
2444                     break;
2445                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HLG10:
2446                     msg = "HLG10";
2447                     ret = 0;
2448                     break;
2449                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10:
2450                     msg = "HDR10";
2451                     ret = 0;
2452                     break;
2453                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10_PLUS:
2454                     msg = "HDR10_PLUS";
2455                     ret = 0;
2456                     break;
2457                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF:
2458                     msg = "DOLBY_VISION_10B_HDR_REF";
2459                     ret = 0;
2460                     break;
2461                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF_PO:
2462                     msg = "DOLBY_VISION_10B_HDR_REF_PO";
2463                     ret = 0;
2464                     break;
2465                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM:
2466                     msg = "DOLBY_VISION_10B_HDR_OEM";
2467                     ret = 0;
2468                     break;
2469                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM_PO:
2470                     msg = "DOLBY_VISION_10B_HDR_OEM_PO";
2471                     ret = 0;
2472                     break;
2473                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF:
2474                     msg = "DOLBY_VISION_8B_HDR_REF";
2475                     ret = 0;
2476                     break;
2477                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF_PO:
2478                     msg = "DOLBY_VISION_8B_HDR_REF_PO";
2479                     ret = 0;
2480                     break;
2481                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM:
2482                     msg = "DOLBY_VISION_8B_HDR_OEM";
2483                     ret = 0;
2484                     break;
2485                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM_PO:
2486                     msg = "DOLBY_VISION_8B_HDR_OEM_PO";
2487                     ret = 0;
2488                     break;
2489                 case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_MAX:
2490                     msg = "MAX";
2491                     ret = 0;
2492                     break;
2493                 default:
2494                     msg = "error: enum value out of range";
2495             }
2496             break;
2497         }
2498         case ANDROID_REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE: {
2499             break;
2500         }
2501         case ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP: {
2502             switch (value) {
2503                 case ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_UNSPECIFIED:
2504                     msg = "UNSPECIFIED";
2505                     ret = 0;
2506                     break;
2507                 case ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_SRGB:
2508                     msg = "SRGB";
2509                     ret = 0;
2510                     break;
2511                 case ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_DISPLAY_P3:
2512                     msg = "DISPLAY_P3";
2513                     ret = 0;
2514                     break;
2515                 case ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_BT2020_HLG:
2516                     msg = "BT2020_HLG";
2517                     ret = 0;
2518                     break;
2519                 default:
2520                     msg = "error: enum value out of range";
2521             }
2522             break;
2523         }
2524 
2525         case ANDROID_SCALER_CROP_REGION: {
2526             break;
2527         }
2528         case ANDROID_SCALER_AVAILABLE_FORMATS: {
2529             switch (value) {
2530                 case ANDROID_SCALER_AVAILABLE_FORMATS_RAW16:
2531                     msg = "RAW16";
2532                     ret = 0;
2533                     break;
2534                 case ANDROID_SCALER_AVAILABLE_FORMATS_RAW_OPAQUE:
2535                     msg = "RAW_OPAQUE";
2536                     ret = 0;
2537                     break;
2538                 case ANDROID_SCALER_AVAILABLE_FORMATS_YV12:
2539                     msg = "YV12";
2540                     ret = 0;
2541                     break;
2542                 case ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP:
2543                     msg = "YCrCb_420_SP";
2544                     ret = 0;
2545                     break;
2546                 case ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED:
2547                     msg = "IMPLEMENTATION_DEFINED";
2548                     ret = 0;
2549                     break;
2550                 case ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888:
2551                     msg = "YCbCr_420_888";
2552                     ret = 0;
2553                     break;
2554                 case ANDROID_SCALER_AVAILABLE_FORMATS_BLOB:
2555                     msg = "BLOB";
2556                     ret = 0;
2557                     break;
2558                 case ANDROID_SCALER_AVAILABLE_FORMATS_RAW10:
2559                     msg = "RAW10";
2560                     ret = 0;
2561                     break;
2562                 case ANDROID_SCALER_AVAILABLE_FORMATS_RAW12:
2563                     msg = "RAW12";
2564                     ret = 0;
2565                     break;
2566                 case ANDROID_SCALER_AVAILABLE_FORMATS_Y8:
2567                     msg = "Y8";
2568                     ret = 0;
2569                     break;
2570                 default:
2571                     msg = "error: enum value out of range";
2572             }
2573             break;
2574         }
2575         case ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS: {
2576             break;
2577         }
2578         case ANDROID_SCALER_AVAILABLE_JPEG_SIZES: {
2579             break;
2580         }
2581         case ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM: {
2582             break;
2583         }
2584         case ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS: {
2585             break;
2586         }
2587         case ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES: {
2588             break;
2589         }
2590         case ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS: {
2591             break;
2592         }
2593         case ANDROID_SCALER_AVAILABLE_RAW_SIZES: {
2594             break;
2595         }
2596         case ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP: {
2597             break;
2598         }
2599         case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS: {
2600             switch (value) {
2601                 case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT:
2602                     msg = "OUTPUT";
2603                     ret = 0;
2604                     break;
2605                 case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT:
2606                     msg = "INPUT";
2607                     ret = 0;
2608                     break;
2609                 default:
2610                     msg = "error: enum value out of range";
2611             }
2612             break;
2613         }
2614         case ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS: {
2615             break;
2616         }
2617         case ANDROID_SCALER_AVAILABLE_STALL_DURATIONS: {
2618             break;
2619         }
2620         case ANDROID_SCALER_CROPPING_TYPE: {
2621             switch (value) {
2622                 case ANDROID_SCALER_CROPPING_TYPE_CENTER_ONLY:
2623                     msg = "CENTER_ONLY";
2624                     ret = 0;
2625                     break;
2626                 case ANDROID_SCALER_CROPPING_TYPE_FREEFORM:
2627                     msg = "FREEFORM";
2628                     ret = 0;
2629                     break;
2630                 default:
2631                     msg = "error: enum value out of range";
2632             }
2633             break;
2634         }
2635         case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS: {
2636             switch (value) {
2637                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PREVIEW:
2638                     msg = "PREVIEW";
2639                     ret = 0;
2640                     break;
2641                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RECORD:
2642                     msg = "RECORD";
2643                     ret = 0;
2644                     break;
2645                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VIDEO_SNAPSHOT:
2646                     msg = "VIDEO_SNAPSHOT";
2647                     ret = 0;
2648                     break;
2649                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_SNAPSHOT:
2650                     msg = "SNAPSHOT";
2651                     ret = 0;
2652                     break;
2653                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_ZSL:
2654                     msg = "ZSL";
2655                     ret = 0;
2656                     break;
2657                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RAW:
2658                     msg = "RAW";
2659                     ret = 0;
2660                     break;
2661                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_LOW_LATENCY_SNAPSHOT:
2662                     msg = "LOW_LATENCY_SNAPSHOT";
2663                     ret = 0;
2664                     break;
2665                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PUBLIC_END:
2666                     msg = "PUBLIC_END";
2667                     ret = 0;
2668                     break;
2669                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_10BIT_OUTPUT:
2670                     msg = "10BIT_OUTPUT";
2671                     ret = 0;
2672                     break;
2673                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PUBLIC_END_3_8:
2674                     msg = "PUBLIC_END_3_8";
2675                     ret = 0;
2676                     break;
2677                 case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VENDOR_START:
2678                     msg = "VENDOR_START";
2679                     ret = 0;
2680                     break;
2681                 default:
2682                     msg = "error: enum value out of range";
2683             }
2684             break;
2685         }
2686         case ANDROID_SCALER_AVAILABLE_RECOMMENDED_INPUT_OUTPUT_FORMATS_MAP: {
2687             break;
2688         }
2689         case ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES: {
2690             break;
2691         }
2692         case ANDROID_SCALER_ROTATE_AND_CROP: {
2693             switch (value) {
2694                 case ANDROID_SCALER_ROTATE_AND_CROP_NONE:
2695                     msg = "NONE";
2696                     ret = 0;
2697                     break;
2698                 case ANDROID_SCALER_ROTATE_AND_CROP_90:
2699                     msg = "90";
2700                     ret = 0;
2701                     break;
2702                 case ANDROID_SCALER_ROTATE_AND_CROP_180:
2703                     msg = "180";
2704                     ret = 0;
2705                     break;
2706                 case ANDROID_SCALER_ROTATE_AND_CROP_270:
2707                     msg = "270";
2708                     ret = 0;
2709                     break;
2710                 case ANDROID_SCALER_ROTATE_AND_CROP_AUTO:
2711                     msg = "AUTO";
2712                     ret = 0;
2713                     break;
2714                 default:
2715                     msg = "error: enum value out of range";
2716             }
2717             break;
2718         }
2719         case ANDROID_SCALER_DEFAULT_SECURE_IMAGE_SIZE: {
2720             break;
2721         }
2722         case ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS: {
2723             switch (value) {
2724                 case ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_OUTPUT:
2725                     msg = "OUTPUT";
2726                     ret = 0;
2727                     break;
2728                 case ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_INPUT:
2729                     msg = "INPUT";
2730                     ret = 0;
2731                     break;
2732                 default:
2733                     msg = "error: enum value out of range";
2734             }
2735             break;
2736         }
2737         case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
2738             switch (value) {
2739                 case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT:
2740                     msg = "OUTPUT";
2741                     ret = 0;
2742                     break;
2743                 case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT:
2744                     msg = "INPUT";
2745                     ret = 0;
2746                     break;
2747                 default:
2748                     msg = "error: enum value out of range";
2749             }
2750             break;
2751         }
2752         case ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION: {
2753             break;
2754         }
2755         case ANDROID_SCALER_AVAILABLE_STALL_DURATIONS_MAXIMUM_RESOLUTION: {
2756             break;
2757         }
2758         case ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP_MAXIMUM_RESOLUTION: {
2759             break;
2760         }
2761         case ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED: {
2762             switch (value) {
2763                 case ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_FALSE:
2764                     msg = "FALSE";
2765                     ret = 0;
2766                     break;
2767                 case ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_TRUE:
2768                     msg = "TRUE";
2769                     ret = 0;
2770                     break;
2771                 default:
2772                     msg = "error: enum value out of range";
2773             }
2774             break;
2775         }
2776         case ANDROID_SCALER_CROP_REGION_SET: {
2777             switch (value) {
2778                 case ANDROID_SCALER_CROP_REGION_SET_FALSE:
2779                     msg = "FALSE";
2780                     ret = 0;
2781                     break;
2782                 case ANDROID_SCALER_CROP_REGION_SET_TRUE:
2783                     msg = "TRUE";
2784                     ret = 0;
2785                     break;
2786                 default:
2787                     msg = "error: enum value out of range";
2788             }
2789             break;
2790         }
2791         case ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES: {
2792             switch (value) {
2793                 case ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT:
2794                     msg = "DEFAULT";
2795                     ret = 0;
2796                     break;
2797                 case ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW:
2798                     msg = "PREVIEW";
2799                     ret = 0;
2800                     break;
2801                 case ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE:
2802                     msg = "STILL_CAPTURE";
2803                     ret = 0;
2804                     break;
2805                 case ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_RECORD:
2806                     msg = "VIDEO_RECORD";
2807                     ret = 0;
2808                     break;
2809                 case ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL:
2810                     msg = "PREVIEW_VIDEO_STILL";
2811                     ret = 0;
2812                     break;
2813                 case ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL:
2814                     msg = "VIDEO_CALL";
2815                     ret = 0;
2816                     break;
2817                 case ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW:
2818                     msg = "CROPPED_RAW";
2819                     ret = 0;
2820                     break;
2821                 case ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START:
2822                     msg = "VENDOR_START";
2823                     ret = 0;
2824                     break;
2825                 default:
2826                     msg = "error: enum value out of range";
2827             }
2828             break;
2829         }
2830         case ANDROID_SCALER_RAW_CROP_REGION: {
2831             break;
2832         }
2833 
2834         case ANDROID_SENSOR_EXPOSURE_TIME: {
2835             break;
2836         }
2837         case ANDROID_SENSOR_FRAME_DURATION: {
2838             break;
2839         }
2840         case ANDROID_SENSOR_SENSITIVITY: {
2841             break;
2842         }
2843         case ANDROID_SENSOR_REFERENCE_ILLUMINANT1: {
2844             switch (value) {
2845                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT:
2846                     msg = "DAYLIGHT";
2847                     ret = 0;
2848                     break;
2849                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT:
2850                     msg = "FLUORESCENT";
2851                     ret = 0;
2852                     break;
2853                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN:
2854                     msg = "TUNGSTEN";
2855                     ret = 0;
2856                     break;
2857                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLASH:
2858                     msg = "FLASH";
2859                     ret = 0;
2860                     break;
2861                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER:
2862                     msg = "FINE_WEATHER";
2863                     ret = 0;
2864                     break;
2865                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER:
2866                     msg = "CLOUDY_WEATHER";
2867                     ret = 0;
2868                     break;
2869                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_SHADE:
2870                     msg = "SHADE";
2871                     ret = 0;
2872                     break;
2873                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT:
2874                     msg = "DAYLIGHT_FLUORESCENT";
2875                     ret = 0;
2876                     break;
2877                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT:
2878                     msg = "DAY_WHITE_FLUORESCENT";
2879                     ret = 0;
2880                     break;
2881                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT:
2882                     msg = "COOL_WHITE_FLUORESCENT";
2883                     ret = 0;
2884                     break;
2885                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT:
2886                     msg = "WHITE_FLUORESCENT";
2887                     ret = 0;
2888                     break;
2889                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A:
2890                     msg = "STANDARD_A";
2891                     ret = 0;
2892                     break;
2893                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B:
2894                     msg = "STANDARD_B";
2895                     ret = 0;
2896                     break;
2897                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C:
2898                     msg = "STANDARD_C";
2899                     ret = 0;
2900                     break;
2901                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D55:
2902                     msg = "D55";
2903                     ret = 0;
2904                     break;
2905                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D65:
2906                     msg = "D65";
2907                     ret = 0;
2908                     break;
2909                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D75:
2910                     msg = "D75";
2911                     ret = 0;
2912                     break;
2913                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D50:
2914                     msg = "D50";
2915                     ret = 0;
2916                     break;
2917                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN:
2918                     msg = "ISO_STUDIO_TUNGSTEN";
2919                     ret = 0;
2920                     break;
2921                 default:
2922                     msg = "error: enum value out of range";
2923             }
2924             break;
2925         }
2926         case ANDROID_SENSOR_REFERENCE_ILLUMINANT2: {
2927             break;
2928         }
2929         case ANDROID_SENSOR_CALIBRATION_TRANSFORM1: {
2930             break;
2931         }
2932         case ANDROID_SENSOR_CALIBRATION_TRANSFORM2: {
2933             break;
2934         }
2935         case ANDROID_SENSOR_COLOR_TRANSFORM1: {
2936             break;
2937         }
2938         case ANDROID_SENSOR_COLOR_TRANSFORM2: {
2939             break;
2940         }
2941         case ANDROID_SENSOR_FORWARD_MATRIX1: {
2942             break;
2943         }
2944         case ANDROID_SENSOR_FORWARD_MATRIX2: {
2945             break;
2946         }
2947         case ANDROID_SENSOR_BASE_GAIN_FACTOR: {
2948             break;
2949         }
2950         case ANDROID_SENSOR_BLACK_LEVEL_PATTERN: {
2951             break;
2952         }
2953         case ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY: {
2954             break;
2955         }
2956         case ANDROID_SENSOR_ORIENTATION: {
2957             break;
2958         }
2959         case ANDROID_SENSOR_PROFILE_HUE_SAT_MAP_DIMENSIONS: {
2960             break;
2961         }
2962         case ANDROID_SENSOR_TIMESTAMP: {
2963             break;
2964         }
2965         case ANDROID_SENSOR_TEMPERATURE: {
2966             break;
2967         }
2968         case ANDROID_SENSOR_NEUTRAL_COLOR_POINT: {
2969             break;
2970         }
2971         case ANDROID_SENSOR_NOISE_PROFILE: {
2972             break;
2973         }
2974         case ANDROID_SENSOR_PROFILE_HUE_SAT_MAP: {
2975             break;
2976         }
2977         case ANDROID_SENSOR_PROFILE_TONE_CURVE: {
2978             break;
2979         }
2980         case ANDROID_SENSOR_GREEN_SPLIT: {
2981             break;
2982         }
2983         case ANDROID_SENSOR_TEST_PATTERN_DATA: {
2984             break;
2985         }
2986         case ANDROID_SENSOR_TEST_PATTERN_MODE: {
2987             switch (value) {
2988                 case ANDROID_SENSOR_TEST_PATTERN_MODE_OFF:
2989                     msg = "OFF";
2990                     ret = 0;
2991                     break;
2992                 case ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR:
2993                     msg = "SOLID_COLOR";
2994                     ret = 0;
2995                     break;
2996                 case ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS:
2997                     msg = "COLOR_BARS";
2998                     ret = 0;
2999                     break;
3000                 case ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY:
3001                     msg = "COLOR_BARS_FADE_TO_GRAY";
3002                     ret = 0;
3003                     break;
3004                 case ANDROID_SENSOR_TEST_PATTERN_MODE_PN9:
3005                     msg = "PN9";
3006                     ret = 0;
3007                     break;
3008                 case ANDROID_SENSOR_TEST_PATTERN_MODE_BLACK:
3009                     msg = "BLACK";
3010                     ret = 0;
3011                     break;
3012                 case ANDROID_SENSOR_TEST_PATTERN_MODE_CUSTOM1:
3013                     msg = "CUSTOM1";
3014                     ret = 0;
3015                     break;
3016                 default:
3017                     msg = "error: enum value out of range";
3018             }
3019             break;
3020         }
3021         case ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES: {
3022             break;
3023         }
3024         case ANDROID_SENSOR_ROLLING_SHUTTER_SKEW: {
3025             break;
3026         }
3027         case ANDROID_SENSOR_OPTICAL_BLACK_REGIONS: {
3028             break;
3029         }
3030         case ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL: {
3031             break;
3032         }
3033         case ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL: {
3034             break;
3035         }
3036         case ANDROID_SENSOR_OPAQUE_RAW_SIZE: {
3037             break;
3038         }
3039         case ANDROID_SENSOR_OPAQUE_RAW_SIZE_MAXIMUM_RESOLUTION: {
3040             break;
3041         }
3042         case ANDROID_SENSOR_PIXEL_MODE: {
3043             switch (value) {
3044                 case ANDROID_SENSOR_PIXEL_MODE_DEFAULT:
3045                     msg = "DEFAULT";
3046                     ret = 0;
3047                     break;
3048                 case ANDROID_SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION:
3049                     msg = "MAXIMUM_RESOLUTION";
3050                     ret = 0;
3051                     break;
3052                 default:
3053                     msg = "error: enum value out of range";
3054             }
3055             break;
3056         }
3057         case ANDROID_SENSOR_RAW_BINNING_FACTOR_USED: {
3058             switch (value) {
3059                 case ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_TRUE:
3060                     msg = "TRUE";
3061                     ret = 0;
3062                     break;
3063                 case ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_FALSE:
3064                     msg = "FALSE";
3065                     ret = 0;
3066                     break;
3067                 default:
3068                     msg = "error: enum value out of range";
3069             }
3070             break;
3071         }
3072         case ANDROID_SENSOR_READOUT_TIMESTAMP: {
3073             switch (value) {
3074                 case ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED:
3075                     msg = "NOT_SUPPORTED";
3076                     ret = 0;
3077                     break;
3078                 case ANDROID_SENSOR_READOUT_TIMESTAMP_HARDWARE:
3079                     msg = "HARDWARE";
3080                     ret = 0;
3081                     break;
3082                 default:
3083                     msg = "error: enum value out of range";
3084             }
3085             break;
3086         }
3087 
3088         case ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE: {
3089             break;
3090         }
3091         case ANDROID_SENSOR_INFO_SENSITIVITY_RANGE: {
3092             break;
3093         }
3094         case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT: {
3095             switch (value) {
3096                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB:
3097                     msg = "RGGB";
3098                     ret = 0;
3099                     break;
3100                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG:
3101                     msg = "GRBG";
3102                     ret = 0;
3103                     break;
3104                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG:
3105                     msg = "GBRG";
3106                     ret = 0;
3107                     break;
3108                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR:
3109                     msg = "BGGR";
3110                     ret = 0;
3111                     break;
3112                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB:
3113                     msg = "RGB";
3114                     ret = 0;
3115                     break;
3116                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_MONO:
3117                     msg = "MONO";
3118                     ret = 0;
3119                     break;
3120                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_NIR:
3121                     msg = "NIR";
3122                     ret = 0;
3123                     break;
3124                 default:
3125                     msg = "error: enum value out of range";
3126             }
3127             break;
3128         }
3129         case ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE: {
3130             break;
3131         }
3132         case ANDROID_SENSOR_INFO_MAX_FRAME_DURATION: {
3133             break;
3134         }
3135         case ANDROID_SENSOR_INFO_PHYSICAL_SIZE: {
3136             break;
3137         }
3138         case ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE: {
3139             break;
3140         }
3141         case ANDROID_SENSOR_INFO_WHITE_LEVEL: {
3142             break;
3143         }
3144         case ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE: {
3145             switch (value) {
3146                 case ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN:
3147                     msg = "UNKNOWN";
3148                     ret = 0;
3149                     break;
3150                 case ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME:
3151                     msg = "REALTIME";
3152                     ret = 0;
3153                     break;
3154                 default:
3155                     msg = "error: enum value out of range";
3156             }
3157             break;
3158         }
3159         case ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED: {
3160             switch (value) {
3161                 case ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_FALSE:
3162                     msg = "FALSE";
3163                     ret = 0;
3164                     break;
3165                 case ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_TRUE:
3166                     msg = "TRUE";
3167                     ret = 0;
3168                     break;
3169                 default:
3170                     msg = "error: enum value out of range";
3171             }
3172             break;
3173         }
3174         case ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE: {
3175             break;
3176         }
3177         case ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION: {
3178             break;
3179         }
3180         case ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION: {
3181             break;
3182         }
3183         case ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION: {
3184             break;
3185         }
3186         case ANDROID_SENSOR_INFO_BINNING_FACTOR: {
3187             break;
3188         }
3189 
3190         case ANDROID_SHADING_MODE: {
3191             switch (value) {
3192                 case ANDROID_SHADING_MODE_OFF:
3193                     msg = "OFF";
3194                     ret = 0;
3195                     break;
3196                 case ANDROID_SHADING_MODE_FAST:
3197                     msg = "FAST";
3198                     ret = 0;
3199                     break;
3200                 case ANDROID_SHADING_MODE_HIGH_QUALITY:
3201                     msg = "HIGH_QUALITY";
3202                     ret = 0;
3203                     break;
3204                 default:
3205                     msg = "error: enum value out of range";
3206             }
3207             break;
3208         }
3209         case ANDROID_SHADING_STRENGTH: {
3210             break;
3211         }
3212         case ANDROID_SHADING_AVAILABLE_MODES: {
3213             break;
3214         }
3215 
3216         case ANDROID_STATISTICS_FACE_DETECT_MODE: {
3217             switch (value) {
3218                 case ANDROID_STATISTICS_FACE_DETECT_MODE_OFF:
3219                     msg = "OFF";
3220                     ret = 0;
3221                     break;
3222                 case ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE:
3223                     msg = "SIMPLE";
3224                     ret = 0;
3225                     break;
3226                 case ANDROID_STATISTICS_FACE_DETECT_MODE_FULL:
3227                     msg = "FULL";
3228                     ret = 0;
3229                     break;
3230                 default:
3231                     msg = "error: enum value out of range";
3232             }
3233             break;
3234         }
3235         case ANDROID_STATISTICS_HISTOGRAM_MODE: {
3236             switch (value) {
3237                 case ANDROID_STATISTICS_HISTOGRAM_MODE_OFF:
3238                     msg = "OFF";
3239                     ret = 0;
3240                     break;
3241                 case ANDROID_STATISTICS_HISTOGRAM_MODE_ON:
3242                     msg = "ON";
3243                     ret = 0;
3244                     break;
3245                 default:
3246                     msg = "error: enum value out of range";
3247             }
3248             break;
3249         }
3250         case ANDROID_STATISTICS_SHARPNESS_MAP_MODE: {
3251             switch (value) {
3252                 case ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF:
3253                     msg = "OFF";
3254                     ret = 0;
3255                     break;
3256                 case ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON:
3257                     msg = "ON";
3258                     ret = 0;
3259                     break;
3260                 default:
3261                     msg = "error: enum value out of range";
3262             }
3263             break;
3264         }
3265         case ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE: {
3266             switch (value) {
3267                 case ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF:
3268                     msg = "OFF";
3269                     ret = 0;
3270                     break;
3271                 case ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_ON:
3272                     msg = "ON";
3273                     ret = 0;
3274                     break;
3275                 default:
3276                     msg = "error: enum value out of range";
3277             }
3278             break;
3279         }
3280         case ANDROID_STATISTICS_FACE_IDS: {
3281             break;
3282         }
3283         case ANDROID_STATISTICS_FACE_LANDMARKS: {
3284             break;
3285         }
3286         case ANDROID_STATISTICS_FACE_RECTANGLES: {
3287             break;
3288         }
3289         case ANDROID_STATISTICS_FACE_SCORES: {
3290             break;
3291         }
3292         case ANDROID_STATISTICS_HISTOGRAM: {
3293             break;
3294         }
3295         case ANDROID_STATISTICS_SHARPNESS_MAP: {
3296             break;
3297         }
3298         case ANDROID_STATISTICS_LENS_SHADING_CORRECTION_MAP: {
3299             break;
3300         }
3301         case ANDROID_STATISTICS_LENS_SHADING_MAP: {
3302             break;
3303         }
3304         case ANDROID_STATISTICS_PREDICTED_COLOR_GAINS: {
3305             break;
3306         }
3307         case ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM: {
3308             break;
3309         }
3310         case ANDROID_STATISTICS_SCENE_FLICKER: {
3311             switch (value) {
3312                 case ANDROID_STATISTICS_SCENE_FLICKER_NONE:
3313                     msg = "NONE";
3314                     ret = 0;
3315                     break;
3316                 case ANDROID_STATISTICS_SCENE_FLICKER_50HZ:
3317                     msg = "50HZ";
3318                     ret = 0;
3319                     break;
3320                 case ANDROID_STATISTICS_SCENE_FLICKER_60HZ:
3321                     msg = "60HZ";
3322                     ret = 0;
3323                     break;
3324                 default:
3325                     msg = "error: enum value out of range";
3326             }
3327             break;
3328         }
3329         case ANDROID_STATISTICS_HOT_PIXEL_MAP: {
3330             break;
3331         }
3332         case ANDROID_STATISTICS_LENS_SHADING_MAP_MODE: {
3333             switch (value) {
3334                 case ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF:
3335                     msg = "OFF";
3336                     ret = 0;
3337                     break;
3338                 case ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON:
3339                     msg = "ON";
3340                     ret = 0;
3341                     break;
3342                 default:
3343                     msg = "error: enum value out of range";
3344             }
3345             break;
3346         }
3347         case ANDROID_STATISTICS_OIS_DATA_MODE: {
3348             switch (value) {
3349                 case ANDROID_STATISTICS_OIS_DATA_MODE_OFF:
3350                     msg = "OFF";
3351                     ret = 0;
3352                     break;
3353                 case ANDROID_STATISTICS_OIS_DATA_MODE_ON:
3354                     msg = "ON";
3355                     ret = 0;
3356                     break;
3357                 default:
3358                     msg = "error: enum value out of range";
3359             }
3360             break;
3361         }
3362         case ANDROID_STATISTICS_OIS_TIMESTAMPS: {
3363             break;
3364         }
3365         case ANDROID_STATISTICS_OIS_X_SHIFTS: {
3366             break;
3367         }
3368         case ANDROID_STATISTICS_OIS_Y_SHIFTS: {
3369             break;
3370         }
3371 
3372         case ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES: {
3373             break;
3374         }
3375         case ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT: {
3376             break;
3377         }
3378         case ANDROID_STATISTICS_INFO_MAX_FACE_COUNT: {
3379             break;
3380         }
3381         case ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT: {
3382             break;
3383         }
3384         case ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE: {
3385             break;
3386         }
3387         case ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE: {
3388             break;
3389         }
3390         case ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES: {
3391             break;
3392         }
3393         case ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES: {
3394             break;
3395         }
3396         case ANDROID_STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES: {
3397             break;
3398         }
3399 
3400         case ANDROID_TONEMAP_CURVE_BLUE: {
3401             break;
3402         }
3403         case ANDROID_TONEMAP_CURVE_GREEN: {
3404             break;
3405         }
3406         case ANDROID_TONEMAP_CURVE_RED: {
3407             break;
3408         }
3409         case ANDROID_TONEMAP_MODE: {
3410             switch (value) {
3411                 case ANDROID_TONEMAP_MODE_CONTRAST_CURVE:
3412                     msg = "CONTRAST_CURVE";
3413                     ret = 0;
3414                     break;
3415                 case ANDROID_TONEMAP_MODE_FAST:
3416                     msg = "FAST";
3417                     ret = 0;
3418                     break;
3419                 case ANDROID_TONEMAP_MODE_HIGH_QUALITY:
3420                     msg = "HIGH_QUALITY";
3421                     ret = 0;
3422                     break;
3423                 case ANDROID_TONEMAP_MODE_GAMMA_VALUE:
3424                     msg = "GAMMA_VALUE";
3425                     ret = 0;
3426                     break;
3427                 case ANDROID_TONEMAP_MODE_PRESET_CURVE:
3428                     msg = "PRESET_CURVE";
3429                     ret = 0;
3430                     break;
3431                 default:
3432                     msg = "error: enum value out of range";
3433             }
3434             break;
3435         }
3436         case ANDROID_TONEMAP_MAX_CURVE_POINTS: {
3437             break;
3438         }
3439         case ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES: {
3440             break;
3441         }
3442         case ANDROID_TONEMAP_GAMMA: {
3443             break;
3444         }
3445         case ANDROID_TONEMAP_PRESET_CURVE: {
3446             switch (value) {
3447                 case ANDROID_TONEMAP_PRESET_CURVE_SRGB:
3448                     msg = "SRGB";
3449                     ret = 0;
3450                     break;
3451                 case ANDROID_TONEMAP_PRESET_CURVE_REC709:
3452                     msg = "REC709";
3453                     ret = 0;
3454                     break;
3455                 default:
3456                     msg = "error: enum value out of range";
3457             }
3458             break;
3459         }
3460 
3461         case ANDROID_LED_TRANSMIT: {
3462             switch (value) {
3463                 case ANDROID_LED_TRANSMIT_OFF:
3464                     msg = "OFF";
3465                     ret = 0;
3466                     break;
3467                 case ANDROID_LED_TRANSMIT_ON:
3468                     msg = "ON";
3469                     ret = 0;
3470                     break;
3471                 default:
3472                     msg = "error: enum value out of range";
3473             }
3474             break;
3475         }
3476         case ANDROID_LED_AVAILABLE_LEDS: {
3477             switch (value) {
3478                 case ANDROID_LED_AVAILABLE_LEDS_TRANSMIT:
3479                     msg = "TRANSMIT";
3480                     ret = 0;
3481                     break;
3482                 default:
3483                     msg = "error: enum value out of range";
3484             }
3485             break;
3486         }
3487 
3488         case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL: {
3489             switch (value) {
3490                 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED:
3491                     msg = "LIMITED";
3492                     ret = 0;
3493                     break;
3494                 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL:
3495                     msg = "FULL";
3496                     ret = 0;
3497                     break;
3498                 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY:
3499                     msg = "LEGACY";
3500                     ret = 0;
3501                     break;
3502                 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_3:
3503                     msg = "3";
3504                     ret = 0;
3505                     break;
3506                 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL:
3507                     msg = "EXTERNAL";
3508                     ret = 0;
3509                     break;
3510                 default:
3511                     msg = "error: enum value out of range";
3512             }
3513             break;
3514         }
3515         case ANDROID_INFO_VERSION: {
3516             break;
3517         }
3518         case ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION: {
3519             switch (value) {
3520                 case ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5:
3521                     msg = "HIDL_DEVICE_3_5";
3522                     ret = 0;
3523                     break;
3524                 default:
3525                     msg = "error: enum value out of range";
3526             }
3527             break;
3528         }
3529         case ANDROID_INFO_DEVICE_STATE_ORIENTATIONS: {
3530             break;
3531         }
3532 
3533         case ANDROID_BLACK_LEVEL_LOCK: {
3534             switch (value) {
3535                 case ANDROID_BLACK_LEVEL_LOCK_OFF:
3536                     msg = "OFF";
3537                     ret = 0;
3538                     break;
3539                 case ANDROID_BLACK_LEVEL_LOCK_ON:
3540                     msg = "ON";
3541                     ret = 0;
3542                     break;
3543                 default:
3544                     msg = "error: enum value out of range";
3545             }
3546             break;
3547         }
3548 
3549         case ANDROID_SYNC_FRAME_NUMBER: {
3550             switch (value) {
3551                 case ANDROID_SYNC_FRAME_NUMBER_CONVERGING:
3552                     msg = "CONVERGING";
3553                     ret = 0;
3554                     break;
3555                 case ANDROID_SYNC_FRAME_NUMBER_UNKNOWN:
3556                     msg = "UNKNOWN";
3557                     ret = 0;
3558                     break;
3559                 default:
3560                     msg = "error: enum value out of range";
3561             }
3562             break;
3563         }
3564         case ANDROID_SYNC_MAX_LATENCY: {
3565             switch (value) {
3566                 case ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL:
3567                     msg = "PER_FRAME_CONTROL";
3568                     ret = 0;
3569                     break;
3570                 case ANDROID_SYNC_MAX_LATENCY_UNKNOWN:
3571                     msg = "UNKNOWN";
3572                     ret = 0;
3573                     break;
3574                 default:
3575                     msg = "error: enum value out of range";
3576             }
3577             break;
3578         }
3579 
3580         case ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR: {
3581             break;
3582         }
3583         case ANDROID_REPROCESS_MAX_CAPTURE_STALL: {
3584             break;
3585         }
3586 
3587         case ANDROID_DEPTH_MAX_DEPTH_SAMPLES: {
3588             break;
3589         }
3590         case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS: {
3591             switch (value) {
3592                 case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT:
3593                     msg = "OUTPUT";
3594                     ret = 0;
3595                     break;
3596                 case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT:
3597                     msg = "INPUT";
3598                     ret = 0;
3599                     break;
3600                 default:
3601                     msg = "error: enum value out of range";
3602             }
3603             break;
3604         }
3605         case ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS: {
3606             break;
3607         }
3608         case ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS: {
3609             break;
3610         }
3611         case ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE: {
3612             switch (value) {
3613                 case ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_FALSE:
3614                     msg = "FALSE";
3615                     ret = 0;
3616                     break;
3617                 case ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_TRUE:
3618                     msg = "TRUE";
3619                     ret = 0;
3620                     break;
3621                 default:
3622                     msg = "error: enum value out of range";
3623             }
3624             break;
3625         }
3626         case ANDROID_DEPTH_AVAILABLE_RECOMMENDED_DEPTH_STREAM_CONFIGURATIONS: {
3627             break;
3628         }
3629         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS: {
3630             switch (value) {
3631                 case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_OUTPUT:
3632                     msg = "OUTPUT";
3633                     ret = 0;
3634                     break;
3635                 case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_INPUT:
3636                     msg = "INPUT";
3637                     ret = 0;
3638                     break;
3639                 default:
3640                     msg = "error: enum value out of range";
3641             }
3642             break;
3643         }
3644         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS: {
3645             break;
3646         }
3647         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS: {
3648             break;
3649         }
3650         case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
3651             switch (value) {
3652                 case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT:
3653                     msg = "OUTPUT";
3654                     ret = 0;
3655                     break;
3656                 case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT:
3657                     msg = "INPUT";
3658                     ret = 0;
3659                     break;
3660                 default:
3661                     msg = "error: enum value out of range";
3662             }
3663             break;
3664         }
3665         case ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION: {
3666             break;
3667         }
3668         case ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION: {
3669             break;
3670         }
3671         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
3672             switch (value) {
3673                 case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT:
3674                     msg = "OUTPUT";
3675                     ret = 0;
3676                     break;
3677                 case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT:
3678                     msg = "INPUT";
3679                     ret = 0;
3680                     break;
3681                 default:
3682                     msg = "error: enum value out of range";
3683             }
3684             break;
3685         }
3686         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION: {
3687             break;
3688         }
3689         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION: {
3690             break;
3691         }
3692 
3693         case ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS: {
3694             break;
3695         }
3696         case ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE: {
3697             switch (value) {
3698                 case ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE:
3699                     msg = "APPROXIMATE";
3700                     ret = 0;
3701                     break;
3702                 case ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED:
3703                     msg = "CALIBRATED";
3704                     ret = 0;
3705                     break;
3706                 default:
3707                     msg = "error: enum value out of range";
3708             }
3709             break;
3710         }
3711         case ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID: {
3712             break;
3713         }
3714 
3715         case ANDROID_DISTORTION_CORRECTION_MODE: {
3716             switch (value) {
3717                 case ANDROID_DISTORTION_CORRECTION_MODE_OFF:
3718                     msg = "OFF";
3719                     ret = 0;
3720                     break;
3721                 case ANDROID_DISTORTION_CORRECTION_MODE_FAST:
3722                     msg = "FAST";
3723                     ret = 0;
3724                     break;
3725                 case ANDROID_DISTORTION_CORRECTION_MODE_HIGH_QUALITY:
3726                     msg = "HIGH_QUALITY";
3727                     ret = 0;
3728                     break;
3729                 default:
3730                     msg = "error: enum value out of range";
3731             }
3732             break;
3733         }
3734         case ANDROID_DISTORTION_CORRECTION_AVAILABLE_MODES: {
3735             break;
3736         }
3737 
3738         case ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS: {
3739             switch (value) {
3740                 case ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_OUTPUT:
3741                     msg = "OUTPUT";
3742                     ret = 0;
3743                     break;
3744                 case ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_INPUT:
3745                     msg = "INPUT";
3746                     ret = 0;
3747                     break;
3748                 default:
3749                     msg = "error: enum value out of range";
3750             }
3751             break;
3752         }
3753         case ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS: {
3754             break;
3755         }
3756         case ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS: {
3757             break;
3758         }
3759         case ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
3760             switch (value) {
3761                 case ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT:
3762                     msg = "OUTPUT";
3763                     ret = 0;
3764                     break;
3765                 case ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT:
3766                     msg = "INPUT";
3767                     ret = 0;
3768                     break;
3769                 default:
3770                     msg = "error: enum value out of range";
3771             }
3772             break;
3773         }
3774         case ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION: {
3775             break;
3776         }
3777         case ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS_MAXIMUM_RESOLUTION: {
3778             break;
3779         }
3780 
3781         case ANDROID_HEIC_INFO_SUPPORTED: {
3782             switch (value) {
3783                 case ANDROID_HEIC_INFO_SUPPORTED_FALSE:
3784                     msg = "FALSE";
3785                     ret = 0;
3786                     break;
3787                 case ANDROID_HEIC_INFO_SUPPORTED_TRUE:
3788                     msg = "TRUE";
3789                     ret = 0;
3790                     break;
3791                 default:
3792                     msg = "error: enum value out of range";
3793             }
3794             break;
3795         }
3796         case ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT: {
3797             break;
3798         }
3799 
3800         case ANDROID_AUTOMOTIVE_LOCATION: {
3801             switch (value) {
3802                 case ANDROID_AUTOMOTIVE_LOCATION_INTERIOR:
3803                     msg = "INTERIOR";
3804                     ret = 0;
3805                     break;
3806                 case ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_OTHER:
3807                     msg = "EXTERIOR_OTHER";
3808                     ret = 0;
3809                     break;
3810                 case ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_FRONT:
3811                     msg = "EXTERIOR_FRONT";
3812                     ret = 0;
3813                     break;
3814                 case ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_REAR:
3815                     msg = "EXTERIOR_REAR";
3816                     ret = 0;
3817                     break;
3818                 case ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_LEFT:
3819                     msg = "EXTERIOR_LEFT";
3820                     ret = 0;
3821                     break;
3822                 case ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_RIGHT:
3823                     msg = "EXTERIOR_RIGHT";
3824                     ret = 0;
3825                     break;
3826                 case ANDROID_AUTOMOTIVE_LOCATION_EXTRA_OTHER:
3827                     msg = "EXTRA_OTHER";
3828                     ret = 0;
3829                     break;
3830                 case ANDROID_AUTOMOTIVE_LOCATION_EXTRA_FRONT:
3831                     msg = "EXTRA_FRONT";
3832                     ret = 0;
3833                     break;
3834                 case ANDROID_AUTOMOTIVE_LOCATION_EXTRA_REAR:
3835                     msg = "EXTRA_REAR";
3836                     ret = 0;
3837                     break;
3838                 case ANDROID_AUTOMOTIVE_LOCATION_EXTRA_LEFT:
3839                     msg = "EXTRA_LEFT";
3840                     ret = 0;
3841                     break;
3842                 case ANDROID_AUTOMOTIVE_LOCATION_EXTRA_RIGHT:
3843                     msg = "EXTRA_RIGHT";
3844                     ret = 0;
3845                     break;
3846                 default:
3847                     msg = "error: enum value out of range";
3848             }
3849             break;
3850         }
3851 
3852         case ANDROID_AUTOMOTIVE_LENS_FACING: {
3853             switch (value) {
3854                 case ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_OTHER:
3855                     msg = "EXTERIOR_OTHER";
3856                     ret = 0;
3857                     break;
3858                 case ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_FRONT:
3859                     msg = "EXTERIOR_FRONT";
3860                     ret = 0;
3861                     break;
3862                 case ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_REAR:
3863                     msg = "EXTERIOR_REAR";
3864                     ret = 0;
3865                     break;
3866                 case ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_LEFT:
3867                     msg = "EXTERIOR_LEFT";
3868                     ret = 0;
3869                     break;
3870                 case ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_RIGHT:
3871                     msg = "EXTERIOR_RIGHT";
3872                     ret = 0;
3873                     break;
3874                 case ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_OTHER:
3875                     msg = "INTERIOR_OTHER";
3876                     ret = 0;
3877                     break;
3878                 case ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_LEFT:
3879                     msg = "INTERIOR_SEAT_ROW_1_LEFT";
3880                     ret = 0;
3881                     break;
3882                 case ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_CENTER:
3883                     msg = "INTERIOR_SEAT_ROW_1_CENTER";
3884                     ret = 0;
3885                     break;
3886                 case ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_RIGHT:
3887                     msg = "INTERIOR_SEAT_ROW_1_RIGHT";
3888                     ret = 0;
3889                     break;
3890                 case ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_LEFT:
3891                     msg = "INTERIOR_SEAT_ROW_2_LEFT";
3892                     ret = 0;
3893                     break;
3894                 case ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_CENTER:
3895                     msg = "INTERIOR_SEAT_ROW_2_CENTER";
3896                     ret = 0;
3897                     break;
3898                 case ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_RIGHT:
3899                     msg = "INTERIOR_SEAT_ROW_2_RIGHT";
3900                     ret = 0;
3901                     break;
3902                 case ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_LEFT:
3903                     msg = "INTERIOR_SEAT_ROW_3_LEFT";
3904                     ret = 0;
3905                     break;
3906                 case ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_CENTER:
3907                     msg = "INTERIOR_SEAT_ROW_3_CENTER";
3908                     ret = 0;
3909                     break;
3910                 case ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_RIGHT:
3911                     msg = "INTERIOR_SEAT_ROW_3_RIGHT";
3912                     ret = 0;
3913                     break;
3914                 default:
3915                     msg = "error: enum value out of range";
3916             }
3917             break;
3918         }
3919 
3920         case ANDROID_EXTENSION_STRENGTH: {
3921             break;
3922         }
3923         case ANDROID_EXTENSION_CURRENT_TYPE: {
3924             break;
3925         }
3926 
3927         case ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS: {
3928             switch (value) {
3929                 case ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_OUTPUT:
3930                     msg = "OUTPUT";
3931                     ret = 0;
3932                     break;
3933                 case ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_INPUT:
3934                     msg = "INPUT";
3935                     ret = 0;
3936                     break;
3937                 default:
3938                     msg = "error: enum value out of range";
3939             }
3940             break;
3941         }
3942         case ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS: {
3943             break;
3944         }
3945         case ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS: {
3946             break;
3947         }
3948         case ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
3949             switch (value) {
3950                 case ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT:
3951                     msg = "OUTPUT";
3952                     ret = 0;
3953                     break;
3954                 case ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT:
3955                     msg = "INPUT";
3956                     ret = 0;
3957                     break;
3958                 default:
3959                     msg = "error: enum value out of range";
3960             }
3961             break;
3962         }
3963         case ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION: {
3964             break;
3965         }
3966         case ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS_MAXIMUM_RESOLUTION: {
3967             break;
3968         }
3969 
3970     }
3971 
3972     strncpy(dst, msg, size - 1);
3973     dst[size - 1] = '\0';
3974 
3975     return ret;
3976 }
3977 
camera_metadata_enum_value(uint32_t tag,const char * name,size_t size,uint32_t * value)3978 int camera_metadata_enum_value(uint32_t tag,
3979                                  const char *name,
3980                                  size_t size,
3981                                  uint32_t *value) {
3982     if ((name == NULL) || (value == NULL)) {
3983         return -1;
3984     }
3985 
3986     const char *enumName = NULL;
3987     int ret = -1;
3988 
3989     switch(tag) {
3990         case ANDROID_COLOR_CORRECTION_MODE: {
3991                 enumName = "TRANSFORM_MATRIX";
3992                 if (strncmp(name, enumName, size) == 0) {
3993                     *value = ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX;
3994                     ret = 0;
3995                     break;
3996                 }
3997                 enumName = "FAST";
3998                 if (strncmp(name, enumName, size) == 0) {
3999                     *value = ANDROID_COLOR_CORRECTION_MODE_FAST;
4000                     ret = 0;
4001                     break;
4002                 }
4003                 enumName = "HIGH_QUALITY";
4004                 if (strncmp(name, enumName, size) == 0) {
4005                     *value = ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY;
4006                     ret = 0;
4007                     break;
4008                 }
4009             break;
4010         }
4011         case ANDROID_COLOR_CORRECTION_TRANSFORM: {
4012             break;
4013         }
4014         case ANDROID_COLOR_CORRECTION_GAINS: {
4015             break;
4016         }
4017         case ANDROID_COLOR_CORRECTION_ABERRATION_MODE: {
4018                 enumName = "OFF";
4019                 if (strncmp(name, enumName, size) == 0) {
4020                     *value = ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF;
4021                     ret = 0;
4022                     break;
4023                 }
4024                 enumName = "FAST";
4025                 if (strncmp(name, enumName, size) == 0) {
4026                     *value = ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST;
4027                     ret = 0;
4028                     break;
4029                 }
4030                 enumName = "HIGH_QUALITY";
4031                 if (strncmp(name, enumName, size) == 0) {
4032                     *value = ANDROID_COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY;
4033                     ret = 0;
4034                     break;
4035                 }
4036             break;
4037         }
4038         case ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES: {
4039             break;
4040         }
4041 
4042         case ANDROID_CONTROL_AE_ANTIBANDING_MODE: {
4043                 enumName = "OFF";
4044                 if (strncmp(name, enumName, size) == 0) {
4045                     *value = ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF;
4046                     ret = 0;
4047                     break;
4048                 }
4049                 enumName = "50HZ";
4050                 if (strncmp(name, enumName, size) == 0) {
4051                     *value = ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ;
4052                     ret = 0;
4053                     break;
4054                 }
4055                 enumName = "60HZ";
4056                 if (strncmp(name, enumName, size) == 0) {
4057                     *value = ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ;
4058                     ret = 0;
4059                     break;
4060                 }
4061                 enumName = "AUTO";
4062                 if (strncmp(name, enumName, size) == 0) {
4063                     *value = ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO;
4064                     ret = 0;
4065                     break;
4066                 }
4067             break;
4068         }
4069         case ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION: {
4070             break;
4071         }
4072         case ANDROID_CONTROL_AE_LOCK: {
4073                 enumName = "OFF";
4074                 if (strncmp(name, enumName, size) == 0) {
4075                     *value = ANDROID_CONTROL_AE_LOCK_OFF;
4076                     ret = 0;
4077                     break;
4078                 }
4079                 enumName = "ON";
4080                 if (strncmp(name, enumName, size) == 0) {
4081                     *value = ANDROID_CONTROL_AE_LOCK_ON;
4082                     ret = 0;
4083                     break;
4084                 }
4085             break;
4086         }
4087         case ANDROID_CONTROL_AE_MODE: {
4088                 enumName = "OFF";
4089                 if (strncmp(name, enumName, size) == 0) {
4090                     *value = ANDROID_CONTROL_AE_MODE_OFF;
4091                     ret = 0;
4092                     break;
4093                 }
4094                 enumName = "ON";
4095                 if (strncmp(name, enumName, size) == 0) {
4096                     *value = ANDROID_CONTROL_AE_MODE_ON;
4097                     ret = 0;
4098                     break;
4099                 }
4100                 enumName = "ON_AUTO_FLASH";
4101                 if (strncmp(name, enumName, size) == 0) {
4102                     *value = ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH;
4103                     ret = 0;
4104                     break;
4105                 }
4106                 enumName = "ON_ALWAYS_FLASH";
4107                 if (strncmp(name, enumName, size) == 0) {
4108                     *value = ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH;
4109                     ret = 0;
4110                     break;
4111                 }
4112                 enumName = "ON_AUTO_FLASH_REDEYE";
4113                 if (strncmp(name, enumName, size) == 0) {
4114                     *value = ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE;
4115                     ret = 0;
4116                     break;
4117                 }
4118                 enumName = "ON_EXTERNAL_FLASH";
4119                 if (strncmp(name, enumName, size) == 0) {
4120                     *value = ANDROID_CONTROL_AE_MODE_ON_EXTERNAL_FLASH;
4121                     ret = 0;
4122                     break;
4123                 }
4124             break;
4125         }
4126         case ANDROID_CONTROL_AE_REGIONS: {
4127             break;
4128         }
4129         case ANDROID_CONTROL_AE_TARGET_FPS_RANGE: {
4130             break;
4131         }
4132         case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER: {
4133                 enumName = "IDLE";
4134                 if (strncmp(name, enumName, size) == 0) {
4135                     *value = ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE;
4136                     ret = 0;
4137                     break;
4138                 }
4139                 enumName = "START";
4140                 if (strncmp(name, enumName, size) == 0) {
4141                     *value = ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START;
4142                     ret = 0;
4143                     break;
4144                 }
4145                 enumName = "CANCEL";
4146                 if (strncmp(name, enumName, size) == 0) {
4147                     *value = ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL;
4148                     ret = 0;
4149                     break;
4150                 }
4151             break;
4152         }
4153         case ANDROID_CONTROL_AF_MODE: {
4154                 enumName = "OFF";
4155                 if (strncmp(name, enumName, size) == 0) {
4156                     *value = ANDROID_CONTROL_AF_MODE_OFF;
4157                     ret = 0;
4158                     break;
4159                 }
4160                 enumName = "AUTO";
4161                 if (strncmp(name, enumName, size) == 0) {
4162                     *value = ANDROID_CONTROL_AF_MODE_AUTO;
4163                     ret = 0;
4164                     break;
4165                 }
4166                 enumName = "MACRO";
4167                 if (strncmp(name, enumName, size) == 0) {
4168                     *value = ANDROID_CONTROL_AF_MODE_MACRO;
4169                     ret = 0;
4170                     break;
4171                 }
4172                 enumName = "CONTINUOUS_VIDEO";
4173                 if (strncmp(name, enumName, size) == 0) {
4174                     *value = ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO;
4175                     ret = 0;
4176                     break;
4177                 }
4178                 enumName = "CONTINUOUS_PICTURE";
4179                 if (strncmp(name, enumName, size) == 0) {
4180                     *value = ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE;
4181                     ret = 0;
4182                     break;
4183                 }
4184                 enumName = "EDOF";
4185                 if (strncmp(name, enumName, size) == 0) {
4186                     *value = ANDROID_CONTROL_AF_MODE_EDOF;
4187                     ret = 0;
4188                     break;
4189                 }
4190             break;
4191         }
4192         case ANDROID_CONTROL_AF_REGIONS: {
4193             break;
4194         }
4195         case ANDROID_CONTROL_AF_TRIGGER: {
4196                 enumName = "IDLE";
4197                 if (strncmp(name, enumName, size) == 0) {
4198                     *value = ANDROID_CONTROL_AF_TRIGGER_IDLE;
4199                     ret = 0;
4200                     break;
4201                 }
4202                 enumName = "START";
4203                 if (strncmp(name, enumName, size) == 0) {
4204                     *value = ANDROID_CONTROL_AF_TRIGGER_START;
4205                     ret = 0;
4206                     break;
4207                 }
4208                 enumName = "CANCEL";
4209                 if (strncmp(name, enumName, size) == 0) {
4210                     *value = ANDROID_CONTROL_AF_TRIGGER_CANCEL;
4211                     ret = 0;
4212                     break;
4213                 }
4214             break;
4215         }
4216         case ANDROID_CONTROL_AWB_LOCK: {
4217                 enumName = "OFF";
4218                 if (strncmp(name, enumName, size) == 0) {
4219                     *value = ANDROID_CONTROL_AWB_LOCK_OFF;
4220                     ret = 0;
4221                     break;
4222                 }
4223                 enumName = "ON";
4224                 if (strncmp(name, enumName, size) == 0) {
4225                     *value = ANDROID_CONTROL_AWB_LOCK_ON;
4226                     ret = 0;
4227                     break;
4228                 }
4229             break;
4230         }
4231         case ANDROID_CONTROL_AWB_MODE: {
4232                 enumName = "OFF";
4233                 if (strncmp(name, enumName, size) == 0) {
4234                     *value = ANDROID_CONTROL_AWB_MODE_OFF;
4235                     ret = 0;
4236                     break;
4237                 }
4238                 enumName = "AUTO";
4239                 if (strncmp(name, enumName, size) == 0) {
4240                     *value = ANDROID_CONTROL_AWB_MODE_AUTO;
4241                     ret = 0;
4242                     break;
4243                 }
4244                 enumName = "INCANDESCENT";
4245                 if (strncmp(name, enumName, size) == 0) {
4246                     *value = ANDROID_CONTROL_AWB_MODE_INCANDESCENT;
4247                     ret = 0;
4248                     break;
4249                 }
4250                 enumName = "FLUORESCENT";
4251                 if (strncmp(name, enumName, size) == 0) {
4252                     *value = ANDROID_CONTROL_AWB_MODE_FLUORESCENT;
4253                     ret = 0;
4254                     break;
4255                 }
4256                 enumName = "WARM_FLUORESCENT";
4257                 if (strncmp(name, enumName, size) == 0) {
4258                     *value = ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT;
4259                     ret = 0;
4260                     break;
4261                 }
4262                 enumName = "DAYLIGHT";
4263                 if (strncmp(name, enumName, size) == 0) {
4264                     *value = ANDROID_CONTROL_AWB_MODE_DAYLIGHT;
4265                     ret = 0;
4266                     break;
4267                 }
4268                 enumName = "CLOUDY_DAYLIGHT";
4269                 if (strncmp(name, enumName, size) == 0) {
4270                     *value = ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT;
4271                     ret = 0;
4272                     break;
4273                 }
4274                 enumName = "TWILIGHT";
4275                 if (strncmp(name, enumName, size) == 0) {
4276                     *value = ANDROID_CONTROL_AWB_MODE_TWILIGHT;
4277                     ret = 0;
4278                     break;
4279                 }
4280                 enumName = "SHADE";
4281                 if (strncmp(name, enumName, size) == 0) {
4282                     *value = ANDROID_CONTROL_AWB_MODE_SHADE;
4283                     ret = 0;
4284                     break;
4285                 }
4286             break;
4287         }
4288         case ANDROID_CONTROL_AWB_REGIONS: {
4289             break;
4290         }
4291         case ANDROID_CONTROL_CAPTURE_INTENT: {
4292                 enumName = "CUSTOM";
4293                 if (strncmp(name, enumName, size) == 0) {
4294                     *value = ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM;
4295                     ret = 0;
4296                     break;
4297                 }
4298                 enumName = "PREVIEW";
4299                 if (strncmp(name, enumName, size) == 0) {
4300                     *value = ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW;
4301                     ret = 0;
4302                     break;
4303                 }
4304                 enumName = "STILL_CAPTURE";
4305                 if (strncmp(name, enumName, size) == 0) {
4306                     *value = ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE;
4307                     ret = 0;
4308                     break;
4309                 }
4310                 enumName = "VIDEO_RECORD";
4311                 if (strncmp(name, enumName, size) == 0) {
4312                     *value = ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD;
4313                     ret = 0;
4314                     break;
4315                 }
4316                 enumName = "VIDEO_SNAPSHOT";
4317                 if (strncmp(name, enumName, size) == 0) {
4318                     *value = ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT;
4319                     ret = 0;
4320                     break;
4321                 }
4322                 enumName = "ZERO_SHUTTER_LAG";
4323                 if (strncmp(name, enumName, size) == 0) {
4324                     *value = ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG;
4325                     ret = 0;
4326                     break;
4327                 }
4328                 enumName = "MANUAL";
4329                 if (strncmp(name, enumName, size) == 0) {
4330                     *value = ANDROID_CONTROL_CAPTURE_INTENT_MANUAL;
4331                     ret = 0;
4332                     break;
4333                 }
4334                 enumName = "MOTION_TRACKING";
4335                 if (strncmp(name, enumName, size) == 0) {
4336                     *value = ANDROID_CONTROL_CAPTURE_INTENT_MOTION_TRACKING;
4337                     ret = 0;
4338                     break;
4339                 }
4340             break;
4341         }
4342         case ANDROID_CONTROL_EFFECT_MODE: {
4343                 enumName = "OFF";
4344                 if (strncmp(name, enumName, size) == 0) {
4345                     *value = ANDROID_CONTROL_EFFECT_MODE_OFF;
4346                     ret = 0;
4347                     break;
4348                 }
4349                 enumName = "MONO";
4350                 if (strncmp(name, enumName, size) == 0) {
4351                     *value = ANDROID_CONTROL_EFFECT_MODE_MONO;
4352                     ret = 0;
4353                     break;
4354                 }
4355                 enumName = "NEGATIVE";
4356                 if (strncmp(name, enumName, size) == 0) {
4357                     *value = ANDROID_CONTROL_EFFECT_MODE_NEGATIVE;
4358                     ret = 0;
4359                     break;
4360                 }
4361                 enumName = "SOLARIZE";
4362                 if (strncmp(name, enumName, size) == 0) {
4363                     *value = ANDROID_CONTROL_EFFECT_MODE_SOLARIZE;
4364                     ret = 0;
4365                     break;
4366                 }
4367                 enumName = "SEPIA";
4368                 if (strncmp(name, enumName, size) == 0) {
4369                     *value = ANDROID_CONTROL_EFFECT_MODE_SEPIA;
4370                     ret = 0;
4371                     break;
4372                 }
4373                 enumName = "POSTERIZE";
4374                 if (strncmp(name, enumName, size) == 0) {
4375                     *value = ANDROID_CONTROL_EFFECT_MODE_POSTERIZE;
4376                     ret = 0;
4377                     break;
4378                 }
4379                 enumName = "WHITEBOARD";
4380                 if (strncmp(name, enumName, size) == 0) {
4381                     *value = ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD;
4382                     ret = 0;
4383                     break;
4384                 }
4385                 enumName = "BLACKBOARD";
4386                 if (strncmp(name, enumName, size) == 0) {
4387                     *value = ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD;
4388                     ret = 0;
4389                     break;
4390                 }
4391                 enumName = "AQUA";
4392                 if (strncmp(name, enumName, size) == 0) {
4393                     *value = ANDROID_CONTROL_EFFECT_MODE_AQUA;
4394                     ret = 0;
4395                     break;
4396                 }
4397             break;
4398         }
4399         case ANDROID_CONTROL_MODE: {
4400                 enumName = "OFF";
4401                 if (strncmp(name, enumName, size) == 0) {
4402                     *value = ANDROID_CONTROL_MODE_OFF;
4403                     ret = 0;
4404                     break;
4405                 }
4406                 enumName = "AUTO";
4407                 if (strncmp(name, enumName, size) == 0) {
4408                     *value = ANDROID_CONTROL_MODE_AUTO;
4409                     ret = 0;
4410                     break;
4411                 }
4412                 enumName = "USE_SCENE_MODE";
4413                 if (strncmp(name, enumName, size) == 0) {
4414                     *value = ANDROID_CONTROL_MODE_USE_SCENE_MODE;
4415                     ret = 0;
4416                     break;
4417                 }
4418                 enumName = "OFF_KEEP_STATE";
4419                 if (strncmp(name, enumName, size) == 0) {
4420                     *value = ANDROID_CONTROL_MODE_OFF_KEEP_STATE;
4421                     ret = 0;
4422                     break;
4423                 }
4424                 enumName = "USE_EXTENDED_SCENE_MODE";
4425                 if (strncmp(name, enumName, size) == 0) {
4426                     *value = ANDROID_CONTROL_MODE_USE_EXTENDED_SCENE_MODE;
4427                     ret = 0;
4428                     break;
4429                 }
4430             break;
4431         }
4432         case ANDROID_CONTROL_SCENE_MODE: {
4433                 enumName = "DISABLED";
4434                 if (strncmp(name, enumName, size) == 0) {
4435                     *value = ANDROID_CONTROL_SCENE_MODE_DISABLED;
4436                     ret = 0;
4437                     break;
4438                 }
4439                 enumName = "FACE_PRIORITY";
4440                 if (strncmp(name, enumName, size) == 0) {
4441                     *value = ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY;
4442                     ret = 0;
4443                     break;
4444                 }
4445                 enumName = "ACTION";
4446                 if (strncmp(name, enumName, size) == 0) {
4447                     *value = ANDROID_CONTROL_SCENE_MODE_ACTION;
4448                     ret = 0;
4449                     break;
4450                 }
4451                 enumName = "PORTRAIT";
4452                 if (strncmp(name, enumName, size) == 0) {
4453                     *value = ANDROID_CONTROL_SCENE_MODE_PORTRAIT;
4454                     ret = 0;
4455                     break;
4456                 }
4457                 enumName = "LANDSCAPE";
4458                 if (strncmp(name, enumName, size) == 0) {
4459                     *value = ANDROID_CONTROL_SCENE_MODE_LANDSCAPE;
4460                     ret = 0;
4461                     break;
4462                 }
4463                 enumName = "NIGHT";
4464                 if (strncmp(name, enumName, size) == 0) {
4465                     *value = ANDROID_CONTROL_SCENE_MODE_NIGHT;
4466                     ret = 0;
4467                     break;
4468                 }
4469                 enumName = "NIGHT_PORTRAIT";
4470                 if (strncmp(name, enumName, size) == 0) {
4471                     *value = ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT;
4472                     ret = 0;
4473                     break;
4474                 }
4475                 enumName = "THEATRE";
4476                 if (strncmp(name, enumName, size) == 0) {
4477                     *value = ANDROID_CONTROL_SCENE_MODE_THEATRE;
4478                     ret = 0;
4479                     break;
4480                 }
4481                 enumName = "BEACH";
4482                 if (strncmp(name, enumName, size) == 0) {
4483                     *value = ANDROID_CONTROL_SCENE_MODE_BEACH;
4484                     ret = 0;
4485                     break;
4486                 }
4487                 enumName = "SNOW";
4488                 if (strncmp(name, enumName, size) == 0) {
4489                     *value = ANDROID_CONTROL_SCENE_MODE_SNOW;
4490                     ret = 0;
4491                     break;
4492                 }
4493                 enumName = "SUNSET";
4494                 if (strncmp(name, enumName, size) == 0) {
4495                     *value = ANDROID_CONTROL_SCENE_MODE_SUNSET;
4496                     ret = 0;
4497                     break;
4498                 }
4499                 enumName = "STEADYPHOTO";
4500                 if (strncmp(name, enumName, size) == 0) {
4501                     *value = ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO;
4502                     ret = 0;
4503                     break;
4504                 }
4505                 enumName = "FIREWORKS";
4506                 if (strncmp(name, enumName, size) == 0) {
4507                     *value = ANDROID_CONTROL_SCENE_MODE_FIREWORKS;
4508                     ret = 0;
4509                     break;
4510                 }
4511                 enumName = "SPORTS";
4512                 if (strncmp(name, enumName, size) == 0) {
4513                     *value = ANDROID_CONTROL_SCENE_MODE_SPORTS;
4514                     ret = 0;
4515                     break;
4516                 }
4517                 enumName = "PARTY";
4518                 if (strncmp(name, enumName, size) == 0) {
4519                     *value = ANDROID_CONTROL_SCENE_MODE_PARTY;
4520                     ret = 0;
4521                     break;
4522                 }
4523                 enumName = "CANDLELIGHT";
4524                 if (strncmp(name, enumName, size) == 0) {
4525                     *value = ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT;
4526                     ret = 0;
4527                     break;
4528                 }
4529                 enumName = "BARCODE";
4530                 if (strncmp(name, enumName, size) == 0) {
4531                     *value = ANDROID_CONTROL_SCENE_MODE_BARCODE;
4532                     ret = 0;
4533                     break;
4534                 }
4535                 enumName = "HIGH_SPEED_VIDEO";
4536                 if (strncmp(name, enumName, size) == 0) {
4537                     *value = ANDROID_CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO;
4538                     ret = 0;
4539                     break;
4540                 }
4541                 enumName = "HDR";
4542                 if (strncmp(name, enumName, size) == 0) {
4543                     *value = ANDROID_CONTROL_SCENE_MODE_HDR;
4544                     ret = 0;
4545                     break;
4546                 }
4547                 enumName = "FACE_PRIORITY_LOW_LIGHT";
4548                 if (strncmp(name, enumName, size) == 0) {
4549                     *value = ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT;
4550                     ret = 0;
4551                     break;
4552                 }
4553                 enumName = "DEVICE_CUSTOM_START";
4554                 if (strncmp(name, enumName, size) == 0) {
4555                     *value = ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_START;
4556                     ret = 0;
4557                     break;
4558                 }
4559                 enumName = "DEVICE_CUSTOM_END";
4560                 if (strncmp(name, enumName, size) == 0) {
4561                     *value = ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_END;
4562                     ret = 0;
4563                     break;
4564                 }
4565             break;
4566         }
4567         case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE: {
4568                 enumName = "OFF";
4569                 if (strncmp(name, enumName, size) == 0) {
4570                     *value = ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF;
4571                     ret = 0;
4572                     break;
4573                 }
4574                 enumName = "ON";
4575                 if (strncmp(name, enumName, size) == 0) {
4576                     *value = ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON;
4577                     ret = 0;
4578                     break;
4579                 }
4580                 enumName = "PREVIEW_STABILIZATION";
4581                 if (strncmp(name, enumName, size) == 0) {
4582                     *value = ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION;
4583                     ret = 0;
4584                     break;
4585                 }
4586             break;
4587         }
4588         case ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES: {
4589             break;
4590         }
4591         case ANDROID_CONTROL_AE_AVAILABLE_MODES: {
4592             break;
4593         }
4594         case ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES: {
4595             break;
4596         }
4597         case ANDROID_CONTROL_AE_COMPENSATION_RANGE: {
4598             break;
4599         }
4600         case ANDROID_CONTROL_AE_COMPENSATION_STEP: {
4601             break;
4602         }
4603         case ANDROID_CONTROL_AF_AVAILABLE_MODES: {
4604             break;
4605         }
4606         case ANDROID_CONTROL_AVAILABLE_EFFECTS: {
4607             break;
4608         }
4609         case ANDROID_CONTROL_AVAILABLE_SCENE_MODES: {
4610             break;
4611         }
4612         case ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES: {
4613             break;
4614         }
4615         case ANDROID_CONTROL_AWB_AVAILABLE_MODES: {
4616             break;
4617         }
4618         case ANDROID_CONTROL_MAX_REGIONS: {
4619             break;
4620         }
4621         case ANDROID_CONTROL_SCENE_MODE_OVERRIDES: {
4622             break;
4623         }
4624         case ANDROID_CONTROL_AE_PRECAPTURE_ID: {
4625             break;
4626         }
4627         case ANDROID_CONTROL_AE_STATE: {
4628                 enumName = "INACTIVE";
4629                 if (strncmp(name, enumName, size) == 0) {
4630                     *value = ANDROID_CONTROL_AE_STATE_INACTIVE;
4631                     ret = 0;
4632                     break;
4633                 }
4634                 enumName = "SEARCHING";
4635                 if (strncmp(name, enumName, size) == 0) {
4636                     *value = ANDROID_CONTROL_AE_STATE_SEARCHING;
4637                     ret = 0;
4638                     break;
4639                 }
4640                 enumName = "CONVERGED";
4641                 if (strncmp(name, enumName, size) == 0) {
4642                     *value = ANDROID_CONTROL_AE_STATE_CONVERGED;
4643                     ret = 0;
4644                     break;
4645                 }
4646                 enumName = "LOCKED";
4647                 if (strncmp(name, enumName, size) == 0) {
4648                     *value = ANDROID_CONTROL_AE_STATE_LOCKED;
4649                     ret = 0;
4650                     break;
4651                 }
4652                 enumName = "FLASH_REQUIRED";
4653                 if (strncmp(name, enumName, size) == 0) {
4654                     *value = ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED;
4655                     ret = 0;
4656                     break;
4657                 }
4658                 enumName = "PRECAPTURE";
4659                 if (strncmp(name, enumName, size) == 0) {
4660                     *value = ANDROID_CONTROL_AE_STATE_PRECAPTURE;
4661                     ret = 0;
4662                     break;
4663                 }
4664             break;
4665         }
4666         case ANDROID_CONTROL_AF_STATE: {
4667                 enumName = "INACTIVE";
4668                 if (strncmp(name, enumName, size) == 0) {
4669                     *value = ANDROID_CONTROL_AF_STATE_INACTIVE;
4670                     ret = 0;
4671                     break;
4672                 }
4673                 enumName = "PASSIVE_SCAN";
4674                 if (strncmp(name, enumName, size) == 0) {
4675                     *value = ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN;
4676                     ret = 0;
4677                     break;
4678                 }
4679                 enumName = "PASSIVE_FOCUSED";
4680                 if (strncmp(name, enumName, size) == 0) {
4681                     *value = ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED;
4682                     ret = 0;
4683                     break;
4684                 }
4685                 enumName = "ACTIVE_SCAN";
4686                 if (strncmp(name, enumName, size) == 0) {
4687                     *value = ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN;
4688                     ret = 0;
4689                     break;
4690                 }
4691                 enumName = "FOCUSED_LOCKED";
4692                 if (strncmp(name, enumName, size) == 0) {
4693                     *value = ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED;
4694                     ret = 0;
4695                     break;
4696                 }
4697                 enumName = "NOT_FOCUSED_LOCKED";
4698                 if (strncmp(name, enumName, size) == 0) {
4699                     *value = ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED;
4700                     ret = 0;
4701                     break;
4702                 }
4703                 enumName = "PASSIVE_UNFOCUSED";
4704                 if (strncmp(name, enumName, size) == 0) {
4705                     *value = ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED;
4706                     ret = 0;
4707                     break;
4708                 }
4709             break;
4710         }
4711         case ANDROID_CONTROL_AF_TRIGGER_ID: {
4712             break;
4713         }
4714         case ANDROID_CONTROL_AWB_STATE: {
4715                 enumName = "INACTIVE";
4716                 if (strncmp(name, enumName, size) == 0) {
4717                     *value = ANDROID_CONTROL_AWB_STATE_INACTIVE;
4718                     ret = 0;
4719                     break;
4720                 }
4721                 enumName = "SEARCHING";
4722                 if (strncmp(name, enumName, size) == 0) {
4723                     *value = ANDROID_CONTROL_AWB_STATE_SEARCHING;
4724                     ret = 0;
4725                     break;
4726                 }
4727                 enumName = "CONVERGED";
4728                 if (strncmp(name, enumName, size) == 0) {
4729                     *value = ANDROID_CONTROL_AWB_STATE_CONVERGED;
4730                     ret = 0;
4731                     break;
4732                 }
4733                 enumName = "LOCKED";
4734                 if (strncmp(name, enumName, size) == 0) {
4735                     *value = ANDROID_CONTROL_AWB_STATE_LOCKED;
4736                     ret = 0;
4737                     break;
4738                 }
4739             break;
4740         }
4741         case ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS: {
4742             break;
4743         }
4744         case ANDROID_CONTROL_AE_LOCK_AVAILABLE: {
4745                 enumName = "FALSE";
4746                 if (strncmp(name, enumName, size) == 0) {
4747                     *value = ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE;
4748                     ret = 0;
4749                     break;
4750                 }
4751                 enumName = "TRUE";
4752                 if (strncmp(name, enumName, size) == 0) {
4753                     *value = ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE;
4754                     ret = 0;
4755                     break;
4756                 }
4757             break;
4758         }
4759         case ANDROID_CONTROL_AWB_LOCK_AVAILABLE: {
4760                 enumName = "FALSE";
4761                 if (strncmp(name, enumName, size) == 0) {
4762                     *value = ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE;
4763                     ret = 0;
4764                     break;
4765                 }
4766                 enumName = "TRUE";
4767                 if (strncmp(name, enumName, size) == 0) {
4768                     *value = ANDROID_CONTROL_AWB_LOCK_AVAILABLE_TRUE;
4769                     ret = 0;
4770                     break;
4771                 }
4772             break;
4773         }
4774         case ANDROID_CONTROL_AVAILABLE_MODES: {
4775             break;
4776         }
4777         case ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE: {
4778             break;
4779         }
4780         case ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST: {
4781             break;
4782         }
4783         case ANDROID_CONTROL_ENABLE_ZSL: {
4784                 enumName = "FALSE";
4785                 if (strncmp(name, enumName, size) == 0) {
4786                     *value = ANDROID_CONTROL_ENABLE_ZSL_FALSE;
4787                     ret = 0;
4788                     break;
4789                 }
4790                 enumName = "TRUE";
4791                 if (strncmp(name, enumName, size) == 0) {
4792                     *value = ANDROID_CONTROL_ENABLE_ZSL_TRUE;
4793                     ret = 0;
4794                     break;
4795                 }
4796             break;
4797         }
4798         case ANDROID_CONTROL_AF_SCENE_CHANGE: {
4799                 enumName = "NOT_DETECTED";
4800                 if (strncmp(name, enumName, size) == 0) {
4801                     *value = ANDROID_CONTROL_AF_SCENE_CHANGE_NOT_DETECTED;
4802                     ret = 0;
4803                     break;
4804                 }
4805                 enumName = "DETECTED";
4806                 if (strncmp(name, enumName, size) == 0) {
4807                     *value = ANDROID_CONTROL_AF_SCENE_CHANGE_DETECTED;
4808                     ret = 0;
4809                     break;
4810                 }
4811             break;
4812         }
4813         case ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES: {
4814             break;
4815         }
4816         case ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES: {
4817             break;
4818         }
4819         case ANDROID_CONTROL_EXTENDED_SCENE_MODE: {
4820                 enumName = "DISABLED";
4821                 if (strncmp(name, enumName, size) == 0) {
4822                     *value = ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED;
4823                     ret = 0;
4824                     break;
4825                 }
4826                 enumName = "BOKEH_STILL_CAPTURE";
4827                 if (strncmp(name, enumName, size) == 0) {
4828                     *value = ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE;
4829                     ret = 0;
4830                     break;
4831                 }
4832                 enumName = "BOKEH_CONTINUOUS";
4833                 if (strncmp(name, enumName, size) == 0) {
4834                     *value = ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS;
4835                     ret = 0;
4836                     break;
4837                 }
4838                 enumName = "VENDOR_START";
4839                 if (strncmp(name, enumName, size) == 0) {
4840                     *value = ANDROID_CONTROL_EXTENDED_SCENE_MODE_VENDOR_START;
4841                     ret = 0;
4842                     break;
4843                 }
4844             break;
4845         }
4846         case ANDROID_CONTROL_ZOOM_RATIO_RANGE: {
4847             break;
4848         }
4849         case ANDROID_CONTROL_ZOOM_RATIO: {
4850             break;
4851         }
4852         case ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
4853             break;
4854         }
4855         case ANDROID_CONTROL_AF_REGIONS_SET: {
4856                 enumName = "FALSE";
4857                 if (strncmp(name, enumName, size) == 0) {
4858                     *value = ANDROID_CONTROL_AF_REGIONS_SET_FALSE;
4859                     ret = 0;
4860                     break;
4861                 }
4862                 enumName = "TRUE";
4863                 if (strncmp(name, enumName, size) == 0) {
4864                     *value = ANDROID_CONTROL_AF_REGIONS_SET_TRUE;
4865                     ret = 0;
4866                     break;
4867                 }
4868             break;
4869         }
4870         case ANDROID_CONTROL_AE_REGIONS_SET: {
4871                 enumName = "FALSE";
4872                 if (strncmp(name, enumName, size) == 0) {
4873                     *value = ANDROID_CONTROL_AE_REGIONS_SET_FALSE;
4874                     ret = 0;
4875                     break;
4876                 }
4877                 enumName = "TRUE";
4878                 if (strncmp(name, enumName, size) == 0) {
4879                     *value = ANDROID_CONTROL_AE_REGIONS_SET_TRUE;
4880                     ret = 0;
4881                     break;
4882                 }
4883             break;
4884         }
4885         case ANDROID_CONTROL_AWB_REGIONS_SET: {
4886                 enumName = "FALSE";
4887                 if (strncmp(name, enumName, size) == 0) {
4888                     *value = ANDROID_CONTROL_AWB_REGIONS_SET_FALSE;
4889                     ret = 0;
4890                     break;
4891                 }
4892                 enumName = "TRUE";
4893                 if (strncmp(name, enumName, size) == 0) {
4894                     *value = ANDROID_CONTROL_AWB_REGIONS_SET_TRUE;
4895                     ret = 0;
4896                     break;
4897                 }
4898             break;
4899         }
4900         case ANDROID_CONTROL_SETTINGS_OVERRIDE: {
4901                 enumName = "OFF";
4902                 if (strncmp(name, enumName, size) == 0) {
4903                     *value = ANDROID_CONTROL_SETTINGS_OVERRIDE_OFF;
4904                     ret = 0;
4905                     break;
4906                 }
4907                 enumName = "ZOOM";
4908                 if (strncmp(name, enumName, size) == 0) {
4909                     *value = ANDROID_CONTROL_SETTINGS_OVERRIDE_ZOOM;
4910                     ret = 0;
4911                     break;
4912                 }
4913                 enumName = "VENDOR_START";
4914                 if (strncmp(name, enumName, size) == 0) {
4915                     *value = ANDROID_CONTROL_SETTINGS_OVERRIDE_VENDOR_START;
4916                     ret = 0;
4917                     break;
4918                 }
4919             break;
4920         }
4921         case ANDROID_CONTROL_AVAILABLE_SETTINGS_OVERRIDES: {
4922             break;
4923         }
4924         case ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER: {
4925             break;
4926         }
4927         case ANDROID_CONTROL_AUTOFRAMING: {
4928                 enumName = "OFF";
4929                 if (strncmp(name, enumName, size) == 0) {
4930                     *value = ANDROID_CONTROL_AUTOFRAMING_OFF;
4931                     ret = 0;
4932                     break;
4933                 }
4934                 enumName = "ON";
4935                 if (strncmp(name, enumName, size) == 0) {
4936                     *value = ANDROID_CONTROL_AUTOFRAMING_ON;
4937                     ret = 0;
4938                     break;
4939                 }
4940                 enumName = "AUTO";
4941                 if (strncmp(name, enumName, size) == 0) {
4942                     *value = ANDROID_CONTROL_AUTOFRAMING_AUTO;
4943                     ret = 0;
4944                     break;
4945                 }
4946             break;
4947         }
4948         case ANDROID_CONTROL_AUTOFRAMING_AVAILABLE: {
4949                 enumName = "FALSE";
4950                 if (strncmp(name, enumName, size) == 0) {
4951                     *value = ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_FALSE;
4952                     ret = 0;
4953                     break;
4954                 }
4955                 enumName = "TRUE";
4956                 if (strncmp(name, enumName, size) == 0) {
4957                     *value = ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_TRUE;
4958                     ret = 0;
4959                     break;
4960                 }
4961             break;
4962         }
4963         case ANDROID_CONTROL_AUTOFRAMING_STATE: {
4964                 enumName = "INACTIVE";
4965                 if (strncmp(name, enumName, size) == 0) {
4966                     *value = ANDROID_CONTROL_AUTOFRAMING_STATE_INACTIVE;
4967                     ret = 0;
4968                     break;
4969                 }
4970                 enumName = "FRAMING";
4971                 if (strncmp(name, enumName, size) == 0) {
4972                     *value = ANDROID_CONTROL_AUTOFRAMING_STATE_FRAMING;
4973                     ret = 0;
4974                     break;
4975                 }
4976                 enumName = "CONVERGED";
4977                 if (strncmp(name, enumName, size) == 0) {
4978                     *value = ANDROID_CONTROL_AUTOFRAMING_STATE_CONVERGED;
4979                     ret = 0;
4980                     break;
4981                 }
4982             break;
4983         }
4984 
4985         case ANDROID_DEMOSAIC_MODE: {
4986                 enumName = "FAST";
4987                 if (strncmp(name, enumName, size) == 0) {
4988                     *value = ANDROID_DEMOSAIC_MODE_FAST;
4989                     ret = 0;
4990                     break;
4991                 }
4992                 enumName = "HIGH_QUALITY";
4993                 if (strncmp(name, enumName, size) == 0) {
4994                     *value = ANDROID_DEMOSAIC_MODE_HIGH_QUALITY;
4995                     ret = 0;
4996                     break;
4997                 }
4998             break;
4999         }
5000 
5001         case ANDROID_EDGE_MODE: {
5002                 enumName = "OFF";
5003                 if (strncmp(name, enumName, size) == 0) {
5004                     *value = ANDROID_EDGE_MODE_OFF;
5005                     ret = 0;
5006                     break;
5007                 }
5008                 enumName = "FAST";
5009                 if (strncmp(name, enumName, size) == 0) {
5010                     *value = ANDROID_EDGE_MODE_FAST;
5011                     ret = 0;
5012                     break;
5013                 }
5014                 enumName = "HIGH_QUALITY";
5015                 if (strncmp(name, enumName, size) == 0) {
5016                     *value = ANDROID_EDGE_MODE_HIGH_QUALITY;
5017                     ret = 0;
5018                     break;
5019                 }
5020                 enumName = "ZERO_SHUTTER_LAG";
5021                 if (strncmp(name, enumName, size) == 0) {
5022                     *value = ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG;
5023                     ret = 0;
5024                     break;
5025                 }
5026             break;
5027         }
5028         case ANDROID_EDGE_STRENGTH: {
5029             break;
5030         }
5031         case ANDROID_EDGE_AVAILABLE_EDGE_MODES: {
5032             break;
5033         }
5034 
5035         case ANDROID_FLASH_FIRING_POWER: {
5036             break;
5037         }
5038         case ANDROID_FLASH_FIRING_TIME: {
5039             break;
5040         }
5041         case ANDROID_FLASH_MODE: {
5042                 enumName = "OFF";
5043                 if (strncmp(name, enumName, size) == 0) {
5044                     *value = ANDROID_FLASH_MODE_OFF;
5045                     ret = 0;
5046                     break;
5047                 }
5048                 enumName = "SINGLE";
5049                 if (strncmp(name, enumName, size) == 0) {
5050                     *value = ANDROID_FLASH_MODE_SINGLE;
5051                     ret = 0;
5052                     break;
5053                 }
5054                 enumName = "TORCH";
5055                 if (strncmp(name, enumName, size) == 0) {
5056                     *value = ANDROID_FLASH_MODE_TORCH;
5057                     ret = 0;
5058                     break;
5059                 }
5060             break;
5061         }
5062         case ANDROID_FLASH_COLOR_TEMPERATURE: {
5063             break;
5064         }
5065         case ANDROID_FLASH_MAX_ENERGY: {
5066             break;
5067         }
5068         case ANDROID_FLASH_STATE: {
5069                 enumName = "UNAVAILABLE";
5070                 if (strncmp(name, enumName, size) == 0) {
5071                     *value = ANDROID_FLASH_STATE_UNAVAILABLE;
5072                     ret = 0;
5073                     break;
5074                 }
5075                 enumName = "CHARGING";
5076                 if (strncmp(name, enumName, size) == 0) {
5077                     *value = ANDROID_FLASH_STATE_CHARGING;
5078                     ret = 0;
5079                     break;
5080                 }
5081                 enumName = "READY";
5082                 if (strncmp(name, enumName, size) == 0) {
5083                     *value = ANDROID_FLASH_STATE_READY;
5084                     ret = 0;
5085                     break;
5086                 }
5087                 enumName = "FIRED";
5088                 if (strncmp(name, enumName, size) == 0) {
5089                     *value = ANDROID_FLASH_STATE_FIRED;
5090                     ret = 0;
5091                     break;
5092                 }
5093                 enumName = "PARTIAL";
5094                 if (strncmp(name, enumName, size) == 0) {
5095                     *value = ANDROID_FLASH_STATE_PARTIAL;
5096                     ret = 0;
5097                     break;
5098                 }
5099             break;
5100         }
5101 
5102         case ANDROID_FLASH_INFO_AVAILABLE: {
5103                 enumName = "FALSE";
5104                 if (strncmp(name, enumName, size) == 0) {
5105                     *value = ANDROID_FLASH_INFO_AVAILABLE_FALSE;
5106                     ret = 0;
5107                     break;
5108                 }
5109                 enumName = "TRUE";
5110                 if (strncmp(name, enumName, size) == 0) {
5111                     *value = ANDROID_FLASH_INFO_AVAILABLE_TRUE;
5112                     ret = 0;
5113                     break;
5114                 }
5115             break;
5116         }
5117         case ANDROID_FLASH_INFO_CHARGE_DURATION: {
5118             break;
5119         }
5120         case ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL: {
5121             break;
5122         }
5123         case ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL: {
5124             break;
5125         }
5126 
5127         case ANDROID_HOT_PIXEL_MODE: {
5128                 enumName = "OFF";
5129                 if (strncmp(name, enumName, size) == 0) {
5130                     *value = ANDROID_HOT_PIXEL_MODE_OFF;
5131                     ret = 0;
5132                     break;
5133                 }
5134                 enumName = "FAST";
5135                 if (strncmp(name, enumName, size) == 0) {
5136                     *value = ANDROID_HOT_PIXEL_MODE_FAST;
5137                     ret = 0;
5138                     break;
5139                 }
5140                 enumName = "HIGH_QUALITY";
5141                 if (strncmp(name, enumName, size) == 0) {
5142                     *value = ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY;
5143                     ret = 0;
5144                     break;
5145                 }
5146             break;
5147         }
5148         case ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES: {
5149             break;
5150         }
5151 
5152         case ANDROID_JPEG_GPS_COORDINATES: {
5153             break;
5154         }
5155         case ANDROID_JPEG_GPS_PROCESSING_METHOD: {
5156             break;
5157         }
5158         case ANDROID_JPEG_GPS_TIMESTAMP: {
5159             break;
5160         }
5161         case ANDROID_JPEG_ORIENTATION: {
5162             break;
5163         }
5164         case ANDROID_JPEG_QUALITY: {
5165             break;
5166         }
5167         case ANDROID_JPEG_THUMBNAIL_QUALITY: {
5168             break;
5169         }
5170         case ANDROID_JPEG_THUMBNAIL_SIZE: {
5171             break;
5172         }
5173         case ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES: {
5174             break;
5175         }
5176         case ANDROID_JPEG_MAX_SIZE: {
5177             break;
5178         }
5179         case ANDROID_JPEG_SIZE: {
5180             break;
5181         }
5182 
5183         case ANDROID_LENS_APERTURE: {
5184             break;
5185         }
5186         case ANDROID_LENS_FILTER_DENSITY: {
5187             break;
5188         }
5189         case ANDROID_LENS_FOCAL_LENGTH: {
5190             break;
5191         }
5192         case ANDROID_LENS_FOCUS_DISTANCE: {
5193             break;
5194         }
5195         case ANDROID_LENS_OPTICAL_STABILIZATION_MODE: {
5196                 enumName = "OFF";
5197                 if (strncmp(name, enumName, size) == 0) {
5198                     *value = ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF;
5199                     ret = 0;
5200                     break;
5201                 }
5202                 enumName = "ON";
5203                 if (strncmp(name, enumName, size) == 0) {
5204                     *value = ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON;
5205                     ret = 0;
5206                     break;
5207                 }
5208             break;
5209         }
5210         case ANDROID_LENS_FACING: {
5211                 enumName = "FRONT";
5212                 if (strncmp(name, enumName, size) == 0) {
5213                     *value = ANDROID_LENS_FACING_FRONT;
5214                     ret = 0;
5215                     break;
5216                 }
5217                 enumName = "BACK";
5218                 if (strncmp(name, enumName, size) == 0) {
5219                     *value = ANDROID_LENS_FACING_BACK;
5220                     ret = 0;
5221                     break;
5222                 }
5223                 enumName = "EXTERNAL";
5224                 if (strncmp(name, enumName, size) == 0) {
5225                     *value = ANDROID_LENS_FACING_EXTERNAL;
5226                     ret = 0;
5227                     break;
5228                 }
5229             break;
5230         }
5231         case ANDROID_LENS_POSE_ROTATION: {
5232             break;
5233         }
5234         case ANDROID_LENS_POSE_TRANSLATION: {
5235             break;
5236         }
5237         case ANDROID_LENS_FOCUS_RANGE: {
5238             break;
5239         }
5240         case ANDROID_LENS_STATE: {
5241                 enumName = "STATIONARY";
5242                 if (strncmp(name, enumName, size) == 0) {
5243                     *value = ANDROID_LENS_STATE_STATIONARY;
5244                     ret = 0;
5245                     break;
5246                 }
5247                 enumName = "MOVING";
5248                 if (strncmp(name, enumName, size) == 0) {
5249                     *value = ANDROID_LENS_STATE_MOVING;
5250                     ret = 0;
5251                     break;
5252                 }
5253             break;
5254         }
5255         case ANDROID_LENS_INTRINSIC_CALIBRATION: {
5256             break;
5257         }
5258         case ANDROID_LENS_RADIAL_DISTORTION: {
5259             break;
5260         }
5261         case ANDROID_LENS_POSE_REFERENCE: {
5262                 enumName = "PRIMARY_CAMERA";
5263                 if (strncmp(name, enumName, size) == 0) {
5264                     *value = ANDROID_LENS_POSE_REFERENCE_PRIMARY_CAMERA;
5265                     ret = 0;
5266                     break;
5267                 }
5268                 enumName = "GYROSCOPE";
5269                 if (strncmp(name, enumName, size) == 0) {
5270                     *value = ANDROID_LENS_POSE_REFERENCE_GYROSCOPE;
5271                     ret = 0;
5272                     break;
5273                 }
5274                 enumName = "UNDEFINED";
5275                 if (strncmp(name, enumName, size) == 0) {
5276                     *value = ANDROID_LENS_POSE_REFERENCE_UNDEFINED;
5277                     ret = 0;
5278                     break;
5279                 }
5280                 enumName = "AUTOMOTIVE";
5281                 if (strncmp(name, enumName, size) == 0) {
5282                     *value = ANDROID_LENS_POSE_REFERENCE_AUTOMOTIVE;
5283                     ret = 0;
5284                     break;
5285                 }
5286             break;
5287         }
5288         case ANDROID_LENS_DISTORTION: {
5289             break;
5290         }
5291         case ANDROID_LENS_DISTORTION_MAXIMUM_RESOLUTION: {
5292             break;
5293         }
5294         case ANDROID_LENS_INTRINSIC_CALIBRATION_MAXIMUM_RESOLUTION: {
5295             break;
5296         }
5297 
5298         case ANDROID_LENS_INFO_AVAILABLE_APERTURES: {
5299             break;
5300         }
5301         case ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES: {
5302             break;
5303         }
5304         case ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS: {
5305             break;
5306         }
5307         case ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION: {
5308             break;
5309         }
5310         case ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE: {
5311             break;
5312         }
5313         case ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE: {
5314             break;
5315         }
5316         case ANDROID_LENS_INFO_SHADING_MAP_SIZE: {
5317             break;
5318         }
5319         case ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION: {
5320                 enumName = "UNCALIBRATED";
5321                 if (strncmp(name, enumName, size) == 0) {
5322                     *value = ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED;
5323                     ret = 0;
5324                     break;
5325                 }
5326                 enumName = "APPROXIMATE";
5327                 if (strncmp(name, enumName, size) == 0) {
5328                     *value = ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE;
5329                     ret = 0;
5330                     break;
5331                 }
5332                 enumName = "CALIBRATED";
5333                 if (strncmp(name, enumName, size) == 0) {
5334                     *value = ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED;
5335                     ret = 0;
5336                     break;
5337                 }
5338             break;
5339         }
5340 
5341         case ANDROID_NOISE_REDUCTION_MODE: {
5342                 enumName = "OFF";
5343                 if (strncmp(name, enumName, size) == 0) {
5344                     *value = ANDROID_NOISE_REDUCTION_MODE_OFF;
5345                     ret = 0;
5346                     break;
5347                 }
5348                 enumName = "FAST";
5349                 if (strncmp(name, enumName, size) == 0) {
5350                     *value = ANDROID_NOISE_REDUCTION_MODE_FAST;
5351                     ret = 0;
5352                     break;
5353                 }
5354                 enumName = "HIGH_QUALITY";
5355                 if (strncmp(name, enumName, size) == 0) {
5356                     *value = ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY;
5357                     ret = 0;
5358                     break;
5359                 }
5360                 enumName = "MINIMAL";
5361                 if (strncmp(name, enumName, size) == 0) {
5362                     *value = ANDROID_NOISE_REDUCTION_MODE_MINIMAL;
5363                     ret = 0;
5364                     break;
5365                 }
5366                 enumName = "ZERO_SHUTTER_LAG";
5367                 if (strncmp(name, enumName, size) == 0) {
5368                     *value = ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG;
5369                     ret = 0;
5370                     break;
5371                 }
5372             break;
5373         }
5374         case ANDROID_NOISE_REDUCTION_STRENGTH: {
5375             break;
5376         }
5377         case ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES: {
5378             break;
5379         }
5380 
5381         case ANDROID_QUIRKS_METERING_CROP_REGION: {
5382             break;
5383         }
5384         case ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO: {
5385             break;
5386         }
5387         case ANDROID_QUIRKS_USE_ZSL_FORMAT: {
5388             break;
5389         }
5390         case ANDROID_QUIRKS_USE_PARTIAL_RESULT: {
5391             break;
5392         }
5393         case ANDROID_QUIRKS_PARTIAL_RESULT: {
5394                 enumName = "FINAL";
5395                 if (strncmp(name, enumName, size) == 0) {
5396                     *value = ANDROID_QUIRKS_PARTIAL_RESULT_FINAL;
5397                     ret = 0;
5398                     break;
5399                 }
5400                 enumName = "PARTIAL";
5401                 if (strncmp(name, enumName, size) == 0) {
5402                     *value = ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL;
5403                     ret = 0;
5404                     break;
5405                 }
5406             break;
5407         }
5408 
5409         case ANDROID_REQUEST_FRAME_COUNT: {
5410             break;
5411         }
5412         case ANDROID_REQUEST_ID: {
5413             break;
5414         }
5415         case ANDROID_REQUEST_INPUT_STREAMS: {
5416             break;
5417         }
5418         case ANDROID_REQUEST_METADATA_MODE: {
5419                 enumName = "NONE";
5420                 if (strncmp(name, enumName, size) == 0) {
5421                     *value = ANDROID_REQUEST_METADATA_MODE_NONE;
5422                     ret = 0;
5423                     break;
5424                 }
5425                 enumName = "FULL";
5426                 if (strncmp(name, enumName, size) == 0) {
5427                     *value = ANDROID_REQUEST_METADATA_MODE_FULL;
5428                     ret = 0;
5429                     break;
5430                 }
5431             break;
5432         }
5433         case ANDROID_REQUEST_OUTPUT_STREAMS: {
5434             break;
5435         }
5436         case ANDROID_REQUEST_TYPE: {
5437                 enumName = "CAPTURE";
5438                 if (strncmp(name, enumName, size) == 0) {
5439                     *value = ANDROID_REQUEST_TYPE_CAPTURE;
5440                     ret = 0;
5441                     break;
5442                 }
5443                 enumName = "REPROCESS";
5444                 if (strncmp(name, enumName, size) == 0) {
5445                     *value = ANDROID_REQUEST_TYPE_REPROCESS;
5446                     ret = 0;
5447                     break;
5448                 }
5449             break;
5450         }
5451         case ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS: {
5452             break;
5453         }
5454         case ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS: {
5455             break;
5456         }
5457         case ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS: {
5458             break;
5459         }
5460         case ANDROID_REQUEST_PIPELINE_DEPTH: {
5461             break;
5462         }
5463         case ANDROID_REQUEST_PIPELINE_MAX_DEPTH: {
5464             break;
5465         }
5466         case ANDROID_REQUEST_PARTIAL_RESULT_COUNT: {
5467             break;
5468         }
5469         case ANDROID_REQUEST_AVAILABLE_CAPABILITIES: {
5470                 enumName = "BACKWARD_COMPATIBLE";
5471                 if (strncmp(name, enumName, size) == 0) {
5472                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE;
5473                     ret = 0;
5474                     break;
5475                 }
5476                 enumName = "MANUAL_SENSOR";
5477                 if (strncmp(name, enumName, size) == 0) {
5478                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR;
5479                     ret = 0;
5480                     break;
5481                 }
5482                 enumName = "MANUAL_POST_PROCESSING";
5483                 if (strncmp(name, enumName, size) == 0) {
5484                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING;
5485                     ret = 0;
5486                     break;
5487                 }
5488                 enumName = "RAW";
5489                 if (strncmp(name, enumName, size) == 0) {
5490                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW;
5491                     ret = 0;
5492                     break;
5493                 }
5494                 enumName = "PRIVATE_REPROCESSING";
5495                 if (strncmp(name, enumName, size) == 0) {
5496                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING;
5497                     ret = 0;
5498                     break;
5499                 }
5500                 enumName = "READ_SENSOR_SETTINGS";
5501                 if (strncmp(name, enumName, size) == 0) {
5502                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS;
5503                     ret = 0;
5504                     break;
5505                 }
5506                 enumName = "BURST_CAPTURE";
5507                 if (strncmp(name, enumName, size) == 0) {
5508                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE;
5509                     ret = 0;
5510                     break;
5511                 }
5512                 enumName = "YUV_REPROCESSING";
5513                 if (strncmp(name, enumName, size) == 0) {
5514                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING;
5515                     ret = 0;
5516                     break;
5517                 }
5518                 enumName = "DEPTH_OUTPUT";
5519                 if (strncmp(name, enumName, size) == 0) {
5520                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT;
5521                     ret = 0;
5522                     break;
5523                 }
5524                 enumName = "CONSTRAINED_HIGH_SPEED_VIDEO";
5525                 if (strncmp(name, enumName, size) == 0) {
5526                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO;
5527                     ret = 0;
5528                     break;
5529                 }
5530                 enumName = "MOTION_TRACKING";
5531                 if (strncmp(name, enumName, size) == 0) {
5532                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING;
5533                     ret = 0;
5534                     break;
5535                 }
5536                 enumName = "LOGICAL_MULTI_CAMERA";
5537                 if (strncmp(name, enumName, size) == 0) {
5538                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA;
5539                     ret = 0;
5540                     break;
5541                 }
5542                 enumName = "MONOCHROME";
5543                 if (strncmp(name, enumName, size) == 0) {
5544                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME;
5545                     ret = 0;
5546                     break;
5547                 }
5548                 enumName = "SECURE_IMAGE_DATA";
5549                 if (strncmp(name, enumName, size) == 0) {
5550                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA;
5551                     ret = 0;
5552                     break;
5553                 }
5554                 enumName = "SYSTEM_CAMERA";
5555                 if (strncmp(name, enumName, size) == 0) {
5556                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA;
5557                     ret = 0;
5558                     break;
5559                 }
5560                 enumName = "OFFLINE_PROCESSING";
5561                 if (strncmp(name, enumName, size) == 0) {
5562                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING;
5563                     ret = 0;
5564                     break;
5565                 }
5566                 enumName = "ULTRA_HIGH_RESOLUTION_SENSOR";
5567                 if (strncmp(name, enumName, size) == 0) {
5568                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR;
5569                     ret = 0;
5570                     break;
5571                 }
5572                 enumName = "REMOSAIC_REPROCESSING";
5573                 if (strncmp(name, enumName, size) == 0) {
5574                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSING;
5575                     ret = 0;
5576                     break;
5577                 }
5578                 enumName = "DYNAMIC_RANGE_TEN_BIT";
5579                 if (strncmp(name, enumName, size) == 0) {
5580                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT;
5581                     ret = 0;
5582                     break;
5583                 }
5584                 enumName = "STREAM_USE_CASE";
5585                 if (strncmp(name, enumName, size) == 0) {
5586                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE;
5587                     ret = 0;
5588                     break;
5589                 }
5590                 enumName = "COLOR_SPACE_PROFILES";
5591                 if (strncmp(name, enumName, size) == 0) {
5592                     *value = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILES;
5593                     ret = 0;
5594                     break;
5595                 }
5596             break;
5597         }
5598         case ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS: {
5599             break;
5600         }
5601         case ANDROID_REQUEST_AVAILABLE_RESULT_KEYS: {
5602             break;
5603         }
5604         case ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS: {
5605             break;
5606         }
5607         case ANDROID_REQUEST_AVAILABLE_SESSION_KEYS: {
5608             break;
5609         }
5610         case ANDROID_REQUEST_AVAILABLE_PHYSICAL_CAMERA_REQUEST_KEYS: {
5611             break;
5612         }
5613         case ANDROID_REQUEST_CHARACTERISTIC_KEYS_NEEDING_PERMISSION: {
5614             break;
5615         }
5616         case ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP: {
5617                 enumName = "STANDARD";
5618                 if (strncmp(name, enumName, size) == 0) {
5619                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD;
5620                     ret = 0;
5621                     break;
5622                 }
5623                 enumName = "HLG10";
5624                 if (strncmp(name, enumName, size) == 0) {
5625                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HLG10;
5626                     ret = 0;
5627                     break;
5628                 }
5629                 enumName = "HDR10";
5630                 if (strncmp(name, enumName, size) == 0) {
5631                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10;
5632                     ret = 0;
5633                     break;
5634                 }
5635                 enumName = "HDR10_PLUS";
5636                 if (strncmp(name, enumName, size) == 0) {
5637                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10_PLUS;
5638                     ret = 0;
5639                     break;
5640                 }
5641                 enumName = "DOLBY_VISION_10B_HDR_REF";
5642                 if (strncmp(name, enumName, size) == 0) {
5643                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF;
5644                     ret = 0;
5645                     break;
5646                 }
5647                 enumName = "DOLBY_VISION_10B_HDR_REF_PO";
5648                 if (strncmp(name, enumName, size) == 0) {
5649                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF_PO;
5650                     ret = 0;
5651                     break;
5652                 }
5653                 enumName = "DOLBY_VISION_10B_HDR_OEM";
5654                 if (strncmp(name, enumName, size) == 0) {
5655                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM;
5656                     ret = 0;
5657                     break;
5658                 }
5659                 enumName = "DOLBY_VISION_10B_HDR_OEM_PO";
5660                 if (strncmp(name, enumName, size) == 0) {
5661                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM_PO;
5662                     ret = 0;
5663                     break;
5664                 }
5665                 enumName = "DOLBY_VISION_8B_HDR_REF";
5666                 if (strncmp(name, enumName, size) == 0) {
5667                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF;
5668                     ret = 0;
5669                     break;
5670                 }
5671                 enumName = "DOLBY_VISION_8B_HDR_REF_PO";
5672                 if (strncmp(name, enumName, size) == 0) {
5673                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF_PO;
5674                     ret = 0;
5675                     break;
5676                 }
5677                 enumName = "DOLBY_VISION_8B_HDR_OEM";
5678                 if (strncmp(name, enumName, size) == 0) {
5679                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM;
5680                     ret = 0;
5681                     break;
5682                 }
5683                 enumName = "DOLBY_VISION_8B_HDR_OEM_PO";
5684                 if (strncmp(name, enumName, size) == 0) {
5685                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM_PO;
5686                     ret = 0;
5687                     break;
5688                 }
5689                 enumName = "MAX";
5690                 if (strncmp(name, enumName, size) == 0) {
5691                     *value = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_MAX;
5692                     ret = 0;
5693                     break;
5694                 }
5695             break;
5696         }
5697         case ANDROID_REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE: {
5698             break;
5699         }
5700         case ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP: {
5701                 enumName = "UNSPECIFIED";
5702                 if (strncmp(name, enumName, size) == 0) {
5703                     *value = ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_UNSPECIFIED;
5704                     ret = 0;
5705                     break;
5706                 }
5707                 enumName = "SRGB";
5708                 if (strncmp(name, enumName, size) == 0) {
5709                     *value = ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_SRGB;
5710                     ret = 0;
5711                     break;
5712                 }
5713                 enumName = "DISPLAY_P3";
5714                 if (strncmp(name, enumName, size) == 0) {
5715                     *value = ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_DISPLAY_P3;
5716                     ret = 0;
5717                     break;
5718                 }
5719                 enumName = "BT2020_HLG";
5720                 if (strncmp(name, enumName, size) == 0) {
5721                     *value = ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_BT2020_HLG;
5722                     ret = 0;
5723                     break;
5724                 }
5725             break;
5726         }
5727 
5728         case ANDROID_SCALER_CROP_REGION: {
5729             break;
5730         }
5731         case ANDROID_SCALER_AVAILABLE_FORMATS: {
5732                 enumName = "RAW16";
5733                 if (strncmp(name, enumName, size) == 0) {
5734                     *value = ANDROID_SCALER_AVAILABLE_FORMATS_RAW16;
5735                     ret = 0;
5736                     break;
5737                 }
5738                 enumName = "RAW_OPAQUE";
5739                 if (strncmp(name, enumName, size) == 0) {
5740                     *value = ANDROID_SCALER_AVAILABLE_FORMATS_RAW_OPAQUE;
5741                     ret = 0;
5742                     break;
5743                 }
5744                 enumName = "YV12";
5745                 if (strncmp(name, enumName, size) == 0) {
5746                     *value = ANDROID_SCALER_AVAILABLE_FORMATS_YV12;
5747                     ret = 0;
5748                     break;
5749                 }
5750                 enumName = "YCrCb_420_SP";
5751                 if (strncmp(name, enumName, size) == 0) {
5752                     *value = ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP;
5753                     ret = 0;
5754                     break;
5755                 }
5756                 enumName = "IMPLEMENTATION_DEFINED";
5757                 if (strncmp(name, enumName, size) == 0) {
5758                     *value = ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED;
5759                     ret = 0;
5760                     break;
5761                 }
5762                 enumName = "YCbCr_420_888";
5763                 if (strncmp(name, enumName, size) == 0) {
5764                     *value = ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888;
5765                     ret = 0;
5766                     break;
5767                 }
5768                 enumName = "BLOB";
5769                 if (strncmp(name, enumName, size) == 0) {
5770                     *value = ANDROID_SCALER_AVAILABLE_FORMATS_BLOB;
5771                     ret = 0;
5772                     break;
5773                 }
5774                 enumName = "RAW10";
5775                 if (strncmp(name, enumName, size) == 0) {
5776                     *value = ANDROID_SCALER_AVAILABLE_FORMATS_RAW10;
5777                     ret = 0;
5778                     break;
5779                 }
5780                 enumName = "RAW12";
5781                 if (strncmp(name, enumName, size) == 0) {
5782                     *value = ANDROID_SCALER_AVAILABLE_FORMATS_RAW12;
5783                     ret = 0;
5784                     break;
5785                 }
5786                 enumName = "Y8";
5787                 if (strncmp(name, enumName, size) == 0) {
5788                     *value = ANDROID_SCALER_AVAILABLE_FORMATS_Y8;
5789                     ret = 0;
5790                     break;
5791                 }
5792             break;
5793         }
5794         case ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS: {
5795             break;
5796         }
5797         case ANDROID_SCALER_AVAILABLE_JPEG_SIZES: {
5798             break;
5799         }
5800         case ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM: {
5801             break;
5802         }
5803         case ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS: {
5804             break;
5805         }
5806         case ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES: {
5807             break;
5808         }
5809         case ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS: {
5810             break;
5811         }
5812         case ANDROID_SCALER_AVAILABLE_RAW_SIZES: {
5813             break;
5814         }
5815         case ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP: {
5816             break;
5817         }
5818         case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS: {
5819                 enumName = "OUTPUT";
5820                 if (strncmp(name, enumName, size) == 0) {
5821                     *value = ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT;
5822                     ret = 0;
5823                     break;
5824                 }
5825                 enumName = "INPUT";
5826                 if (strncmp(name, enumName, size) == 0) {
5827                     *value = ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT;
5828                     ret = 0;
5829                     break;
5830                 }
5831             break;
5832         }
5833         case ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS: {
5834             break;
5835         }
5836         case ANDROID_SCALER_AVAILABLE_STALL_DURATIONS: {
5837             break;
5838         }
5839         case ANDROID_SCALER_CROPPING_TYPE: {
5840                 enumName = "CENTER_ONLY";
5841                 if (strncmp(name, enumName, size) == 0) {
5842                     *value = ANDROID_SCALER_CROPPING_TYPE_CENTER_ONLY;
5843                     ret = 0;
5844                     break;
5845                 }
5846                 enumName = "FREEFORM";
5847                 if (strncmp(name, enumName, size) == 0) {
5848                     *value = ANDROID_SCALER_CROPPING_TYPE_FREEFORM;
5849                     ret = 0;
5850                     break;
5851                 }
5852             break;
5853         }
5854         case ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS: {
5855                 enumName = "PREVIEW";
5856                 if (strncmp(name, enumName, size) == 0) {
5857                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PREVIEW;
5858                     ret = 0;
5859                     break;
5860                 }
5861                 enumName = "RECORD";
5862                 if (strncmp(name, enumName, size) == 0) {
5863                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RECORD;
5864                     ret = 0;
5865                     break;
5866                 }
5867                 enumName = "VIDEO_SNAPSHOT";
5868                 if (strncmp(name, enumName, size) == 0) {
5869                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VIDEO_SNAPSHOT;
5870                     ret = 0;
5871                     break;
5872                 }
5873                 enumName = "SNAPSHOT";
5874                 if (strncmp(name, enumName, size) == 0) {
5875                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_SNAPSHOT;
5876                     ret = 0;
5877                     break;
5878                 }
5879                 enumName = "ZSL";
5880                 if (strncmp(name, enumName, size) == 0) {
5881                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_ZSL;
5882                     ret = 0;
5883                     break;
5884                 }
5885                 enumName = "RAW";
5886                 if (strncmp(name, enumName, size) == 0) {
5887                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RAW;
5888                     ret = 0;
5889                     break;
5890                 }
5891                 enumName = "LOW_LATENCY_SNAPSHOT";
5892                 if (strncmp(name, enumName, size) == 0) {
5893                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_LOW_LATENCY_SNAPSHOT;
5894                     ret = 0;
5895                     break;
5896                 }
5897                 enumName = "PUBLIC_END";
5898                 if (strncmp(name, enumName, size) == 0) {
5899                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PUBLIC_END;
5900                     ret = 0;
5901                     break;
5902                 }
5903                 enumName = "10BIT_OUTPUT";
5904                 if (strncmp(name, enumName, size) == 0) {
5905                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_10BIT_OUTPUT;
5906                     ret = 0;
5907                     break;
5908                 }
5909                 enumName = "PUBLIC_END_3_8";
5910                 if (strncmp(name, enumName, size) == 0) {
5911                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PUBLIC_END_3_8;
5912                     ret = 0;
5913                     break;
5914                 }
5915                 enumName = "VENDOR_START";
5916                 if (strncmp(name, enumName, size) == 0) {
5917                     *value = ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VENDOR_START;
5918                     ret = 0;
5919                     break;
5920                 }
5921             break;
5922         }
5923         case ANDROID_SCALER_AVAILABLE_RECOMMENDED_INPUT_OUTPUT_FORMATS_MAP: {
5924             break;
5925         }
5926         case ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES: {
5927             break;
5928         }
5929         case ANDROID_SCALER_ROTATE_AND_CROP: {
5930                 enumName = "NONE";
5931                 if (strncmp(name, enumName, size) == 0) {
5932                     *value = ANDROID_SCALER_ROTATE_AND_CROP_NONE;
5933                     ret = 0;
5934                     break;
5935                 }
5936                 enumName = "90";
5937                 if (strncmp(name, enumName, size) == 0) {
5938                     *value = ANDROID_SCALER_ROTATE_AND_CROP_90;
5939                     ret = 0;
5940                     break;
5941                 }
5942                 enumName = "180";
5943                 if (strncmp(name, enumName, size) == 0) {
5944                     *value = ANDROID_SCALER_ROTATE_AND_CROP_180;
5945                     ret = 0;
5946                     break;
5947                 }
5948                 enumName = "270";
5949                 if (strncmp(name, enumName, size) == 0) {
5950                     *value = ANDROID_SCALER_ROTATE_AND_CROP_270;
5951                     ret = 0;
5952                     break;
5953                 }
5954                 enumName = "AUTO";
5955                 if (strncmp(name, enumName, size) == 0) {
5956                     *value = ANDROID_SCALER_ROTATE_AND_CROP_AUTO;
5957                     ret = 0;
5958                     break;
5959                 }
5960             break;
5961         }
5962         case ANDROID_SCALER_DEFAULT_SECURE_IMAGE_SIZE: {
5963             break;
5964         }
5965         case ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS: {
5966                 enumName = "OUTPUT";
5967                 if (strncmp(name, enumName, size) == 0) {
5968                     *value = ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_OUTPUT;
5969                     ret = 0;
5970                     break;
5971                 }
5972                 enumName = "INPUT";
5973                 if (strncmp(name, enumName, size) == 0) {
5974                     *value = ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_INPUT;
5975                     ret = 0;
5976                     break;
5977                 }
5978             break;
5979         }
5980         case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
5981                 enumName = "OUTPUT";
5982                 if (strncmp(name, enumName, size) == 0) {
5983                     *value = ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT;
5984                     ret = 0;
5985                     break;
5986                 }
5987                 enumName = "INPUT";
5988                 if (strncmp(name, enumName, size) == 0) {
5989                     *value = ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT;
5990                     ret = 0;
5991                     break;
5992                 }
5993             break;
5994         }
5995         case ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION: {
5996             break;
5997         }
5998         case ANDROID_SCALER_AVAILABLE_STALL_DURATIONS_MAXIMUM_RESOLUTION: {
5999             break;
6000         }
6001         case ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP_MAXIMUM_RESOLUTION: {
6002             break;
6003         }
6004         case ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED: {
6005                 enumName = "FALSE";
6006                 if (strncmp(name, enumName, size) == 0) {
6007                     *value = ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_FALSE;
6008                     ret = 0;
6009                     break;
6010                 }
6011                 enumName = "TRUE";
6012                 if (strncmp(name, enumName, size) == 0) {
6013                     *value = ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_TRUE;
6014                     ret = 0;
6015                     break;
6016                 }
6017             break;
6018         }
6019         case ANDROID_SCALER_CROP_REGION_SET: {
6020                 enumName = "FALSE";
6021                 if (strncmp(name, enumName, size) == 0) {
6022                     *value = ANDROID_SCALER_CROP_REGION_SET_FALSE;
6023                     ret = 0;
6024                     break;
6025                 }
6026                 enumName = "TRUE";
6027                 if (strncmp(name, enumName, size) == 0) {
6028                     *value = ANDROID_SCALER_CROP_REGION_SET_TRUE;
6029                     ret = 0;
6030                     break;
6031                 }
6032             break;
6033         }
6034         case ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES: {
6035                 enumName = "DEFAULT";
6036                 if (strncmp(name, enumName, size) == 0) {
6037                     *value = ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT;
6038                     ret = 0;
6039                     break;
6040                 }
6041                 enumName = "PREVIEW";
6042                 if (strncmp(name, enumName, size) == 0) {
6043                     *value = ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW;
6044                     ret = 0;
6045                     break;
6046                 }
6047                 enumName = "STILL_CAPTURE";
6048                 if (strncmp(name, enumName, size) == 0) {
6049                     *value = ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE;
6050                     ret = 0;
6051                     break;
6052                 }
6053                 enumName = "VIDEO_RECORD";
6054                 if (strncmp(name, enumName, size) == 0) {
6055                     *value = ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_RECORD;
6056                     ret = 0;
6057                     break;
6058                 }
6059                 enumName = "PREVIEW_VIDEO_STILL";
6060                 if (strncmp(name, enumName, size) == 0) {
6061                     *value = ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL;
6062                     ret = 0;
6063                     break;
6064                 }
6065                 enumName = "VIDEO_CALL";
6066                 if (strncmp(name, enumName, size) == 0) {
6067                     *value = ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL;
6068                     ret = 0;
6069                     break;
6070                 }
6071                 enumName = "CROPPED_RAW";
6072                 if (strncmp(name, enumName, size) == 0) {
6073                     *value = ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW;
6074                     ret = 0;
6075                     break;
6076                 }
6077                 enumName = "VENDOR_START";
6078                 if (strncmp(name, enumName, size) == 0) {
6079                     *value = ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START;
6080                     ret = 0;
6081                     break;
6082                 }
6083             break;
6084         }
6085         case ANDROID_SCALER_RAW_CROP_REGION: {
6086             break;
6087         }
6088 
6089         case ANDROID_SENSOR_EXPOSURE_TIME: {
6090             break;
6091         }
6092         case ANDROID_SENSOR_FRAME_DURATION: {
6093             break;
6094         }
6095         case ANDROID_SENSOR_SENSITIVITY: {
6096             break;
6097         }
6098         case ANDROID_SENSOR_REFERENCE_ILLUMINANT1: {
6099                 enumName = "DAYLIGHT";
6100                 if (strncmp(name, enumName, size) == 0) {
6101                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT;
6102                     ret = 0;
6103                     break;
6104                 }
6105                 enumName = "FLUORESCENT";
6106                 if (strncmp(name, enumName, size) == 0) {
6107                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT;
6108                     ret = 0;
6109                     break;
6110                 }
6111                 enumName = "TUNGSTEN";
6112                 if (strncmp(name, enumName, size) == 0) {
6113                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN;
6114                     ret = 0;
6115                     break;
6116                 }
6117                 enumName = "FLASH";
6118                 if (strncmp(name, enumName, size) == 0) {
6119                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLASH;
6120                     ret = 0;
6121                     break;
6122                 }
6123                 enumName = "FINE_WEATHER";
6124                 if (strncmp(name, enumName, size) == 0) {
6125                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER;
6126                     ret = 0;
6127                     break;
6128                 }
6129                 enumName = "CLOUDY_WEATHER";
6130                 if (strncmp(name, enumName, size) == 0) {
6131                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER;
6132                     ret = 0;
6133                     break;
6134                 }
6135                 enumName = "SHADE";
6136                 if (strncmp(name, enumName, size) == 0) {
6137                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_SHADE;
6138                     ret = 0;
6139                     break;
6140                 }
6141                 enumName = "DAYLIGHT_FLUORESCENT";
6142                 if (strncmp(name, enumName, size) == 0) {
6143                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT;
6144                     ret = 0;
6145                     break;
6146                 }
6147                 enumName = "DAY_WHITE_FLUORESCENT";
6148                 if (strncmp(name, enumName, size) == 0) {
6149                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT;
6150                     ret = 0;
6151                     break;
6152                 }
6153                 enumName = "COOL_WHITE_FLUORESCENT";
6154                 if (strncmp(name, enumName, size) == 0) {
6155                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT;
6156                     ret = 0;
6157                     break;
6158                 }
6159                 enumName = "WHITE_FLUORESCENT";
6160                 if (strncmp(name, enumName, size) == 0) {
6161                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT;
6162                     ret = 0;
6163                     break;
6164                 }
6165                 enumName = "STANDARD_A";
6166                 if (strncmp(name, enumName, size) == 0) {
6167                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A;
6168                     ret = 0;
6169                     break;
6170                 }
6171                 enumName = "STANDARD_B";
6172                 if (strncmp(name, enumName, size) == 0) {
6173                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B;
6174                     ret = 0;
6175                     break;
6176                 }
6177                 enumName = "STANDARD_C";
6178                 if (strncmp(name, enumName, size) == 0) {
6179                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C;
6180                     ret = 0;
6181                     break;
6182                 }
6183                 enumName = "D55";
6184                 if (strncmp(name, enumName, size) == 0) {
6185                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D55;
6186                     ret = 0;
6187                     break;
6188                 }
6189                 enumName = "D65";
6190                 if (strncmp(name, enumName, size) == 0) {
6191                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D65;
6192                     ret = 0;
6193                     break;
6194                 }
6195                 enumName = "D75";
6196                 if (strncmp(name, enumName, size) == 0) {
6197                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D75;
6198                     ret = 0;
6199                     break;
6200                 }
6201                 enumName = "D50";
6202                 if (strncmp(name, enumName, size) == 0) {
6203                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D50;
6204                     ret = 0;
6205                     break;
6206                 }
6207                 enumName = "ISO_STUDIO_TUNGSTEN";
6208                 if (strncmp(name, enumName, size) == 0) {
6209                     *value = ANDROID_SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN;
6210                     ret = 0;
6211                     break;
6212                 }
6213             break;
6214         }
6215         case ANDROID_SENSOR_REFERENCE_ILLUMINANT2: {
6216             break;
6217         }
6218         case ANDROID_SENSOR_CALIBRATION_TRANSFORM1: {
6219             break;
6220         }
6221         case ANDROID_SENSOR_CALIBRATION_TRANSFORM2: {
6222             break;
6223         }
6224         case ANDROID_SENSOR_COLOR_TRANSFORM1: {
6225             break;
6226         }
6227         case ANDROID_SENSOR_COLOR_TRANSFORM2: {
6228             break;
6229         }
6230         case ANDROID_SENSOR_FORWARD_MATRIX1: {
6231             break;
6232         }
6233         case ANDROID_SENSOR_FORWARD_MATRIX2: {
6234             break;
6235         }
6236         case ANDROID_SENSOR_BASE_GAIN_FACTOR: {
6237             break;
6238         }
6239         case ANDROID_SENSOR_BLACK_LEVEL_PATTERN: {
6240             break;
6241         }
6242         case ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY: {
6243             break;
6244         }
6245         case ANDROID_SENSOR_ORIENTATION: {
6246             break;
6247         }
6248         case ANDROID_SENSOR_PROFILE_HUE_SAT_MAP_DIMENSIONS: {
6249             break;
6250         }
6251         case ANDROID_SENSOR_TIMESTAMP: {
6252             break;
6253         }
6254         case ANDROID_SENSOR_TEMPERATURE: {
6255             break;
6256         }
6257         case ANDROID_SENSOR_NEUTRAL_COLOR_POINT: {
6258             break;
6259         }
6260         case ANDROID_SENSOR_NOISE_PROFILE: {
6261             break;
6262         }
6263         case ANDROID_SENSOR_PROFILE_HUE_SAT_MAP: {
6264             break;
6265         }
6266         case ANDROID_SENSOR_PROFILE_TONE_CURVE: {
6267             break;
6268         }
6269         case ANDROID_SENSOR_GREEN_SPLIT: {
6270             break;
6271         }
6272         case ANDROID_SENSOR_TEST_PATTERN_DATA: {
6273             break;
6274         }
6275         case ANDROID_SENSOR_TEST_PATTERN_MODE: {
6276                 enumName = "OFF";
6277                 if (strncmp(name, enumName, size) == 0) {
6278                     *value = ANDROID_SENSOR_TEST_PATTERN_MODE_OFF;
6279                     ret = 0;
6280                     break;
6281                 }
6282                 enumName = "SOLID_COLOR";
6283                 if (strncmp(name, enumName, size) == 0) {
6284                     *value = ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR;
6285                     ret = 0;
6286                     break;
6287                 }
6288                 enumName = "COLOR_BARS";
6289                 if (strncmp(name, enumName, size) == 0) {
6290                     *value = ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS;
6291                     ret = 0;
6292                     break;
6293                 }
6294                 enumName = "COLOR_BARS_FADE_TO_GRAY";
6295                 if (strncmp(name, enumName, size) == 0) {
6296                     *value = ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY;
6297                     ret = 0;
6298                     break;
6299                 }
6300                 enumName = "PN9";
6301                 if (strncmp(name, enumName, size) == 0) {
6302                     *value = ANDROID_SENSOR_TEST_PATTERN_MODE_PN9;
6303                     ret = 0;
6304                     break;
6305                 }
6306                 enumName = "BLACK";
6307                 if (strncmp(name, enumName, size) == 0) {
6308                     *value = ANDROID_SENSOR_TEST_PATTERN_MODE_BLACK;
6309                     ret = 0;
6310                     break;
6311                 }
6312                 enumName = "CUSTOM1";
6313                 if (strncmp(name, enumName, size) == 0) {
6314                     *value = ANDROID_SENSOR_TEST_PATTERN_MODE_CUSTOM1;
6315                     ret = 0;
6316                     break;
6317                 }
6318             break;
6319         }
6320         case ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES: {
6321             break;
6322         }
6323         case ANDROID_SENSOR_ROLLING_SHUTTER_SKEW: {
6324             break;
6325         }
6326         case ANDROID_SENSOR_OPTICAL_BLACK_REGIONS: {
6327             break;
6328         }
6329         case ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL: {
6330             break;
6331         }
6332         case ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL: {
6333             break;
6334         }
6335         case ANDROID_SENSOR_OPAQUE_RAW_SIZE: {
6336             break;
6337         }
6338         case ANDROID_SENSOR_OPAQUE_RAW_SIZE_MAXIMUM_RESOLUTION: {
6339             break;
6340         }
6341         case ANDROID_SENSOR_PIXEL_MODE: {
6342                 enumName = "DEFAULT";
6343                 if (strncmp(name, enumName, size) == 0) {
6344                     *value = ANDROID_SENSOR_PIXEL_MODE_DEFAULT;
6345                     ret = 0;
6346                     break;
6347                 }
6348                 enumName = "MAXIMUM_RESOLUTION";
6349                 if (strncmp(name, enumName, size) == 0) {
6350                     *value = ANDROID_SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION;
6351                     ret = 0;
6352                     break;
6353                 }
6354             break;
6355         }
6356         case ANDROID_SENSOR_RAW_BINNING_FACTOR_USED: {
6357                 enumName = "TRUE";
6358                 if (strncmp(name, enumName, size) == 0) {
6359                     *value = ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_TRUE;
6360                     ret = 0;
6361                     break;
6362                 }
6363                 enumName = "FALSE";
6364                 if (strncmp(name, enumName, size) == 0) {
6365                     *value = ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_FALSE;
6366                     ret = 0;
6367                     break;
6368                 }
6369             break;
6370         }
6371         case ANDROID_SENSOR_READOUT_TIMESTAMP: {
6372                 enumName = "NOT_SUPPORTED";
6373                 if (strncmp(name, enumName, size) == 0) {
6374                     *value = ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED;
6375                     ret = 0;
6376                     break;
6377                 }
6378                 enumName = "HARDWARE";
6379                 if (strncmp(name, enumName, size) == 0) {
6380                     *value = ANDROID_SENSOR_READOUT_TIMESTAMP_HARDWARE;
6381                     ret = 0;
6382                     break;
6383                 }
6384             break;
6385         }
6386 
6387         case ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE: {
6388             break;
6389         }
6390         case ANDROID_SENSOR_INFO_SENSITIVITY_RANGE: {
6391             break;
6392         }
6393         case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT: {
6394                 enumName = "RGGB";
6395                 if (strncmp(name, enumName, size) == 0) {
6396                     *value = ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB;
6397                     ret = 0;
6398                     break;
6399                 }
6400                 enumName = "GRBG";
6401                 if (strncmp(name, enumName, size) == 0) {
6402                     *value = ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG;
6403                     ret = 0;
6404                     break;
6405                 }
6406                 enumName = "GBRG";
6407                 if (strncmp(name, enumName, size) == 0) {
6408                     *value = ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG;
6409                     ret = 0;
6410                     break;
6411                 }
6412                 enumName = "BGGR";
6413                 if (strncmp(name, enumName, size) == 0) {
6414                     *value = ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR;
6415                     ret = 0;
6416                     break;
6417                 }
6418                 enumName = "RGB";
6419                 if (strncmp(name, enumName, size) == 0) {
6420                     *value = ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB;
6421                     ret = 0;
6422                     break;
6423                 }
6424                 enumName = "MONO";
6425                 if (strncmp(name, enumName, size) == 0) {
6426                     *value = ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_MONO;
6427                     ret = 0;
6428                     break;
6429                 }
6430                 enumName = "NIR";
6431                 if (strncmp(name, enumName, size) == 0) {
6432                     *value = ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_NIR;
6433                     ret = 0;
6434                     break;
6435                 }
6436             break;
6437         }
6438         case ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE: {
6439             break;
6440         }
6441         case ANDROID_SENSOR_INFO_MAX_FRAME_DURATION: {
6442             break;
6443         }
6444         case ANDROID_SENSOR_INFO_PHYSICAL_SIZE: {
6445             break;
6446         }
6447         case ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE: {
6448             break;
6449         }
6450         case ANDROID_SENSOR_INFO_WHITE_LEVEL: {
6451             break;
6452         }
6453         case ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE: {
6454                 enumName = "UNKNOWN";
6455                 if (strncmp(name, enumName, size) == 0) {
6456                     *value = ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN;
6457                     ret = 0;
6458                     break;
6459                 }
6460                 enumName = "REALTIME";
6461                 if (strncmp(name, enumName, size) == 0) {
6462                     *value = ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME;
6463                     ret = 0;
6464                     break;
6465                 }
6466             break;
6467         }
6468         case ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED: {
6469                 enumName = "FALSE";
6470                 if (strncmp(name, enumName, size) == 0) {
6471                     *value = ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_FALSE;
6472                     ret = 0;
6473                     break;
6474                 }
6475                 enumName = "TRUE";
6476                 if (strncmp(name, enumName, size) == 0) {
6477                     *value = ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_TRUE;
6478                     ret = 0;
6479                     break;
6480                 }
6481             break;
6482         }
6483         case ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE: {
6484             break;
6485         }
6486         case ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION: {
6487             break;
6488         }
6489         case ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION: {
6490             break;
6491         }
6492         case ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION: {
6493             break;
6494         }
6495         case ANDROID_SENSOR_INFO_BINNING_FACTOR: {
6496             break;
6497         }
6498 
6499         case ANDROID_SHADING_MODE: {
6500                 enumName = "OFF";
6501                 if (strncmp(name, enumName, size) == 0) {
6502                     *value = ANDROID_SHADING_MODE_OFF;
6503                     ret = 0;
6504                     break;
6505                 }
6506                 enumName = "FAST";
6507                 if (strncmp(name, enumName, size) == 0) {
6508                     *value = ANDROID_SHADING_MODE_FAST;
6509                     ret = 0;
6510                     break;
6511                 }
6512                 enumName = "HIGH_QUALITY";
6513                 if (strncmp(name, enumName, size) == 0) {
6514                     *value = ANDROID_SHADING_MODE_HIGH_QUALITY;
6515                     ret = 0;
6516                     break;
6517                 }
6518             break;
6519         }
6520         case ANDROID_SHADING_STRENGTH: {
6521             break;
6522         }
6523         case ANDROID_SHADING_AVAILABLE_MODES: {
6524             break;
6525         }
6526 
6527         case ANDROID_STATISTICS_FACE_DETECT_MODE: {
6528                 enumName = "OFF";
6529                 if (strncmp(name, enumName, size) == 0) {
6530                     *value = ANDROID_STATISTICS_FACE_DETECT_MODE_OFF;
6531                     ret = 0;
6532                     break;
6533                 }
6534                 enumName = "SIMPLE";
6535                 if (strncmp(name, enumName, size) == 0) {
6536                     *value = ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE;
6537                     ret = 0;
6538                     break;
6539                 }
6540                 enumName = "FULL";
6541                 if (strncmp(name, enumName, size) == 0) {
6542                     *value = ANDROID_STATISTICS_FACE_DETECT_MODE_FULL;
6543                     ret = 0;
6544                     break;
6545                 }
6546             break;
6547         }
6548         case ANDROID_STATISTICS_HISTOGRAM_MODE: {
6549                 enumName = "OFF";
6550                 if (strncmp(name, enumName, size) == 0) {
6551                     *value = ANDROID_STATISTICS_HISTOGRAM_MODE_OFF;
6552                     ret = 0;
6553                     break;
6554                 }
6555                 enumName = "ON";
6556                 if (strncmp(name, enumName, size) == 0) {
6557                     *value = ANDROID_STATISTICS_HISTOGRAM_MODE_ON;
6558                     ret = 0;
6559                     break;
6560                 }
6561             break;
6562         }
6563         case ANDROID_STATISTICS_SHARPNESS_MAP_MODE: {
6564                 enumName = "OFF";
6565                 if (strncmp(name, enumName, size) == 0) {
6566                     *value = ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF;
6567                     ret = 0;
6568                     break;
6569                 }
6570                 enumName = "ON";
6571                 if (strncmp(name, enumName, size) == 0) {
6572                     *value = ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON;
6573                     ret = 0;
6574                     break;
6575                 }
6576             break;
6577         }
6578         case ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE: {
6579                 enumName = "OFF";
6580                 if (strncmp(name, enumName, size) == 0) {
6581                     *value = ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF;
6582                     ret = 0;
6583                     break;
6584                 }
6585                 enumName = "ON";
6586                 if (strncmp(name, enumName, size) == 0) {
6587                     *value = ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_ON;
6588                     ret = 0;
6589                     break;
6590                 }
6591             break;
6592         }
6593         case ANDROID_STATISTICS_FACE_IDS: {
6594             break;
6595         }
6596         case ANDROID_STATISTICS_FACE_LANDMARKS: {
6597             break;
6598         }
6599         case ANDROID_STATISTICS_FACE_RECTANGLES: {
6600             break;
6601         }
6602         case ANDROID_STATISTICS_FACE_SCORES: {
6603             break;
6604         }
6605         case ANDROID_STATISTICS_HISTOGRAM: {
6606             break;
6607         }
6608         case ANDROID_STATISTICS_SHARPNESS_MAP: {
6609             break;
6610         }
6611         case ANDROID_STATISTICS_LENS_SHADING_CORRECTION_MAP: {
6612             break;
6613         }
6614         case ANDROID_STATISTICS_LENS_SHADING_MAP: {
6615             break;
6616         }
6617         case ANDROID_STATISTICS_PREDICTED_COLOR_GAINS: {
6618             break;
6619         }
6620         case ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM: {
6621             break;
6622         }
6623         case ANDROID_STATISTICS_SCENE_FLICKER: {
6624                 enumName = "NONE";
6625                 if (strncmp(name, enumName, size) == 0) {
6626                     *value = ANDROID_STATISTICS_SCENE_FLICKER_NONE;
6627                     ret = 0;
6628                     break;
6629                 }
6630                 enumName = "50HZ";
6631                 if (strncmp(name, enumName, size) == 0) {
6632                     *value = ANDROID_STATISTICS_SCENE_FLICKER_50HZ;
6633                     ret = 0;
6634                     break;
6635                 }
6636                 enumName = "60HZ";
6637                 if (strncmp(name, enumName, size) == 0) {
6638                     *value = ANDROID_STATISTICS_SCENE_FLICKER_60HZ;
6639                     ret = 0;
6640                     break;
6641                 }
6642             break;
6643         }
6644         case ANDROID_STATISTICS_HOT_PIXEL_MAP: {
6645             break;
6646         }
6647         case ANDROID_STATISTICS_LENS_SHADING_MAP_MODE: {
6648                 enumName = "OFF";
6649                 if (strncmp(name, enumName, size) == 0) {
6650                     *value = ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF;
6651                     ret = 0;
6652                     break;
6653                 }
6654                 enumName = "ON";
6655                 if (strncmp(name, enumName, size) == 0) {
6656                     *value = ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON;
6657                     ret = 0;
6658                     break;
6659                 }
6660             break;
6661         }
6662         case ANDROID_STATISTICS_OIS_DATA_MODE: {
6663                 enumName = "OFF";
6664                 if (strncmp(name, enumName, size) == 0) {
6665                     *value = ANDROID_STATISTICS_OIS_DATA_MODE_OFF;
6666                     ret = 0;
6667                     break;
6668                 }
6669                 enumName = "ON";
6670                 if (strncmp(name, enumName, size) == 0) {
6671                     *value = ANDROID_STATISTICS_OIS_DATA_MODE_ON;
6672                     ret = 0;
6673                     break;
6674                 }
6675             break;
6676         }
6677         case ANDROID_STATISTICS_OIS_TIMESTAMPS: {
6678             break;
6679         }
6680         case ANDROID_STATISTICS_OIS_X_SHIFTS: {
6681             break;
6682         }
6683         case ANDROID_STATISTICS_OIS_Y_SHIFTS: {
6684             break;
6685         }
6686 
6687         case ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES: {
6688             break;
6689         }
6690         case ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT: {
6691             break;
6692         }
6693         case ANDROID_STATISTICS_INFO_MAX_FACE_COUNT: {
6694             break;
6695         }
6696         case ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT: {
6697             break;
6698         }
6699         case ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE: {
6700             break;
6701         }
6702         case ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE: {
6703             break;
6704         }
6705         case ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES: {
6706             break;
6707         }
6708         case ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES: {
6709             break;
6710         }
6711         case ANDROID_STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES: {
6712             break;
6713         }
6714 
6715         case ANDROID_TONEMAP_CURVE_BLUE: {
6716             break;
6717         }
6718         case ANDROID_TONEMAP_CURVE_GREEN: {
6719             break;
6720         }
6721         case ANDROID_TONEMAP_CURVE_RED: {
6722             break;
6723         }
6724         case ANDROID_TONEMAP_MODE: {
6725                 enumName = "CONTRAST_CURVE";
6726                 if (strncmp(name, enumName, size) == 0) {
6727                     *value = ANDROID_TONEMAP_MODE_CONTRAST_CURVE;
6728                     ret = 0;
6729                     break;
6730                 }
6731                 enumName = "FAST";
6732                 if (strncmp(name, enumName, size) == 0) {
6733                     *value = ANDROID_TONEMAP_MODE_FAST;
6734                     ret = 0;
6735                     break;
6736                 }
6737                 enumName = "HIGH_QUALITY";
6738                 if (strncmp(name, enumName, size) == 0) {
6739                     *value = ANDROID_TONEMAP_MODE_HIGH_QUALITY;
6740                     ret = 0;
6741                     break;
6742                 }
6743                 enumName = "GAMMA_VALUE";
6744                 if (strncmp(name, enumName, size) == 0) {
6745                     *value = ANDROID_TONEMAP_MODE_GAMMA_VALUE;
6746                     ret = 0;
6747                     break;
6748                 }
6749                 enumName = "PRESET_CURVE";
6750                 if (strncmp(name, enumName, size) == 0) {
6751                     *value = ANDROID_TONEMAP_MODE_PRESET_CURVE;
6752                     ret = 0;
6753                     break;
6754                 }
6755             break;
6756         }
6757         case ANDROID_TONEMAP_MAX_CURVE_POINTS: {
6758             break;
6759         }
6760         case ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES: {
6761             break;
6762         }
6763         case ANDROID_TONEMAP_GAMMA: {
6764             break;
6765         }
6766         case ANDROID_TONEMAP_PRESET_CURVE: {
6767                 enumName = "SRGB";
6768                 if (strncmp(name, enumName, size) == 0) {
6769                     *value = ANDROID_TONEMAP_PRESET_CURVE_SRGB;
6770                     ret = 0;
6771                     break;
6772                 }
6773                 enumName = "REC709";
6774                 if (strncmp(name, enumName, size) == 0) {
6775                     *value = ANDROID_TONEMAP_PRESET_CURVE_REC709;
6776                     ret = 0;
6777                     break;
6778                 }
6779             break;
6780         }
6781 
6782         case ANDROID_LED_TRANSMIT: {
6783                 enumName = "OFF";
6784                 if (strncmp(name, enumName, size) == 0) {
6785                     *value = ANDROID_LED_TRANSMIT_OFF;
6786                     ret = 0;
6787                     break;
6788                 }
6789                 enumName = "ON";
6790                 if (strncmp(name, enumName, size) == 0) {
6791                     *value = ANDROID_LED_TRANSMIT_ON;
6792                     ret = 0;
6793                     break;
6794                 }
6795             break;
6796         }
6797         case ANDROID_LED_AVAILABLE_LEDS: {
6798                 enumName = "TRANSMIT";
6799                 if (strncmp(name, enumName, size) == 0) {
6800                     *value = ANDROID_LED_AVAILABLE_LEDS_TRANSMIT;
6801                     ret = 0;
6802                     break;
6803                 }
6804             break;
6805         }
6806 
6807         case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL: {
6808                 enumName = "LIMITED";
6809                 if (strncmp(name, enumName, size) == 0) {
6810                     *value = ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED;
6811                     ret = 0;
6812                     break;
6813                 }
6814                 enumName = "FULL";
6815                 if (strncmp(name, enumName, size) == 0) {
6816                     *value = ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL;
6817                     ret = 0;
6818                     break;
6819                 }
6820                 enumName = "LEGACY";
6821                 if (strncmp(name, enumName, size) == 0) {
6822                     *value = ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY;
6823                     ret = 0;
6824                     break;
6825                 }
6826                 enumName = "3";
6827                 if (strncmp(name, enumName, size) == 0) {
6828                     *value = ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_3;
6829                     ret = 0;
6830                     break;
6831                 }
6832                 enumName = "EXTERNAL";
6833                 if (strncmp(name, enumName, size) == 0) {
6834                     *value = ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL;
6835                     ret = 0;
6836                     break;
6837                 }
6838             break;
6839         }
6840         case ANDROID_INFO_VERSION: {
6841             break;
6842         }
6843         case ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION: {
6844                 enumName = "HIDL_DEVICE_3_5";
6845                 if (strncmp(name, enumName, size) == 0) {
6846                     *value = ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5;
6847                     ret = 0;
6848                     break;
6849                 }
6850             break;
6851         }
6852         case ANDROID_INFO_DEVICE_STATE_ORIENTATIONS: {
6853             break;
6854         }
6855 
6856         case ANDROID_BLACK_LEVEL_LOCK: {
6857                 enumName = "OFF";
6858                 if (strncmp(name, enumName, size) == 0) {
6859                     *value = ANDROID_BLACK_LEVEL_LOCK_OFF;
6860                     ret = 0;
6861                     break;
6862                 }
6863                 enumName = "ON";
6864                 if (strncmp(name, enumName, size) == 0) {
6865                     *value = ANDROID_BLACK_LEVEL_LOCK_ON;
6866                     ret = 0;
6867                     break;
6868                 }
6869             break;
6870         }
6871 
6872         case ANDROID_SYNC_FRAME_NUMBER: {
6873                 enumName = "CONVERGING";
6874                 if (strncmp(name, enumName, size) == 0) {
6875                     *value = ANDROID_SYNC_FRAME_NUMBER_CONVERGING;
6876                     ret = 0;
6877                     break;
6878                 }
6879                 enumName = "UNKNOWN";
6880                 if (strncmp(name, enumName, size) == 0) {
6881                     *value = ANDROID_SYNC_FRAME_NUMBER_UNKNOWN;
6882                     ret = 0;
6883                     break;
6884                 }
6885             break;
6886         }
6887         case ANDROID_SYNC_MAX_LATENCY: {
6888                 enumName = "PER_FRAME_CONTROL";
6889                 if (strncmp(name, enumName, size) == 0) {
6890                     *value = ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL;
6891                     ret = 0;
6892                     break;
6893                 }
6894                 enumName = "UNKNOWN";
6895                 if (strncmp(name, enumName, size) == 0) {
6896                     *value = ANDROID_SYNC_MAX_LATENCY_UNKNOWN;
6897                     ret = 0;
6898                     break;
6899                 }
6900             break;
6901         }
6902 
6903         case ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR: {
6904             break;
6905         }
6906         case ANDROID_REPROCESS_MAX_CAPTURE_STALL: {
6907             break;
6908         }
6909 
6910         case ANDROID_DEPTH_MAX_DEPTH_SAMPLES: {
6911             break;
6912         }
6913         case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS: {
6914                 enumName = "OUTPUT";
6915                 if (strncmp(name, enumName, size) == 0) {
6916                     *value = ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT;
6917                     ret = 0;
6918                     break;
6919                 }
6920                 enumName = "INPUT";
6921                 if (strncmp(name, enumName, size) == 0) {
6922                     *value = ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT;
6923                     ret = 0;
6924                     break;
6925                 }
6926             break;
6927         }
6928         case ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS: {
6929             break;
6930         }
6931         case ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS: {
6932             break;
6933         }
6934         case ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE: {
6935                 enumName = "FALSE";
6936                 if (strncmp(name, enumName, size) == 0) {
6937                     *value = ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_FALSE;
6938                     ret = 0;
6939                     break;
6940                 }
6941                 enumName = "TRUE";
6942                 if (strncmp(name, enumName, size) == 0) {
6943                     *value = ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_TRUE;
6944                     ret = 0;
6945                     break;
6946                 }
6947             break;
6948         }
6949         case ANDROID_DEPTH_AVAILABLE_RECOMMENDED_DEPTH_STREAM_CONFIGURATIONS: {
6950             break;
6951         }
6952         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS: {
6953                 enumName = "OUTPUT";
6954                 if (strncmp(name, enumName, size) == 0) {
6955                     *value = ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_OUTPUT;
6956                     ret = 0;
6957                     break;
6958                 }
6959                 enumName = "INPUT";
6960                 if (strncmp(name, enumName, size) == 0) {
6961                     *value = ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_INPUT;
6962                     ret = 0;
6963                     break;
6964                 }
6965             break;
6966         }
6967         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS: {
6968             break;
6969         }
6970         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS: {
6971             break;
6972         }
6973         case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
6974                 enumName = "OUTPUT";
6975                 if (strncmp(name, enumName, size) == 0) {
6976                     *value = ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT;
6977                     ret = 0;
6978                     break;
6979                 }
6980                 enumName = "INPUT";
6981                 if (strncmp(name, enumName, size) == 0) {
6982                     *value = ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT;
6983                     ret = 0;
6984                     break;
6985                 }
6986             break;
6987         }
6988         case ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION: {
6989             break;
6990         }
6991         case ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION: {
6992             break;
6993         }
6994         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
6995                 enumName = "OUTPUT";
6996                 if (strncmp(name, enumName, size) == 0) {
6997                     *value = ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT;
6998                     ret = 0;
6999                     break;
7000                 }
7001                 enumName = "INPUT";
7002                 if (strncmp(name, enumName, size) == 0) {
7003                     *value = ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT;
7004                     ret = 0;
7005                     break;
7006                 }
7007             break;
7008         }
7009         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION: {
7010             break;
7011         }
7012         case ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION: {
7013             break;
7014         }
7015 
7016         case ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS: {
7017             break;
7018         }
7019         case ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE: {
7020                 enumName = "APPROXIMATE";
7021                 if (strncmp(name, enumName, size) == 0) {
7022                     *value = ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE;
7023                     ret = 0;
7024                     break;
7025                 }
7026                 enumName = "CALIBRATED";
7027                 if (strncmp(name, enumName, size) == 0) {
7028                     *value = ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED;
7029                     ret = 0;
7030                     break;
7031                 }
7032             break;
7033         }
7034         case ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID: {
7035             break;
7036         }
7037 
7038         case ANDROID_DISTORTION_CORRECTION_MODE: {
7039                 enumName = "OFF";
7040                 if (strncmp(name, enumName, size) == 0) {
7041                     *value = ANDROID_DISTORTION_CORRECTION_MODE_OFF;
7042                     ret = 0;
7043                     break;
7044                 }
7045                 enumName = "FAST";
7046                 if (strncmp(name, enumName, size) == 0) {
7047                     *value = ANDROID_DISTORTION_CORRECTION_MODE_FAST;
7048                     ret = 0;
7049                     break;
7050                 }
7051                 enumName = "HIGH_QUALITY";
7052                 if (strncmp(name, enumName, size) == 0) {
7053                     *value = ANDROID_DISTORTION_CORRECTION_MODE_HIGH_QUALITY;
7054                     ret = 0;
7055                     break;
7056                 }
7057             break;
7058         }
7059         case ANDROID_DISTORTION_CORRECTION_AVAILABLE_MODES: {
7060             break;
7061         }
7062 
7063         case ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS: {
7064                 enumName = "OUTPUT";
7065                 if (strncmp(name, enumName, size) == 0) {
7066                     *value = ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_OUTPUT;
7067                     ret = 0;
7068                     break;
7069                 }
7070                 enumName = "INPUT";
7071                 if (strncmp(name, enumName, size) == 0) {
7072                     *value = ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_INPUT;
7073                     ret = 0;
7074                     break;
7075                 }
7076             break;
7077         }
7078         case ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS: {
7079             break;
7080         }
7081         case ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS: {
7082             break;
7083         }
7084         case ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
7085                 enumName = "OUTPUT";
7086                 if (strncmp(name, enumName, size) == 0) {
7087                     *value = ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT;
7088                     ret = 0;
7089                     break;
7090                 }
7091                 enumName = "INPUT";
7092                 if (strncmp(name, enumName, size) == 0) {
7093                     *value = ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT;
7094                     ret = 0;
7095                     break;
7096                 }
7097             break;
7098         }
7099         case ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION: {
7100             break;
7101         }
7102         case ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS_MAXIMUM_RESOLUTION: {
7103             break;
7104         }
7105 
7106         case ANDROID_HEIC_INFO_SUPPORTED: {
7107                 enumName = "FALSE";
7108                 if (strncmp(name, enumName, size) == 0) {
7109                     *value = ANDROID_HEIC_INFO_SUPPORTED_FALSE;
7110                     ret = 0;
7111                     break;
7112                 }
7113                 enumName = "TRUE";
7114                 if (strncmp(name, enumName, size) == 0) {
7115                     *value = ANDROID_HEIC_INFO_SUPPORTED_TRUE;
7116                     ret = 0;
7117                     break;
7118                 }
7119             break;
7120         }
7121         case ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT: {
7122             break;
7123         }
7124 
7125         case ANDROID_AUTOMOTIVE_LOCATION: {
7126                 enumName = "INTERIOR";
7127                 if (strncmp(name, enumName, size) == 0) {
7128                     *value = ANDROID_AUTOMOTIVE_LOCATION_INTERIOR;
7129                     ret = 0;
7130                     break;
7131                 }
7132                 enumName = "EXTERIOR_OTHER";
7133                 if (strncmp(name, enumName, size) == 0) {
7134                     *value = ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_OTHER;
7135                     ret = 0;
7136                     break;
7137                 }
7138                 enumName = "EXTERIOR_FRONT";
7139                 if (strncmp(name, enumName, size) == 0) {
7140                     *value = ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_FRONT;
7141                     ret = 0;
7142                     break;
7143                 }
7144                 enumName = "EXTERIOR_REAR";
7145                 if (strncmp(name, enumName, size) == 0) {
7146                     *value = ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_REAR;
7147                     ret = 0;
7148                     break;
7149                 }
7150                 enumName = "EXTERIOR_LEFT";
7151                 if (strncmp(name, enumName, size) == 0) {
7152                     *value = ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_LEFT;
7153                     ret = 0;
7154                     break;
7155                 }
7156                 enumName = "EXTERIOR_RIGHT";
7157                 if (strncmp(name, enumName, size) == 0) {
7158                     *value = ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_RIGHT;
7159                     ret = 0;
7160                     break;
7161                 }
7162                 enumName = "EXTRA_OTHER";
7163                 if (strncmp(name, enumName, size) == 0) {
7164                     *value = ANDROID_AUTOMOTIVE_LOCATION_EXTRA_OTHER;
7165                     ret = 0;
7166                     break;
7167                 }
7168                 enumName = "EXTRA_FRONT";
7169                 if (strncmp(name, enumName, size) == 0) {
7170                     *value = ANDROID_AUTOMOTIVE_LOCATION_EXTRA_FRONT;
7171                     ret = 0;
7172                     break;
7173                 }
7174                 enumName = "EXTRA_REAR";
7175                 if (strncmp(name, enumName, size) == 0) {
7176                     *value = ANDROID_AUTOMOTIVE_LOCATION_EXTRA_REAR;
7177                     ret = 0;
7178                     break;
7179                 }
7180                 enumName = "EXTRA_LEFT";
7181                 if (strncmp(name, enumName, size) == 0) {
7182                     *value = ANDROID_AUTOMOTIVE_LOCATION_EXTRA_LEFT;
7183                     ret = 0;
7184                     break;
7185                 }
7186                 enumName = "EXTRA_RIGHT";
7187                 if (strncmp(name, enumName, size) == 0) {
7188                     *value = ANDROID_AUTOMOTIVE_LOCATION_EXTRA_RIGHT;
7189                     ret = 0;
7190                     break;
7191                 }
7192             break;
7193         }
7194 
7195         case ANDROID_AUTOMOTIVE_LENS_FACING: {
7196                 enumName = "EXTERIOR_OTHER";
7197                 if (strncmp(name, enumName, size) == 0) {
7198                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_OTHER;
7199                     ret = 0;
7200                     break;
7201                 }
7202                 enumName = "EXTERIOR_FRONT";
7203                 if (strncmp(name, enumName, size) == 0) {
7204                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_FRONT;
7205                     ret = 0;
7206                     break;
7207                 }
7208                 enumName = "EXTERIOR_REAR";
7209                 if (strncmp(name, enumName, size) == 0) {
7210                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_REAR;
7211                     ret = 0;
7212                     break;
7213                 }
7214                 enumName = "EXTERIOR_LEFT";
7215                 if (strncmp(name, enumName, size) == 0) {
7216                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_LEFT;
7217                     ret = 0;
7218                     break;
7219                 }
7220                 enumName = "EXTERIOR_RIGHT";
7221                 if (strncmp(name, enumName, size) == 0) {
7222                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_RIGHT;
7223                     ret = 0;
7224                     break;
7225                 }
7226                 enumName = "INTERIOR_OTHER";
7227                 if (strncmp(name, enumName, size) == 0) {
7228                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_OTHER;
7229                     ret = 0;
7230                     break;
7231                 }
7232                 enumName = "INTERIOR_SEAT_ROW_1_LEFT";
7233                 if (strncmp(name, enumName, size) == 0) {
7234                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_LEFT;
7235                     ret = 0;
7236                     break;
7237                 }
7238                 enumName = "INTERIOR_SEAT_ROW_1_CENTER";
7239                 if (strncmp(name, enumName, size) == 0) {
7240                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_CENTER;
7241                     ret = 0;
7242                     break;
7243                 }
7244                 enumName = "INTERIOR_SEAT_ROW_1_RIGHT";
7245                 if (strncmp(name, enumName, size) == 0) {
7246                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_RIGHT;
7247                     ret = 0;
7248                     break;
7249                 }
7250                 enumName = "INTERIOR_SEAT_ROW_2_LEFT";
7251                 if (strncmp(name, enumName, size) == 0) {
7252                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_LEFT;
7253                     ret = 0;
7254                     break;
7255                 }
7256                 enumName = "INTERIOR_SEAT_ROW_2_CENTER";
7257                 if (strncmp(name, enumName, size) == 0) {
7258                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_CENTER;
7259                     ret = 0;
7260                     break;
7261                 }
7262                 enumName = "INTERIOR_SEAT_ROW_2_RIGHT";
7263                 if (strncmp(name, enumName, size) == 0) {
7264                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_RIGHT;
7265                     ret = 0;
7266                     break;
7267                 }
7268                 enumName = "INTERIOR_SEAT_ROW_3_LEFT";
7269                 if (strncmp(name, enumName, size) == 0) {
7270                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_LEFT;
7271                     ret = 0;
7272                     break;
7273                 }
7274                 enumName = "INTERIOR_SEAT_ROW_3_CENTER";
7275                 if (strncmp(name, enumName, size) == 0) {
7276                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_CENTER;
7277                     ret = 0;
7278                     break;
7279                 }
7280                 enumName = "INTERIOR_SEAT_ROW_3_RIGHT";
7281                 if (strncmp(name, enumName, size) == 0) {
7282                     *value = ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_RIGHT;
7283                     ret = 0;
7284                     break;
7285                 }
7286             break;
7287         }
7288 
7289         case ANDROID_EXTENSION_STRENGTH: {
7290             break;
7291         }
7292         case ANDROID_EXTENSION_CURRENT_TYPE: {
7293             break;
7294         }
7295 
7296         case ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS: {
7297                 enumName = "OUTPUT";
7298                 if (strncmp(name, enumName, size) == 0) {
7299                     *value = ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_OUTPUT;
7300                     ret = 0;
7301                     break;
7302                 }
7303                 enumName = "INPUT";
7304                 if (strncmp(name, enumName, size) == 0) {
7305                     *value = ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_INPUT;
7306                     ret = 0;
7307                     break;
7308                 }
7309             break;
7310         }
7311         case ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS: {
7312             break;
7313         }
7314         case ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS: {
7315             break;
7316         }
7317         case ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION: {
7318                 enumName = "OUTPUT";
7319                 if (strncmp(name, enumName, size) == 0) {
7320                     *value = ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT;
7321                     ret = 0;
7322                     break;
7323                 }
7324                 enumName = "INPUT";
7325                 if (strncmp(name, enumName, size) == 0) {
7326                     *value = ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT;
7327                     ret = 0;
7328                     break;
7329                 }
7330             break;
7331         }
7332         case ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION: {
7333             break;
7334         }
7335         case ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS_MAXIMUM_RESOLUTION: {
7336             break;
7337         }
7338 
7339     }
7340 
7341     return ret;
7342 }
7343 
7344 
7345 #define CAMERA_METADATA_ENUM_STRING_MAX_SIZE 29
7346