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_GEOMETRIC] = "android.geometric", 41 [ANDROID_HOT_PIXEL] = "android.hotPixel", 42 [ANDROID_HOT_PIXEL_INFO] = "android.hotPixel.info", 43 [ANDROID_JPEG] = "android.jpeg", 44 [ANDROID_LENS] = "android.lens", 45 [ANDROID_LENS_INFO] = "android.lens.info", 46 [ANDROID_NOISE_REDUCTION] = "android.noiseReduction", 47 [ANDROID_QUIRKS] = "android.quirks", 48 [ANDROID_REQUEST] = "android.request", 49 [ANDROID_SCALER] = "android.scaler", 50 [ANDROID_SENSOR] = "android.sensor", 51 [ANDROID_SENSOR_INFO] = "android.sensor.info", 52 [ANDROID_SHADING] = "android.shading", 53 [ANDROID_STATISTICS] = "android.statistics", 54 [ANDROID_STATISTICS_INFO] = "android.statistics.info", 55 [ANDROID_TONEMAP] = "android.tonemap", 56 [ANDROID_LED] = "android.led", 57 [ANDROID_INFO] = "android.info", 58 }; 59 60 unsigned 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_GEOMETRIC] = { ANDROID_GEOMETRIC_START, 74 ANDROID_GEOMETRIC_END }, 75 [ANDROID_HOT_PIXEL] = { ANDROID_HOT_PIXEL_START, 76 ANDROID_HOT_PIXEL_END }, 77 [ANDROID_HOT_PIXEL_INFO] = { ANDROID_HOT_PIXEL_INFO_START, 78 ANDROID_HOT_PIXEL_INFO_END }, 79 [ANDROID_JPEG] = { ANDROID_JPEG_START, 80 ANDROID_JPEG_END }, 81 [ANDROID_LENS] = { ANDROID_LENS_START, 82 ANDROID_LENS_END }, 83 [ANDROID_LENS_INFO] = { ANDROID_LENS_INFO_START, 84 ANDROID_LENS_INFO_END }, 85 [ANDROID_NOISE_REDUCTION] = { ANDROID_NOISE_REDUCTION_START, 86 ANDROID_NOISE_REDUCTION_END }, 87 [ANDROID_QUIRKS] = { ANDROID_QUIRKS_START, 88 ANDROID_QUIRKS_END }, 89 [ANDROID_REQUEST] = { ANDROID_REQUEST_START, 90 ANDROID_REQUEST_END }, 91 [ANDROID_SCALER] = { ANDROID_SCALER_START, 92 ANDROID_SCALER_END }, 93 [ANDROID_SENSOR] = { ANDROID_SENSOR_START, 94 ANDROID_SENSOR_END }, 95 [ANDROID_SENSOR_INFO] = { ANDROID_SENSOR_INFO_START, 96 ANDROID_SENSOR_INFO_END }, 97 [ANDROID_SHADING] = { ANDROID_SHADING_START, 98 ANDROID_SHADING_END }, 99 [ANDROID_STATISTICS] = { ANDROID_STATISTICS_START, 100 ANDROID_STATISTICS_END }, 101 [ANDROID_STATISTICS_INFO] = { ANDROID_STATISTICS_INFO_START, 102 ANDROID_STATISTICS_INFO_END }, 103 [ANDROID_TONEMAP] = { ANDROID_TONEMAP_START, 104 ANDROID_TONEMAP_END }, 105 [ANDROID_LED] = { ANDROID_LED_START, 106 ANDROID_LED_END }, 107 [ANDROID_INFO] = { ANDROID_INFO_START, 108 ANDROID_INFO_END }, 109 }; 110 111 static 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_FLOAT }, 117 }; 118 119 static tag_info_t android_control[ANDROID_CONTROL_END - 120 ANDROID_CONTROL_START] = { 121 [ ANDROID_CONTROL_AE_ANTIBANDING_MODE - ANDROID_CONTROL_START ] = 122 { "aeAntibandingMode", TYPE_BYTE }, 123 [ ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION - ANDROID_CONTROL_START ] = 124 { "aeExposureCompensation", TYPE_INT32 }, 125 [ ANDROID_CONTROL_AE_LOCK - ANDROID_CONTROL_START ] = 126 { "aeLock", TYPE_BYTE }, 127 [ ANDROID_CONTROL_AE_MODE - ANDROID_CONTROL_START ] = 128 { "aeMode", TYPE_BYTE }, 129 [ ANDROID_CONTROL_AE_REGIONS - ANDROID_CONTROL_START ] = 130 { "aeRegions", TYPE_INT32 }, 131 [ ANDROID_CONTROL_AE_TARGET_FPS_RANGE - ANDROID_CONTROL_START ] = 132 { "aeTargetFpsRange", TYPE_INT32 }, 133 [ ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER - ANDROID_CONTROL_START ] = 134 { "aePrecaptureTrigger", TYPE_BYTE }, 135 [ ANDROID_CONTROL_AF_MODE - ANDROID_CONTROL_START ] = 136 { "afMode", TYPE_BYTE }, 137 [ ANDROID_CONTROL_AF_REGIONS - ANDROID_CONTROL_START ] = 138 { "afRegions", TYPE_INT32 }, 139 [ ANDROID_CONTROL_AF_TRIGGER - ANDROID_CONTROL_START ] = 140 { "afTrigger", TYPE_BYTE }, 141 [ ANDROID_CONTROL_AWB_LOCK - ANDROID_CONTROL_START ] = 142 { "awbLock", TYPE_BYTE }, 143 [ ANDROID_CONTROL_AWB_MODE - ANDROID_CONTROL_START ] = 144 { "awbMode", TYPE_BYTE }, 145 [ ANDROID_CONTROL_AWB_REGIONS - ANDROID_CONTROL_START ] = 146 { "awbRegions", TYPE_INT32 }, 147 [ ANDROID_CONTROL_CAPTURE_INTENT - ANDROID_CONTROL_START ] = 148 { "captureIntent", TYPE_BYTE }, 149 [ ANDROID_CONTROL_EFFECT_MODE - ANDROID_CONTROL_START ] = 150 { "effectMode", TYPE_BYTE }, 151 [ ANDROID_CONTROL_MODE - ANDROID_CONTROL_START ] = 152 { "mode", TYPE_BYTE }, 153 [ ANDROID_CONTROL_SCENE_MODE - ANDROID_CONTROL_START ] = 154 { "sceneMode", TYPE_BYTE }, 155 [ ANDROID_CONTROL_VIDEO_STABILIZATION_MODE - ANDROID_CONTROL_START ] = 156 { "videoStabilizationMode", TYPE_BYTE }, 157 [ ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES - ANDROID_CONTROL_START ] = 158 { "aeAvailableAntibandingModes", TYPE_BYTE }, 159 [ ANDROID_CONTROL_AE_AVAILABLE_MODES - ANDROID_CONTROL_START ] = 160 { "aeAvailableModes", TYPE_BYTE }, 161 [ ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES - ANDROID_CONTROL_START ] = 162 { "aeAvailableTargetFpsRanges", TYPE_INT32 }, 163 [ ANDROID_CONTROL_AE_COMPENSATION_RANGE - ANDROID_CONTROL_START ] = 164 { "aeCompensationRange", TYPE_INT32 }, 165 [ ANDROID_CONTROL_AE_COMPENSATION_STEP - ANDROID_CONTROL_START ] = 166 { "aeCompensationStep", TYPE_RATIONAL 167 }, 168 [ ANDROID_CONTROL_AF_AVAILABLE_MODES - ANDROID_CONTROL_START ] = 169 { "afAvailableModes", TYPE_BYTE }, 170 [ ANDROID_CONTROL_AVAILABLE_EFFECTS - ANDROID_CONTROL_START ] = 171 { "availableEffects", TYPE_BYTE }, 172 [ ANDROID_CONTROL_AVAILABLE_SCENE_MODES - ANDROID_CONTROL_START ] = 173 { "availableSceneModes", TYPE_BYTE }, 174 [ ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES - ANDROID_CONTROL_START ] = 175 { "availableVideoStabilizationModes", 176 TYPE_BYTE }, 177 [ ANDROID_CONTROL_AWB_AVAILABLE_MODES - ANDROID_CONTROL_START ] = 178 { "awbAvailableModes", TYPE_BYTE }, 179 [ ANDROID_CONTROL_MAX_REGIONS - ANDROID_CONTROL_START ] = 180 { "maxRegions", TYPE_INT32 }, 181 [ ANDROID_CONTROL_SCENE_MODE_OVERRIDES - ANDROID_CONTROL_START ] = 182 { "sceneModeOverrides", TYPE_BYTE }, 183 [ ANDROID_CONTROL_AE_PRECAPTURE_ID - ANDROID_CONTROL_START ] = 184 { "aePrecaptureId", TYPE_INT32 }, 185 [ ANDROID_CONTROL_AE_STATE - ANDROID_CONTROL_START ] = 186 { "aeState", TYPE_BYTE }, 187 [ ANDROID_CONTROL_AF_STATE - ANDROID_CONTROL_START ] = 188 { "afState", TYPE_BYTE }, 189 [ ANDROID_CONTROL_AF_TRIGGER_ID - ANDROID_CONTROL_START ] = 190 { "afTriggerId", TYPE_INT32 }, 191 [ ANDROID_CONTROL_AWB_STATE - ANDROID_CONTROL_START ] = 192 { "awbState", TYPE_BYTE }, 193 }; 194 195 static tag_info_t android_demosaic[ANDROID_DEMOSAIC_END - 196 ANDROID_DEMOSAIC_START] = { 197 [ ANDROID_DEMOSAIC_MODE - ANDROID_DEMOSAIC_START ] = 198 { "mode", TYPE_BYTE }, 199 }; 200 201 static tag_info_t android_edge[ANDROID_EDGE_END - 202 ANDROID_EDGE_START] = { 203 [ ANDROID_EDGE_MODE - ANDROID_EDGE_START ] = 204 { "mode", TYPE_BYTE }, 205 [ ANDROID_EDGE_STRENGTH - ANDROID_EDGE_START ] = 206 { "strength", TYPE_BYTE }, 207 }; 208 209 static tag_info_t android_flash[ANDROID_FLASH_END - 210 ANDROID_FLASH_START] = { 211 [ ANDROID_FLASH_FIRING_POWER - ANDROID_FLASH_START ] = 212 { "firingPower", TYPE_BYTE }, 213 [ ANDROID_FLASH_FIRING_TIME - ANDROID_FLASH_START ] = 214 { "firingTime", TYPE_INT64 }, 215 [ ANDROID_FLASH_MODE - ANDROID_FLASH_START ] = 216 { "mode", TYPE_BYTE }, 217 [ ANDROID_FLASH_COLOR_TEMPERATURE - ANDROID_FLASH_START ] = 218 { "colorTemperature", TYPE_BYTE }, 219 [ ANDROID_FLASH_MAX_ENERGY - ANDROID_FLASH_START ] = 220 { "maxEnergy", TYPE_BYTE }, 221 [ ANDROID_FLASH_STATE - ANDROID_FLASH_START ] = 222 { "state", TYPE_BYTE }, 223 }; 224 225 static tag_info_t android_flash_info[ANDROID_FLASH_INFO_END - 226 ANDROID_FLASH_INFO_START] = { 227 [ ANDROID_FLASH_INFO_AVAILABLE - ANDROID_FLASH_INFO_START ] = 228 { "available", TYPE_BYTE }, 229 [ ANDROID_FLASH_INFO_CHARGE_DURATION - ANDROID_FLASH_INFO_START ] = 230 { "chargeDuration", TYPE_INT64 }, 231 }; 232 233 static tag_info_t android_geometric[ANDROID_GEOMETRIC_END - 234 ANDROID_GEOMETRIC_START] = { 235 [ ANDROID_GEOMETRIC_MODE - ANDROID_GEOMETRIC_START ] = 236 { "mode", TYPE_BYTE }, 237 [ ANDROID_GEOMETRIC_STRENGTH - ANDROID_GEOMETRIC_START ] = 238 { "strength", TYPE_BYTE }, 239 }; 240 241 static tag_info_t android_hot_pixel[ANDROID_HOT_PIXEL_END - 242 ANDROID_HOT_PIXEL_START] = { 243 [ ANDROID_HOT_PIXEL_MODE - ANDROID_HOT_PIXEL_START ] = 244 { "mode", TYPE_BYTE }, 245 }; 246 247 static tag_info_t android_hot_pixel_info[ANDROID_HOT_PIXEL_INFO_END - 248 ANDROID_HOT_PIXEL_INFO_START] = { 249 [ ANDROID_HOT_PIXEL_INFO_MAP - ANDROID_HOT_PIXEL_INFO_START ] = 250 { "map", TYPE_INT32 }, 251 }; 252 253 static tag_info_t android_jpeg[ANDROID_JPEG_END - 254 ANDROID_JPEG_START] = { 255 [ ANDROID_JPEG_GPS_COORDINATES - ANDROID_JPEG_START ] = 256 { "gpsCoordinates", TYPE_DOUBLE }, 257 [ ANDROID_JPEG_GPS_PROCESSING_METHOD - ANDROID_JPEG_START ] = 258 { "gpsProcessingMethod", TYPE_BYTE }, 259 [ ANDROID_JPEG_GPS_TIMESTAMP - ANDROID_JPEG_START ] = 260 { "gpsTimestamp", TYPE_INT64 }, 261 [ ANDROID_JPEG_ORIENTATION - ANDROID_JPEG_START ] = 262 { "orientation", TYPE_INT32 }, 263 [ ANDROID_JPEG_QUALITY - ANDROID_JPEG_START ] = 264 { "quality", TYPE_BYTE }, 265 [ ANDROID_JPEG_THUMBNAIL_QUALITY - ANDROID_JPEG_START ] = 266 { "thumbnailQuality", TYPE_BYTE }, 267 [ ANDROID_JPEG_THUMBNAIL_SIZE - ANDROID_JPEG_START ] = 268 { "thumbnailSize", TYPE_INT32 }, 269 [ ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES - ANDROID_JPEG_START ] = 270 { "availableThumbnailSizes", TYPE_INT32 }, 271 [ ANDROID_JPEG_MAX_SIZE - ANDROID_JPEG_START ] = 272 { "maxSize", TYPE_INT32 }, 273 [ ANDROID_JPEG_SIZE - ANDROID_JPEG_START ] = 274 { "size", TYPE_INT32 }, 275 }; 276 277 static tag_info_t android_lens[ANDROID_LENS_END - 278 ANDROID_LENS_START] = { 279 [ ANDROID_LENS_APERTURE - ANDROID_LENS_START ] = 280 { "aperture", TYPE_FLOAT }, 281 [ ANDROID_LENS_FILTER_DENSITY - ANDROID_LENS_START ] = 282 { "filterDensity", TYPE_FLOAT }, 283 [ ANDROID_LENS_FOCAL_LENGTH - ANDROID_LENS_START ] = 284 { "focalLength", TYPE_FLOAT }, 285 [ ANDROID_LENS_FOCUS_DISTANCE - ANDROID_LENS_START ] = 286 { "focusDistance", TYPE_FLOAT }, 287 [ ANDROID_LENS_OPTICAL_STABILIZATION_MODE - ANDROID_LENS_START ] = 288 { "opticalStabilizationMode", TYPE_BYTE }, 289 [ ANDROID_LENS_FACING - ANDROID_LENS_START ] = 290 { "facing", TYPE_BYTE }, 291 [ ANDROID_LENS_OPTICAL_AXIS_ANGLE - ANDROID_LENS_START ] = 292 { "opticalAxisAngle", TYPE_FLOAT }, 293 [ ANDROID_LENS_POSITION - ANDROID_LENS_START ] = 294 { "position", TYPE_FLOAT }, 295 [ ANDROID_LENS_FOCUS_RANGE - ANDROID_LENS_START ] = 296 { "focusRange", TYPE_FLOAT }, 297 [ ANDROID_LENS_STATE - ANDROID_LENS_START ] = 298 { "state", TYPE_BYTE }, 299 }; 300 301 static tag_info_t android_lens_info[ANDROID_LENS_INFO_END - 302 ANDROID_LENS_INFO_START] = { 303 [ ANDROID_LENS_INFO_AVAILABLE_APERTURES - ANDROID_LENS_INFO_START ] = 304 { "availableApertures", TYPE_FLOAT }, 305 [ ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES - ANDROID_LENS_INFO_START ] = 306 { "availableFilterDensities", TYPE_FLOAT }, 307 [ ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS - ANDROID_LENS_INFO_START ] = 308 { "availableFocalLengths", TYPE_FLOAT }, 309 [ ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION - ANDROID_LENS_INFO_START ] = 310 { "availableOpticalStabilization", TYPE_BYTE }, 311 [ ANDROID_LENS_INFO_GEOMETRIC_CORRECTION_MAP - ANDROID_LENS_INFO_START ] = 312 { "geometricCorrectionMap", TYPE_FLOAT }, 313 [ ANDROID_LENS_INFO_GEOMETRIC_CORRECTION_MAP_SIZE - ANDROID_LENS_INFO_START ] = 314 { "geometricCorrectionMapSize", TYPE_INT32 }, 315 [ ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE - ANDROID_LENS_INFO_START ] = 316 { "hyperfocalDistance", TYPE_FLOAT }, 317 [ ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE - ANDROID_LENS_INFO_START ] = 318 { "minimumFocusDistance", TYPE_FLOAT }, 319 [ ANDROID_LENS_INFO_SHADING_MAP - ANDROID_LENS_INFO_START ] = 320 { "shadingMap", TYPE_FLOAT }, 321 [ ANDROID_LENS_INFO_SHADING_MAP_SIZE - ANDROID_LENS_INFO_START ] = 322 { "shadingMapSize", TYPE_INT32 }, 323 }; 324 325 static tag_info_t android_noise_reduction[ANDROID_NOISE_REDUCTION_END - 326 ANDROID_NOISE_REDUCTION_START] = { 327 [ ANDROID_NOISE_REDUCTION_MODE - ANDROID_NOISE_REDUCTION_START ] = 328 { "mode", TYPE_BYTE }, 329 [ ANDROID_NOISE_REDUCTION_STRENGTH - ANDROID_NOISE_REDUCTION_START ] = 330 { "strength", TYPE_BYTE }, 331 }; 332 333 static tag_info_t android_quirks[ANDROID_QUIRKS_END - 334 ANDROID_QUIRKS_START] = { 335 [ ANDROID_QUIRKS_METERING_CROP_REGION - ANDROID_QUIRKS_START ] = 336 { "meteringCropRegion", TYPE_BYTE }, 337 [ ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO - ANDROID_QUIRKS_START ] = 338 { "triggerAfWithAuto", TYPE_BYTE }, 339 [ ANDROID_QUIRKS_USE_ZSL_FORMAT - ANDROID_QUIRKS_START ] = 340 { "useZslFormat", TYPE_BYTE }, 341 }; 342 343 static tag_info_t android_request[ANDROID_REQUEST_END - 344 ANDROID_REQUEST_START] = { 345 [ ANDROID_REQUEST_FRAME_COUNT - ANDROID_REQUEST_START ] = 346 { "frameCount", TYPE_INT32 }, 347 [ ANDROID_REQUEST_ID - ANDROID_REQUEST_START ] = 348 { "id", TYPE_INT32 }, 349 [ ANDROID_REQUEST_INPUT_STREAMS - ANDROID_REQUEST_START ] = 350 { "inputStreams", TYPE_BYTE }, 351 [ ANDROID_REQUEST_METADATA_MODE - ANDROID_REQUEST_START ] = 352 { "metadataMode", TYPE_BYTE }, 353 [ ANDROID_REQUEST_OUTPUT_STREAMS - ANDROID_REQUEST_START ] = 354 { "outputStreams", TYPE_BYTE }, 355 [ ANDROID_REQUEST_TYPE - ANDROID_REQUEST_START ] = 356 { "type", TYPE_BYTE }, 357 [ ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS - ANDROID_REQUEST_START ] = 358 { "maxNumOutputStreams", TYPE_INT32 }, 359 [ ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS - ANDROID_REQUEST_START ] = 360 { "maxNumReprocessStreams", TYPE_INT32 }, 361 }; 362 363 static tag_info_t android_scaler[ANDROID_SCALER_END - 364 ANDROID_SCALER_START] = { 365 [ ANDROID_SCALER_CROP_REGION - ANDROID_SCALER_START ] = 366 { "cropRegion", TYPE_INT32 }, 367 [ ANDROID_SCALER_AVAILABLE_FORMATS - ANDROID_SCALER_START ] = 368 { "availableFormats", TYPE_INT32 }, 369 [ ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS - ANDROID_SCALER_START ] = 370 { "availableJpegMinDurations", TYPE_INT64 }, 371 [ ANDROID_SCALER_AVAILABLE_JPEG_SIZES - ANDROID_SCALER_START ] = 372 { "availableJpegSizes", TYPE_INT32 }, 373 [ ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM - ANDROID_SCALER_START ] = 374 { "availableMaxDigitalZoom", TYPE_FLOAT }, 375 [ ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS - ANDROID_SCALER_START ] = 376 { "availableProcessedMinDurations", 377 TYPE_INT64 }, 378 [ ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES - ANDROID_SCALER_START ] = 379 { "availableProcessedSizes", TYPE_INT32 }, 380 [ ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS - ANDROID_SCALER_START ] = 381 { "availableRawMinDurations", TYPE_INT64 }, 382 [ ANDROID_SCALER_AVAILABLE_RAW_SIZES - ANDROID_SCALER_START ] = 383 { "availableRawSizes", TYPE_INT32 }, 384 }; 385 386 static tag_info_t android_sensor[ANDROID_SENSOR_END - 387 ANDROID_SENSOR_START] = { 388 [ ANDROID_SENSOR_EXPOSURE_TIME - ANDROID_SENSOR_START ] = 389 { "exposureTime", TYPE_INT64 }, 390 [ ANDROID_SENSOR_FRAME_DURATION - ANDROID_SENSOR_START ] = 391 { "frameDuration", TYPE_INT64 }, 392 [ ANDROID_SENSOR_SENSITIVITY - ANDROID_SENSOR_START ] = 393 { "sensitivity", TYPE_INT32 }, 394 [ ANDROID_SENSOR_BASE_GAIN_FACTOR - ANDROID_SENSOR_START ] = 395 { "baseGainFactor", TYPE_RATIONAL 396 }, 397 [ ANDROID_SENSOR_BLACK_LEVEL_PATTERN - ANDROID_SENSOR_START ] = 398 { "blackLevelPattern", TYPE_INT32 }, 399 [ ANDROID_SENSOR_CALIBRATION_TRANSFORM1 - ANDROID_SENSOR_START ] = 400 { "calibrationTransform1", TYPE_RATIONAL 401 }, 402 [ ANDROID_SENSOR_CALIBRATION_TRANSFORM2 - ANDROID_SENSOR_START ] = 403 { "calibrationTransform2", TYPE_RATIONAL 404 }, 405 [ ANDROID_SENSOR_COLOR_TRANSFORM1 - ANDROID_SENSOR_START ] = 406 { "colorTransform1", TYPE_RATIONAL 407 }, 408 [ ANDROID_SENSOR_COLOR_TRANSFORM2 - ANDROID_SENSOR_START ] = 409 { "colorTransform2", TYPE_RATIONAL 410 }, 411 [ ANDROID_SENSOR_FORWARD_MATRIX1 - ANDROID_SENSOR_START ] = 412 { "forwardMatrix1", TYPE_RATIONAL 413 }, 414 [ ANDROID_SENSOR_FORWARD_MATRIX2 - ANDROID_SENSOR_START ] = 415 { "forwardMatrix2", TYPE_RATIONAL 416 }, 417 [ ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY - ANDROID_SENSOR_START ] = 418 { "maxAnalogSensitivity", TYPE_INT32 }, 419 [ ANDROID_SENSOR_NOISE_MODEL_COEFFICIENTS - ANDROID_SENSOR_START ] = 420 { "noiseModelCoefficients", TYPE_FLOAT }, 421 [ ANDROID_SENSOR_ORIENTATION - ANDROID_SENSOR_START ] = 422 { "orientation", TYPE_INT32 }, 423 [ ANDROID_SENSOR_REFERENCE_ILLUMINANT1 - ANDROID_SENSOR_START ] = 424 { "referenceIlluminant1", TYPE_BYTE }, 425 [ ANDROID_SENSOR_REFERENCE_ILLUMINANT2 - ANDROID_SENSOR_START ] = 426 { "referenceIlluminant2", TYPE_BYTE }, 427 [ ANDROID_SENSOR_TIMESTAMP - ANDROID_SENSOR_START ] = 428 { "timestamp", TYPE_INT64 }, 429 }; 430 431 static tag_info_t android_sensor_info[ANDROID_SENSOR_INFO_END - 432 ANDROID_SENSOR_INFO_START] = { 433 [ ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE - ANDROID_SENSOR_INFO_START ] = 434 { "activeArraySize", TYPE_INT32 }, 435 [ ANDROID_SENSOR_INFO_AVAILABLE_SENSITIVITIES - ANDROID_SENSOR_INFO_START ] = 436 { "availableSensitivities", TYPE_INT32 }, 437 [ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT - ANDROID_SENSOR_INFO_START ] = 438 { "colorFilterArrangement", TYPE_BYTE }, 439 [ ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE - ANDROID_SENSOR_INFO_START ] = 440 { "exposureTimeRange", TYPE_INT64 }, 441 [ ANDROID_SENSOR_INFO_MAX_FRAME_DURATION - ANDROID_SENSOR_INFO_START ] = 442 { "maxFrameDuration", TYPE_INT64 }, 443 [ ANDROID_SENSOR_INFO_PHYSICAL_SIZE - ANDROID_SENSOR_INFO_START ] = 444 { "physicalSize", TYPE_FLOAT }, 445 [ ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE - ANDROID_SENSOR_INFO_START ] = 446 { "pixelArraySize", TYPE_INT32 }, 447 [ ANDROID_SENSOR_INFO_WHITE_LEVEL - ANDROID_SENSOR_INFO_START ] = 448 { "whiteLevel", TYPE_INT32 }, 449 }; 450 451 static tag_info_t android_shading[ANDROID_SHADING_END - 452 ANDROID_SHADING_START] = { 453 [ ANDROID_SHADING_MODE - ANDROID_SHADING_START ] = 454 { "mode", TYPE_BYTE }, 455 [ ANDROID_SHADING_STRENGTH - ANDROID_SHADING_START ] = 456 { "strength", TYPE_BYTE }, 457 }; 458 459 static tag_info_t android_statistics[ANDROID_STATISTICS_END - 460 ANDROID_STATISTICS_START] = { 461 [ ANDROID_STATISTICS_FACE_DETECT_MODE - ANDROID_STATISTICS_START ] = 462 { "faceDetectMode", TYPE_BYTE }, 463 [ ANDROID_STATISTICS_HISTOGRAM_MODE - ANDROID_STATISTICS_START ] = 464 { "histogramMode", TYPE_BYTE }, 465 [ ANDROID_STATISTICS_SHARPNESS_MAP_MODE - ANDROID_STATISTICS_START ] = 466 { "sharpnessMapMode", TYPE_BYTE }, 467 [ ANDROID_STATISTICS_FACE_IDS - ANDROID_STATISTICS_START ] = 468 { "faceIds", TYPE_INT32 }, 469 [ ANDROID_STATISTICS_FACE_LANDMARKS - ANDROID_STATISTICS_START ] = 470 { "faceLandmarks", TYPE_INT32 }, 471 [ ANDROID_STATISTICS_FACE_RECTANGLES - ANDROID_STATISTICS_START ] = 472 { "faceRectangles", TYPE_INT32 }, 473 [ ANDROID_STATISTICS_FACE_SCORES - ANDROID_STATISTICS_START ] = 474 { "faceScores", TYPE_BYTE }, 475 [ ANDROID_STATISTICS_HISTOGRAM - ANDROID_STATISTICS_START ] = 476 { "histogram", TYPE_INT32 }, 477 [ ANDROID_STATISTICS_SHARPNESS_MAP - ANDROID_STATISTICS_START ] = 478 { "sharpnessMap", TYPE_INT32 }, 479 }; 480 481 static tag_info_t android_statistics_info[ANDROID_STATISTICS_INFO_END - 482 ANDROID_STATISTICS_INFO_START] = { 483 [ ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES - ANDROID_STATISTICS_INFO_START ] = 484 { "availableFaceDetectModes", TYPE_BYTE }, 485 [ ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT - ANDROID_STATISTICS_INFO_START ] = 486 { "histogramBucketCount", TYPE_INT32 }, 487 [ ANDROID_STATISTICS_INFO_MAX_FACE_COUNT - ANDROID_STATISTICS_INFO_START ] = 488 { "maxFaceCount", TYPE_INT32 }, 489 [ ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT - ANDROID_STATISTICS_INFO_START ] = 490 { "maxHistogramCount", TYPE_INT32 }, 491 [ ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE - ANDROID_STATISTICS_INFO_START ] = 492 { "maxSharpnessMapValue", TYPE_INT32 }, 493 [ ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE - ANDROID_STATISTICS_INFO_START ] = 494 { "sharpnessMapSize", TYPE_INT32 }, 495 }; 496 497 static tag_info_t android_tonemap[ANDROID_TONEMAP_END - 498 ANDROID_TONEMAP_START] = { 499 [ ANDROID_TONEMAP_CURVE_BLUE - ANDROID_TONEMAP_START ] = 500 { "curveBlue", TYPE_FLOAT }, 501 [ ANDROID_TONEMAP_CURVE_GREEN - ANDROID_TONEMAP_START ] = 502 { "curveGreen", TYPE_FLOAT }, 503 [ ANDROID_TONEMAP_CURVE_RED - ANDROID_TONEMAP_START ] = 504 { "curveRed", TYPE_FLOAT }, 505 [ ANDROID_TONEMAP_MODE - ANDROID_TONEMAP_START ] = 506 { "mode", TYPE_BYTE }, 507 [ ANDROID_TONEMAP_MAX_CURVE_POINTS - ANDROID_TONEMAP_START ] = 508 { "maxCurvePoints", TYPE_INT32 }, 509 }; 510 511 static tag_info_t android_led[ANDROID_LED_END - 512 ANDROID_LED_START] = { 513 [ ANDROID_LED_TRANSMIT - ANDROID_LED_START ] = 514 { "transmit", TYPE_BYTE }, 515 [ ANDROID_LED_AVAILABLE_LEDS - ANDROID_LED_START ] = 516 { "availableLeds", TYPE_BYTE }, 517 }; 518 519 static tag_info_t android_info[ANDROID_INFO_END - 520 ANDROID_INFO_START] = { 521 [ ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL - ANDROID_INFO_START ] = 522 { "supportedHardwareLevel", TYPE_BYTE }, 523 }; 524 525 526 tag_info_t *tag_info[ANDROID_SECTION_COUNT] = { 527 android_color_correction, 528 android_control, 529 android_demosaic, 530 android_edge, 531 android_flash, 532 android_flash_info, 533 android_geometric, 534 android_hot_pixel, 535 android_hot_pixel_info, 536 android_jpeg, 537 android_lens, 538 android_lens_info, 539 android_noise_reduction, 540 android_quirks, 541 android_request, 542 android_scaler, 543 android_sensor, 544 android_sensor_info, 545 android_shading, 546 android_statistics, 547 android_statistics_info, 548 android_tonemap, 549 android_led, 550 android_info, 551 }; 552 553 int camera_metadata_enum_snprint(uint32_t tag, 554 uint32_t value, 555 char *dst, 556 size_t size) { 557 const char *msg = "error: not an enum"; 558 int ret = -1; 559 560 switch(tag) { 561 case ANDROID_COLOR_CORRECTION_MODE: { 562 switch (value) { 563 case ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX: 564 msg = "TRANSFORM_MATRIX"; 565 ret = 0; 566 break; 567 case ANDROID_COLOR_CORRECTION_MODE_FAST: 568 msg = "FAST"; 569 ret = 0; 570 break; 571 case ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY: 572 msg = "HIGH_QUALITY"; 573 ret = 0; 574 break; 575 default: 576 msg = "error: enum value out of range"; 577 } 578 break; 579 } 580 case ANDROID_COLOR_CORRECTION_TRANSFORM: { 581 break; 582 } 583 584 case ANDROID_CONTROL_AE_ANTIBANDING_MODE: { 585 switch (value) { 586 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF: 587 msg = "OFF"; 588 ret = 0; 589 break; 590 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ: 591 msg = "50HZ"; 592 ret = 0; 593 break; 594 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ: 595 msg = "60HZ"; 596 ret = 0; 597 break; 598 case ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO: 599 msg = "AUTO"; 600 ret = 0; 601 break; 602 default: 603 msg = "error: enum value out of range"; 604 } 605 break; 606 } 607 case ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION: { 608 break; 609 } 610 case ANDROID_CONTROL_AE_LOCK: { 611 switch (value) { 612 case ANDROID_CONTROL_AE_LOCK_OFF: 613 msg = "OFF"; 614 ret = 0; 615 break; 616 case ANDROID_CONTROL_AE_LOCK_ON: 617 msg = "ON"; 618 ret = 0; 619 break; 620 default: 621 msg = "error: enum value out of range"; 622 } 623 break; 624 } 625 case ANDROID_CONTROL_AE_MODE: { 626 switch (value) { 627 case ANDROID_CONTROL_AE_MODE_OFF: 628 msg = "OFF"; 629 ret = 0; 630 break; 631 case ANDROID_CONTROL_AE_MODE_ON: 632 msg = "ON"; 633 ret = 0; 634 break; 635 case ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH: 636 msg = "ON_AUTO_FLASH"; 637 ret = 0; 638 break; 639 case ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH: 640 msg = "ON_ALWAYS_FLASH"; 641 ret = 0; 642 break; 643 case ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE: 644 msg = "ON_AUTO_FLASH_REDEYE"; 645 ret = 0; 646 break; 647 default: 648 msg = "error: enum value out of range"; 649 } 650 break; 651 } 652 case ANDROID_CONTROL_AE_REGIONS: { 653 break; 654 } 655 case ANDROID_CONTROL_AE_TARGET_FPS_RANGE: { 656 break; 657 } 658 case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER: { 659 switch (value) { 660 case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE: 661 msg = "IDLE"; 662 ret = 0; 663 break; 664 case ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START: 665 msg = "START"; 666 ret = 0; 667 break; 668 default: 669 msg = "error: enum value out of range"; 670 } 671 break; 672 } 673 case ANDROID_CONTROL_AF_MODE: { 674 switch (value) { 675 case ANDROID_CONTROL_AF_MODE_OFF: 676 msg = "OFF"; 677 ret = 0; 678 break; 679 case ANDROID_CONTROL_AF_MODE_AUTO: 680 msg = "AUTO"; 681 ret = 0; 682 break; 683 case ANDROID_CONTROL_AF_MODE_MACRO: 684 msg = "MACRO"; 685 ret = 0; 686 break; 687 case ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO: 688 msg = "CONTINUOUS_VIDEO"; 689 ret = 0; 690 break; 691 case ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE: 692 msg = "CONTINUOUS_PICTURE"; 693 ret = 0; 694 break; 695 case ANDROID_CONTROL_AF_MODE_EDOF: 696 msg = "EDOF"; 697 ret = 0; 698 break; 699 default: 700 msg = "error: enum value out of range"; 701 } 702 break; 703 } 704 case ANDROID_CONTROL_AF_REGIONS: { 705 break; 706 } 707 case ANDROID_CONTROL_AF_TRIGGER: { 708 switch (value) { 709 case ANDROID_CONTROL_AF_TRIGGER_IDLE: 710 msg = "IDLE"; 711 ret = 0; 712 break; 713 case ANDROID_CONTROL_AF_TRIGGER_START: 714 msg = "START"; 715 ret = 0; 716 break; 717 case ANDROID_CONTROL_AF_TRIGGER_CANCEL: 718 msg = "CANCEL"; 719 ret = 0; 720 break; 721 default: 722 msg = "error: enum value out of range"; 723 } 724 break; 725 } 726 case ANDROID_CONTROL_AWB_LOCK: { 727 switch (value) { 728 case ANDROID_CONTROL_AWB_LOCK_OFF: 729 msg = "OFF"; 730 ret = 0; 731 break; 732 case ANDROID_CONTROL_AWB_LOCK_ON: 733 msg = "ON"; 734 ret = 0; 735 break; 736 default: 737 msg = "error: enum value out of range"; 738 } 739 break; 740 } 741 case ANDROID_CONTROL_AWB_MODE: { 742 switch (value) { 743 case ANDROID_CONTROL_AWB_MODE_OFF: 744 msg = "OFF"; 745 ret = 0; 746 break; 747 case ANDROID_CONTROL_AWB_MODE_AUTO: 748 msg = "AUTO"; 749 ret = 0; 750 break; 751 case ANDROID_CONTROL_AWB_MODE_INCANDESCENT: 752 msg = "INCANDESCENT"; 753 ret = 0; 754 break; 755 case ANDROID_CONTROL_AWB_MODE_FLUORESCENT: 756 msg = "FLUORESCENT"; 757 ret = 0; 758 break; 759 case ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT: 760 msg = "WARM_FLUORESCENT"; 761 ret = 0; 762 break; 763 case ANDROID_CONTROL_AWB_MODE_DAYLIGHT: 764 msg = "DAYLIGHT"; 765 ret = 0; 766 break; 767 case ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT: 768 msg = "CLOUDY_DAYLIGHT"; 769 ret = 0; 770 break; 771 case ANDROID_CONTROL_AWB_MODE_TWILIGHT: 772 msg = "TWILIGHT"; 773 ret = 0; 774 break; 775 case ANDROID_CONTROL_AWB_MODE_SHADE: 776 msg = "SHADE"; 777 ret = 0; 778 break; 779 default: 780 msg = "error: enum value out of range"; 781 } 782 break; 783 } 784 case ANDROID_CONTROL_AWB_REGIONS: { 785 break; 786 } 787 case ANDROID_CONTROL_CAPTURE_INTENT: { 788 switch (value) { 789 case ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM: 790 msg = "CUSTOM"; 791 ret = 0; 792 break; 793 case ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW: 794 msg = "PREVIEW"; 795 ret = 0; 796 break; 797 case ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE: 798 msg = "STILL_CAPTURE"; 799 ret = 0; 800 break; 801 case ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD: 802 msg = "VIDEO_RECORD"; 803 ret = 0; 804 break; 805 case ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT: 806 msg = "VIDEO_SNAPSHOT"; 807 ret = 0; 808 break; 809 case ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG: 810 msg = "ZERO_SHUTTER_LAG"; 811 ret = 0; 812 break; 813 default: 814 msg = "error: enum value out of range"; 815 } 816 break; 817 } 818 case ANDROID_CONTROL_EFFECT_MODE: { 819 switch (value) { 820 case ANDROID_CONTROL_EFFECT_MODE_OFF: 821 msg = "OFF"; 822 ret = 0; 823 break; 824 case ANDROID_CONTROL_EFFECT_MODE_MONO: 825 msg = "MONO"; 826 ret = 0; 827 break; 828 case ANDROID_CONTROL_EFFECT_MODE_NEGATIVE: 829 msg = "NEGATIVE"; 830 ret = 0; 831 break; 832 case ANDROID_CONTROL_EFFECT_MODE_SOLARIZE: 833 msg = "SOLARIZE"; 834 ret = 0; 835 break; 836 case ANDROID_CONTROL_EFFECT_MODE_SEPIA: 837 msg = "SEPIA"; 838 ret = 0; 839 break; 840 case ANDROID_CONTROL_EFFECT_MODE_POSTERIZE: 841 msg = "POSTERIZE"; 842 ret = 0; 843 break; 844 case ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD: 845 msg = "WHITEBOARD"; 846 ret = 0; 847 break; 848 case ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD: 849 msg = "BLACKBOARD"; 850 ret = 0; 851 break; 852 case ANDROID_CONTROL_EFFECT_MODE_AQUA: 853 msg = "AQUA"; 854 ret = 0; 855 break; 856 default: 857 msg = "error: enum value out of range"; 858 } 859 break; 860 } 861 case ANDROID_CONTROL_MODE: { 862 switch (value) { 863 case ANDROID_CONTROL_MODE_OFF: 864 msg = "OFF"; 865 ret = 0; 866 break; 867 case ANDROID_CONTROL_MODE_AUTO: 868 msg = "AUTO"; 869 ret = 0; 870 break; 871 case ANDROID_CONTROL_MODE_USE_SCENE_MODE: 872 msg = "USE_SCENE_MODE"; 873 ret = 0; 874 break; 875 default: 876 msg = "error: enum value out of range"; 877 } 878 break; 879 } 880 case ANDROID_CONTROL_SCENE_MODE: { 881 switch (value) { 882 case ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED: 883 msg = "UNSUPPORTED"; 884 ret = 0; 885 break; 886 case ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY: 887 msg = "FACE_PRIORITY"; 888 ret = 0; 889 break; 890 case ANDROID_CONTROL_SCENE_MODE_ACTION: 891 msg = "ACTION"; 892 ret = 0; 893 break; 894 case ANDROID_CONTROL_SCENE_MODE_PORTRAIT: 895 msg = "PORTRAIT"; 896 ret = 0; 897 break; 898 case ANDROID_CONTROL_SCENE_MODE_LANDSCAPE: 899 msg = "LANDSCAPE"; 900 ret = 0; 901 break; 902 case ANDROID_CONTROL_SCENE_MODE_NIGHT: 903 msg = "NIGHT"; 904 ret = 0; 905 break; 906 case ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT: 907 msg = "NIGHT_PORTRAIT"; 908 ret = 0; 909 break; 910 case ANDROID_CONTROL_SCENE_MODE_THEATRE: 911 msg = "THEATRE"; 912 ret = 0; 913 break; 914 case ANDROID_CONTROL_SCENE_MODE_BEACH: 915 msg = "BEACH"; 916 ret = 0; 917 break; 918 case ANDROID_CONTROL_SCENE_MODE_SNOW: 919 msg = "SNOW"; 920 ret = 0; 921 break; 922 case ANDROID_CONTROL_SCENE_MODE_SUNSET: 923 msg = "SUNSET"; 924 ret = 0; 925 break; 926 case ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO: 927 msg = "STEADYPHOTO"; 928 ret = 0; 929 break; 930 case ANDROID_CONTROL_SCENE_MODE_FIREWORKS: 931 msg = "FIREWORKS"; 932 ret = 0; 933 break; 934 case ANDROID_CONTROL_SCENE_MODE_SPORTS: 935 msg = "SPORTS"; 936 ret = 0; 937 break; 938 case ANDROID_CONTROL_SCENE_MODE_PARTY: 939 msg = "PARTY"; 940 ret = 0; 941 break; 942 case ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT: 943 msg = "CANDLELIGHT"; 944 ret = 0; 945 break; 946 case ANDROID_CONTROL_SCENE_MODE_BARCODE: 947 msg = "BARCODE"; 948 ret = 0; 949 break; 950 default: 951 msg = "error: enum value out of range"; 952 } 953 break; 954 } 955 case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE: { 956 switch (value) { 957 case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF: 958 msg = "OFF"; 959 ret = 0; 960 break; 961 case ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON: 962 msg = "ON"; 963 ret = 0; 964 break; 965 default: 966 msg = "error: enum value out of range"; 967 } 968 break; 969 } 970 case ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES: { 971 break; 972 } 973 case ANDROID_CONTROL_AE_AVAILABLE_MODES: { 974 break; 975 } 976 case ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES: { 977 break; 978 } 979 case ANDROID_CONTROL_AE_COMPENSATION_RANGE: { 980 break; 981 } 982 case ANDROID_CONTROL_AE_COMPENSATION_STEP: { 983 break; 984 } 985 case ANDROID_CONTROL_AF_AVAILABLE_MODES: { 986 break; 987 } 988 case ANDROID_CONTROL_AVAILABLE_EFFECTS: { 989 break; 990 } 991 case ANDROID_CONTROL_AVAILABLE_SCENE_MODES: { 992 break; 993 } 994 case ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES: { 995 break; 996 } 997 case ANDROID_CONTROL_AWB_AVAILABLE_MODES: { 998 break; 999 } 1000 case ANDROID_CONTROL_MAX_REGIONS: { 1001 break; 1002 } 1003 case ANDROID_CONTROL_SCENE_MODE_OVERRIDES: { 1004 break; 1005 } 1006 case ANDROID_CONTROL_AE_PRECAPTURE_ID: { 1007 break; 1008 } 1009 case ANDROID_CONTROL_AE_STATE: { 1010 switch (value) { 1011 case ANDROID_CONTROL_AE_STATE_INACTIVE: 1012 msg = "INACTIVE"; 1013 ret = 0; 1014 break; 1015 case ANDROID_CONTROL_AE_STATE_SEARCHING: 1016 msg = "SEARCHING"; 1017 ret = 0; 1018 break; 1019 case ANDROID_CONTROL_AE_STATE_CONVERGED: 1020 msg = "CONVERGED"; 1021 ret = 0; 1022 break; 1023 case ANDROID_CONTROL_AE_STATE_LOCKED: 1024 msg = "LOCKED"; 1025 ret = 0; 1026 break; 1027 case ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED: 1028 msg = "FLASH_REQUIRED"; 1029 ret = 0; 1030 break; 1031 case ANDROID_CONTROL_AE_STATE_PRECAPTURE: 1032 msg = "PRECAPTURE"; 1033 ret = 0; 1034 break; 1035 default: 1036 msg = "error: enum value out of range"; 1037 } 1038 break; 1039 } 1040 case ANDROID_CONTROL_AF_STATE: { 1041 switch (value) { 1042 case ANDROID_CONTROL_AF_STATE_INACTIVE: 1043 msg = "INACTIVE"; 1044 ret = 0; 1045 break; 1046 case ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN: 1047 msg = "PASSIVE_SCAN"; 1048 ret = 0; 1049 break; 1050 case ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED: 1051 msg = "PASSIVE_FOCUSED"; 1052 ret = 0; 1053 break; 1054 case ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN: 1055 msg = "ACTIVE_SCAN"; 1056 ret = 0; 1057 break; 1058 case ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED: 1059 msg = "FOCUSED_LOCKED"; 1060 ret = 0; 1061 break; 1062 case ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED: 1063 msg = "NOT_FOCUSED_LOCKED"; 1064 ret = 0; 1065 break; 1066 default: 1067 msg = "error: enum value out of range"; 1068 } 1069 break; 1070 } 1071 case ANDROID_CONTROL_AF_TRIGGER_ID: { 1072 break; 1073 } 1074 case ANDROID_CONTROL_AWB_STATE: { 1075 switch (value) { 1076 case ANDROID_CONTROL_AWB_STATE_INACTIVE: 1077 msg = "INACTIVE"; 1078 ret = 0; 1079 break; 1080 case ANDROID_CONTROL_AWB_STATE_SEARCHING: 1081 msg = "SEARCHING"; 1082 ret = 0; 1083 break; 1084 case ANDROID_CONTROL_AWB_STATE_CONVERGED: 1085 msg = "CONVERGED"; 1086 ret = 0; 1087 break; 1088 case ANDROID_CONTROL_AWB_STATE_LOCKED: 1089 msg = "LOCKED"; 1090 ret = 0; 1091 break; 1092 default: 1093 msg = "error: enum value out of range"; 1094 } 1095 break; 1096 } 1097 1098 case ANDROID_DEMOSAIC_MODE: { 1099 switch (value) { 1100 case ANDROID_DEMOSAIC_MODE_FAST: 1101 msg = "FAST"; 1102 ret = 0; 1103 break; 1104 case ANDROID_DEMOSAIC_MODE_HIGH_QUALITY: 1105 msg = "HIGH_QUALITY"; 1106 ret = 0; 1107 break; 1108 default: 1109 msg = "error: enum value out of range"; 1110 } 1111 break; 1112 } 1113 1114 case ANDROID_EDGE_MODE: { 1115 switch (value) { 1116 case ANDROID_EDGE_MODE_OFF: 1117 msg = "OFF"; 1118 ret = 0; 1119 break; 1120 case ANDROID_EDGE_MODE_FAST: 1121 msg = "FAST"; 1122 ret = 0; 1123 break; 1124 case ANDROID_EDGE_MODE_HIGH_QUALITY: 1125 msg = "HIGH_QUALITY"; 1126 ret = 0; 1127 break; 1128 default: 1129 msg = "error: enum value out of range"; 1130 } 1131 break; 1132 } 1133 case ANDROID_EDGE_STRENGTH: { 1134 break; 1135 } 1136 1137 case ANDROID_FLASH_FIRING_POWER: { 1138 break; 1139 } 1140 case ANDROID_FLASH_FIRING_TIME: { 1141 break; 1142 } 1143 case ANDROID_FLASH_MODE: { 1144 switch (value) { 1145 case ANDROID_FLASH_MODE_OFF: 1146 msg = "OFF"; 1147 ret = 0; 1148 break; 1149 case ANDROID_FLASH_MODE_SINGLE: 1150 msg = "SINGLE"; 1151 ret = 0; 1152 break; 1153 case ANDROID_FLASH_MODE_TORCH: 1154 msg = "TORCH"; 1155 ret = 0; 1156 break; 1157 default: 1158 msg = "error: enum value out of range"; 1159 } 1160 break; 1161 } 1162 case ANDROID_FLASH_COLOR_TEMPERATURE: { 1163 break; 1164 } 1165 case ANDROID_FLASH_MAX_ENERGY: { 1166 break; 1167 } 1168 case ANDROID_FLASH_STATE: { 1169 switch (value) { 1170 case ANDROID_FLASH_STATE_UNAVAILABLE: 1171 msg = "UNAVAILABLE"; 1172 ret = 0; 1173 break; 1174 case ANDROID_FLASH_STATE_CHARGING: 1175 msg = "CHARGING"; 1176 ret = 0; 1177 break; 1178 case ANDROID_FLASH_STATE_READY: 1179 msg = "READY"; 1180 ret = 0; 1181 break; 1182 case ANDROID_FLASH_STATE_FIRED: 1183 msg = "FIRED"; 1184 ret = 0; 1185 break; 1186 default: 1187 msg = "error: enum value out of range"; 1188 } 1189 break; 1190 } 1191 1192 case ANDROID_FLASH_INFO_AVAILABLE: { 1193 break; 1194 } 1195 case ANDROID_FLASH_INFO_CHARGE_DURATION: { 1196 break; 1197 } 1198 1199 case ANDROID_GEOMETRIC_MODE: { 1200 switch (value) { 1201 case ANDROID_GEOMETRIC_MODE_OFF: 1202 msg = "OFF"; 1203 ret = 0; 1204 break; 1205 case ANDROID_GEOMETRIC_MODE_FAST: 1206 msg = "FAST"; 1207 ret = 0; 1208 break; 1209 case ANDROID_GEOMETRIC_MODE_HIGH_QUALITY: 1210 msg = "HIGH_QUALITY"; 1211 ret = 0; 1212 break; 1213 default: 1214 msg = "error: enum value out of range"; 1215 } 1216 break; 1217 } 1218 case ANDROID_GEOMETRIC_STRENGTH: { 1219 break; 1220 } 1221 1222 case ANDROID_HOT_PIXEL_MODE: { 1223 switch (value) { 1224 case ANDROID_HOT_PIXEL_MODE_OFF: 1225 msg = "OFF"; 1226 ret = 0; 1227 break; 1228 case ANDROID_HOT_PIXEL_MODE_FAST: 1229 msg = "FAST"; 1230 ret = 0; 1231 break; 1232 case ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY: 1233 msg = "HIGH_QUALITY"; 1234 ret = 0; 1235 break; 1236 default: 1237 msg = "error: enum value out of range"; 1238 } 1239 break; 1240 } 1241 1242 case ANDROID_HOT_PIXEL_INFO_MAP: { 1243 break; 1244 } 1245 1246 case ANDROID_JPEG_GPS_COORDINATES: { 1247 break; 1248 } 1249 case ANDROID_JPEG_GPS_PROCESSING_METHOD: { 1250 break; 1251 } 1252 case ANDROID_JPEG_GPS_TIMESTAMP: { 1253 break; 1254 } 1255 case ANDROID_JPEG_ORIENTATION: { 1256 break; 1257 } 1258 case ANDROID_JPEG_QUALITY: { 1259 break; 1260 } 1261 case ANDROID_JPEG_THUMBNAIL_QUALITY: { 1262 break; 1263 } 1264 case ANDROID_JPEG_THUMBNAIL_SIZE: { 1265 break; 1266 } 1267 case ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES: { 1268 break; 1269 } 1270 case ANDROID_JPEG_MAX_SIZE: { 1271 break; 1272 } 1273 case ANDROID_JPEG_SIZE: { 1274 break; 1275 } 1276 1277 case ANDROID_LENS_APERTURE: { 1278 break; 1279 } 1280 case ANDROID_LENS_FILTER_DENSITY: { 1281 break; 1282 } 1283 case ANDROID_LENS_FOCAL_LENGTH: { 1284 break; 1285 } 1286 case ANDROID_LENS_FOCUS_DISTANCE: { 1287 break; 1288 } 1289 case ANDROID_LENS_OPTICAL_STABILIZATION_MODE: { 1290 switch (value) { 1291 case ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF: 1292 msg = "OFF"; 1293 ret = 0; 1294 break; 1295 case ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON: 1296 msg = "ON"; 1297 ret = 0; 1298 break; 1299 default: 1300 msg = "error: enum value out of range"; 1301 } 1302 break; 1303 } 1304 case ANDROID_LENS_FACING: { 1305 switch (value) { 1306 case ANDROID_LENS_FACING_FRONT: 1307 msg = "FRONT"; 1308 ret = 0; 1309 break; 1310 case ANDROID_LENS_FACING_BACK: 1311 msg = "BACK"; 1312 ret = 0; 1313 break; 1314 default: 1315 msg = "error: enum value out of range"; 1316 } 1317 break; 1318 } 1319 case ANDROID_LENS_OPTICAL_AXIS_ANGLE: { 1320 break; 1321 } 1322 case ANDROID_LENS_POSITION: { 1323 break; 1324 } 1325 case ANDROID_LENS_FOCUS_RANGE: { 1326 break; 1327 } 1328 case ANDROID_LENS_STATE: { 1329 switch (value) { 1330 case ANDROID_LENS_STATE_STATIONARY: 1331 msg = "STATIONARY"; 1332 ret = 0; 1333 break; 1334 default: 1335 msg = "error: enum value out of range"; 1336 } 1337 break; 1338 } 1339 1340 case ANDROID_LENS_INFO_AVAILABLE_APERTURES: { 1341 break; 1342 } 1343 case ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES: { 1344 break; 1345 } 1346 case ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS: { 1347 break; 1348 } 1349 case ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION: { 1350 break; 1351 } 1352 case ANDROID_LENS_INFO_GEOMETRIC_CORRECTION_MAP: { 1353 break; 1354 } 1355 case ANDROID_LENS_INFO_GEOMETRIC_CORRECTION_MAP_SIZE: { 1356 break; 1357 } 1358 case ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE: { 1359 break; 1360 } 1361 case ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE: { 1362 break; 1363 } 1364 case ANDROID_LENS_INFO_SHADING_MAP: { 1365 break; 1366 } 1367 case ANDROID_LENS_INFO_SHADING_MAP_SIZE: { 1368 break; 1369 } 1370 1371 case ANDROID_NOISE_REDUCTION_MODE: { 1372 switch (value) { 1373 case ANDROID_NOISE_REDUCTION_MODE_OFF: 1374 msg = "OFF"; 1375 ret = 0; 1376 break; 1377 case ANDROID_NOISE_REDUCTION_MODE_FAST: 1378 msg = "FAST"; 1379 ret = 0; 1380 break; 1381 case ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY: 1382 msg = "HIGH_QUALITY"; 1383 ret = 0; 1384 break; 1385 default: 1386 msg = "error: enum value out of range"; 1387 } 1388 break; 1389 } 1390 case ANDROID_NOISE_REDUCTION_STRENGTH: { 1391 break; 1392 } 1393 1394 case ANDROID_QUIRKS_METERING_CROP_REGION: { 1395 break; 1396 } 1397 case ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO: { 1398 break; 1399 } 1400 case ANDROID_QUIRKS_USE_ZSL_FORMAT: { 1401 break; 1402 } 1403 1404 case ANDROID_REQUEST_FRAME_COUNT: { 1405 break; 1406 } 1407 case ANDROID_REQUEST_ID: { 1408 break; 1409 } 1410 case ANDROID_REQUEST_INPUT_STREAMS: { 1411 break; 1412 } 1413 case ANDROID_REQUEST_METADATA_MODE: { 1414 switch (value) { 1415 case ANDROID_REQUEST_METADATA_MODE_NONE: 1416 msg = "NONE"; 1417 ret = 0; 1418 break; 1419 case ANDROID_REQUEST_METADATA_MODE_FULL: 1420 msg = "FULL"; 1421 ret = 0; 1422 break; 1423 default: 1424 msg = "error: enum value out of range"; 1425 } 1426 break; 1427 } 1428 case ANDROID_REQUEST_OUTPUT_STREAMS: { 1429 break; 1430 } 1431 case ANDROID_REQUEST_TYPE: { 1432 switch (value) { 1433 case ANDROID_REQUEST_TYPE_CAPTURE: 1434 msg = "CAPTURE"; 1435 ret = 0; 1436 break; 1437 case ANDROID_REQUEST_TYPE_REPROCESS: 1438 msg = "REPROCESS"; 1439 ret = 0; 1440 break; 1441 default: 1442 msg = "error: enum value out of range"; 1443 } 1444 break; 1445 } 1446 case ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS: { 1447 break; 1448 } 1449 case ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS: { 1450 break; 1451 } 1452 1453 case ANDROID_SCALER_CROP_REGION: { 1454 break; 1455 } 1456 case ANDROID_SCALER_AVAILABLE_FORMATS: { 1457 switch (value) { 1458 case ANDROID_SCALER_AVAILABLE_FORMATS_RAW_SENSOR: 1459 msg = "RAW_SENSOR"; 1460 ret = 0; 1461 break; 1462 case ANDROID_SCALER_AVAILABLE_FORMATS_YV12: 1463 msg = "YV12"; 1464 ret = 0; 1465 break; 1466 case ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP: 1467 msg = "YCrCb_420_SP"; 1468 ret = 0; 1469 break; 1470 case ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED: 1471 msg = "IMPLEMENTATION_DEFINED"; 1472 ret = 0; 1473 break; 1474 case ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888: 1475 msg = "YCbCr_420_888"; 1476 ret = 0; 1477 break; 1478 case ANDROID_SCALER_AVAILABLE_FORMATS_BLOB: 1479 msg = "BLOB"; 1480 ret = 0; 1481 break; 1482 default: 1483 msg = "error: enum value out of range"; 1484 } 1485 break; 1486 } 1487 case ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS: { 1488 break; 1489 } 1490 case ANDROID_SCALER_AVAILABLE_JPEG_SIZES: { 1491 break; 1492 } 1493 case ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM: { 1494 break; 1495 } 1496 case ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS: { 1497 break; 1498 } 1499 case ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES: { 1500 break; 1501 } 1502 case ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS: { 1503 break; 1504 } 1505 case ANDROID_SCALER_AVAILABLE_RAW_SIZES: { 1506 break; 1507 } 1508 1509 case ANDROID_SENSOR_EXPOSURE_TIME: { 1510 break; 1511 } 1512 case ANDROID_SENSOR_FRAME_DURATION: { 1513 break; 1514 } 1515 case ANDROID_SENSOR_SENSITIVITY: { 1516 break; 1517 } 1518 case ANDROID_SENSOR_BASE_GAIN_FACTOR: { 1519 break; 1520 } 1521 case ANDROID_SENSOR_BLACK_LEVEL_PATTERN: { 1522 break; 1523 } 1524 case ANDROID_SENSOR_CALIBRATION_TRANSFORM1: { 1525 break; 1526 } 1527 case ANDROID_SENSOR_CALIBRATION_TRANSFORM2: { 1528 break; 1529 } 1530 case ANDROID_SENSOR_COLOR_TRANSFORM1: { 1531 break; 1532 } 1533 case ANDROID_SENSOR_COLOR_TRANSFORM2: { 1534 break; 1535 } 1536 case ANDROID_SENSOR_FORWARD_MATRIX1: { 1537 break; 1538 } 1539 case ANDROID_SENSOR_FORWARD_MATRIX2: { 1540 break; 1541 } 1542 case ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY: { 1543 break; 1544 } 1545 case ANDROID_SENSOR_NOISE_MODEL_COEFFICIENTS: { 1546 break; 1547 } 1548 case ANDROID_SENSOR_ORIENTATION: { 1549 break; 1550 } 1551 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1: { 1552 switch (value) { 1553 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT: 1554 msg = "DAYLIGHT"; 1555 ret = 0; 1556 break; 1557 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT: 1558 msg = "FLUORESCENT"; 1559 ret = 0; 1560 break; 1561 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN: 1562 msg = "TUNGSTEN"; 1563 ret = 0; 1564 break; 1565 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLASH: 1566 msg = "FLASH"; 1567 ret = 0; 1568 break; 1569 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER: 1570 msg = "FINE_WEATHER"; 1571 ret = 0; 1572 break; 1573 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER: 1574 msg = "CLOUDY_WEATHER"; 1575 ret = 0; 1576 break; 1577 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_SHADE: 1578 msg = "SHADE"; 1579 ret = 0; 1580 break; 1581 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT: 1582 msg = "DAYLIGHT_FLUORESCENT"; 1583 ret = 0; 1584 break; 1585 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT: 1586 msg = "DAY_WHITE_FLUORESCENT"; 1587 ret = 0; 1588 break; 1589 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT: 1590 msg = "COOL_WHITE_FLUORESCENT"; 1591 ret = 0; 1592 break; 1593 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT: 1594 msg = "WHITE_FLUORESCENT"; 1595 ret = 0; 1596 break; 1597 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A: 1598 msg = "STANDARD_A"; 1599 ret = 0; 1600 break; 1601 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B: 1602 msg = "STANDARD_B"; 1603 ret = 0; 1604 break; 1605 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C: 1606 msg = "STANDARD_C"; 1607 ret = 0; 1608 break; 1609 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D55: 1610 msg = "D55"; 1611 ret = 0; 1612 break; 1613 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D65: 1614 msg = "D65"; 1615 ret = 0; 1616 break; 1617 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D75: 1618 msg = "D75"; 1619 ret = 0; 1620 break; 1621 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D50: 1622 msg = "D50"; 1623 ret = 0; 1624 break; 1625 case ANDROID_SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN: 1626 msg = "ISO_STUDIO_TUNGSTEN"; 1627 ret = 0; 1628 break; 1629 default: 1630 msg = "error: enum value out of range"; 1631 } 1632 break; 1633 } 1634 case ANDROID_SENSOR_REFERENCE_ILLUMINANT2: { 1635 break; 1636 } 1637 case ANDROID_SENSOR_TIMESTAMP: { 1638 break; 1639 } 1640 1641 case ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE: { 1642 break; 1643 } 1644 case ANDROID_SENSOR_INFO_AVAILABLE_SENSITIVITIES: { 1645 break; 1646 } 1647 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT: { 1648 switch (value) { 1649 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB: 1650 msg = "RGGB"; 1651 ret = 0; 1652 break; 1653 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG: 1654 msg = "GRBG"; 1655 ret = 0; 1656 break; 1657 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG: 1658 msg = "GBRG"; 1659 ret = 0; 1660 break; 1661 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR: 1662 msg = "BGGR"; 1663 ret = 0; 1664 break; 1665 case ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB: 1666 msg = "RGB"; 1667 ret = 0; 1668 break; 1669 default: 1670 msg = "error: enum value out of range"; 1671 } 1672 break; 1673 } 1674 case ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE: { 1675 break; 1676 } 1677 case ANDROID_SENSOR_INFO_MAX_FRAME_DURATION: { 1678 break; 1679 } 1680 case ANDROID_SENSOR_INFO_PHYSICAL_SIZE: { 1681 break; 1682 } 1683 case ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE: { 1684 break; 1685 } 1686 case ANDROID_SENSOR_INFO_WHITE_LEVEL: { 1687 break; 1688 } 1689 1690 case ANDROID_SHADING_MODE: { 1691 switch (value) { 1692 case ANDROID_SHADING_MODE_OFF: 1693 msg = "OFF"; 1694 ret = 0; 1695 break; 1696 case ANDROID_SHADING_MODE_FAST: 1697 msg = "FAST"; 1698 ret = 0; 1699 break; 1700 case ANDROID_SHADING_MODE_HIGH_QUALITY: 1701 msg = "HIGH_QUALITY"; 1702 ret = 0; 1703 break; 1704 default: 1705 msg = "error: enum value out of range"; 1706 } 1707 break; 1708 } 1709 case ANDROID_SHADING_STRENGTH: { 1710 break; 1711 } 1712 1713 case ANDROID_STATISTICS_FACE_DETECT_MODE: { 1714 switch (value) { 1715 case ANDROID_STATISTICS_FACE_DETECT_MODE_OFF: 1716 msg = "OFF"; 1717 ret = 0; 1718 break; 1719 case ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE: 1720 msg = "SIMPLE"; 1721 ret = 0; 1722 break; 1723 case ANDROID_STATISTICS_FACE_DETECT_MODE_FULL: 1724 msg = "FULL"; 1725 ret = 0; 1726 break; 1727 default: 1728 msg = "error: enum value out of range"; 1729 } 1730 break; 1731 } 1732 case ANDROID_STATISTICS_HISTOGRAM_MODE: { 1733 switch (value) { 1734 case ANDROID_STATISTICS_HISTOGRAM_MODE_OFF: 1735 msg = "OFF"; 1736 ret = 0; 1737 break; 1738 case ANDROID_STATISTICS_HISTOGRAM_MODE_ON: 1739 msg = "ON"; 1740 ret = 0; 1741 break; 1742 default: 1743 msg = "error: enum value out of range"; 1744 } 1745 break; 1746 } 1747 case ANDROID_STATISTICS_SHARPNESS_MAP_MODE: { 1748 switch (value) { 1749 case ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF: 1750 msg = "OFF"; 1751 ret = 0; 1752 break; 1753 case ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON: 1754 msg = "ON"; 1755 ret = 0; 1756 break; 1757 default: 1758 msg = "error: enum value out of range"; 1759 } 1760 break; 1761 } 1762 case ANDROID_STATISTICS_FACE_IDS: { 1763 break; 1764 } 1765 case ANDROID_STATISTICS_FACE_LANDMARKS: { 1766 break; 1767 } 1768 case ANDROID_STATISTICS_FACE_RECTANGLES: { 1769 break; 1770 } 1771 case ANDROID_STATISTICS_FACE_SCORES: { 1772 break; 1773 } 1774 case ANDROID_STATISTICS_HISTOGRAM: { 1775 break; 1776 } 1777 case ANDROID_STATISTICS_SHARPNESS_MAP: { 1778 break; 1779 } 1780 1781 case ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES: { 1782 break; 1783 } 1784 case ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT: { 1785 break; 1786 } 1787 case ANDROID_STATISTICS_INFO_MAX_FACE_COUNT: { 1788 break; 1789 } 1790 case ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT: { 1791 break; 1792 } 1793 case ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE: { 1794 break; 1795 } 1796 case ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE: { 1797 break; 1798 } 1799 1800 case ANDROID_TONEMAP_CURVE_BLUE: { 1801 break; 1802 } 1803 case ANDROID_TONEMAP_CURVE_GREEN: { 1804 break; 1805 } 1806 case ANDROID_TONEMAP_CURVE_RED: { 1807 break; 1808 } 1809 case ANDROID_TONEMAP_MODE: { 1810 switch (value) { 1811 case ANDROID_TONEMAP_MODE_CONTRAST_CURVE: 1812 msg = "CONTRAST_CURVE"; 1813 ret = 0; 1814 break; 1815 case ANDROID_TONEMAP_MODE_FAST: 1816 msg = "FAST"; 1817 ret = 0; 1818 break; 1819 case ANDROID_TONEMAP_MODE_HIGH_QUALITY: 1820 msg = "HIGH_QUALITY"; 1821 ret = 0; 1822 break; 1823 default: 1824 msg = "error: enum value out of range"; 1825 } 1826 break; 1827 } 1828 case ANDROID_TONEMAP_MAX_CURVE_POINTS: { 1829 break; 1830 } 1831 1832 case ANDROID_LED_TRANSMIT: { 1833 switch (value) { 1834 case ANDROID_LED_TRANSMIT_OFF: 1835 msg = "OFF"; 1836 ret = 0; 1837 break; 1838 case ANDROID_LED_TRANSMIT_ON: 1839 msg = "ON"; 1840 ret = 0; 1841 break; 1842 default: 1843 msg = "error: enum value out of range"; 1844 } 1845 break; 1846 } 1847 case ANDROID_LED_AVAILABLE_LEDS: { 1848 switch (value) { 1849 case ANDROID_LED_AVAILABLE_LEDS_TRANSMIT: 1850 msg = "TRANSMIT"; 1851 ret = 0; 1852 break; 1853 default: 1854 msg = "error: enum value out of range"; 1855 } 1856 break; 1857 } 1858 1859 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL: { 1860 switch (value) { 1861 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED: 1862 msg = "LIMITED"; 1863 ret = 0; 1864 break; 1865 case ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL: 1866 msg = "FULL"; 1867 ret = 0; 1868 break; 1869 default: 1870 msg = "error: enum value out of range"; 1871 } 1872 break; 1873 } 1874 1875 } 1876 1877 strncpy(dst, msg, size - 1); 1878 dst[size - 1] = '\0'; 1879 1880 return ret; 1881 } 1882 1883 1884 #define CAMERA_METADATA_ENUM_STRING_MAX_SIZE 23 1885