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