Chirayu Desai | 0a336cc | 2012-07-12 14:37:05 +0530 | [diff] [blame] | 1 | /* |
| 2 | * Video for Linux Two header file for samsung |
| 3 | * |
| 4 | * Copyright (C) 2009, Samsung Electronics |
| 5 | * |
| 6 | * This header file contains several v4l2 APIs to be proposed to v4l2 |
| 7 | * community and until bein accepted, will be used restrictly in Samsung's |
| 8 | * camera interface driver FIMC. |
| 9 | * |
| 10 | * This program is free software; you can redistribute it and/or modify |
| 11 | * it under the terms of the GNU General Public License as published by |
| 12 | * the Free Software Foundation; either version 2 of the License, or |
| 13 | * (at your option) any later version. |
| 14 | * |
| 15 | * Alternatively, Licensed under the Apache License, Version 2.0 (the "License"); |
| 16 | * you may not use this file except in compliance with the License. |
| 17 | * You may obtain a copy of the License at |
| 18 | * |
| 19 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 20 | * |
| 21 | * Unless required by applicable law or agreed to in writing, software |
| 22 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 24 | * See the License for the specific language governing permissions and |
| 25 | * limitations under the License. |
| 26 | */ |
| 27 | |
| 28 | #ifndef __LINUX_VIDEODEV2_SAMSUNG_H |
| 29 | #define __LINUX_VIDEODEV2_SAMSUNG_H |
| 30 | |
| 31 | /* Values for 'capabilities' field */ |
| 32 | /* Object detection device */ |
| 33 | #define V4L2_CAP_OBJ_RECOGNITION 0x10000000 |
| 34 | /* strobe control */ |
| 35 | #define V4L2_CAP_STROBE 0x20000000 |
| 36 | |
| 37 | #define V4L2_CID_FOCUS_MODE (V4L2_CID_CAMERA_CLASS_BASE + 17) |
| 38 | /* Focus Methods */ |
| 39 | enum v4l2_focus_mode { |
| 40 | V4L2_FOCUS_MODE_AUTO = 0, |
| 41 | V4L2_FOCUS_MODE_MACRO = 1, |
| 42 | V4L2_FOCUS_MODE_MANUAL = 2, |
| 43 | V4L2_FOCUS_MODE_LASTP = 2, |
| 44 | }; |
| 45 | |
| 46 | #define V4L2_CID_ZOOM_MODE (V4L2_CID_CAMERA_CLASS_BASE + 18) |
| 47 | /* Zoom Methods */ |
| 48 | enum v4l2_zoom_mode { |
| 49 | V4L2_ZOOM_MODE_CONTINUOUS = 0, |
| 50 | V4L2_ZOOM_MODE_OPTICAL = 1, |
| 51 | V4L2_ZOOM_MODE_DIGITAL = 2, |
| 52 | V4L2_ZOOM_MODE_LASTP = 2, |
| 53 | }; |
| 54 | |
| 55 | /* Exposure Methods */ |
| 56 | #define V4L2_CID_PHOTOMETRY (V4L2_CID_CAMERA_CLASS_BASE + 19) |
| 57 | enum v4l2_photometry_mode { |
| 58 | V4L2_PHOTOMETRY_MULTISEG = 0, /*Multi Segment */ |
| 59 | V4L2_PHOTOMETRY_CWA = 1, /*Centre Weighted Average */ |
| 60 | V4L2_PHOTOMETRY_SPOT = 2, |
| 61 | V4L2_PHOTOMETRY_AFSPOT = 3, /*Spot metering on focused point */ |
| 62 | V4L2_PHOTOMETRY_LASTP = V4L2_PHOTOMETRY_AFSPOT, |
| 63 | }; |
| 64 | |
| 65 | /* Manual exposure control items menu type: iris, shutter, iso */ |
| 66 | #define V4L2_CID_CAM_APERTURE (V4L2_CID_CAMERA_CLASS_BASE + 20) |
| 67 | #define V4L2_CID_CAM_SHUTTER (V4L2_CID_CAMERA_CLASS_BASE + 21) |
| 68 | #define V4L2_CID_CAM_ISO (V4L2_CID_CAMERA_CLASS_BASE + 22) |
| 69 | |
| 70 | /* Following CIDs are menu type */ |
| 71 | #define V4L2_CID_SCENEMODE (V4L2_CID_CAMERA_CLASS_BASE + 23) |
| 72 | #define V4L2_CID_CAM_STABILIZE (V4L2_CID_CAMERA_CLASS_BASE + 24) |
| 73 | #define V4L2_CID_CAM_MULTISHOT (V4L2_CID_CAMERA_CLASS_BASE + 25) |
| 74 | |
| 75 | /* Control dynamic range */ |
| 76 | #define V4L2_CID_CAM_DR (V4L2_CID_CAMERA_CLASS_BASE + 26) |
| 77 | |
| 78 | /* White balance preset control */ |
| 79 | #define V4L2_CID_WHITE_BALANCE_PRESET (V4L2_CID_CAMERA_CLASS_BASE + 27) |
| 80 | |
| 81 | /* CID extensions */ |
| 82 | #define V4L2_CID_ROTATION (V4L2_CID_PRIVATE_BASE + 0) |
| 83 | #define V4L2_CID_PADDR_Y (V4L2_CID_PRIVATE_BASE + 1) |
| 84 | #define V4L2_CID_PADDR_CB (V4L2_CID_PRIVATE_BASE + 2) |
| 85 | #define V4L2_CID_PADDR_CR (V4L2_CID_PRIVATE_BASE + 3) |
| 86 | #define V4L2_CID_PADDR_CBCR (V4L2_CID_PRIVATE_BASE + 4) |
| 87 | #define V4L2_CID_OVERLAY_AUTO (V4L2_CID_PRIVATE_BASE + 5) |
| 88 | #define V4L2_CID_OVERLAY_VADDR0 (V4L2_CID_PRIVATE_BASE + 6) |
| 89 | #define V4L2_CID_OVERLAY_VADDR1 (V4L2_CID_PRIVATE_BASE + 7) |
| 90 | #define V4L2_CID_OVERLAY_VADDR2 (V4L2_CID_PRIVATE_BASE + 8) |
| 91 | #define V4L2_CID_OVLY_MODE (V4L2_CID_PRIVATE_BASE + 9) |
| 92 | #define V4L2_CID_DST_INFO (V4L2_CID_PRIVATE_BASE + 10) |
| 93 | #define V4L2_CID_IMAGE_EFFECT_FN (V4L2_CID_PRIVATE_BASE + 16) |
| 94 | #define V4L2_CID_IMAGE_EFFECT_APPLY (V4L2_CID_PRIVATE_BASE + 17) |
| 95 | #define V4L2_CID_IMAGE_EFFECT_CB (V4L2_CID_PRIVATE_BASE + 18) |
| 96 | #define V4L2_CID_IMAGE_EFFECT_CR (V4L2_CID_PRIVATE_BASE + 19) |
| 97 | #define V4L2_CID_RESERVED_MEM_BASE_ADDR (V4L2_CID_PRIVATE_BASE + 20) |
| 98 | #define V4L2_CID_FIMC_VERSION (V4L2_CID_PRIVATE_BASE + 21) |
| 99 | |
| 100 | #define V4L2_CID_STREAM_PAUSE (V4L2_CID_PRIVATE_BASE + 53) |
| 101 | |
| 102 | /* CID Extensions for camera sensor operations */ |
| 103 | #define V4L2_CID_CAM_PREVIEW_ONOFF (V4L2_CID_PRIVATE_BASE + 64) |
| 104 | #define V4L2_CID_CAM_CAPTURE (V4L2_CID_PRIVATE_BASE + 65) |
| 105 | #define V4L2_CID_CAM_JPEG_MEMSIZE (V4L2_CID_PRIVATE_BASE + 66) |
| 106 | |
| 107 | #define V4L2_CID_CAM_DATE_INFO_YEAR (V4L2_CID_PRIVATE_BASE + 14) |
| 108 | #define V4L2_CID_CAM_DATE_INFO_MONTH (V4L2_CID_PRIVATE_BASE + 15) |
| 109 | #define V4L2_CID_CAM_DATE_INFO_DATE (V4L2_CID_PRIVATE_BASE + 22) |
| 110 | #define V4L2_CID_CAM_SENSOR_VER (V4L2_CID_PRIVATE_BASE + 23) |
| 111 | #define V4L2_CID_CAM_FW_MINOR_VER (V4L2_CID_PRIVATE_BASE + 24) |
| 112 | #define V4L2_CID_CAM_FW_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 25) |
| 113 | #define V4L2_CID_CAM_PRM_MINOR_VER (V4L2_CID_PRIVATE_BASE + 26) |
| 114 | #define V4L2_CID_CAM_PRM_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 27) |
| 115 | #define V4L2_CID_CAM_FW_VER (V4L2_CID_PRIVATE_BASE + 28) |
| 116 | #define V4L2_CID_CAM_SET_FW_ADDR (V4L2_CID_PRIVATE_BASE + 29) |
| 117 | #define V4L2_CID_CAM_SET_FW_SIZE (V4L2_CID_PRIVATE_BASE + 30) |
| 118 | #define V4L2_CID_CAM_UPDATE_FW (V4L2_CID_PRIVATE_BASE + 31) |
| 119 | #define V4L2_CID_CAM_JPEG_MAIN_SIZE (V4L2_CID_PRIVATE_BASE + 32) |
| 120 | #define V4L2_CID_CAM_JPEG_MAIN_OFFSET (V4L2_CID_PRIVATE_BASE + 33) |
| 121 | #define V4L2_CID_CAM_JPEG_THUMB_SIZE (V4L2_CID_PRIVATE_BASE + 34) |
| 122 | #define V4L2_CID_CAM_JPEG_THUMB_OFFSET (V4L2_CID_PRIVATE_BASE + 35) |
| 123 | #define V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET (V4L2_CID_PRIVATE_BASE + 36) |
| 124 | #define V4L2_CID_CAM_JPEG_QUALITY (V4L2_CID_PRIVATE_BASE + 37) |
| 125 | #define V4L2_CID_CAM_SENSOR_MAKER (V4L2_CID_PRIVATE_BASE + 38) |
| 126 | #define V4L2_CID_CAM_SENSOR_OPTICAL (V4L2_CID_PRIVATE_BASE + 39) |
| 127 | #define V4L2_CID_CAM_AF_VER_LOW (V4L2_CID_PRIVATE_BASE + 40) |
| 128 | #define V4L2_CID_CAM_AF_VER_HIGH (V4L2_CID_PRIVATE_BASE + 41) |
| 129 | #define V4L2_CID_CAM_GAMMA_RG_LOW (V4L2_CID_PRIVATE_BASE + 42) |
| 130 | #define V4L2_CID_CAM_GAMMA_RG_HIGH (V4L2_CID_PRIVATE_BASE + 43) |
| 131 | #define V4L2_CID_CAM_GAMMA_BG_LOW (V4L2_CID_PRIVATE_BASE + 44) |
| 132 | #define V4L2_CID_CAM_GAMMA_BG_HIGH (V4L2_CID_PRIVATE_BASE + 45) |
| 133 | #define V4L2_CID_CAM_DUMP_FW (V4L2_CID_PRIVATE_BASE + 46) |
| 134 | #define V4L2_CID_CAM_GET_DUMP_SIZE (V4L2_CID_PRIVATE_BASE + 47) |
| 135 | #define V4L2_CID_CAMERA_VT_MODE (V4L2_CID_PRIVATE_BASE + 48) |
| 136 | #define V4L2_CID_CAMERA_VGA_BLUR (V4L2_CID_PRIVATE_BASE + 49) |
| 137 | #define V4L2_CID_CAMERA_CAPTURE (V4L2_CID_PRIVATE_BASE + 50) |
| 138 | |
| 139 | #define V4L2_CID_MAIN_SW_DATE_INFO_YEAR (V4L2_CID_PRIVATE_BASE + 54) |
| 140 | #define V4L2_CID_MAIN_SW_DATE_INFO_MONTH (V4L2_CID_PRIVATE_BASE + 55) |
| 141 | #define V4L2_CID_MAIN_SW_DATE_INFO_DATE (V4L2_CID_PRIVATE_BASE + 56) |
| 142 | #define V4L2_CID_MAIN_SW_FW_MINOR_VER (V4L2_CID_PRIVATE_BASE + 57) |
| 143 | #define V4L2_CID_MAIN_SW_FW_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 58) |
| 144 | #define V4L2_CID_MAIN_SW_PRM_MINOR_VER (V4L2_CID_PRIVATE_BASE + 59) |
| 145 | #define V4L2_CID_MAIN_SW_PRM_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 60) |
| 146 | |
| 147 | enum v4l2_blur { |
| 148 | BLUR_LEVEL_0 = 0, |
| 149 | BLUR_LEVEL_1, |
| 150 | BLUR_LEVEL_2, |
| 151 | BLUR_LEVEL_3, |
| 152 | BLUR_LEVEL_MAX, |
| 153 | }; |
| 154 | |
| 155 | #define V4L2_CID_CAMERA_SCENE_MODE (V4L2_CID_PRIVATE_BASE + 70) |
| 156 | enum v4l2_scene_mode { |
| 157 | SCENE_MODE_BASE, |
| 158 | SCENE_MODE_NONE, |
| 159 | SCENE_MODE_PORTRAIT, |
| 160 | SCENE_MODE_NIGHTSHOT, |
| 161 | SCENE_MODE_BACK_LIGHT, |
| 162 | SCENE_MODE_LANDSCAPE, |
| 163 | SCENE_MODE_SPORTS, |
| 164 | SCENE_MODE_PARTY_INDOOR, |
| 165 | SCENE_MODE_BEACH_SNOW, |
| 166 | SCENE_MODE_SUNSET, |
| 167 | SCENE_MODE_DUST_DAWN, |
| 168 | SCENE_MODE_FALL_COLOR, |
| 169 | SCENE_MODE_FIREWORKS, |
| 170 | SCENE_MODE_TEXT, |
| 171 | SCENE_MODE_CANDLE_LIGHT, |
| 172 | SCENE_MODE_MAX, |
| 173 | }; |
| 174 | |
| 175 | #define V4L2_CID_CAMERA_FLASH_MODE (V4L2_CID_PRIVATE_BASE + 71) |
| 176 | enum v4l2_flash_mode { |
| 177 | FLASH_MODE_BASE, |
| 178 | FLASH_MODE_OFF, |
| 179 | FLASH_MODE_AUTO, |
| 180 | FLASH_MODE_ON, |
| 181 | FLASH_MODE_TORCH, |
| 182 | FLASH_MODE_MAX, |
| 183 | }; |
| 184 | |
| 185 | #define V4L2_CID_CAMERA_BRIGHTNESS (V4L2_CID_PRIVATE_BASE + 72) |
| 186 | enum v4l2_ev_mode { |
| 187 | EV_MINUS_4 = 0, |
| 188 | EV_MINUS_3, |
| 189 | EV_MINUS_2, |
| 190 | EV_MINUS_1, |
| 191 | EV_DEFAULT, |
| 192 | EV_PLUS_1, |
| 193 | EV_PLUS_2, |
| 194 | EV_PLUS_3, |
| 195 | EV_PLUS_4, |
| 196 | EV_MAX, |
| 197 | }; |
| 198 | |
| 199 | #define V4L2_CID_CAMERA_WHITE_BALANCE (V4L2_CID_PRIVATE_BASE + 73) |
| 200 | enum v4l2_wb_mode { |
| 201 | WHITE_BALANCE_BASE = 0, |
| 202 | WHITE_BALANCE_AUTO, |
| 203 | WHITE_BALANCE_SUNNY, |
| 204 | WHITE_BALANCE_CLOUDY, |
| 205 | WHITE_BALANCE_TUNGSTEN, |
| 206 | WHITE_BALANCE_FLUORESCENT, |
| 207 | WHITE_BALANCE_MAX, |
| 208 | }; |
| 209 | |
| 210 | #define V4L2_CID_CAMERA_EFFECT (V4L2_CID_PRIVATE_BASE + 74) |
| 211 | enum v4l2_effect_mode { |
| 212 | IMAGE_EFFECT_BASE = 0, |
| 213 | IMAGE_EFFECT_NONE, |
| 214 | IMAGE_EFFECT_BNW, |
| 215 | IMAGE_EFFECT_SEPIA, |
| 216 | IMAGE_EFFECT_AQUA, |
| 217 | IMAGE_EFFECT_ANTIQUE, |
| 218 | IMAGE_EFFECT_NEGATIVE, |
| 219 | IMAGE_EFFECT_SHARPEN, |
| 220 | IMAGE_EFFECT_MAX, |
| 221 | }; |
| 222 | |
| 223 | #define V4L2_CID_CAMERA_ISO (V4L2_CID_PRIVATE_BASE + 75) |
| 224 | enum v4l2_iso_mode { |
| 225 | ISO_AUTO = 0, |
| 226 | ISO_50, |
| 227 | ISO_100, |
| 228 | ISO_200, |
| 229 | ISO_400, |
| 230 | ISO_800, |
| 231 | ISO_1600, |
| 232 | ISO_SPORTS, |
| 233 | ISO_NIGHT, |
| 234 | ISO_MOVIE, |
| 235 | ISO_MAX, |
| 236 | }; |
| 237 | |
| 238 | #define V4L2_CID_CAMERA_METERING (V4L2_CID_PRIVATE_BASE + 76) |
| 239 | enum v4l2_metering_mode { |
| 240 | METERING_BASE = 0, |
| 241 | METERING_MATRIX, |
| 242 | METERING_CENTER, |
| 243 | METERING_SPOT, |
| 244 | METERING_MAX, |
| 245 | }; |
| 246 | |
| 247 | #define V4L2_CID_CAMERA_CONTRAST (V4L2_CID_PRIVATE_BASE + 77) |
| 248 | enum v4l2_contrast_mode { |
| 249 | CONTRAST_MINUS_2 = 0, |
| 250 | CONTRAST_MINUS_1, |
| 251 | CONTRAST_DEFAULT, |
| 252 | CONTRAST_PLUS_1, |
| 253 | CONTRAST_PLUS_2, |
| 254 | CONTRAST_MAX, |
| 255 | }; |
| 256 | |
| 257 | #define V4L2_CID_CAMERA_SATURATION (V4L2_CID_PRIVATE_BASE + 78) |
| 258 | enum v4l2_saturation_mode { |
| 259 | SATURATION_MINUS_2 = 0, |
| 260 | SATURATION_MINUS_1, |
| 261 | SATURATION_DEFAULT, |
| 262 | SATURATION_PLUS_1, |
| 263 | SATURATION_PLUS_2, |
| 264 | SATURATION_MAX, |
| 265 | }; |
| 266 | |
| 267 | #define V4L2_CID_CAMERA_SHARPNESS (V4L2_CID_PRIVATE_BASE + 79) |
| 268 | enum v4l2_sharpness_mode { |
| 269 | SHARPNESS_MINUS_2 = 0, |
| 270 | SHARPNESS_MINUS_1, |
| 271 | SHARPNESS_DEFAULT, |
| 272 | SHARPNESS_PLUS_1, |
| 273 | SHARPNESS_PLUS_2, |
| 274 | SHARPNESS_MAX, |
| 275 | }; |
| 276 | |
| 277 | #define V4L2_CID_CAMERA_WDR (V4L2_CID_PRIVATE_BASE + 80) |
| 278 | enum v4l2_wdr_mode { |
| 279 | WDR_OFF, |
| 280 | WDR_ON, |
| 281 | WDR_MAX, |
| 282 | }; |
| 283 | |
| 284 | #define V4L2_CID_CAMERA_ANTI_SHAKE (V4L2_CID_PRIVATE_BASE + 81) |
| 285 | enum v4l2_anti_shake_mode { |
| 286 | ANTI_SHAKE_OFF, |
| 287 | ANTI_SHAKE_STILL_ON, |
| 288 | ANTI_SHAKE_MOVIE_ON, |
| 289 | ANTI_SHAKE_MAX, |
| 290 | }; |
| 291 | |
| 292 | #define V4L2_CID_CAMERA_TOUCH_AF_START_STOP (V4L2_CID_PRIVATE_BASE + 82) |
| 293 | enum v4l2_touch_af { |
| 294 | TOUCH_AF_STOP = 0, |
| 295 | TOUCH_AF_START, |
| 296 | TOUCH_AF_MAX, |
| 297 | }; |
| 298 | |
| 299 | #define V4L2_CID_CAMERA_SMART_AUTO (V4L2_CID_PRIVATE_BASE + 83) |
| 300 | enum v4l2_smart_auto { |
| 301 | SMART_AUTO_OFF = 0, |
| 302 | SMART_AUTO_ON, |
| 303 | SMART_AUTO_MAX, |
| 304 | }; |
| 305 | |
| 306 | #define V4L2_CID_CAMERA_VINTAGE_MODE (V4L2_CID_PRIVATE_BASE + 84) |
| 307 | enum v4l2_vintage_mode { |
| 308 | VINTAGE_MODE_BASE, |
| 309 | VINTAGE_MODE_OFF, |
| 310 | VINTAGE_MODE_NORMAL, |
| 311 | VINTAGE_MODE_WARM, |
| 312 | VINTAGE_MODE_COOL, |
| 313 | VINTAGE_MODE_BNW, |
| 314 | VINTAGE_MODE_MAX, |
| 315 | }; |
| 316 | |
| 317 | #define V4L2_CID_CAMERA_JPEG_QUALITY (V4L2_CID_PRIVATE_BASE + 85) |
| 318 | #define V4L2_CID_CAMERA_GPS_LATITUDE (V4L2_CID_CAMERA_CLASS_BASE + 30) |
| 319 | #define V4L2_CID_CAMERA_GPS_LONGITUDE (V4L2_CID_CAMERA_CLASS_BASE + 31) |
| 320 | #define V4L2_CID_CAMERA_GPS_TIMESTAMP (V4L2_CID_CAMERA_CLASS_BASE + 32) |
| 321 | #define V4L2_CID_CAMERA_GPS_ALTITUDE (V4L2_CID_CAMERA_CLASS_BASE + 33) |
| 322 | #define V4L2_CID_CAMERA_EXIF_TIME_INFO (V4L2_CID_CAMERA_CLASS_BASE + 34) |
Pawit Pornkitprasan | 317dcfa | 2012-08-18 22:02:03 +0700 | [diff] [blame] | 323 | #define V4L2_CID_CAMERA_GPS_PROCESSINGMETHOD (V4L2_CID_CAMERA_CLASS_BASE + 35) |
Chirayu Desai | 0a336cc | 2012-07-12 14:37:05 +0530 | [diff] [blame] | 324 | #define V4L2_CID_CAMERA_ZOOM (V4L2_CID_PRIVATE_BASE + 90) |
| 325 | enum v4l2_zoom_level { |
| 326 | ZOOM_LEVEL_0 = 0, |
| 327 | ZOOM_LEVEL_1, |
| 328 | ZOOM_LEVEL_2, |
| 329 | ZOOM_LEVEL_3, |
| 330 | ZOOM_LEVEL_4, |
| 331 | ZOOM_LEVEL_5, |
| 332 | ZOOM_LEVEL_6, |
| 333 | ZOOM_LEVEL_7, |
| 334 | ZOOM_LEVEL_8, |
| 335 | ZOOM_LEVEL_9, |
| 336 | ZOOM_LEVEL_10, |
| 337 | ZOOM_LEVEL_11, |
| 338 | ZOOM_LEVEL_12, |
| 339 | ZOOM_LEVEL_MAX, |
| 340 | }; |
| 341 | |
| 342 | #define V4L2_CID_CAMERA_FACE_DETECTION (V4L2_CID_PRIVATE_BASE + 91) |
| 343 | enum v4l2_face_detection { |
| 344 | FACE_DETECTION_OFF = 0, |
| 345 | FACE_DETECTION_ON, |
| 346 | FACE_DETECTION_NOLINE, |
| 347 | FACE_DETECTION_ON_BEAUTY, |
| 348 | FACE_DETECTION_MAX, |
| 349 | }; |
| 350 | |
| 351 | #define V4L2_CID_CAMERA_SMART_AUTO_STATUS (V4L2_CID_PRIVATE_BASE + 92) |
| 352 | enum v4l2_smart_auto_status { |
| 353 | SMART_AUTO_STATUS_AUTO = 0, |
| 354 | SMART_AUTO_STATUS_LANDSCAPE, |
| 355 | SMART_AUTO_STATUS_PORTRAIT, |
| 356 | SMART_AUTO_STATUS_MACRO, |
| 357 | SMART_AUTO_STATUS_NIGHT, |
| 358 | SMART_AUTO_STATUS_PORTRAIT_NIGHT, |
| 359 | SMART_AUTO_STATUS_BACKLIT, |
| 360 | SMART_AUTO_STATUS_PORTRAIT_BACKLIT, |
| 361 | SMART_AUTO_STATUS_ANTISHAKE, |
| 362 | SMART_AUTO_STATUS_PORTRAIT_ANTISHAKE, |
| 363 | SMART_AUTO_STATUS_MAX, |
| 364 | }; |
| 365 | |
| 366 | #define V4L2_CID_CAMERA_SET_AUTO_FOCUS (V4L2_CID_PRIVATE_BASE + 93) |
| 367 | enum v4l2_auto_focus { |
| 368 | AUTO_FOCUS_OFF = 0, |
| 369 | AUTO_FOCUS_ON, |
| 370 | AUTO_FOCUS_MAX, |
| 371 | }; |
| 372 | |
| 373 | #define V4L2_CID_CAMERA_BEAUTY_SHOT (V4L2_CID_PRIVATE_BASE + 94) |
| 374 | enum v4l2_beauty_shot { |
| 375 | BEAUTY_SHOT_OFF = 0, |
| 376 | BEAUTY_SHOT_ON, |
| 377 | BEAUTY_SHOT_MAX, |
| 378 | }; |
| 379 | |
| 380 | #define V4L2_CID_CAMERA_AEAWB_LOCK_UNLOCK (V4L2_CID_PRIVATE_BASE + 95) |
| 381 | enum v4l2_ae_awb_lockunlock { |
| 382 | AE_UNLOCK_AWB_UNLOCK = 0, |
| 383 | AE_LOCK_AWB_UNLOCK, |
| 384 | AE_UNLOCK_AWB_LOCK, |
| 385 | AE_LOCK_AWB_LOCK, |
| 386 | AE_AWB_MAX |
| 387 | }; |
| 388 | |
| 389 | #define V4L2_CID_CAMERA_FACEDETECT_LOCKUNLOCK (V4L2_CID_PRIVATE_BASE + 96) |
| 390 | enum v4l2_face_lock { |
| 391 | FACE_LOCK_OFF = 0, |
| 392 | FACE_LOCK_ON, |
| 393 | FIRST_FACE_TRACKING, |
| 394 | FACE_LOCK_MAX, |
| 395 | }; |
| 396 | |
| 397 | #define V4L2_CID_CAMERA_OBJECT_POSITION_X (V4L2_CID_PRIVATE_BASE + 97) |
| 398 | #define V4L2_CID_CAMERA_OBJECT_POSITION_Y (V4L2_CID_PRIVATE_BASE + 98) |
| 399 | #define V4L2_CID_CAMERA_FOCUS_MODE (V4L2_CID_PRIVATE_BASE + 99) |
| 400 | enum v4l2_focusmode { |
| 401 | FOCUS_MODE_AUTO = 0, |
| 402 | FOCUS_MODE_MACRO, |
| 403 | FOCUS_MODE_FACEDETECT, |
| 404 | FOCUS_MODE_AUTO_DEFAULT, |
| 405 | FOCUS_MODE_MACRO_DEFAULT, |
| 406 | FOCUS_MODE_FACEDETECT_DEFAULT, |
| 407 | FOCUS_MODE_INFINITY, |
| 408 | FOCUS_MODE_MAX, |
| 409 | }; |
| 410 | |
| 411 | #define V4L2_CID_CAMERA_OBJ_TRACKING_STATUS (V4L2_CID_PRIVATE_BASE + 100) |
| 412 | enum v4l2_obj_tracking_status { |
| 413 | OBJECT_TRACKING_STATUS_BASE, |
| 414 | OBJECT_TRACKING_STATUS_PROGRESSING, |
| 415 | OBJECT_TRACKING_STATUS_SUCCESS, |
| 416 | OBJECT_TRACKING_STATUS_FAIL, |
| 417 | OBJECT_TRACKING_STATUS_MISSING, |
| 418 | OBJECT_TRACKING_STATUS_MAX, |
| 419 | }; |
| 420 | |
| 421 | #define V4L2_CID_CAMERA_OBJ_TRACKING_START_STOP (V4L2_CID_PRIVATE_BASE + 101) |
| 422 | enum v4l2_ot_start_stop { |
| 423 | OT_STOP = 0, |
| 424 | OT_START, |
| 425 | OT_MAX, |
| 426 | }; |
| 427 | |
| 428 | #define V4L2_CID_CAMERA_CAF_START_STOP (V4L2_CID_PRIVATE_BASE + 102) |
| 429 | enum v4l2_caf_start_stop { |
| 430 | CAF_STOP = 0, |
| 431 | CAF_START, |
| 432 | CAF_MAX, |
| 433 | }; |
| 434 | |
| 435 | #define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT_FIRST (V4L2_CID_PRIVATE_BASE + 103) |
| 436 | #define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT_SECOND (V4L2_CID_PRIVATE_BASE + 120) |
| 437 | #define V4L2_CID_CAMERA_FINISH_AUTO_FOCUS (V4L2_CID_PRIVATE_BASE + 121) |
| 438 | |
| 439 | #define V4L2_CID_CAMERA_FRAME_RATE (V4L2_CID_PRIVATE_BASE + 104) |
| 440 | enum v4l2_frame_rate { |
| 441 | FRAME_RATE_AUTO = 0, |
| 442 | FRAME_RATE_7 = 7, |
| 443 | FRAME_RATE_15 = 15, |
| 444 | FRAME_RATE_30 = 30, |
| 445 | FRAME_RATE_60 = 60, |
| 446 | FRAME_RATE_120 = 120, |
| 447 | FRAME_RATE_MAX |
| 448 | }; |
| 449 | |
| 450 | #define V4L2_CID_CAMERA_ANTI_BANDING (V4L2_CID_PRIVATE_BASE + 105) |
| 451 | enum v4l2_anti_banding { |
| 452 | ANTI_BANDING_AUTO = 0, |
| 453 | ANTI_BANDING_50HZ = 1, |
| 454 | ANTI_BANDING_60HZ = 2, |
| 455 | ANTI_BANDING_OFF = 3, |
| 456 | }; |
| 457 | |
| 458 | #define V4L2_CID_CAMERA_SET_GAMMA (V4L2_CID_PRIVATE_BASE + 106) |
| 459 | enum v4l2_gamma_mode { |
| 460 | GAMMA_OFF = 0, |
| 461 | GAMMA_ON = 1, |
| 462 | GAMMA_MAX, |
| 463 | }; |
| 464 | |
| 465 | #define V4L2_CID_CAMERA_SET_SLOW_AE (V4L2_CID_PRIVATE_BASE + 107) |
| 466 | enum v4l2_slow_ae_mode { |
| 467 | SLOW_AE_OFF, |
| 468 | SLOW_AE_ON, |
| 469 | SLOW_AE_MAX, |
| 470 | }; |
| 471 | |
| 472 | #define V4L2_CID_CAMERA_BATCH_REFLECTION (V4L2_CID_PRIVATE_BASE + 108) |
| 473 | #define V4L2_CID_CAMERA_EXIF_ORIENTATION (V4L2_CID_PRIVATE_BASE + 109) |
| 474 | |
| 475 | #define V4L2_CID_CAMERA_RESET (V4L2_CID_PRIVATE_BASE + 111) |
| 476 | #define V4L2_CID_CAMERA_CHECK_DATALINE (V4L2_CID_PRIVATE_BASE + 112) |
| 477 | #define V4L2_CID_CAMERA_CHECK_DATALINE_STOP (V4L2_CID_PRIVATE_BASE + 113) |
| 478 | #define V4L2_CID_CAMERA_GET_ISO (V4L2_CID_PRIVATE_BASE + 114) |
| 479 | #define V4L2_CID_CAMERA_GET_SHT_TIME (V4L2_CID_PRIVATE_BASE + 115) |
| 480 | #define V4L2_CID_CAMERA_SENSOR_MODE (V4L2_CID_PRIVATE_BASE + 116) |
| 481 | #define V4L2_CID_ESD_INT (V4L2_CID_PRIVATE_BASE + 117) |
| 482 | #define V4L2_CID_CAMERA_GET_FLASH_ONOFF (V4L2_CID_PRIVATE_BASE + 118) |
| 483 | #define V4L2_CID_CAMERA_RETURN_FOCUS (V4L2_CID_PRIVATE_BASE + 119) |
| 484 | |
| 485 | /* Pixel format FOURCC depth Description */ |
| 486 | /* 12 Y/CbCr 4:2:0 64x32 macroblocks */ |
| 487 | #define V4L2_PIX_FMT_NV12T v4l2_fourcc('T', 'V', '1', '2') |
| 488 | |
| 489 | /* |
| 490 | * * V4L2 extention for digital camera |
| 491 | * */ |
| 492 | /* Strobe flash light */ |
| 493 | enum v4l2_strobe_control { |
| 494 | /* turn off the flash light */ |
| 495 | V4L2_STROBE_CONTROL_OFF = 0, |
| 496 | /* turn on the flash light */ |
| 497 | V4L2_STROBE_CONTROL_ON = 1, |
| 498 | /* act guide light before splash */ |
| 499 | V4L2_STROBE_CONTROL_AFGUIDE = 2, |
| 500 | /* charge the flash light */ |
| 501 | V4L2_STROBE_CONTROL_CHARGE = 3, |
| 502 | }; |
| 503 | |
| 504 | enum v4l2_strobe_conf { |
| 505 | V4L2_STROBE_OFF = 0, /* Always off */ |
| 506 | V4L2_STROBE_ON = 1, /* Always splashes */ |
| 507 | /* Auto control presets */ |
| 508 | V4L2_STROBE_AUTO = 2, |
| 509 | V4L2_STROBE_REDEYE_REDUCTION = 3, |
| 510 | V4L2_STROBE_SLOW_SYNC = 4, |
| 511 | V4L2_STROBE_FRONT_CURTAIN = 5, |
| 512 | V4L2_STROBE_REAR_CURTAIN = 6, |
| 513 | /* Extra manual control presets */ |
| 514 | /* keep turned on until turning off */ |
| 515 | V4L2_STROBE_PERMANENT = 7, |
| 516 | V4L2_STROBE_EXTERNAL = 8, |
| 517 | }; |
| 518 | |
| 519 | enum v4l2_strobe_status { |
| 520 | V4L2_STROBE_STATUS_OFF = 0, |
| 521 | /* while processing configurations */ |
| 522 | V4L2_STROBE_STATUS_BUSY = 1, |
| 523 | V4L2_STROBE_STATUS_ERR = 2, |
| 524 | V4L2_STROBE_STATUS_CHARGING = 3, |
| 525 | V4L2_STROBE_STATUS_CHARGED = 4, |
| 526 | }; |
| 527 | |
| 528 | /* capabilities field */ |
| 529 | /* No strobe supported */ |
| 530 | #define V4L2_STROBE_CAP_NONE 0x0000 |
| 531 | /* Always flash off mode */ |
| 532 | #define V4L2_STROBE_CAP_OFF 0x0001 |
| 533 | /* Always use flash light mode */ |
| 534 | #define V4L2_STROBE_CAP_ON 0x0002 |
| 535 | /* Flashlight works automatic */ |
| 536 | #define V4L2_STROBE_CAP_AUTO 0x0004 |
| 537 | /* Red-eye reduction */ |
| 538 | #define V4L2_STROBE_CAP_REDEYE 0x0008 |
| 539 | /* Slow sync */ |
| 540 | #define V4L2_STROBE_CAP_SLOWSYNC 0x0010 |
| 541 | /* Front curtain */ |
| 542 | #define V4L2_STROBE_CAP_FRONT_CURTAIN 0x0020 |
| 543 | /* Rear curtain */ |
| 544 | #define V4L2_STROBE_CAP_REAR_CURTAIN 0x0040 |
| 545 | /* keep turned on until turning off */ |
| 546 | #define V4L2_STROBE_CAP_PERMANENT 0x0080 |
| 547 | /* use external strobe */ |
| 548 | #define V4L2_STROBE_CAP_EXTERNAL 0x0100 |
| 549 | |
| 550 | /* Set mode and Get status */ |
| 551 | struct v4l2_strobe { |
| 552 | /* off/on/charge:0/1/2 */ |
| 553 | enum v4l2_strobe_control control; |
| 554 | /* supported strobe capabilities */ |
| 555 | __u32 capabilities; |
| 556 | enum v4l2_strobe_conf mode; |
| 557 | enum v4l2_strobe_status status; /* read only */ |
| 558 | /* default is 0 and range of value varies from each models */ |
| 559 | __u32 flash_ev; |
| 560 | __u32 reserved[4]; |
| 561 | }; |
| 562 | |
| 563 | #define VIDIOC_S_STROBE _IOWR('V', 83, struct v4l2_strobe) |
| 564 | #define VIDIOC_G_STROBE _IOR('V', 84, struct v4l2_strobe) |
| 565 | |
| 566 | /* Object recognition and collateral actions */ |
| 567 | enum v4l2_recog_mode { |
| 568 | V4L2_RECOGNITION_MODE_OFF = 0, |
| 569 | V4L2_RECOGNITION_MODE_ON = 1, |
| 570 | V4L2_RECOGNITION_MODE_LOCK = 2, |
| 571 | }; |
| 572 | |
| 573 | enum v4l2_recog_action { |
| 574 | V4L2_RECOGNITION_ACTION_NONE = 0, /* only recognition */ |
| 575 | V4L2_RECOGNITION_ACTION_BLINK = 1, /* Capture on blinking */ |
| 576 | V4L2_RECOGNITION_ACTION_SMILE = 2, /* Capture on smiling */ |
| 577 | }; |
| 578 | |
| 579 | enum v4l2_recog_pattern { |
| 580 | V4L2_RECOG_PATTERN_FACE = 0, /* Face */ |
| 581 | V4L2_RECOG_PATTERN_HUMAN = 1, /* Human */ |
| 582 | V4L2_RECOG_PATTERN_CHAR = 2, /* Character */ |
| 583 | }; |
| 584 | |
| 585 | struct v4l2_recog_rect { |
| 586 | enum v4l2_recog_pattern p; /* detected pattern */ |
| 587 | struct v4l2_rect o; /* detected area */ |
| 588 | __u32 reserved[4]; |
| 589 | }; |
| 590 | |
| 591 | struct v4l2_recog_data { |
| 592 | __u8 detect_cnt; /* detected object counter */ |
| 593 | struct v4l2_rect o; /* detected area */ |
| 594 | __u32 reserved[4]; |
| 595 | }; |
| 596 | |
| 597 | struct v4l2_recognition { |
| 598 | enum v4l2_recog_mode mode; |
| 599 | |
| 600 | /* Which pattern to detect */ |
| 601 | enum v4l2_recog_pattern pattern; |
| 602 | |
| 603 | /* How many object to detect */ |
| 604 | __u8 obj_num; |
| 605 | |
| 606 | /* select detected object */ |
| 607 | __u32 detect_idx; |
| 608 | |
| 609 | /* read only :Get object coordination */ |
| 610 | struct v4l2_recog_data data; |
| 611 | |
| 612 | enum v4l2_recog_action action; |
| 613 | __u32 reserved[4]; |
| 614 | }; |
| 615 | |
| 616 | #define VIDIOC_S_RECOGNITION _IOWR('V', 85, struct v4l2_recognition) |
| 617 | #define VIDIOC_G_RECOGNITION _IOR('V', 86, struct v4l2_recognition) |
| 618 | |
| 619 | /* We use this struct as the v4l2_streamparm raw_data for |
| 620 | * VIDIOC_G_PARM and VIDIOC_S_PARM |
| 621 | */ |
| 622 | struct sec_cam_parm { |
| 623 | struct v4l2_captureparm capture; |
| 624 | int contrast; |
| 625 | int effects; |
| 626 | int brightness; |
| 627 | int flash_mode; |
| 628 | int focus_mode; |
| 629 | int iso; |
| 630 | int metering; |
| 631 | int saturation; |
| 632 | int scene_mode; |
| 633 | int sharpness; |
| 634 | int white_balance; |
| 635 | }; |
| 636 | |
| 637 | #endif /* __LINUX_VIDEODEV2_SAMSUNG_H */ |