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