Home | History | Annotate | Download | only in src
      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 };
     61 
     62 unsigned int camera_metadata_section_bounds[ANDROID_SECTION_COUNT][2] = {
     63     [ANDROID_COLOR_CORRECTION]     = { ANDROID_COLOR_CORRECTION_START,
     64                                        ANDROID_COLOR_CORRECTION_END },
     65     [ANDROID_CONTROL]              = { ANDROID_CONTROL_START,
     66                                        ANDROID_CONTROL_END },
     67     [ANDROID_DEMOSAIC]             = { ANDROID_DEMOSAIC_START,
     68                                        ANDROID_DEMOSAIC_END },
     69     [ANDROID_EDGE]                 = { ANDROID_EDGE_START,
     70                                        ANDROID_EDGE_END },
     71     [ANDROID_FLASH]                = { ANDROID_FLASH_START,
     72                                        ANDROID_FLASH_END },
     73     [ANDROID_FLASH_INFO]           = { ANDROID_FLASH_INFO_START,
     74                                        ANDROID_FLASH_INFO_END },
     75     [ANDROID_HOT_PIXEL]            = { ANDROID_HOT_PIXEL_START,
     76                                        ANDROID_HOT_PIXEL_END },
     77     [ANDROID_JPEG]                 = { ANDROID_JPEG_START,
     78                                        ANDROID_JPEG_END },
     79     [ANDROID_LENS]                 = { ANDROID_LENS_START,
     80                                        ANDROID_LENS_END },
     81     [ANDROID_LENS_INFO]            = { ANDROID_LENS_INFO_START,
     82                                        ANDROID_LENS_INFO_END },
     83     [ANDROID_NOISE_REDUCTION]      = { ANDROID_NOISE_REDUCTION_START,
     84                                        ANDROID_NOISE_REDUCTION_END },
     85     [ANDROID_QUIRKS]               = { ANDROID_QUIRKS_START,
     86                                        ANDROID_QUIRKS_END },
     87     [ANDROID_REQUEST]              = { ANDROID_REQUEST_START,
     88                                        ANDROID_REQUEST_END },
     89     [ANDROID_SCALER]               = { ANDROID_SCALER_START,
     90                                        ANDROID_SCALER_END },
     91     [ANDROID_SENSOR]               = { ANDROID_SENSOR_START,
     92                                        ANDROID_SENSOR_END },
     93     [ANDROID_SENSOR_INFO]          = { ANDROID_SENSOR_INFO_START,
     94                                        ANDROID_SENSOR_INFO_END },
     95     [ANDROID_SHADING]              = { ANDROID_SHADING_START,
     96                                        ANDROID_SHADING_END },
     97     [ANDROID_STATISTICS]           = { ANDROID_STATISTICS_START,
     98                                        ANDROID_STATISTICS_END },
     99     [ANDROID_STATISTICS_INFO]      = { ANDROID_STATISTICS_INFO_START,
    100                                        ANDROID_STATISTICS_INFO_END },
    101     [ANDROID_TONEMAP]              = { ANDROID_TONEMAP_START,
    102                                        ANDROID_TONEMAP_END },
    103     [ANDROID_LED]                  = { ANDROID_LED_START,
    104                                        ANDROID_LED_END },
    105     [ANDROID_INFO]                 = { ANDROID_INFO_START,
    106                                        ANDROID_INFO_END },
    107     [ANDROID_BLACK_LEVEL]          = { ANDROID_BLACK_LEVEL_START,
    108                                        ANDROID_BLACK_LEVEL_END },
    109     [ANDROID_SYNC]                 = { ANDROID_SYNC_START,
    110                                        ANDROID_SYNC_END },
    111     [ANDROID_REPROCESS]            = { ANDROID_REPROCESS_START,
    112                                        ANDROID_REPROCESS_END },
    113     [ANDROID_DEPTH]                = { ANDROID_DEPTH_START,
    114                                        ANDROID_DEPTH_END },
    115 };
    116 
    117 static tag_info_t android_color_correction[ANDROID_COLOR_CORRECTION_END -
    118         ANDROID_COLOR_CORRECTION_START] = {
    119     [ ANDROID_COLOR_CORRECTION_MODE - ANDROID_COLOR_CORRECTION_START ] =
    120     { "mode",                          TYPE_BYTE   },
    121     [ ANDROID_COLOR_CORRECTION_TRANSFORM - ANDROID_COLOR_CORRECTION_START ] =
    122     { "transform",                     TYPE_RATIONAL
    123                 },
    124     [ ANDROID_COLOR_CORRECTION_GAINS - ANDROID_COLOR_CORRECTION_START ] =
    125     { "gains",                         TYPE_FLOAT  },
    126     [ ANDROID_COLOR_CORRECTION_ABERRATION_MODE - ANDROID_COLOR_CORRECTION_START ] =
    127     { "aberrationMode",                TYPE_BYTE   },
    128     [ ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES - ANDROID_COLOR_CORRECTION_START ] =
    129     { "availableAberrationModes",      TYPE_BYTE   },
    130 };
    131 
    132 static tag_info_t android_control[ANDROID_CONTROL_END -
    133         ANDROID_CONTROL_START] = {
    134     [ ANDROID_CONTROL_AE_ANTIBANDING_MODE - ANDROID_CONTROL_START ] =
    135     { "aeAntibandingMode",             TYPE_BYTE   },
    136     [ ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION - ANDROID_CONTROL_START ] =
    137     { "aeExposureCompensation",        TYPE_INT32  },
    138     [ ANDROID_CONTROL_AE_LOCK - ANDROID_CONTROL_START ] =
    139     { "aeLock",                        TYPE_BYTE   },
    140     [ ANDROID_CONTROL_AE_MODE - ANDROID_CONTROL_START ] =
    141     { "aeMode",                        TYPE_BYTE   },
    142     [ ANDROID_CONTROL_AE_REGIONS - ANDROID_CONTROL_START ] =
    143     { "aeRegions",                     TYPE_INT32  },
    144     [ ANDROID_CONTROL_AE_TARGET_FPS_RANGE - ANDROID_CONTROL_START ] =
    145     { "aeTargetFpsRange",              TYPE_INT32  },
    146     [ ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER - ANDROID_CONTROL_START ] =
    147     { "aePrecaptureTrigger",           TYPE_BYTE   },
    148     [ ANDROID_CONTROL_AF_MODE - ANDROID_CONTROL_START ] =
    149     { "afMode",                        TYPE_BYTE   },
    150     [ ANDROID_CONTROL_AF_REGIONS - ANDROID_CONTROL_START ] =
    151     { "afRegions",                     TYPE_INT32  },
    152     [ ANDROID_CONTROL_AF_TRIGGER - ANDROID_CONTROL_START ] =
    153     { "afTrigger",                     TYPE_BYTE   },
    154     [ ANDROID_CONTROL_AWB_LOCK - ANDROID_CONTROL_START ] =
    155     { "awbLock",                       TYPE_BYTE   },
    156     [ ANDROID_CONTROL_AWB_MODE - ANDROID_CONTROL_START ] =
    157     { "awbMode",                       TYPE_BYTE   },
    158     [ ANDROID_CONTROL_AWB_REGIONS - ANDROID_CONTROL_START ] =
    159     { "awbRegions",                    TYPE_INT32  },
    160     [ ANDROID_CONTROL_CAPTURE_INTENT - ANDROID_CONTROL_START ] =
    161     { "captureIntent",                 TYPE_BYTE   },
    162     [ ANDROID_CONTROL_EFFECT_MODE - ANDROID_CONTROL_START ] =
    163     { "effectMode",                    TYPE_BYTE   },
    164     [ ANDROID_CONTROL_MODE - ANDROID_CONTROL_START ] =
    165     { "mode",                          TYPE_BYTE   },
    166     [ ANDROID_CONTROL_SCENE_MODE - ANDROID_CONTROL_START ] =
    167     { "sceneMode",                     TYPE_BYTE   },
    168     [ ANDROID_CONTROL_VIDEO_STABILIZATION_MODE - ANDROID_CONTROL_START ] =
    169     { "videoStabilizationMode",        TYPE_BYTE   },
    170     [ ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES - ANDROID_CONTROL_START ] =
    171     { "aeAvailableAntibandingModes",   TYPE_BYTE   },
    172     [ ANDROID_CONTROL_AE_AVAILABLE_MODES - ANDROID_CONTROL_START ] =
    173     { "aeAvailableModes",              TYPE_BYTE   },
    174     [ ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES - ANDROID_CONTROL_START ] =
    175     { "aeAvailableTargetFpsRanges",    TYPE_INT32  },
    176     [ ANDROID_CONTROL_AE_COMPENSATION_RANGE - ANDROID_CONTROL_START ] =
    177     { "aeCompensationRange",           TYPE_INT32  },
    178     [ ANDROID_CONTROL_AE_COMPENSATION_STEP - ANDROID_CONTROL_START ] =
    179     { "aeCompensationStep",            TYPE_RATIONAL
    180                 },
    181     [ ANDROID_CONTROL_AF_AVAILABLE_MODES - ANDROID_CONTROL_START ] =
    182     { "afAvailableModes",              TYPE_BYTE   },
    183     [ ANDROID_CONTROL_AVAILABLE_EFFECTS - ANDROID_CONTROL_START ] =
    184     { "availableEffects",              TYPE_BYTE   },
    185     [ ANDROID_CONTROL_AVAILABLE_SCENE_MODES - ANDROID_CONTROL_START ] =
    186     { "availableSceneModes",           TYPE_BYTE   },
    187     [ ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES - ANDROID_CONTROL_START ] =
    188     { "availableVideoStabilizationModes",
    189                                         TYPE_BYTE   },
    190     [ ANDROID_CONTROL_AWB_AVAILABLE_MODES - ANDROID_CONTROL_START ] =
    191     { "awbAvailableModes",             TYPE_BYTE   },
    192     [ ANDROID_CONTROL_MAX_REGIONS - ANDROID_CONTROL_START ] =
    193     { "maxRegions",                    TYPE_INT32  },
    194     [ ANDROID_CONTROL_SCENE_MODE_OVERRIDES - ANDROID_CONTROL_START ] =
    195     { "sceneModeOverrides",            TYPE_BYTE   },
    196     [ ANDROID_CONTROL_AE_PRECAPTURE_ID - ANDROID_CONTROL_START ] =
    197     { "aePrecaptureId",                TYPE_INT32  },
    198     [ ANDROID_CONTROL_AE_STATE - ANDROID_CONTROL_START ] =
    199     { "aeState",                       TYPE_BYTE   },
    200     [ ANDROID_CONTROL_AF_STATE - ANDROID_CONTROL_START ] =
    201     { "afState",                       TYPE_BYTE   },
    202     [ ANDROID_CONTROL_AF_TRIGGER_ID - ANDROID_CONTROL_START ] =
    203     { "afTriggerId",                   TYPE_INT32  },
    204     [ ANDROID_CONTROL_AWB_STATE - ANDROID_CONTROL_START ] =
    205     { "awbState",                      TYPE_BYTE   },
    206     [ ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS - ANDROID_CONTROL_START ] =
    207     { "availableHighSpeedVideoConfigurations",
    208                                         TYPE_INT32  },
    209     [ ANDROID_CONTROL_AE_LOCK_AVAILABLE - ANDROID_CONTROL_START ] =
    210     { "aeLockAvailable",               TYPE_BYTE   },
    211     [ ANDROID_CONTROL_AWB_LOCK_AVAILABLE - ANDROID_CONTROL_START ] =
    212     { "awbLockAvailable",              TYPE_BYTE   },
    213     [ ANDROID_CONTROL_AVAILABLE_MODES - ANDROID_CONTROL_START ] =
    214     { "availableModes",                TYPE_BYTE   },
    215     [ ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE - ANDROID_CONTROL_START ] =
    216     { "postRawSensitivityBoostRange",  TYPE_INT32  },
    217     [ ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST - ANDROID_CONTROL_START ] =
    218     { "postRawSensitivityBoost",       TYPE_INT32  },
    219     [ ANDROID_CONTROL_ENABLE_ZSL - ANDROID_CONTROL_START ] =
    220     { "enableZsl",                     TYPE_BYTE   },
    221 };
    222 
    223 static tag_info_t android_demosaic[ANDROID_DEMOSAIC_END -
    224         ANDROID_DEMOSAIC_START] = {
    225     [ ANDROID_DEMOSAIC_MODE - ANDROID_DEMOSAIC_START ] =
    226     { "mode",                          TYPE_BYTE   },
    227 };
    228 
    229 static tag_info_t android_edge[ANDROID_EDGE_END -
    230         ANDROID_EDGE_START] = {
    231     [ ANDROID_EDGE_MODE - ANDROID_EDGE_START ] =
    232     { "mode",                          TYPE_BYTE   },
    233     [ ANDROID_EDGE_STRENGTH - ANDROID_EDGE_START ] =
    234     { "strength",                      TYPE_BYTE   },
    235     [ ANDROID_EDGE_AVAILABLE_EDGE_MODES - ANDROID_EDGE_START ] =
    236     { "availableEdgeModes",            TYPE_BYTE   },
    237 };
    238 
    239 static tag_info_t android_flash[ANDROID_FLASH_END -
    240         ANDROID_FLASH_START] = {
    241     [ ANDROID_FLASH_FIRING_POWER - ANDROID_FLASH_START ] =
    242     { "firingPower",                   TYPE_BYTE   },
    243     [ ANDROID_FLASH_FIRING_TIME - ANDROID_FLASH_START ] =
    244     { "firingTime",                    TYPE_INT64  },
    245     [ ANDROID_FLASH_MODE - ANDROID_FLASH_START ] =
    246     { "mode",                          TYPE_BYTE   },
    247     [ ANDROID_FLASH_COLOR_TEMPERATURE - ANDROID_FLASH_START ] =
    248     { "colorTemperature",              TYPE_BYTE   },
    249     [ ANDROID_FLASH_MAX_ENERGY - ANDROID_FLASH_START ] =
    250     { "maxEnergy",                     TYPE_BYTE   },
    251     [ ANDROID_FLASH_STATE - ANDROID_FLASH_START ] =
    252     { "state",                         TYPE_BYTE   },
    253 };
    254 
    255 static tag_info_t android_flash_info[ANDROID_FLASH_INFO_END -
    256         ANDROID_FLASH_INFO_START] = {
    257     [ ANDROID_FLASH_INFO_AVAILABLE - ANDROID_FLASH_INFO_START ] =
    258     { "available",                     TYPE_BYTE   },
    259     [ ANDROID_FLASH_INFO_CHARGE_DURATION - ANDROID_FLASH_INFO_START ] =
    260     { "chargeDuration",                TYPE_INT64  },
    261 };
    262 
    263 static tag_info_t android_hot_pixel[ANDROID_HOT_PIXEL_END -
    264         ANDROID_HOT_PIXEL_START] = {
    265     [ ANDROID_HOT_PIXEL_MODE - ANDROID_HOT_PIXEL_START ] =
    266     { "mode",                          TYPE_BYTE   },
    267     [ ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES - ANDROID_HOT_PIXEL_START ] =
    268     { "availableHotPixelModes",        TYPE_BYTE   },
    269 };
    270 
    271 static tag_info_t android_jpeg[ANDROID_JPEG_END -
    272         ANDROID_JPEG_START] = {
    273     [ ANDROID_JPEG_GPS_COORDINATES - ANDROID_JPEG_START ] =
    274     { "gpsCoordinates",                TYPE_DOUBLE },
    275     [ ANDROID_JPEG_GPS_PROCESSING_METHOD - ANDROID_JPEG_START ] =
    276     { "gpsProcessingMethod",           TYPE_BYTE   },
    277     [ ANDROID_JPEG_GPS_TIMESTAMP - ANDROID_JPEG_START ] =
    278     { "gpsTimestamp",                  TYPE_INT64  },
    279     [ ANDROID_JPEG_ORIENTATION - ANDROID_JPEG_START ] =
    280     { "orientation",                   TYPE_INT32  },
    281     [ ANDROID_JPEG_QUALITY - ANDROID_JPEG_START ] =
    282     { "quality",                       TYPE_BYTE   },
    283     [ ANDROID_JPEG_THUMBNAIL_QUALITY - ANDROID_JPEG_START ] =
    284     { "thumbnailQuality",              TYPE_BYTE   },
    285     [ ANDROID_JPEG_THUMBNAIL_SIZE - ANDROID_JPEG_START ] =
    286     { "thumbnailSize",                 TYPE_INT32  },
    287     [ ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES - ANDROID_JPEG_START ] =
    288     { "availableThumbnailSizes",       TYPE_INT32  },
    289     [ ANDROID_JPEG_MAX_SIZE - ANDROID_JPEG_START ] =
    290     { "maxSize",                       TYPE_INT32  },
    291     [ ANDROID_JPEG_SIZE - ANDROID_JPEG_START ] =
    292     { "size",                          TYPE_INT32  },
    293 };
    294 
    295 static tag_info_t android_lens[ANDROID_LENS_END -
    296         ANDROID_LENS_START] = {
    297     [ ANDROID_LENS_APERTURE - ANDROID_LENS_START ] =
    298     { "aperture",                      TYPE_FLOAT  },
    299     [ ANDROID_LENS_FILTER_DENSITY - ANDROID_LENS_START ] =
    300     { "filterDensity",                 TYPE_FLOAT  },
    301     [ ANDROID_LENS_FOCAL_LENGTH - ANDROID_LENS_START ] =
    302     { "focalLength",                   TYPE_FLOAT  },
    303     [ ANDROID_LENS_FOCUS_DISTANCE - ANDROID_LENS_START ] =
    304     { "focusDistance",                 TYPE_FLOAT  },
    305     [ ANDROID_LENS_OPTICAL_STABILIZATION_MODE - ANDROID_LENS_START ] =
    306     { "opticalStabilizationMode",      TYPE_BYTE   },
    307     [ ANDROID_LENS_FACING - ANDROID_LENS_START ] =
    308     { "facing",                        TYPE_BYTE   },
    309     [ ANDROID_LENS_POSE_ROTATION - ANDROID_LENS_START ] =
    310     { "poseRotation",                  TYPE_FLOAT  },
    311     [ ANDROID_LENS_POSE_TRANSLATION - ANDROID_LENS_START ] =
    312     { "poseTranslation",               TYPE_FLOAT  },
    313     [ ANDROID_LENS_FOCUS_RANGE - ANDROID_LENS_START ] =
    314     { "focusRange",                    TYPE_FLOAT  },
    315     [ ANDROID_LENS_STATE - ANDROID_LENS_START ] =
    316     { "state",                         TYPE_BYTE   },
    317     [ ANDROID_LENS_INTRINSIC_CALIBRATION - ANDROID_LENS_START ] =
    318     { "intrinsicCalibration",          TYPE_FLOAT  },
    319     [ ANDROID_LENS_RADIAL_DISTORTION - ANDROID_LENS_START ] =
    320     { "radialDistortion",              TYPE_FLOAT  },
    321 };
    322 
    323 static tag_info_t android_lens_info[ANDROID_LENS_INFO_END -
    324         ANDROID_LENS_INFO_START] = {
    325     [ ANDROID_LENS_INFO_AVAILABLE_APERTURES - ANDROID_LENS_INFO_START ] =
    326     { "availableApertures",            TYPE_FLOAT  },
    327     [ ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES - ANDROID_LENS_INFO_START ] =
    328     { "availableFilterDensities",      TYPE_FLOAT  },
    329     [ ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS - ANDROID_LENS_INFO_START ] =
    330     { "availableFocalLengths",         TYPE_FLOAT  },
    331     [ ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION - ANDROID_LENS_INFO_START ] =
    332     { "availableOpticalStabilization", TYPE_BYTE   },
    333     [ ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE - ANDROID_LENS_INFO_START ] =
    334     { "hyperfocalDistance",            TYPE_FLOAT  },
    335     [ ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE - ANDROID_LENS_INFO_START ] =
    336     { "minimumFocusDistance",          TYPE_FLOAT  },
    337     [ ANDROID_LENS_INFO_SHADING_MAP_SIZE - ANDROID_LENS_INFO_START ] =
    338     { "shadingMapSize",                TYPE_INT32  },
    339     [ ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION - ANDROID_LENS_INFO_START ] =
    340     { "focusDistanceCalibration",      TYPE_BYTE   },
    341 };
    342 
    343 static tag_info_t android_noise_reduction[ANDROID_NOISE_REDUCTION_END -
    344         ANDROID_NOISE_REDUCTION_START] = {
    345     [ ANDROID_NOISE_REDUCTION_MODE - ANDROID_NOISE_REDUCTION_START ] =
    346     { "mode",                          TYPE_BYTE   },
    347     [ ANDROID_NOISE_REDUCTION_STRENGTH - ANDROID_NOISE_REDUCTION_START ] =
    348     { "strength",                      TYPE_BYTE   },
    349     [ ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES - ANDROID_NOISE_REDUCTION_START ] =
    350     { "availableNoiseReductionModes",  TYPE_BYTE   },
    351 };
    352 
    353 static tag_info_t android_quirks[ANDROID_QUIRKS_END -
    354         ANDROID_QUIRKS_START] = {
    355     [ ANDROID_QUIRKS_METERING_CROP_REGION - ANDROID_QUIRKS_START ] =
    356     { "meteringCropRegion",            TYPE_BYTE   },
    357     [ ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO - ANDROID_QUIRKS_START ] =
    358     { "triggerAfWithAuto",             TYPE_BYTE   },
    359     [ ANDROID_QUIRKS_USE_ZSL_FORMAT - ANDROID_QUIRKS_START ] =
    360     { "useZslFormat",                  TYPE_BYTE   },
    361     [ ANDROID_QUIRKS_USE_PARTIAL_RESULT - ANDROID_QUIRKS_START ] =
    362     { "usePartialResult",              TYPE_BYTE   },
    363     [ ANDROID_QUIRKS_PARTIAL_RESULT - ANDROID_QUIRKS_START ] =
    364     { "partialResult",                 TYPE_BYTE   },
    365 };
    366 
    367 static tag_info_t android_request[ANDROID_REQUEST_END -
    368         ANDROID_REQUEST_START] = {
    369     [ ANDROID_REQUEST_FRAME_COUNT - ANDROID_REQUEST_START ] =
    370     { "frameCount",                    TYPE_INT32  },
    371     [ ANDROID_REQUEST_ID - ANDROID_REQUEST_START ] =
    372     { "id",                            TYPE_INT32  },
    373     [ ANDROID_REQUEST_INPUT_STREAMS - ANDROID_REQUEST_START ] =
    374     { "inputStreams",                  TYPE_INT32  },
    375     [ ANDROID_REQUEST_METADATA_MODE - ANDROID_REQUEST_START ] =
    376     { "metadataMode",                  TYPE_BYTE   },
    377     [ ANDROID_REQUEST_OUTPUT_STREAMS - ANDROID_REQUEST_START ] =
    378     { "outputStreams",                 TYPE_INT32  },
    379     [ ANDROID_REQUEST_TYPE - ANDROID_REQUEST_START ] =
    380     { "type",                          TYPE_BYTE   },
    381     [ ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS - ANDROID_REQUEST_START ] =
    382     { "maxNumOutputStreams",           TYPE_INT32  },
    383     [ ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS - ANDROID_REQUEST_START ] =
    384     { "maxNumReprocessStreams",        TYPE_INT32  },
    385     [ ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS - ANDROID_REQUEST_START ] =
    386     { "maxNumInputStreams",            TYPE_INT32  },
    387     [ ANDROID_REQUEST_PIPELINE_DEPTH - ANDROID_REQUEST_START ] =
    388     { "pipelineDepth",                 TYPE_BYTE   },
    389     [ ANDROID_REQUEST_PIPELINE_MAX_DEPTH - ANDROID_REQUEST_START ] =
    390     { "pipelineMaxDepth",              TYPE_BYTE   },
    391     [ ANDROID_REQUEST_PARTIAL_RESULT_COUNT - ANDROID_REQUEST_START ] =
    392     { "partialResultCount",            TYPE_INT32  },
    393     [ ANDROID_REQUEST_AVAILABLE_CAPABILITIES - ANDROID_REQUEST_START ] =
    394     { "availableCapabilities",         TYPE_BYTE   },
    395     [ ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS - ANDROID_REQUEST_START ] =
    396     { "availableRequestKeys",          TYPE_INT32  },
    397     [ ANDROID_REQUEST_AVAILABLE_RESULT_KEYS - ANDROID_REQUEST_START ] =
    398     { "availableResultKeys",           TYPE_INT32  },
    399     [ ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS - ANDROID_REQUEST_START ] =
    400     { "availableCharacteristicsKeys",  TYPE_INT32  },
    401 };
    402 
    403 static tag_info_t android_scaler[ANDROID_SCALER_END -
    404         ANDROID_SCALER_START] = {
    405     [ ANDROID_SCALER_CROP_REGION - ANDROID_SCALER_START ] =
    406     { "cropRegion",                    TYPE_INT32  },
    407     [ ANDROID_SCALER_AVAILABLE_FORMATS - ANDROID_SCALER_START ] =
    408     { "availableFormats",              TYPE_INT32  },
    409     [ ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS - ANDROID_SCALER_START ] =
    410     { "availableJpegMinDurations",     TYPE_INT64  },
    411     [ ANDROID_SCALER_AVAILABLE_JPEG_SIZES - ANDROID_SCALER_START ] =
    412     { "availableJpegSizes",            TYPE_INT32  },
    413     [ ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM - ANDROID_SCALER_START ] =
    414     { "availableMaxDigitalZoom",       TYPE_FLOAT  },
    415     [ ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS - ANDROID_SCALER_START ] =
    416     { "availableProcessedMinDurations",
    417                                         TYPE_INT64  },
    418     [ ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES - ANDROID_SCALER_START ] =
    419     { "availableProcessedSizes",       TYPE_INT32  },
    420     [ ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS - ANDROID_SCALER_START ] =
    421     { "availableRawMinDurations",      TYPE_INT64  },
    422     [ ANDROID_SCALER_AVAILABLE_RAW_SIZES - ANDROID_SCALER_START ] =
    423     { "availableRawSizes",             TYPE_INT32  },
    424     [ ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP - ANDROID_SCALER_START ] =
    425     { "availableInputOutputFormatsMap",
    426                                         TYPE_INT32  },
    427     [ ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS - ANDROID_SCALER_START ] =
    428     { "availableStreamConfigurations", TYPE_INT32  },
    429     [ ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS - ANDROID_SCALER_START ] =
    430     { "availableMinFrameDurations",    TYPE_INT64  },
    431     [ ANDROID_SCALER_AVAILABLE_STALL_DURATIONS - ANDROID_SCALER_START ] =
    432     { "availableStallDurations",       TYPE_INT64  },
    433     [ ANDROID_SCALER_CROPPING_TYPE - ANDROID_SCALER_START ] =
    434     { "croppingType",                  TYPE_BYTE   },
    435 };
    436 
    437 static tag_info_t android_sensor[ANDROID_SENSOR_END -
    438         ANDROID_SENSOR_START] = {
    439     [ ANDROID_SENSOR_EXPOSURE_TIME - ANDROID_SENSOR_START ] =
    440     { "exposureTime",                  TYPE_INT64  },
    441     [ ANDROID_SENSOR_FRAME_DURATION - ANDROID_SENSOR_START ] =
    442     { "frameDuration",                 TYPE_INT64  },
    443     [ ANDROID_SENSOR_SENSITIVITY - ANDROID_SENSOR_START ] =
    444     { "sensitivity",                   TYPE_INT32  },
    445     [ ANDROID_SENSOR_REFERENCE_ILLUMINANT1 - ANDROID_SENSOR_START ] =
    446     { "referenceIlluminant1",          TYPE_BYTE   },
    447     [ ANDROID_SENSOR_REFERENCE_ILLUMINANT2 - ANDROID_SENSOR_START ] =
    448     { "referenceIlluminant2",          TYPE_BYTE   },
    449     [ ANDROID_SENSOR_CALIBRATION_TRANSFORM1 - ANDROID_SENSOR_START ] =
    450     { "calibrationTransform1",         TYPE_RATIONAL
    451                 },
    452     [ ANDROID_SENSOR_CALIBRATION_TRANSFORM2 - ANDROID_SENSOR_START ] =
    453     { "calibrationTransform2",         TYPE_RATIONAL
    454                 },
    455     [ ANDROID_SENSOR_COLOR_TRANSFORM1 - ANDROID_SENSOR_START ] =
    456     { "colorTransform1",               TYPE_RATIONAL
    457                 },
    458     [ ANDROID_SENSOR_COLOR_TRANSFORM2 - ANDROID_SENSOR_START ] =
    459     { "colorTransform2",               TYPE_RATIONAL
    460                 },
    461     [ ANDROID_SENSOR_FORWARD_MATRIX1 - ANDROID_SENSOR_START ] =
    462     { "forwardMatrix1",                TYPE_RATIONAL
    463                 },
    464     [ ANDROID_SENSOR_FORWARD_MATRIX2 - ANDROID_SENSOR_START ] =
    465     { "forwardMatrix2",                TYPE_RATIONAL
    466                 },
    467     [ ANDROID_SENSOR_BASE_GAIN_FACTOR - ANDROID_SENSOR_START ] =
    468     { "baseGainFactor",                TYPE_RATIONAL
    469                 },
    470     [ ANDROID_SENSOR_BLACK_LEVEL_PATTERN - ANDROID_SENSOR_START ] =
    471     { "blackLevelPattern",             TYPE_INT32  },
    472     [ ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY - ANDROID_SENSOR_START ] =
    473     { "maxAnalogSensitivity",          TYPE_INT32  },
    474     [ ANDROID_SENSOR_ORIENTATION - ANDROID_SENSOR_START ] =
    475     { "orientation",                   TYPE_INT32  },
    476     [ ANDROID_SENSOR_PROFILE_HUE_SAT_MAP_DIMENSIONS - ANDROID_SENSOR_START ] =
    477     { "profileHueSatMapDimensions",    TYPE_INT32  },
    478     [ ANDROID_SENSOR_TIMESTAMP - ANDROID_SENSOR_START ] =
    479     { "timestamp",                     TYPE_INT64  },
    480     [ ANDROID_SENSOR_TEMPERATURE - ANDROID_SENSOR_START ] =
    481     { "temperature",                   TYPE_FLOAT  },
    482     [ ANDROID_SENSOR_NEUTRAL_COLOR_POINT - ANDROID_SENSOR_START ] =
    483     { "neutralColorPoint",             TYPE_RATIONAL
    484                 },
    485     [ ANDROID_SENSOR_NOISE_PROFILE - ANDROID_SENSOR_START ] =
    486     { "noiseProfile",                  TYPE_DOUBLE },
    487     [ ANDROID_SENSOR_PROFILE_HUE_SAT_MAP - ANDROID_SENSOR_START ] =
    488     { "profileHueSatMap",              TYPE_FLOAT  },
    489     [ ANDROID_SENSOR_PROFILE_TONE_CURVE - ANDROID_SENSOR_START ] =
    490     { "profileToneCurve",              TYPE_FLOAT  },
    491     [ ANDROID_SENSOR_GREEN_SPLIT - ANDROID_SENSOR_START ] =
    492     { "greenSplit",                    TYPE_FLOAT  },
    493     [ ANDROID_SENSOR_TEST_PATTERN_DATA - ANDROID_SENSOR_START ] =
    494     { "testPatternData",               TYPE_INT32  },
    495     [ ANDROID_SENSOR_TEST_PATTERN_MODE - ANDROID_SENSOR_START ] =
    496     { "testPatternMode",               TYPE_INT32  },
    497     [ ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES - ANDROID_SENSOR_START ] =
    498     { "availableTestPatternModes",     TYPE_INT32  },
    499     [ ANDROID_SENSOR_ROLLING_SHUTTER_SKEW - ANDROID_SENSOR_START ] =
    500     { "rollingShutterSkew",            TYPE_INT64  },
    501     [ ANDROID_SENSOR_OPTICAL_BLACK_REGIONS - ANDROID_SENSOR_START ] =
    502     { "opticalBlackRegions",           TYPE_INT32  },
    503     [ ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL - ANDROID_SENSOR_START ] =
    504     { "dynamicBlackLevel",             TYPE_FLOAT  },
    505     [ ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL - ANDROID_SENSOR_START ] =
    506     { "dynamicWhiteLevel",             TYPE_INT32  },
    507     [ ANDROID_SENSOR_OPAQUE_RAW_SIZE - ANDROID_SENSOR_START ] =
    508     { "opaqueRawSize",                 TYPE_INT32  },
    509 };
    510 
    511 static tag_info_t android_sensor_info[ANDROID_SENSOR_INFO_END -
    512         ANDROID_SENSOR_INFO_START] = {
    513     [ ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE - ANDROID_SENSOR_INFO_START ] =
    514     { "activeArraySize",               TYPE_INT32  },
    515     [ ANDROID_SENSOR_INFO_SENSITIVITY_RANGE - ANDROID_SENSOR_INFO_START ] =
    516     { "sensitivityRange",              TYPE_INT32  },
    517     [ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT - ANDROID_SENSOR_INFO_START ] =
    518     { "colorFilterArrangement",        TYPE_BYTE   },
    519     [ ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE - ANDROID_SENSOR_INFO_START ] =
    520     { "exposureTimeRange",             TYPE_INT64  },
    521     [ ANDROID_SENSOR_INFO_MAX_FRAME_DURATION - ANDROID_SENSOR_INFO_START ] =
    522     { "maxFrameDuration",              TYPE_INT64  },
    523     [ ANDROID_SENSOR_INFO_PHYSICAL_SIZE - ANDROID_SENSOR_INFO_START ] =
    524     { "physicalSize",                  TYPE_FLOAT  },
    525     [ ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE - ANDROID_SENSOR_INFO_START ] =
    526     { "pixelArraySize",                TYPE_INT32  },
    527     [ ANDROID_SENSOR_INFO_WHITE_LEVEL - ANDROID_SENSOR_INFO_START ] =
    528     { "whiteLevel",                    TYPE_INT32  },
    529     [ ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE - ANDROID_SENSOR_INFO_START ] =
    530     { "timestampSource",               TYPE_BYTE   },
    531     [ ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED - ANDROID_SENSOR_INFO_START ] =
    532     { "lensShadingApplied",            TYPE_BYTE   },
    533     [ ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE - ANDROID_SENSOR_INFO_START ] =
    534     { "preCorrectionActiveArraySize",  TYPE_INT32  },
    535 };
    536 
    537 static tag_info_t android_shading[ANDROID_SHADING_END -
    538         ANDROID_SHADING_START] = {
    539     [ ANDROID_SHADING_MODE - ANDROID_SHADING_START ] =
    540     { "mode",                          TYPE_BYTE   },
    541     [ ANDROID_SHADING_STRENGTH - ANDROID_SHADING_START ] =
    542     { "strength",                      TYPE_BYTE   },
    543     [ ANDROID_SHADING_AVAILABLE_MODES - ANDROID_SHADING_START ] =
    544     { "availableModes",                TYPE_BYTE   },
    545 };
    546 
    547 static tag_info_t android_statistics[ANDROID_STATISTICS_END -
    548         ANDROID_STATISTICS_START] = {
    549     [ ANDROID_STATISTICS_FACE_DETECT_MODE - ANDROID_STATISTICS_START ] =
    550     { "faceDetectMode",                TYPE_BYTE   },
    551     [ ANDROID_STATISTICS_HISTOGRAM_MODE - ANDROID_STATISTICS_START ] =
    552     { "histogramMode",                 TYPE_BYTE   },
    553     [ ANDROID_STATISTICS_SHARPNESS_MAP_MODE - ANDROID_STATISTICS_START ] =
    554     { "sharpnessMapMode",              TYPE_BYTE   },
    555     [ ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE - ANDROID_STATISTICS_START ] =
    556     { "hotPixelMapMode",               TYPE_BYTE   },
    557     [ ANDROID_STATISTICS_FACE_IDS - ANDROID_STATISTICS_START ] =
    558     { "faceIds",                       TYPE_INT32  },
    559     [ ANDROID_STATISTICS_FACE_LANDMARKS - ANDROID_STATISTICS_START ] =
    560     { "faceLandmarks",                 TYPE_INT32  },
    561     [ ANDROID_STATISTICS_FACE_RECTANGLES - ANDROID_STATISTICS_START ] =
    562     { "faceRectangles",                TYPE_INT32  },
    563     [ ANDROID_STATISTICS_FACE_SCORES - ANDROID_STATISTICS_START ] =
    564     { "faceScores",                    TYPE_BYTE   },
    565     [ ANDROID_STATISTICS_HISTOGRAM - ANDROID_STATISTICS_START ] =
    566     { "histogram",                     TYPE_INT32  },
    567     [ ANDROID_STATISTICS_SHARPNESS_MAP - ANDROID_STATISTICS_START ] =
    568     { "sharpnessMap",                  TYPE_INT32  },
    569     [ ANDROID_STATISTICS_LENS_SHADING_CORRECTION_MAP - ANDROID_STATISTICS_START ] =
    570     { "lensShadingCorrectionMap",      TYPE_BYTE   },
    571     [ ANDROID_STATISTICS_LENS_SHADING_MAP - ANDROID_STATISTICS_START ] =
    572     { "lensShadingMap",                TYPE_FLOAT  },
    573     [ ANDROID_STATISTICS_PREDICTED_COLOR_GAINS - ANDROID_STATISTICS_START ] =
    574     { "predictedColorGains",           TYPE_FLOAT  },
    575     [ ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM - ANDROID_STATISTICS_START ] =
    576     { "predictedColorTransform",       TYPE_RATIONAL
    577                 },
    578     [ ANDROID_STATISTICS_SCENE_FLICKER - ANDROID_STATISTICS_START ] =
    579     { "sceneFlicker",                  TYPE_BYTE   },
    580     [ ANDROID_STATISTICS_HOT_PIXEL_MAP - ANDROID_STATISTICS_START ] =
    581     { "hotPixelMap",                   TYPE_INT32  },
    582     [ ANDROID_STATISTICS_LENS_SHADING_MAP_MODE - ANDROID_STATISTICS_START ] =
    583     { "lensShadingMapMode",            TYPE_BYTE   },
    584 };
    585 
    586 static tag_info_t android_statistics_info[ANDROID_STATISTICS_INFO_END -
    587         ANDROID_STATISTICS_INFO_START] = {
    588     [ ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES - ANDROID_STATISTICS_INFO_START ] =
    589     { "availableFaceDetectModes",      TYPE_BYTE   },
    590     [ ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT - ANDROID_STATISTICS_INFO_START ] =
    591     { "histogramBucketCount",          TYPE_INT32  },
    592     [ ANDROID_STATISTICS_INFO_MAX_FACE_COUNT - ANDROID_STATISTICS_INFO_START ] =
    593     { "maxFaceCount",                  TYPE_INT32  },
    594     [ ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT - ANDROID_STATISTICS_INFO_START ] =
    595     { "maxHistogramCount",             TYPE_INT32  },
    596     [ ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE - ANDROID_STATISTICS_INFO_START ] =
    597     { "maxSharpnessMapValue",          TYPE_INT32  },
    598     [ ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE - ANDROID_STATISTICS_INFO_START ] =
    599     { "sharpnessMapSize",              TYPE_INT32  },
    600     [ ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES - ANDROID_STATISTICS_INFO_START ] =
    601     { "availableHotPixelMapModes",     TYPE_BYTE   },
    602     [ ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES - ANDROID_STATISTICS_INFO_START ] =
    603     { "availableLensShadingMapModes",  TYPE_BYTE   },
    604 };
    605 
    606 static tag_info_t android_tonemap[ANDROID_TONEMAP_END -
    607         ANDROID_TONEMAP_START] = {
    608     [ ANDROID_TONEMAP_CURVE_BLUE - ANDROID_TONEMAP_START ] =
    609     { "curveBlue",                     TYPE_FLOAT  },
    610     [ ANDROID_TONEMAP_CURVE_GREEN - ANDROID_TONEMAP_START ] =
    611     { "curveGreen",                    TYPE_FLOAT  },
    612     [ ANDROID_TONEMAP_CURVE_RED - ANDROID_TONEMAP_START ] =
    613     { "curveRed",                      TYPE_FLOAT  },
    614     [ ANDROID_TONEMAP_MODE - ANDROID_TONEMAP_START ] =
    615     { "mode",                          TYPE_BYTE   },
    616     [ ANDROID_TONEMAP_MAX_CURVE_POINTS - ANDROID_TONEMAP_START ] =
    617     { "maxCurvePoints",                TYPE_INT32  },
    618     [ ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES - ANDROID_TONEMAP_START ] =
    619     { "availableToneMapModes",         TYPE_BYTE   },
    620     [ ANDROID_TONEMAP_GAMMA - ANDROID_TONEMAP_START ] =
    621     { "gamma",                         TYPE_FLOAT  },
    622     [ ANDROID_TONEMAP_PRESET_CURVE - ANDROID_TONEMAP_START ] =
    623     { "presetCurve",                   TYPE_BYTE   },
    624 };
    625 
    626 static tag_info_t android_led[ANDROID_LED_END -
    627         ANDROID_LED_START] = {
    628     [ ANDROID_LED_TRANSMIT - ANDROID_LED_START ] =
    629     { "transmit",                      TYPE_BYTE   },
    630     [ ANDROID_LED_AVAILABLE_LEDS - ANDROID_LED_START ] =
    631     { "availableLeds",                 TYPE_BYTE   },
    632 };
    633 
    634 static tag_info_t android_info[ANDROID_INFO_END -
    635         ANDROID_INFO_START] = {
    636     [ ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL - ANDROID_INFO_START ] =
    637     { "supportedHardwareLevel",        TYPE_BYTE   },
    638 };
    639 
    640 static tag_info_t android_black_level[ANDROID_BLACK_LEVEL_END -
    641         ANDROID_BLACK_LEVEL_START] = {
    642     [ ANDROID_BLACK_LEVEL_LOCK - ANDROID_BLACK_LEVEL_START ] =
    643     { "lock",                          TYPE_BYTE   },
    644 };
    645 
    646 static tag_info_t android_sync[ANDROID_SYNC_END -
    647         ANDROID_SYNC_START] = {
    648     [ ANDROID_SYNC_FRAME_NUMBER - ANDROID_SYNC_START ] =
    649     { "frameNumber",                   TYPE_INT64  },
    650     [ ANDROID_SYNC_MAX_LATENCY - ANDROID_SYNC_START ] =
    651     { "maxLatency",                    TYPE_INT32  },
    652 };
    653 
    654 static tag_info_t android_reprocess[ANDROID_REPROCESS_END -
    655         ANDROID_REPROCESS_START] = {
    656     [ ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR - ANDROID_REPROCESS_START ] =
    657     { "effectiveExposureFactor",       TYPE_FLOAT  },
    658     [ ANDROID_REPROCESS_MAX_CAPTURE_STALL - ANDROID_REPROCESS_START ] =
    659     { "maxCaptureStall",               TYPE_INT32  },
    660 };
    661 
    662 static tag_info_t android_depth[ANDROID_DEPTH_END -
    663         ANDROID_DEPTH_START] = {
    664     [ ANDROID_DEPTH_MAX_DEPTH_SAMPLES - ANDROID_DEPTH_START ] =
    665     { "maxDepthSamples",               TYPE_INT32  },
    666     [ ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS - ANDROID_DEPTH_START ] =
    667     { "availableDepthStreamConfigurations",
    668                                         TYPE_INT32  },
    669     [ ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS - ANDROID_DEPTH_START ] =
    670     { "availableDepthMinFrameDurations",
    671                                         TYPE_INT64  },
    672     [ ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS - ANDROID_DEPTH_START ] =
    673     { "availableDepthStallDurations",  TYPE_INT64  },
    674     [ ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE - ANDROID_DEPTH_START ] =
    675     { "depthIsExclusive",              TYPE_BYTE   },
    676 };
    677 
    678 
    679 tag_info_t *tag_info[ANDROID_SECTION_COUNT] = {
    680     android_color_correction,
    681     android_control,
    682     android_demosaic,
    683     android_edge,
    684     android_flash,
    685     android_flash_info,
    686     android_hot_pixel,
    687     android_jpeg,
    688     android_lens,
    689     android_lens_info,
    690     android_noise_reduction,
    691     android_quirks,
    692     android_request,
    693     android_scaler,
    694     android_sensor,
    695     android_sensor_info,
    696     android_shading,
    697     android_statistics,
    698     android_statistics_info,
    699     android_tonemap,
    700     android_led,
    701     android_info,
    702     android_black_level,
    703     android_sync,
    704     android_reprocess,
    705     android_depth,
    706 };
    707 
    708 int camera_metadata_enum_snprint(uint32_t tag,
    709                                  uint32_t value,
    710                                  char *dst,
    711                                  size_t size) {
    712     const char *msg = "error: not an enum";
    713     int ret = -1;
    714 
    715     switch(tag) {
    716         case ANDROID_COLOR_CORRECTION_MODE: {
    717             switch (value) {
    718                 case ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX:
    719                     msg = "TRANSFORM_MATRIX";
    720                     ret = 0;
    721                     break;
    722                 case ANDROID_COLOR_CORRECTION_MODE_FAST:
    723                     msg = "FAST";
    724                     ret = 0;
    725                     break;
    726                 case ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY:
    727                     msg = "HIGH_QUALITY";
    728                     ret = 0;
    729                     break;
    730                 default:
    731                     msg = "error: enum value out of range";
    732             }
    733             break;
    734         }
    735         case ANDROID_COLOR_CORRECTION_TRANSFORM: {
    736             break;
    737         }
    738         case ANDROID_COLOR_CORRECTION_GAINS: {
    739             break;
    740         }
    741         case ANDROID_COLOR_CORRECTION_ABERRATION_MODE: {
    742             switch (value) {
    743                 case ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF:
    744                     msg = "OFF";
    745                     ret = 0;
    746                     break;
    747                 case ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST:
    748                     msg = "FAST";
    749                     ret = 0;
    750                     break;
    751                 case ANDROID_COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY:
    752                     msg = "HIGH_QUALITY";
    753                     ret = 0;
    754                     break;
    755                 default:
    756                     msg = "error: enum value out of range";
    757             }
    758             break;
    759         }
    760         case ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES: {
    761             break;
    762         }
    763 
    764         case ANDROID_CONTROL_AE_ANTIBANDING_MODE: {
    765             switch (value) {
    766                 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF:
    767                     msg = "OFF";
    768                     ret = 0;
    769                     break;
    770                 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ:
    771                     msg = "50HZ";
    772                     ret = 0;
    773                     break;
    774                 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ:
    775                     msg = "60HZ";
    776                     ret = 0;
    777                     break;
    778                 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO:
    779                     msg = "AUTO";
    780                     ret = 0;
    781                     break;
    782                 default:
    783                     msg = "error: enum value out of range";
    784             }
    785             break;
    786         }
    787         case ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION: {
    788             break;
    789         }
    790         case ANDROID_CONTROL_AE_LOCK: {
    791             switch (value) {
    792                 case ANDROID_CONTROL_AE_LOCK_OFF:
    793                     msg = "OFF";
    794                     ret = 0;
    795                     break;
    796                 case ANDROID_CONTROL_AE_LOCK_ON:
    797                     msg = "ON";
    798                     ret = 0;
    799                     break;
    800                 default:
    801                     msg = "error: enum value out of range";
    802             }
    803             break;
    804         }
    805         case ANDROID_CONTROL_AE_MODE: {
    806             switch (value) {
    807                 case ANDROID_CONTROL_AE_MODE_OFF:
    808                     msg = "OFF";
    809                     ret = 0;
    810                     break;
    811                 case ANDROID_CONTROL_AE_MODE_ON:
    812                     msg = "ON";
    813                     ret = 0;
    814                     break;
    815                 case ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH:
    816                     msg = "ON_AUTO_FLASH";
    817                     ret = 0;
    818                     break;
    819                 case ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH:
    820                     msg = "ON_ALWAYS_FLASH";
    821                     ret = 0;
    822                     break;
    823                 case ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE:
    824                     msg = "ON_AUTO_FLASH_REDEYE";
    825                     ret = 0;
    826                     break;
    827                 default:
    828                     msg = "error: enum value out of range";
    829             }
    830             break;
    831         }
    832         case ANDROID_CONTROL_AE_REGIONS: {
    833             break;
    834         }
    835         case ANDROID_CONTROL_AE_TARGET_FPS_RANGE: {
    836             break;
    837         }
    838         case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER: {
    839             switch (value) {
    840                 case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE:
    841                     msg = "IDLE";
    842                     ret = 0;
    843                     break;
    844                 case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START:
    845                     msg = "START";
    846                     ret = 0;
    847                     break;
    848                 case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL:
    849                     msg = "CANCEL";
    850                     ret = 0;
    851                     break;
    852                 default:
    853                     msg = "error: enum value out of range";
    854             }
    855             break;
    856         }
    857         case ANDROID_CONTROL_AF_MODE: {
    858             switch (value) {
    859                 case ANDROID_CONTROL_AF_MODE_OFF:
    860                     msg = "OFF";
    861                     ret = 0;
    862                     break;
    863                 case ANDROID_CONTROL_AF_MODE_AUTO:
    864                     msg = "AUTO";
    865                     ret = 0;
    866                     break;
    867                 case ANDROID_CONTROL_AF_MODE_MACRO:
    868                     msg = "MACRO";
    869                     ret = 0;
    870                     break;
    871                 case ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO:
    872                     msg = "CONTINUOUS_VIDEO";
    873                     ret = 0;
    874                     break;
    875                 case ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE:
    876                     msg = "CONTINUOUS_PICTURE";
    877                     ret = 0;
    878                     break;
    879                 case ANDROID_CONTROL_AF_MODE_EDOF:
    880                     msg = "EDOF";
    881                     ret = 0;
    882                     break;
    883                 default:
    884                     msg = "error: enum value out of range";
    885             }
    886             break;
    887         }
    888         case ANDROID_CONTROL_AF_REGIONS: {
    889             break;
    890         }
    891         case ANDROID_CONTROL_AF_TRIGGER: {
    892             switch (value) {
    893                 case ANDROID_CONTROL_AF_TRIGGER_IDLE:
    894                     msg = "IDLE";
    895                     ret = 0;
    896                     break;
    897                 case ANDROID_CONTROL_AF_TRIGGER_START:
    898                     msg = "START";
    899                     ret = 0;
    900                     break;
    901                 case ANDROID_CONTROL_AF_TRIGGER_CANCEL:
    902                     msg = "CANCEL";
    903                     ret = 0;
    904                     break;
    905                 default:
    906                     msg = "error: enum value out of range";
    907             }
    908             break;
    909         }
    910         case ANDROID_CONTROL_AWB_LOCK: {
    911             switch (value) {
    912                 case ANDROID_CONTROL_AWB_LOCK_OFF:
    913                     msg = "OFF";
    914                     ret = 0;
    915                     break;
    916                 case ANDROID_CONTROL_AWB_LOCK_ON:
    917                     msg = "ON";
    918                     ret = 0;
    919                     break;
    920                 default:
    921                     msg = "error: enum value out of range";
    922             }
    923             break;
    924         }
    925         case ANDROID_CONTROL_AWB_MODE: {
    926             switch (value) {
    927                 case ANDROID_CONTROL_AWB_MODE_OFF:
    928                     msg = "OFF";
    929                     ret = 0;
    930                     break;
    931                 case ANDROID_CONTROL_AWB_MODE_AUTO:
    932                     msg = "AUTO";
    933                     ret = 0;
    934                     break;
    935                 case ANDROID_CONTROL_AWB_MODE_INCANDESCENT:
    936                     msg = "INCANDESCENT";
    937                     ret = 0;
    938                     break;
    939                 case ANDROID_CONTROL_AWB_MODE_FLUORESCENT:
    940                     msg = "FLUORESCENT";
    941                     ret = 0;
    942                     break;
    943                 case ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT:
    944                     msg = "WARM_FLUORESCENT";
    945                     ret = 0;
    946                     break;
    947                 case ANDROID_CONTROL_AWB_MODE_DAYLIGHT:
    948                     msg = "DAYLIGHT";
    949                     ret = 0;
    950                     break;
    951                 case ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT:
    952                     msg = "CLOUDY_DAYLIGHT";
    953                     ret = 0;
    954                     break;
    955                 case ANDROID_CONTROL_AWB_MODE_TWILIGHT:
    956                     msg = "TWILIGHT";
    957                     ret = 0;
    958                     break;
    959                 case ANDROID_CONTROL_AWB_MODE_SHADE:
    960                     msg = "SHADE";
    961                     ret = 0;
    962                     break;
    963                 default:
    964                     msg = "error: enum value out of range";
    965             }
    966             break;
    967         }
    968         case ANDROID_CONTROL_AWB_REGIONS: {
    969             break;
    970         }
    971         case ANDROID_CONTROL_CAPTURE_INTENT: {
    972             switch (value) {
    973                 case ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM:
    974                     msg = "CUSTOM";
    975                     ret = 0;
    976                     break;
    977                 case ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW:
    978                     msg = "PREVIEW";
    979                     ret = 0;
    980                     break;
    981                 case ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE:
    982                     msg = "STILL_CAPTURE";
    983                     ret = 0;
    984                     break;
    985                 case ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD:
    986                     msg = "VIDEO_RECORD";
    987                     ret = 0;
    988                     break;
    989                 case ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT:
    990                     msg = "VIDEO_SNAPSHOT";
    991                     ret = 0;
    992                     break;
    993                 case ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG:
    994                     msg = "ZERO_SHUTTER_LAG";
    995                     ret = 0;
    996                     break;
    997                 case ANDROID_CONTROL_CAPTURE_INTENT_MANUAL:
    998                     msg = "MANUAL";
    999                     ret = 0;
   1000                     break;
   1001                 default:
   1002                     msg = "error: enum value out of range";
   1003             }
   1004             break;
   1005         }
   1006         case ANDROID_CONTROL_EFFECT_MODE: {
   1007             switch (value) {
   1008                 case ANDROID_CONTROL_EFFECT_MODE_OFF:
   1009                     msg = "OFF";
   1010                     ret = 0;
   1011                     break;
   1012                 case ANDROID_CONTROL_EFFECT_MODE_MONO:
   1013                     msg = "MONO";
   1014                     ret = 0;
   1015                     break;
   1016                 case ANDROID_CONTROL_EFFECT_MODE_NEGATIVE:
   1017                     msg = "NEGATIVE";
   1018                     ret = 0;
   1019                     break;
   1020                 case ANDROID_CONTROL_EFFECT_MODE_SOLARIZE:
   1021                     msg = "SOLARIZE";
   1022                     ret = 0;
   1023                     break;
   1024                 case ANDROID_CONTROL_EFFECT_MODE_SEPIA:
   1025                     msg = "SEPIA";
   1026                     ret = 0;
   1027                     break;
   1028                 case ANDROID_CONTROL_EFFECT_MODE_POSTERIZE:
   1029                     msg = "POSTERIZE";
   1030                     ret = 0;
   1031                     break;
   1032                 case ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD:
   1033                     msg = "WHITEBOARD";
   1034                     ret = 0;
   1035                     break;
   1036                 case ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD:
   1037                     msg = "BLACKBOARD";
   1038                     ret = 0;
   1039                     break;
   1040                 case ANDROID_CONTROL_EFFECT_MODE_AQUA:
   1041                     msg = "AQUA";
   1042                     ret = 0;
   1043                     break;
   1044                 default:
   1045                     msg = "error: enum value out of range";
   1046             }
   1047             break;
   1048         }
   1049         case ANDROID_CONTROL_MODE: {
   1050             switch (value) {
   1051                 case ANDROID_CONTROL_MODE_OFF:
   1052                     msg = "OFF";
   1053                     ret = 0;
   1054                     break;
   1055                 case ANDROID_CONTROL_MODE_AUTO:
   1056                     msg = "AUTO";
   1057                     ret = 0;
   1058                     break;
   1059                 case ANDROID_CONTROL_MODE_USE_SCENE_MODE:
   1060                     msg = "USE_SCENE_MODE";
   1061                     ret = 0;
   1062                     break;
   1063                 case ANDROID_CONTROL_MODE_OFF_KEEP_STATE:
   1064                     msg = "OFF_KEEP_STATE";
   1065                     ret = 0;
   1066                     break;
   1067                 default:
   1068                     msg = "error: enum value out of range";
   1069             }
   1070             break;
   1071         }
   1072         case ANDROID_CONTROL_SCENE_MODE: {
   1073             switch (value) {
   1074                 case ANDROID_CONTROL_SCENE_MODE_DISABLED:
   1075                     msg = "DISABLED";
   1076                     ret = 0;
   1077                     break;
   1078                 case ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY:
   1079                     msg = "FACE_PRIORITY";
   1080                     ret = 0;
   1081                     break;
   1082                 case ANDROID_CONTROL_SCENE_MODE_ACTION:
   1083                     msg = "ACTION";
   1084                     ret = 0;
   1085                     break;
   1086                 case ANDROID_CONTROL_SCENE_MODE_PORTRAIT:
   1087                     msg = "PORTRAIT";
   1088                     ret = 0;
   1089                     break;
   1090                 case ANDROID_CONTROL_SCENE_MODE_LANDSCAPE:
   1091                     msg = "LANDSCAPE";
   1092                     ret = 0;
   1093                     break;
   1094                 case ANDROID_CONTROL_SCENE_MODE_NIGHT:
   1095                     msg = "NIGHT";
   1096                     ret = 0;
   1097                     break;
   1098                 case ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT:
   1099                     msg = "NIGHT_PORTRAIT";
   1100                     ret = 0;
   1101                     break;
   1102                 case ANDROID_CONTROL_SCENE_MODE_THEATRE:
   1103                     msg = "THEATRE";
   1104                     ret = 0;
   1105                     break;
   1106                 case ANDROID_CONTROL_SCENE_MODE_BEACH:
   1107                     msg = "BEACH";
   1108                     ret = 0;
   1109                     break;
   1110                 case ANDROID_CONTROL_SCENE_MODE_SNOW:
   1111                     msg = "SNOW";
   1112                     ret = 0;
   1113                     break;
   1114                 case ANDROID_CONTROL_SCENE_MODE_SUNSET:
   1115                     msg = "SUNSET";
   1116                     ret = 0;
   1117                     break;
   1118                 case ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO:
   1119                     msg = "STEADYPHOTO";
   1120                     ret = 0;
   1121                     break;
   1122                 case ANDROID_CONTROL_SCENE_MODE_FIREWORKS:
   1123                     msg = "FIREWORKS";
   1124                     ret = 0;
   1125                     break;
   1126                 case ANDROID_CONTROL_SCENE_MODE_SPORTS:
   1127                     msg = "SPORTS";
   1128                     ret = 0;
   1129                     break;
   1130                 case ANDROID_CONTROL_SCENE_MODE_PARTY:
   1131                     msg = "PARTY";
   1132                     ret = 0;
   1133                     break;
   1134                 case ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT:
   1135                     msg = "CANDLELIGHT";
   1136                     ret = 0;
   1137                     break;
   1138                 case ANDROID_CONTROL_SCENE_MODE_BARCODE:
   1139                     msg = "BARCODE";
   1140                     ret = 0;
   1141                     break;
   1142                 case ANDROID_CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO:
   1143                     msg = "HIGH_SPEED_VIDEO";
   1144                     ret = 0;
   1145                     break;
   1146                 case ANDROID_CONTROL_SCENE_MODE_HDR:
   1147                     msg = "HDR";
   1148                     ret = 0;
   1149                     break;
   1150                 case ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT:
   1151                     msg = "FACE_PRIORITY_LOW_LIGHT";
   1152                     ret = 0;
   1153                     break;
   1154                 case ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_START:
   1155                     msg = "DEVICE_CUSTOM_START";
   1156                     ret = 0;
   1157                     break;
   1158                 case ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_END:
   1159                     msg = "DEVICE_CUSTOM_END";
   1160                     ret = 0;
   1161                     break;
   1162                 default:
   1163                     msg = "error: enum value out of range";
   1164             }
   1165             break;
   1166         }
   1167         case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE: {
   1168             switch (value) {
   1169                 case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF:
   1170                     msg = "OFF";
   1171                     ret = 0;
   1172                     break;
   1173                 case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON:
   1174                     msg = "ON";
   1175                     ret = 0;
   1176                     break;
   1177                 default:
   1178                     msg = "error: enum value out of range";
   1179             }
   1180             break;
   1181         }
   1182         case ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES: {
   1183             break;
   1184         }
   1185         case ANDROID_CONTROL_AE_AVAILABLE_MODES: {
   1186             break;
   1187         }
   1188         case ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES: {
   1189             break;
   1190         }
   1191         case ANDROID_CONTROL_AE_COMPENSATION_RANGE: {
   1192             break;
   1193         }
   1194         case ANDROID_CONTROL_AE_COMPENSATION_STEP: {
   1195             break;
   1196         }
   1197         case ANDROID_CONTROL_AF_AVAILABLE_MODES: {
   1198             break;
   1199         }
   1200         case ANDROID_CONTROL_AVAILABLE_EFFECTS: {
   1201             break;
   1202         }
   1203         case ANDROID_CONTROL_AVAILABLE_SCENE_MODES: {
   1204             break;
   1205         }
   1206         case ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES: {
   1207             break;
   1208         }
   1209         case ANDROID_CONTROL_AWB_AVAILABLE_MODES: {
   1210             break;
   1211         }
   1212         case ANDROID_CONTROL_MAX_REGIONS: {
   1213             break;
   1214         }
   1215         case ANDROID_CONTROL_SCENE_MODE_OVERRIDES: {
   1216             break;
   1217         }
   1218         case ANDROID_CONTROL_AE_PRECAPTURE_ID: {
   1219             break;
   1220         }
   1221         case ANDROID_CONTROL_AE_STATE: {
   1222             switch (value) {
   1223                 case ANDROID_CONTROL_AE_STATE_INACTIVE:
   1224                     msg = "INACTIVE";
   1225                     ret = 0;
   1226                     break;
   1227                 case ANDROID_CONTROL_AE_STATE_SEARCHING:
   1228                     msg = "SEARCHING";
   1229                     ret = 0;
   1230                     break;
   1231                 case ANDROID_CONTROL_AE_STATE_CONVERGED:
   1232                     msg = "CONVERGED";
   1233                     ret = 0;
   1234                     break;
   1235                 case ANDROID_CONTROL_AE_STATE_LOCKED:
   1236                     msg = "LOCKED";
   1237                     ret = 0;
   1238                     break;
   1239                 case ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED:
   1240                     msg = "FLASH_REQUIRED";
   1241                     ret = 0;
   1242                     break;
   1243                 case ANDROID_CONTROL_AE_STATE_PRECAPTURE:
   1244                     msg = "PRECAPTURE";
   1245                     ret = 0;
   1246                     break;
   1247                 default:
   1248                     msg = "error: enum value out of range";
   1249             }
   1250             break;
   1251         }
   1252         case ANDROID_CONTROL_AF_STATE: {
   1253             switch (value) {
   1254                 case ANDROID_CONTROL_AF_STATE_INACTIVE:
   1255                     msg = "INACTIVE";
   1256                     ret = 0;
   1257                     break;
   1258                 case ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN:
   1259                     msg = "PASSIVE_SCAN";
   1260                     ret = 0;
   1261                     break;
   1262                 case ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED:
   1263                     msg = "PASSIVE_FOCUSED";
   1264                     ret = 0;
   1265                     break;
   1266                 case ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN:
   1267                     msg = "ACTIVE_SCAN";
   1268                     ret = 0;
   1269                     break;
   1270                 case ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED:
   1271                     msg = "FOCUSED_LOCKED";
   1272                     ret = 0;
   1273                     break;
   1274                 case ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED:
   1275                     msg = "NOT_FOCUSED_LOCKED";
   1276                     ret = 0;
   1277                     break;
   1278                 case ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED:
   1279                     msg = "PASSIVE_UNFOCUSED";
   1280                     ret = 0;
   1281                     break;
   1282                 default:
   1283                     msg = "error: enum value out of range";
   1284             }
   1285             break;
   1286         }
   1287         case ANDROID_CONTROL_AF_TRIGGER_ID: {
   1288             break;
   1289         }
   1290         case ANDROID_CONTROL_AWB_STATE: {
   1291             switch (value) {
   1292                 case ANDROID_CONTROL_AWB_STATE_INACTIVE:
   1293                     msg = "INACTIVE";
   1294                     ret = 0;
   1295                     break;
   1296                 case ANDROID_CONTROL_AWB_STATE_SEARCHING:
   1297                     msg = "SEARCHING";
   1298                     ret = 0;
   1299                     break;
   1300                 case ANDROID_CONTROL_AWB_STATE_CONVERGED:
   1301                     msg = "CONVERGED";
   1302                     ret = 0;
   1303                     break;
   1304                 case ANDROID_CONTROL_AWB_STATE_LOCKED:
   1305                     msg = "LOCKED";
   1306                     ret = 0;
   1307                     break;
   1308                 default:
   1309                     msg = "error: enum value out of range";
   1310             }
   1311             break;
   1312         }
   1313         case ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS: {
   1314             break;
   1315         }
   1316         case ANDROID_CONTROL_AE_LOCK_AVAILABLE: {
   1317             switch (value) {
   1318                 case ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE:
   1319                     msg = "FALSE";
   1320                     ret = 0;
   1321                     break;
   1322                 case ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE:
   1323                     msg = "TRUE";
   1324                     ret = 0;
   1325                     break;
   1326                 default:
   1327                     msg = "error: enum value out of range";
   1328             }
   1329             break;
   1330         }
   1331         case ANDROID_CONTROL_AWB_LOCK_AVAILABLE: {
   1332             switch (value) {
   1333                 case ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE:
   1334                     msg = "FALSE";
   1335                     ret = 0;
   1336                     break;
   1337                 case ANDROID_CONTROL_AWB_LOCK_AVAILABLE_TRUE:
   1338                     msg = "TRUE";
   1339                     ret = 0;
   1340                     break;
   1341                 default:
   1342                     msg = "error: enum value out of range";
   1343             }
   1344             break;
   1345         }
   1346         case ANDROID_CONTROL_AVAILABLE_MODES: {
   1347             break;
   1348         }
   1349         case ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE: {
   1350             break;
   1351         }
   1352         case ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST: {
   1353             break;
   1354         }
   1355         case ANDROID_CONTROL_ENABLE_ZSL: {
   1356             switch (value) {
   1357                 case ANDROID_CONTROL_ENABLE_ZSL_FALSE:
   1358                     msg = "FALSE";
   1359                     ret = 0;
   1360                     break;
   1361                 case ANDROID_CONTROL_ENABLE_ZSL_TRUE:
   1362                     msg = "TRUE";
   1363                     ret = 0;
   1364                     break;
   1365                 default:
   1366                     msg = "error: enum value out of range";
   1367             }
   1368             break;
   1369         }
   1370 
   1371         case ANDROID_DEMOSAIC_MODE: {
   1372             switch (value) {
   1373                 case ANDROID_DEMOSAIC_MODE_FAST:
   1374                     msg = "FAST";
   1375                     ret = 0;
   1376                     break;
   1377                 case ANDROID_DEMOSAIC_MODE_HIGH_QUALITY:
   1378                     msg = "HIGH_QUALITY";
   1379                     ret = 0;
   1380                     break;
   1381                 default:
   1382                     msg = "error: enum value out of range";
   1383             }
   1384             break;
   1385         }
   1386 
   1387         case ANDROID_EDGE_MODE: {
   1388             switch (value) {
   1389                 case ANDROID_EDGE_MODE_OFF:
   1390                     msg = "OFF";
   1391                     ret = 0;
   1392                     break;
   1393                 case ANDROID_EDGE_MODE_FAST:
   1394                     msg = "FAST";
   1395                     ret = 0;
   1396                     break;
   1397                 case ANDROID_EDGE_MODE_HIGH_QUALITY:
   1398                     msg = "HIGH_QUALITY";
   1399                     ret = 0;
   1400                     break;
   1401                 case ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG:
   1402                     msg = "ZERO_SHUTTER_LAG";
   1403                     ret = 0;
   1404                     break;
   1405                 default:
   1406                     msg = "error: enum value out of range";
   1407             }
   1408             break;
   1409         }
   1410         case ANDROID_EDGE_STRENGTH: {
   1411             break;
   1412         }
   1413         case ANDROID_EDGE_AVAILABLE_EDGE_MODES: {
   1414             break;
   1415         }
   1416 
   1417         case ANDROID_FLASH_FIRING_POWER: {
   1418             break;
   1419         }
   1420         case ANDROID_FLASH_FIRING_TIME: {
   1421             break;
   1422         }
   1423         case ANDROID_FLASH_MODE: {
   1424             switch (value) {
   1425                 case ANDROID_FLASH_MODE_OFF:
   1426                     msg = "OFF";
   1427                     ret = 0;
   1428                     break;
   1429                 case ANDROID_FLASH_MODE_SINGLE:
   1430                     msg = "SINGLE";
   1431                     ret = 0;
   1432                     break;
   1433                 case ANDROID_FLASH_MODE_TORCH:
   1434                     msg = "TORCH";
   1435                     ret = 0;
   1436                     break;
   1437                 default:
   1438                     msg = "error: enum value out of range";
   1439             }
   1440             break;
   1441         }
   1442         case ANDROID_FLASH_COLOR_TEMPERATURE: {
   1443             break;
   1444         }
   1445         case ANDROID_FLASH_MAX_ENERGY: {
   1446             break;
   1447         }
   1448         case ANDROID_FLASH_STATE: {
   1449             switch (value) {
   1450                 case ANDROID_FLASH_STATE_UNAVAILABLE:
   1451                     msg = "UNAVAILABLE";
   1452                     ret = 0;
   1453                     break;
   1454                 case ANDROID_FLASH_STATE_CHARGING:
   1455                     msg = "CHARGING";
   1456                     ret = 0;
   1457                     break;
   1458                 case ANDROID_FLASH_STATE_READY:
   1459                     msg = "READY";
   1460                     ret = 0;
   1461                     break;
   1462                 case ANDROID_FLASH_STATE_FIRED:
   1463                     msg = "FIRED";
   1464                     ret = 0;
   1465                     break;
   1466                 case ANDROID_FLASH_STATE_PARTIAL:
   1467                     msg = "PARTIAL";
   1468                     ret = 0;
   1469                     break;
   1470                 default:
   1471                     msg = "error: enum value out of range";
   1472             }
   1473             break;
   1474         }
   1475 
   1476         case ANDROID_FLASH_INFO_AVAILABLE: {
   1477             switch (value) {
   1478                 case ANDROID_FLASH_INFO_AVAILABLE_FALSE:
   1479                     msg = "FALSE";
   1480                     ret = 0;
   1481                     break;
   1482                 case ANDROID_FLASH_INFO_AVAILABLE_TRUE:
   1483                     msg = "TRUE";
   1484                     ret = 0;
   1485                     break;
   1486                 default:
   1487                     msg = "error: enum value out of range";
   1488             }
   1489             break;
   1490         }
   1491         case ANDROID_FLASH_INFO_CHARGE_DURATION: {
   1492             break;
   1493         }
   1494 
   1495         case ANDROID_HOT_PIXEL_MODE: {
   1496             switch (value) {
   1497                 case ANDROID_HOT_PIXEL_MODE_OFF:
   1498                     msg = "OFF";
   1499                     ret = 0;
   1500                     break;
   1501                 case ANDROID_HOT_PIXEL_MODE_FAST:
   1502                     msg = "FAST";
   1503                     ret = 0;
   1504                     break;
   1505                 case ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY:
   1506                     msg = "HIGH_QUALITY";
   1507                     ret = 0;
   1508                     break;
   1509                 default:
   1510                     msg = "error: enum value out of range";
   1511             }
   1512             break;
   1513         }
   1514         case ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES: {
   1515             break;
   1516         }
   1517 
   1518         case ANDROID_JPEG_GPS_COORDINATES: {
   1519             break;
   1520         }
   1521         case ANDROID_JPEG_GPS_PROCESSING_METHOD: {
   1522             break;
   1523         }
   1524         case ANDROID_JPEG_GPS_TIMESTAMP: {
   1525             break;
   1526         }
   1527         case ANDROID_JPEG_ORIENTATION: {
   1528             break;
   1529         }
   1530         case ANDROID_JPEG_QUALITY: {
   1531             break;
   1532         }
   1533         case ANDROID_JPEG_THUMBNAIL_QUALITY: {
   1534             break;
   1535         }
   1536         case ANDROID_JPEG_THUMBNAIL_SIZE: {
   1537             break;
   1538         }
   1539         case ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES: {
   1540             break;
   1541         }
   1542         case ANDROID_JPEG_MAX_SIZE: {
   1543             break;
   1544         }
   1545         case ANDROID_JPEG_SIZE: {
   1546             break;
   1547         }
   1548 
   1549         case ANDROID_LENS_APERTURE: {
   1550             break;
   1551         }
   1552         case ANDROID_LENS_FILTER_DENSITY: {
   1553             break;
   1554         }
   1555         case ANDROID_LENS_FOCAL_LENGTH: {
   1556             break;
   1557         }
   1558         case ANDROID_LENS_FOCUS_DISTANCE: {
   1559             break;
   1560         }
   1561         case ANDROID_LENS_OPTICAL_STABILIZATION_MODE: {
   1562             switch (value) {
   1563                 case ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF:
   1564                     msg = "OFF";
   1565                     ret = 0;
   1566                     break;
   1567                 case ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON:
   1568                     msg = "ON";
   1569                     ret = 0;
   1570                     break;
   1571                 default:
   1572                     msg = "error: enum value out of range";
   1573             }
   1574             break;
   1575         }
   1576         case ANDROID_LENS_FACING: {
   1577             switch (value) {
   1578                 case ANDROID_LENS_FACING_FRONT:
   1579                     msg = "FRONT";
   1580                     ret = 0;
   1581                     break;
   1582                 case ANDROID_LENS_FACING_BACK:
   1583                     msg = "BACK";
   1584                     ret = 0;
   1585                     break;
   1586                 case ANDROID_LENS_FACING_EXTERNAL:
   1587                     msg = "EXTERNAL";
   1588                     ret = 0;
   1589                     break;
   1590                 default:
   1591                     msg = "error: enum value out of range";
   1592             }
   1593             break;
   1594         }
   1595         case ANDROID_LENS_POSE_ROTATION: {
   1596             break;
   1597         }
   1598         case ANDROID_LENS_POSE_TRANSLATION: {
   1599             break;
   1600         }
   1601         case ANDROID_LENS_FOCUS_RANGE: {
   1602             break;
   1603         }
   1604         case ANDROID_LENS_STATE: {
   1605             switch (value) {
   1606                 case ANDROID_LENS_STATE_STATIONARY:
   1607                     msg = "STATIONARY";
   1608                     ret = 0;
   1609                     break;
   1610                 case ANDROID_LENS_STATE_MOVING:
   1611                     msg = "MOVING";
   1612                     ret = 0;
   1613                     break;
   1614                 default:
   1615                     msg = "error: enum value out of range";
   1616             }
   1617             break;
   1618         }
   1619         case ANDROID_LENS_INTRINSIC_CALIBRATION: {
   1620             break;
   1621         }
   1622         case ANDROID_LENS_RADIAL_DISTORTION: {
   1623             break;
   1624         }
   1625 
   1626         case ANDROID_LENS_INFO_AVAILABLE_APERTURES: {
   1627             break;
   1628         }
   1629         case ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES: {
   1630             break;
   1631         }
   1632         case ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS: {
   1633             break;
   1634         }
   1635         case ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION: {
   1636             break;
   1637         }
   1638         case ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE: {
   1639             break;
   1640         }
   1641         case ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE: {
   1642             break;
   1643         }
   1644         case ANDROID_LENS_INFO_SHADING_MAP_SIZE: {
   1645             break;
   1646         }
   1647         case ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION: {
   1648             switch (value) {
   1649                 case ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED:
   1650                     msg = "UNCALIBRATED";
   1651                     ret = 0;
   1652                     break;
   1653                 case ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE:
   1654                     msg = "APPROXIMATE";
   1655                     ret = 0;
   1656                     break;
   1657                 case ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED:
   1658                     msg = "CALIBRATED";
   1659                     ret = 0;
   1660                     break;
   1661                 default:
   1662                     msg = "error: enum value out of range";
   1663             }
   1664             break;
   1665         }
   1666 
   1667         case ANDROID_NOISE_REDUCTION_MODE: {
   1668             switch (value) {
   1669                 case ANDROID_NOISE_REDUCTION_MODE_OFF:
   1670                     msg = "OFF";
   1671                     ret = 0;
   1672                     break;
   1673                 case ANDROID_NOISE_REDUCTION_MODE_FAST:
   1674                     msg = "FAST";
   1675                     ret = 0;
   1676                     break;
   1677                 case ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY:
   1678                     msg = "HIGH_QUALITY";
   1679                     ret = 0;
   1680                     break;
   1681                 case ANDROID_NOISE_REDUCTION_MODE_MINIMAL:
   1682                     msg = "MINIMAL";
   1683                     ret = 0;
   1684                     break;
   1685                 case ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG:
   1686                     msg = "ZERO_SHUTTER_LAG";
   1687                     ret = 0;
   1688                     break;
   1689                 default:
   1690                     msg = "error: enum value out of range";
   1691             }
   1692             break;
   1693         }
   1694         case ANDROID_NOISE_REDUCTION_STRENGTH: {
   1695             break;
   1696         }
   1697         case ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES: {
   1698             break;
   1699         }
   1700 
   1701         case ANDROID_QUIRKS_METERING_CROP_REGION: {
   1702             break;
   1703         }
   1704         case ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO: {
   1705             break;
   1706         }
   1707         case ANDROID_QUIRKS_USE_ZSL_FORMAT: {
   1708             break;
   1709         }
   1710         case ANDROID_QUIRKS_USE_PARTIAL_RESULT: {
   1711             break;
   1712         }
   1713         case ANDROID_QUIRKS_PARTIAL_RESULT: {
   1714             switch (value) {
   1715                 case ANDROID_QUIRKS_PARTIAL_RESULT_FINAL:
   1716                     msg = "FINAL";
   1717                     ret = 0;
   1718                     break;
   1719                 case ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL:
   1720                     msg = "PARTIAL";
   1721                     ret = 0;
   1722                     break;
   1723                 default:
   1724                     msg = "error: enum value out of range";
   1725             }
   1726             break;
   1727         }
   1728 
   1729         case ANDROID_REQUEST_FRAME_COUNT: {
   1730             break;
   1731         }
   1732         case ANDROID_REQUEST_ID: {
   1733             break;
   1734         }
   1735         case ANDROID_REQUEST_INPUT_STREAMS: {
   1736             break;
   1737         }
   1738         case ANDROID_REQUEST_METADATA_MODE: {
   1739             switch (value) {
   1740                 case ANDROID_REQUEST_METADATA_MODE_NONE:
   1741                     msg = "NONE";
   1742                     ret = 0;
   1743                     break;
   1744                 case ANDROID_REQUEST_METADATA_MODE_FULL:
   1745                     msg = "FULL";
   1746                     ret = 0;
   1747                     break;
   1748                 default:
   1749                     msg = "error: enum value out of range";
   1750             }
   1751             break;
   1752         }
   1753         case ANDROID_REQUEST_OUTPUT_STREAMS: {
   1754             break;
   1755         }
   1756         case ANDROID_REQUEST_TYPE: {
   1757             switch (value) {
   1758                 case ANDROID_REQUEST_TYPE_CAPTURE:
   1759                     msg = "CAPTURE";
   1760                     ret = 0;
   1761                     break;
   1762                 case ANDROID_REQUEST_TYPE_REPROCESS:
   1763                     msg = "REPROCESS";
   1764                     ret = 0;
   1765                     break;
   1766                 default:
   1767                     msg = "error: enum value out of range";
   1768             }
   1769             break;
   1770         }
   1771         case ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS: {
   1772             break;
   1773         }
   1774         case ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS: {
   1775             break;
   1776         }
   1777         case ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS: {
   1778             break;
   1779         }
   1780         case ANDROID_REQUEST_PIPELINE_DEPTH: {
   1781             break;
   1782         }
   1783         case ANDROID_REQUEST_PIPELINE_MAX_DEPTH: {
   1784             break;
   1785         }
   1786         case ANDROID_REQUEST_PARTIAL_RESULT_COUNT: {
   1787             break;
   1788         }
   1789         case ANDROID_REQUEST_AVAILABLE_CAPABILITIES: {
   1790             switch (value) {
   1791                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE:
   1792                     msg = "BACKWARD_COMPATIBLE";
   1793                     ret = 0;
   1794                     break;
   1795                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR:
   1796                     msg = "MANUAL_SENSOR";
   1797                     ret = 0;
   1798                     break;
   1799                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING:
   1800                     msg = "MANUAL_POST_PROCESSING";
   1801                     ret = 0;
   1802                     break;
   1803                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW:
   1804                     msg = "RAW";
   1805                     ret = 0;
   1806                     break;
   1807                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING:
   1808                     msg = "PRIVATE_REPROCESSING";
   1809                     ret = 0;
   1810                     break;
   1811                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS:
   1812                     msg = "READ_SENSOR_SETTINGS";
   1813                     ret = 0;
   1814                     break;
   1815                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE:
   1816                     msg = "BURST_CAPTURE";
   1817                     ret = 0;
   1818                     break;
   1819                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING:
   1820                     msg = "YUV_REPROCESSING";
   1821                     ret = 0;
   1822                     break;
   1823                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT:
   1824                     msg = "DEPTH_OUTPUT";
   1825                     ret = 0;
   1826                     break;
   1827                 case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO:
   1828                     msg = "CONSTRAINED_HIGH_SPEED_VIDEO";
   1829                     ret = 0;
   1830                     break;
   1831                 default:
   1832                     msg = "error: enum value out of range";
   1833             }
   1834             break;
   1835         }
   1836         case ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS: {
   1837             break;
   1838         }
   1839         case ANDROID_REQUEST_AVAILABLE_RESULT_KEYS: {
   1840             break;
   1841         }
   1842         case ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS: {
   1843             break;
   1844         }
   1845 
   1846         case ANDROID_SCALER_CROP_REGION: {
   1847             break;
   1848         }
   1849         case ANDROID_SCALER_AVAILABLE_FORMATS: {
   1850             switch (value) {
   1851                 case ANDROID_SCALER_AVAILABLE_FORMATS_RAW16:
   1852                     msg = "RAW16";
   1853                     ret = 0;
   1854                     break;
   1855                 case ANDROID_SCALER_AVAILABLE_FORMATS_RAW_OPAQUE:
   1856                     msg = "RAW_OPAQUE";
   1857                     ret = 0;
   1858                     break;
   1859                 case ANDROID_SCALER_AVAILABLE_FORMATS_YV12:
   1860                     msg = "YV12";
   1861                     ret = 0;
   1862                     break;
   1863                 case ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP:
   1864                     msg = "YCrCb_420_SP";
   1865                     ret = 0;
   1866                     break;
   1867                 case ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED:
   1868                     msg = "IMPLEMENTATION_DEFINED";
   1869                     ret = 0;
   1870                     break;
   1871                 case ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888:
   1872                     msg = "YCbCr_420_888";
   1873                     ret = 0;
   1874                     break;
   1875                 case ANDROID_SCALER_AVAILABLE_FORMATS_BLOB:
   1876                     msg = "BLOB";
   1877                     ret = 0;
   1878                     break;
   1879                 default:
   1880                     msg = "error: enum value out of range";
   1881             }
   1882             break;
   1883         }
   1884         case ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS: {
   1885             break;
   1886         }
   1887         case ANDROID_SCALER_AVAILABLE_JPEG_SIZES: {
   1888             break;
   1889         }
   1890         case ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM: {
   1891             break;
   1892         }
   1893         case ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS: {
   1894             break;
   1895         }
   1896         case ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES: {
   1897             break;
   1898         }
   1899         case ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS: {
   1900             break;
   1901         }
   1902         case ANDROID_SCALER_AVAILABLE_RAW_SIZES: {
   1903             break;
   1904         }
   1905         case ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP: {
   1906             break;
   1907         }
   1908         case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS: {
   1909             switch (value) {
   1910                 case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT:
   1911                     msg = "OUTPUT";
   1912                     ret = 0;
   1913                     break;
   1914                 case ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT:
   1915                     msg = "INPUT";
   1916                     ret = 0;
   1917                     break;
   1918                 default:
   1919                     msg = "error: enum value out of range";
   1920             }
   1921             break;
   1922         }
   1923         case ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS: {
   1924             break;
   1925         }
   1926         case ANDROID_SCALER_AVAILABLE_STALL_DURATIONS: {
   1927             break;
   1928         }
   1929         case ANDROID_SCALER_CROPPING_TYPE: {
   1930             switch (value) {
   1931                 case ANDROID_SCALER_CROPPING_TYPE_CENTER_ONLY:
   1932                     msg = "CENTER_ONLY";
   1933                     ret = 0;
   1934                     break;
   1935                 case ANDROID_SCALER_CROPPING_TYPE_FREEFORM:
   1936                     msg = "FREEFORM";
   1937                     ret = 0;
   1938                     break;
   1939                 default:
   1940                     msg = "error: enum value out of range";
   1941             }
   1942             break;
   1943         }
   1944 
   1945         case ANDROID_SENSOR_EXPOSURE_TIME: {
   1946             break;
   1947         }
   1948         case ANDROID_SENSOR_FRAME_DURATION: {
   1949             break;
   1950         }
   1951         case ANDROID_SENSOR_SENSITIVITY: {
   1952             break;
   1953         }
   1954         case ANDROID_SENSOR_REFERENCE_ILLUMINANT1: {
   1955             switch (value) {
   1956                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT:
   1957                     msg = "DAYLIGHT";
   1958                     ret = 0;
   1959                     break;
   1960                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT:
   1961                     msg = "FLUORESCENT";
   1962                     ret = 0;
   1963                     break;
   1964                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN:
   1965                     msg = "TUNGSTEN";
   1966                     ret = 0;
   1967                     break;
   1968                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLASH:
   1969                     msg = "FLASH";
   1970                     ret = 0;
   1971                     break;
   1972                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER:
   1973                     msg = "FINE_WEATHER";
   1974                     ret = 0;
   1975                     break;
   1976                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER:
   1977                     msg = "CLOUDY_WEATHER";
   1978                     ret = 0;
   1979                     break;
   1980                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_SHADE:
   1981                     msg = "SHADE";
   1982                     ret = 0;
   1983                     break;
   1984                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT:
   1985                     msg = "DAYLIGHT_FLUORESCENT";
   1986                     ret = 0;
   1987                     break;
   1988                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT:
   1989                     msg = "DAY_WHITE_FLUORESCENT";
   1990                     ret = 0;
   1991                     break;
   1992                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT:
   1993                     msg = "COOL_WHITE_FLUORESCENT";
   1994                     ret = 0;
   1995                     break;
   1996                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT:
   1997                     msg = "WHITE_FLUORESCENT";
   1998                     ret = 0;
   1999                     break;
   2000                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A:
   2001                     msg = "STANDARD_A";
   2002                     ret = 0;
   2003                     break;
   2004                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B:
   2005                     msg = "STANDARD_B";
   2006                     ret = 0;
   2007                     break;
   2008                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C:
   2009                     msg = "STANDARD_C";
   2010                     ret = 0;
   2011                     break;
   2012                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D55:
   2013                     msg = "D55";
   2014                     ret = 0;
   2015                     break;
   2016                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D65:
   2017                     msg = "D65";
   2018                     ret = 0;
   2019                     break;
   2020                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D75:
   2021                     msg = "D75";
   2022                     ret = 0;
   2023                     break;
   2024                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D50:
   2025                     msg = "D50";
   2026                     ret = 0;
   2027                     break;
   2028                 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN:
   2029                     msg = "ISO_STUDIO_TUNGSTEN";
   2030                     ret = 0;
   2031                     break;
   2032                 default:
   2033                     msg = "error: enum value out of range";
   2034             }
   2035             break;
   2036         }
   2037         case ANDROID_SENSOR_REFERENCE_ILLUMINANT2: {
   2038             break;
   2039         }
   2040         case ANDROID_SENSOR_CALIBRATION_TRANSFORM1: {
   2041             break;
   2042         }
   2043         case ANDROID_SENSOR_CALIBRATION_TRANSFORM2: {
   2044             break;
   2045         }
   2046         case ANDROID_SENSOR_COLOR_TRANSFORM1: {
   2047             break;
   2048         }
   2049         case ANDROID_SENSOR_COLOR_TRANSFORM2: {
   2050             break;
   2051         }
   2052         case ANDROID_SENSOR_FORWARD_MATRIX1: {
   2053             break;
   2054         }
   2055         case ANDROID_SENSOR_FORWARD_MATRIX2: {
   2056             break;
   2057         }
   2058         case ANDROID_SENSOR_BASE_GAIN_FACTOR: {
   2059             break;
   2060         }
   2061         case ANDROID_SENSOR_BLACK_LEVEL_PATTERN: {
   2062             break;
   2063         }
   2064         case ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY: {
   2065             break;
   2066         }
   2067         case ANDROID_SENSOR_ORIENTATION: {
   2068             break;
   2069         }
   2070         case ANDROID_SENSOR_PROFILE_HUE_SAT_MAP_DIMENSIONS: {
   2071             break;
   2072         }
   2073         case ANDROID_SENSOR_TIMESTAMP: {
   2074             break;
   2075         }
   2076         case ANDROID_SENSOR_TEMPERATURE: {
   2077             break;
   2078         }
   2079         case ANDROID_SENSOR_NEUTRAL_COLOR_POINT: {
   2080             break;
   2081         }
   2082         case ANDROID_SENSOR_NOISE_PROFILE: {
   2083             break;
   2084         }
   2085         case ANDROID_SENSOR_PROFILE_HUE_SAT_MAP: {
   2086             break;
   2087         }
   2088         case ANDROID_SENSOR_PROFILE_TONE_CURVE: {
   2089             break;
   2090         }
   2091         case ANDROID_SENSOR_GREEN_SPLIT: {
   2092             break;
   2093         }
   2094         case ANDROID_SENSOR_TEST_PATTERN_DATA: {
   2095             break;
   2096         }
   2097         case ANDROID_SENSOR_TEST_PATTERN_MODE: {
   2098             switch (value) {
   2099                 case ANDROID_SENSOR_TEST_PATTERN_MODE_OFF:
   2100                     msg = "OFF";
   2101                     ret = 0;
   2102                     break;
   2103                 case ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR:
   2104                     msg = "SOLID_COLOR";
   2105                     ret = 0;
   2106                     break;
   2107                 case ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS:
   2108                     msg = "COLOR_BARS";
   2109                     ret = 0;
   2110                     break;
   2111                 case ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY:
   2112                     msg = "COLOR_BARS_FADE_TO_GRAY";
   2113                     ret = 0;
   2114                     break;
   2115                 case ANDROID_SENSOR_TEST_PATTERN_MODE_PN9:
   2116                     msg = "PN9";
   2117                     ret = 0;
   2118                     break;
   2119                 case ANDROID_SENSOR_TEST_PATTERN_MODE_CUSTOM1:
   2120                     msg = "CUSTOM1";
   2121                     ret = 0;
   2122                     break;
   2123                 default:
   2124                     msg = "error: enum value out of range";
   2125             }
   2126             break;
   2127         }
   2128         case ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES: {
   2129             break;
   2130         }
   2131         case ANDROID_SENSOR_ROLLING_SHUTTER_SKEW: {
   2132             break;
   2133         }
   2134         case ANDROID_SENSOR_OPTICAL_BLACK_REGIONS: {
   2135             break;
   2136         }
   2137         case ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL: {
   2138             break;
   2139         }
   2140         case ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL: {
   2141             break;
   2142         }
   2143         case ANDROID_SENSOR_OPAQUE_RAW_SIZE: {
   2144             break;
   2145         }
   2146 
   2147         case ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE: {
   2148             break;
   2149         }
   2150         case ANDROID_SENSOR_INFO_SENSITIVITY_RANGE: {
   2151             break;
   2152         }
   2153         case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT: {
   2154             switch (value) {
   2155                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB:
   2156                     msg = "RGGB";
   2157                     ret = 0;
   2158                     break;
   2159                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG:
   2160                     msg = "GRBG";
   2161                     ret = 0;
   2162                     break;
   2163                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG:
   2164                     msg = "GBRG";
   2165                     ret = 0;
   2166                     break;
   2167                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR:
   2168                     msg = "BGGR";
   2169                     ret = 0;
   2170                     break;
   2171                 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB:
   2172                     msg = "RGB";
   2173                     ret = 0;
   2174                     break;
   2175                 default:
   2176                     msg = "error: enum value out of range";
   2177             }
   2178             break;
   2179         }
   2180         case ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE: {
   2181             break;
   2182         }
   2183         case ANDROID_SENSOR_INFO_MAX_FRAME_DURATION: {
   2184             break;
   2185         }
   2186         case ANDROID_SENSOR_INFO_PHYSICAL_SIZE: {
   2187             break;
   2188         }
   2189         case ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE: {
   2190             break;
   2191         }
   2192         case ANDROID_SENSOR_INFO_WHITE_LEVEL: {
   2193             break;
   2194         }
   2195         case ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE: {
   2196             switch (value) {
   2197                 case ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN:
   2198                     msg = "UNKNOWN";
   2199                     ret = 0;
   2200                     break;
   2201                 case ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME:
   2202                     msg = "REALTIME";
   2203                     ret = 0;
   2204                     break;
   2205                 default:
   2206                     msg = "error: enum value out of range";
   2207             }
   2208             break;
   2209         }
   2210         case ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED: {
   2211             switch (value) {
   2212                 case ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_FALSE:
   2213                     msg = "FALSE";
   2214                     ret = 0;
   2215                     break;
   2216                 case ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_TRUE:
   2217                     msg = "TRUE";
   2218                     ret = 0;
   2219                     break;
   2220                 default:
   2221                     msg = "error: enum value out of range";
   2222             }
   2223             break;
   2224         }
   2225         case ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE: {
   2226             break;
   2227         }
   2228 
   2229         case ANDROID_SHADING_MODE: {
   2230             switch (value) {
   2231                 case ANDROID_SHADING_MODE_OFF:
   2232                     msg = "OFF";
   2233                     ret = 0;
   2234                     break;
   2235                 case ANDROID_SHADING_MODE_FAST:
   2236                     msg = "FAST";
   2237                     ret = 0;
   2238                     break;
   2239                 case ANDROID_SHADING_MODE_HIGH_QUALITY:
   2240                     msg = "HIGH_QUALITY";
   2241                     ret = 0;
   2242                     break;
   2243                 default:
   2244                     msg = "error: enum value out of range";
   2245             }
   2246             break;
   2247         }
   2248         case ANDROID_SHADING_STRENGTH: {
   2249             break;
   2250         }
   2251         case ANDROID_SHADING_AVAILABLE_MODES: {
   2252             break;
   2253         }
   2254 
   2255         case ANDROID_STATISTICS_FACE_DETECT_MODE: {
   2256             switch (value) {
   2257                 case ANDROID_STATISTICS_FACE_DETECT_MODE_OFF:
   2258                     msg = "OFF";
   2259                     ret = 0;
   2260                     break;
   2261                 case ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE:
   2262                     msg = "SIMPLE";
   2263                     ret = 0;
   2264                     break;
   2265                 case ANDROID_STATISTICS_FACE_DETECT_MODE_FULL:
   2266                     msg = "FULL";
   2267                     ret = 0;
   2268                     break;
   2269                 default:
   2270                     msg = "error: enum value out of range";
   2271             }
   2272             break;
   2273         }
   2274         case ANDROID_STATISTICS_HISTOGRAM_MODE: {
   2275             switch (value) {
   2276                 case ANDROID_STATISTICS_HISTOGRAM_MODE_OFF:
   2277                     msg = "OFF";
   2278                     ret = 0;
   2279                     break;
   2280                 case ANDROID_STATISTICS_HISTOGRAM_MODE_ON:
   2281                     msg = "ON";
   2282                     ret = 0;
   2283                     break;
   2284                 default:
   2285                     msg = "error: enum value out of range";
   2286             }
   2287             break;
   2288         }
   2289         case ANDROID_STATISTICS_SHARPNESS_MAP_MODE: {
   2290             switch (value) {
   2291                 case ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF:
   2292                     msg = "OFF";
   2293                     ret = 0;
   2294                     break;
   2295                 case ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON:
   2296                     msg = "ON";
   2297                     ret = 0;
   2298                     break;
   2299                 default:
   2300                     msg = "error: enum value out of range";
   2301             }
   2302             break;
   2303         }
   2304         case ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE: {
   2305             switch (value) {
   2306                 case ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF:
   2307                     msg = "OFF";
   2308                     ret = 0;
   2309                     break;
   2310                 case ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_ON:
   2311                     msg = "ON";
   2312                     ret = 0;
   2313                     break;
   2314                 default:
   2315                     msg = "error: enum value out of range";
   2316             }
   2317             break;
   2318         }
   2319         case ANDROID_STATISTICS_FACE_IDS: {
   2320             break;
   2321         }
   2322         case ANDROID_STATISTICS_FACE_LANDMARKS: {
   2323             break;
   2324         }
   2325         case ANDROID_STATISTICS_FACE_RECTANGLES: {
   2326             break;
   2327         }
   2328         case ANDROID_STATISTICS_FACE_SCORES: {
   2329             break;
   2330         }
   2331         case ANDROID_STATISTICS_HISTOGRAM: {
   2332             break;
   2333         }
   2334         case ANDROID_STATISTICS_SHARPNESS_MAP: {
   2335             break;
   2336         }
   2337         case ANDROID_STATISTICS_LENS_SHADING_CORRECTION_MAP: {
   2338             break;
   2339         }
   2340         case ANDROID_STATISTICS_LENS_SHADING_MAP: {
   2341             break;
   2342         }
   2343         case ANDROID_STATISTICS_PREDICTED_COLOR_GAINS: {
   2344             break;
   2345         }
   2346         case ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM: {
   2347             break;
   2348         }
   2349         case ANDROID_STATISTICS_SCENE_FLICKER: {
   2350             switch (value) {
   2351                 case ANDROID_STATISTICS_SCENE_FLICKER_NONE:
   2352                     msg = "NONE";
   2353                     ret = 0;
   2354                     break;
   2355                 case ANDROID_STATISTICS_SCENE_FLICKER_50HZ:
   2356                     msg = "50HZ";
   2357                     ret = 0;
   2358                     break;
   2359                 case ANDROID_STATISTICS_SCENE_FLICKER_60HZ:
   2360                     msg = "60HZ";
   2361                     ret = 0;
   2362                     break;
   2363                 default:
   2364                     msg = "error: enum value out of range";
   2365             }
   2366             break;
   2367         }
   2368         case ANDROID_STATISTICS_HOT_PIXEL_MAP: {
   2369             break;
   2370         }
   2371         case ANDROID_STATISTICS_LENS_SHADING_MAP_MODE: {
   2372             switch (value) {
   2373                 case ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF:
   2374                     msg = "OFF";
   2375                     ret = 0;
   2376                     break;
   2377                 case ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON:
   2378                     msg = "ON";
   2379                     ret = 0;
   2380                     break;
   2381                 default:
   2382                     msg = "error: enum value out of range";
   2383             }
   2384             break;
   2385         }
   2386 
   2387         case ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES: {
   2388             break;
   2389         }
   2390         case ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT: {
   2391             break;
   2392         }
   2393         case ANDROID_STATISTICS_INFO_MAX_FACE_COUNT: {
   2394             break;
   2395         }
   2396         case ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT: {
   2397             break;
   2398         }
   2399         case ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE: {
   2400             break;
   2401         }
   2402         case ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE: {
   2403             break;
   2404         }
   2405         case ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES: {
   2406             break;
   2407         }
   2408         case ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES: {
   2409             break;
   2410         }
   2411 
   2412         case ANDROID_TONEMAP_CURVE_BLUE: {
   2413             break;
   2414         }
   2415         case ANDROID_TONEMAP_CURVE_GREEN: {
   2416             break;
   2417         }
   2418         case ANDROID_TONEMAP_CURVE_RED: {
   2419             break;
   2420         }
   2421         case ANDROID_TONEMAP_MODE: {
   2422             switch (value) {
   2423                 case ANDROID_TONEMAP_MODE_CONTRAST_CURVE:
   2424                     msg = "CONTRAST_CURVE";
   2425                     ret = 0;
   2426                     break;
   2427                 case ANDROID_TONEMAP_MODE_FAST:
   2428                     msg = "FAST";
   2429                     ret = 0;
   2430                     break;
   2431                 case ANDROID_TONEMAP_MODE_HIGH_QUALITY:
   2432                     msg = "HIGH_QUALITY";
   2433                     ret = 0;
   2434                     break;
   2435                 case ANDROID_TONEMAP_MODE_GAMMA_VALUE:
   2436                     msg = "GAMMA_VALUE";
   2437                     ret = 0;
   2438                     break;
   2439                 case ANDROID_TONEMAP_MODE_PRESET_CURVE:
   2440                     msg = "PRESET_CURVE";
   2441                     ret = 0;
   2442                     break;
   2443                 default:
   2444                     msg = "error: enum value out of range";
   2445             }
   2446             break;
   2447         }
   2448         case ANDROID_TONEMAP_MAX_CURVE_POINTS: {
   2449             break;
   2450         }
   2451         case ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES: {
   2452             break;
   2453         }
   2454         case ANDROID_TONEMAP_GAMMA: {
   2455             break;
   2456         }
   2457         case ANDROID_TONEMAP_PRESET_CURVE: {
   2458             switch (value) {
   2459                 case ANDROID_TONEMAP_PRESET_CURVE_SRGB:
   2460                     msg = "SRGB";
   2461                     ret = 0;
   2462                     break;
   2463                 case ANDROID_TONEMAP_PRESET_CURVE_REC709:
   2464                     msg = "REC709";
   2465                     ret = 0;
   2466                     break;
   2467                 default:
   2468                     msg = "error: enum value out of range";
   2469             }
   2470             break;
   2471         }
   2472 
   2473         case ANDROID_LED_TRANSMIT: {
   2474             switch (value) {
   2475                 case ANDROID_LED_TRANSMIT_OFF:
   2476                     msg = "OFF";
   2477                     ret = 0;
   2478                     break;
   2479                 case ANDROID_LED_TRANSMIT_ON:
   2480                     msg = "ON";
   2481                     ret = 0;
   2482                     break;
   2483                 default:
   2484                     msg = "error: enum value out of range";
   2485             }
   2486             break;
   2487         }
   2488         case ANDROID_LED_AVAILABLE_LEDS: {
   2489             switch (value) {
   2490                 case ANDROID_LED_AVAILABLE_LEDS_TRANSMIT:
   2491                     msg = "TRANSMIT";
   2492                     ret = 0;
   2493                     break;
   2494                 default:
   2495                     msg = "error: enum value out of range";
   2496             }
   2497             break;
   2498         }
   2499 
   2500         case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL: {
   2501             switch (value) {
   2502                 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED:
   2503                     msg = "LIMITED";
   2504                     ret = 0;
   2505                     break;
   2506                 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL:
   2507                     msg = "FULL";
   2508                     ret = 0;
   2509                     break;
   2510                 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY:
   2511                     msg = "LEGACY";
   2512                     ret = 0;
   2513                     break;
   2514                 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_3:
   2515                     msg = "3";
   2516                     ret = 0;
   2517                     break;
   2518                 default:
   2519                     msg = "error: enum value out of range";
   2520             }
   2521             break;
   2522         }
   2523 
   2524         case ANDROID_BLACK_LEVEL_LOCK: {
   2525             switch (value) {
   2526                 case ANDROID_BLACK_LEVEL_LOCK_OFF:
   2527                     msg = "OFF";
   2528                     ret = 0;
   2529                     break;
   2530                 case ANDROID_BLACK_LEVEL_LOCK_ON:
   2531                     msg = "ON";
   2532                     ret = 0;
   2533                     break;
   2534                 default:
   2535                     msg = "error: enum value out of range";
   2536             }
   2537             break;
   2538         }
   2539 
   2540         case ANDROID_SYNC_FRAME_NUMBER: {
   2541             switch (value) {
   2542                 case ANDROID_SYNC_FRAME_NUMBER_CONVERGING:
   2543                     msg = "CONVERGING";
   2544                     ret = 0;
   2545                     break;
   2546                 case ANDROID_SYNC_FRAME_NUMBER_UNKNOWN:
   2547                     msg = "UNKNOWN";
   2548                     ret = 0;
   2549                     break;
   2550                 default:
   2551                     msg = "error: enum value out of range";
   2552             }
   2553             break;
   2554         }
   2555         case ANDROID_SYNC_MAX_LATENCY: {
   2556             switch (value) {
   2557                 case ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL:
   2558                     msg = "PER_FRAME_CONTROL";
   2559                     ret = 0;
   2560                     break;
   2561                 case ANDROID_SYNC_MAX_LATENCY_UNKNOWN:
   2562                     msg = "UNKNOWN";
   2563                     ret = 0;
   2564                     break;
   2565                 default:
   2566                     msg = "error: enum value out of range";
   2567             }
   2568             break;
   2569         }
   2570 
   2571         case ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR: {
   2572             break;
   2573         }
   2574         case ANDROID_REPROCESS_MAX_CAPTURE_STALL: {
   2575             break;
   2576         }
   2577 
   2578         case ANDROID_DEPTH_MAX_DEPTH_SAMPLES: {
   2579             break;
   2580         }
   2581         case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS: {
   2582             switch (value) {
   2583                 case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT:
   2584                     msg = "OUTPUT";
   2585                     ret = 0;
   2586                     break;
   2587                 case ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT:
   2588                     msg = "INPUT";
   2589                     ret = 0;
   2590                     break;
   2591                 default:
   2592                     msg = "error: enum value out of range";
   2593             }
   2594             break;
   2595         }
   2596         case ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS: {
   2597             break;
   2598         }
   2599         case ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS: {
   2600             break;
   2601         }
   2602         case ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE: {
   2603             switch (value) {
   2604                 case ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_FALSE:
   2605                     msg = "FALSE";
   2606                     ret = 0;
   2607                     break;
   2608                 case ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_TRUE:
   2609                     msg = "TRUE";
   2610                     ret = 0;
   2611                     break;
   2612                 default:
   2613                     msg = "error: enum value out of range";
   2614             }
   2615             break;
   2616         }
   2617 
   2618     }
   2619 
   2620     strncpy(dst, msg, size - 1);
   2621     dst[size - 1] = '\0';
   2622 
   2623     return ret;
   2624 }
   2625 
   2626 
   2627 #define CAMERA_METADATA_ENUM_STRING_MAX_SIZE 29
   2628