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