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