1 /* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef CAMERA_DEVICE_ABILITY_ITEMS_H 17 #define CAMERA_DEVICE_ABILITY_ITEMS_H 18 19 typedef enum camera_ability_section { 20 // Camera attribute information: position(facing), type, connection, description, sensor, lens description 21 OHOS_CAMERA_PROPERTIES = 0, 22 OHOS_CAMERA_LENS, 23 OHOS_CAMERA_SENSOR, 24 OHOS_CAMERA_SENSOR_INFO, 25 OHOS_CAMERA_STATISTICS, 26 27 // Camera device image acquisition 28 OHOS_DEVICE_CONTROL = 0x1000, // Overall control, such as turning off automatic 3A, operating mode 29 OHOS_DEVICE_EXPOSURE, 30 OHOS_DEVICE_FOCUS, 31 OHOS_DEVICE_WHITE_BLANCE, 32 OHOS_DEVICE_FLASH, 33 OHOS_DEVICE_ZOOM, 34 35 // Camera image post-processing related 36 OHOS_POST_PROCESS_CONTROL = 0x2000, 37 OHOS_POST_PROCESS_COLOR, 38 OHOS_POST_PROCESS_HDR, 39 OHOS_POST_PROCESS_PORTRAIT, 40 OHOS_POST_PROCESS_NIGHT, 41 42 // Camera flow control related 43 OHOS_STREAM_ABILITY = 0x3000, 44 OHOS_STREAM_CONTROL, // General control: frame rate, resolution, mirroring 45 OHOS_STREAM_JPEG, 46 OHOS_STREAM_VIDEO, // Video encoding related 47 OHOS_STREAM_DEPTH, 48 OHOS_STREAM_METADATA, 49 OHOS_STREAM_METADATA_FACE, 50 OHOS_STREAM_METADATA_BODY, 51 52 OHOS_ABILITY_SECTION_END 53 } camera_ability_section_t; 54 55 typedef enum camera_device_metadata_section_start { 56 OHOS_CAMERA_PROPERTIES_START = OHOS_CAMERA_PROPERTIES << 16, 57 OHOS_CAMERA_LENS_START = OHOS_CAMERA_LENS << 16, 58 OHOS_CAMERA_SENSOR_START = OHOS_CAMERA_SENSOR << 16, 59 OHOS_CAMERA_SENSOR_INFO_START = OHOS_CAMERA_SENSOR_INFO << 16, 60 OHOS_CAMERA_STATISTICS_START = OHOS_CAMERA_STATISTICS <<16, 61 62 OHOS_DEVICE_CONTROL_START = OHOS_DEVICE_CONTROL << 16, 63 OHOS_DEVICE_EXPOSURE_START = OHOS_DEVICE_EXPOSURE << 16, 64 OHOS_DEVICE_FOCUS_START = OHOS_DEVICE_FOCUS << 16, 65 OHOS_DEVICE_WHITE_BLANCE_START = OHOS_DEVICE_WHITE_BLANCE << 16, 66 OHOS_DEVICE_FLASH_START = OHOS_DEVICE_FLASH << 16, 67 OHOS_DEVICE_ZOOM_START = OHOS_DEVICE_ZOOM << 16, 68 69 OHOS_POST_PROCESS_CONTROL_START = OHOS_POST_PROCESS_CONTROL << 16, 70 OHOS_POST_PROCESS_COLOR_START = OHOS_POST_PROCESS_COLOR << 16, 71 OHOS_POST_PROCESS_HDR_START = OHOS_POST_PROCESS_HDR << 16, 72 OHOS_POST_PROCESS_PORTRAIT_START = OHOS_POST_PROCESS_PORTRAIT << 16, 73 OHOS_POST_PROCESS_NIGHT_START = OHOS_POST_PROCESS_NIGHT << 16, 74 75 OHOS_STREAM_ABILITY_START = OHOS_STREAM_ABILITY << 16, 76 OHOS_STREAM_CONTROL_START = OHOS_STREAM_CONTROL << 16, 77 OHOS_STREAM_JPEG_START = OHOS_STREAM_JPEG << 16, 78 OHOS_STREAM_VIDEO_START = OHOS_STREAM_VIDEO << 16, 79 OHOS_STREAM_DEPTH_START = OHOS_STREAM_DEPTH << 16, 80 OHOS_STREAM_METADATA_START = OHOS_STREAM_METADATA << 16, 81 OHOS_STREAM_METADATA_FACE_START = OHOS_STREAM_METADATA_FACE << 16, 82 OHOS_STREAM_METADATA_BODY_START = OHOS_STREAM_METADATA_BODY << 16 83 } camera_device_info_section_start_t; 84 85 typedef enum camera_device_metadata_tag { 86 // Camera attribute related item 87 OHOS_ABILITY_CAMERA_POSITION = OHOS_CAMERA_PROPERTIES_START, 88 OHOS_ABILITY_CAMERA_TYPE, 89 OHOS_ABILITY_CAMERA_CONNECTION_TYPE, 90 OHOS_CAMERA_PROPERTIES_END, 91 92 OHOS_SENSOR_EXPOSURE_TIME = OHOS_CAMERA_SENSOR_START, 93 OHOS_SENSOR_COLOR_CORRECTION_GAINS, 94 OHOS_SENSOR_ORIENTATION, 95 OHOS_CAMERA_SENSOR_END, 96 97 OHOS_SENSOR_INFO_ACTIVE_ARRAY_SIZE = OHOS_CAMERA_SENSOR_INFO_START, 98 OHOS_SENSOR_INFO_SENSITIVITY_RANGE, 99 OHOS_SENSOR_INFO_MAX_FRAME_DURATION, 100 OHOS_SENSOR_INFO_PHYSICAL_SIZE, 101 OHOS_SENSOR_INFO_PIXEL_ARRAY_SIZE, 102 OHOS_CAMERA_SENSOR_INFO_END, 103 104 OHOS_STATISTICS_FACE_DETECT_MODE = OHOS_CAMERA_STATISTICS_START, 105 OHOS_STATISTICS_HISTOGRAM_MODE, 106 OHOS_STATISTICS_FACE_IDS, 107 OHOS_STATISTICS_FACE_LANDMARKS, 108 OHOS_STATISTICS_FACE_RECTANGLES, 109 OHOS_STATISTICS_FACE_SCORES, 110 OHOS_CAMERA_STATISTICS_END, 111 112 OHOS_CONTROL_AE_ANTIBANDING_MODE = OHOS_DEVICE_CONTROL_START, 113 OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, 114 OHOS_CONTROL_AE_LOCK, 115 OHOS_CONTROL_AE_MODE, 116 OHOS_CONTROL_AE_REGIONS, 117 OHOS_CONTROL_AE_TARGET_FPS_RANGE, 118 OHOS_CONTROL_AF_MODE, 119 OHOS_CONTROL_AF_REGIONS, 120 OHOS_CONTROL_AF_TRIGGER, 121 OHOS_CONTROL_AF_TRIGGER_ID, 122 OHOS_CONTROL_AF_STATE, 123 OHOS_CONTROL_AWB_LOCK, 124 OHOS_CONTROL_AWB_MODE, 125 OHOS_CONTROL_AWB_REGIONS, 126 OHOS_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES, 127 OHOS_CONTROL_AE_AVAILABLE_MODES, 128 OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, 129 OHOS_CONTROL_AE_COMPENSATION_RANGE, 130 OHOS_CONTROL_AE_COMPENSATION_STEP, 131 OHOS_CONTROL_AF_AVAILABLE_MODES, 132 OHOS_CONTROL_AWB_AVAILABLE_MODES, 133 OHOS_CONTROL_CAPTURE_MIRROR_SUPPORTED, 134 OHOS_CONTROL_CAPTURE_MIRROR, 135 OHOS_DEVICE_CONTROL_END, 136 137 // Camera device image acquisition related 138 OHOS_ABILITY_DEVICE_AVAILABLE_EXPOSUREMODES = OHOS_DEVICE_EXPOSURE_START, 139 OHOS_CONTROL_EXPOSUREMODE, 140 OHOS_DEVICE_EXPOSURE_END, 141 142 OHOS_ABILITY_DEVICE_AVAILABLE_FOCUSMODES = OHOS_DEVICE_FOCUS_START, 143 OHOS_CONTROL_FOCUSMODE, 144 OHOS_DEVICE_FOCUS_END, 145 146 OHOS_ABILITY_DEVICE_AVAILABLE_FLASHMODES = OHOS_DEVICE_FLASH_START, 147 OHOS_CONTROL_FLASHMODE, 148 OHOS_CONTROL_FLASH_STATE, 149 OHOS_DEVICE_FLASH_END, 150 151 OHOS_ABILITY_ZOOM_RATIO_RANGE = OHOS_DEVICE_ZOOM_START, 152 OHOS_CONTROL_ZOOM_RATIO, 153 OHOS_CONTROL_ZOOM_CROP_REGION, 154 OHOS_ABILITY_ZOOM_CAP, 155 OHOS_ABILITY_SCENE_ZOOM_CAP, 156 OHOS_DEVICE_ZOOM_END, 157 158 // Camera flow control related 159 OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS = OHOS_STREAM_ABILITY_START, 160 OHOS_STREAM_AVAILABLE_FORMATS, 161 OHOS_STREAM_ABILITY_END, 162 163 OHOS_JPEG_GPS_COORDINATES = OHOS_STREAM_JPEG_START, 164 OHOS_JPEG_GPS_PROCESSING_METHOD, 165 OHOS_JPEG_GPS_TIMESTAMP, 166 OHOS_JPEG_ORIENTATION, 167 OHOS_JPEG_QUALITY, 168 OHOS_JPEG_THUMBNAIL_QUALITY, 169 OHOS_JPEG_THUMBNAIL_SIZE, 170 OHOS_JPEG_AVAILABLE_THUMBNAIL_SIZES, 171 OHOS_JPEG_MAX_SIZE, 172 OHOS_JPEG_SIZE, 173 OHOS_STREAM_JPEG_END, 174 } camera_device_metadata_tag_t; 175 176 // OHOS_CAMERA_POSITION 177 typedef enum camera_position_enum { 178 OHOS_CAMERA_POSITION_FRONT = 0, 179 OHOS_CAMERA_POSITION_BACK, 180 OHOS_CAMERA_POSITION_OTHER 181 } camera_position_enum_t; 182 183 // OHOS_CAMERA_TYPE 184 typedef enum camera_type_enum { 185 OHOS_CAMERA_TYPE_WIDE_ANGLE = 0, 186 OHOS_CAMERA_TYPE_ULTRA_WIDE, 187 OHOS_CAMERA_TYPE_TELTPHOTO, 188 OHOS_CAMERA_TYPE_TRUE_DEAPTH, 189 OHOS_CAMERA_TYPE_LOGICAL, 190 OHOS_CAMERA_TYPE_UNSPECIFIED, 191 } camera_type_enum_t; 192 193 // OHOS_CAMERA_CONNECTION_TYPE 194 typedef enum camera_connection_type { 195 OHOS_CAMERA_CONNECTION_TYPE_BUILTIN = 0, 196 OHOS_CAMERA_CONNECTION_TYPE_USB_PLUGIN, 197 OHOS_CAMERA_CONNECTION_TYPE_REMOTE, 198 } camera_connection_type_t; 199 200 // OHOS_EXPOSURE_MODE 201 typedef enum camera_exposure_mode_enum { 202 OHOS_CAMERA_EXPOSURE_MODE_MANUAL = 0, 203 OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO 204 } camera_exposure_mode_enum_t; 205 206 // OHOS_FOCUS_MODE 207 typedef enum camera_focus_mode_enum { 208 OHOS_CAMERA_FOCUS_MODE_MANUAL = 0, 209 OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO, 210 OHOS_CAMERA_FOCUS_MODE_AUTO, 211 OHOS_CAMERA_FOCUS_MODE_LOCKED 212 } camera_focus_mode_enum_t; 213 214 // OHOS_FLASH_MODE 215 typedef enum camera_flash_mode_enum { 216 OHOS_CAMERA_FLASH_MODE_CLOSE = 0, 217 OHOS_CAMERA_FLASH_MODE_OPEN, 218 OHOS_CAMERA_FLASH_MODE_AUTO, 219 OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN 220 } camera_flash_mode_enum_t; 221 222 // OHOS_CONTROL_FLASH_STATE 223 typedef enum camera_flash_state_enum { 224 OHOS_CAMERA_FLASH_STATE_UNAVAILABLE = 0, 225 OHOS_CAMERA_FLASH_STATE_CHARGING, 226 OHOS_CAMERA_FLASH_STATE_READY, 227 OHOS_CAMERA_FLASH_STATE_FLASHING, 228 OHOS_CAMERA_FLASH_STATE_UNKNOWN 229 } camera_flash_state_enum_t; 230 231 // OHOS_CONTROL_AE_ANTIBANDING_MODE 232 typedef enum camera_ae_antibanding_mode { 233 OHOS_CAMERA_AE_ANTIBANDING_MODE_OFF, 234 OHOS_CAMERA_AE_ANTIBANDING_MODE_50HZ, 235 OHOS_CAMERA_AE_ANTIBANDING_MODE_60HZ, 236 OHOS_CAMERA_AE_ANTIBANDING_MODE_AUTO, 237 } camera_ae_antibanding_mode_t; 238 239 // OHOS_CONTROL_AE_LOCK 240 typedef enum camera_ae_lock { 241 OHOS_CAMERA_AE_LOCK_OFF, 242 OHOS_CAMERA_AE_LOCK_ON, 243 } camera_ae_lock_t; 244 245 // OHOS_CONTROL_AE_MODE 246 typedef enum camera_ae_mode { 247 OHOS_CAMERA_AE_MODE_OFF, 248 OHOS_CAMERA_AE_MODE_ON, 249 OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH, 250 OHOS_CAMERA_AE_MODE_ON_ALWAYS_FLASH, 251 OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH_REDEYE, 252 OHOS_CAMERA_AE_MODE_ON_EXTERNAL_FLASH, 253 } camera_ae_mode_t; 254 255 // OHOS_CONTROL_AF_MODE 256 typedef enum camera_af_mode { 257 OHOS_CAMERA_AF_MODE_OFF, 258 OHOS_CAMERA_AF_MODE_AUTO, 259 OHOS_CAMERA_AF_MODE_MACRO, 260 OHOS_CAMERA_AF_MODE_CONTINUOUS_VIDEO, 261 OHOS_CAMERA_AF_MODE_CONTINUOUS_PICTURE, 262 OHOS_CAMERA_AF_MODE_EDOF, 263 } camera_af_mode_t; 264 265 // OHOS_CONTROL_AF_TRIGGER 266 typedef enum camera_af_trigger { 267 OHOS_CAMERA_AF_TRIGGER_IDLE, 268 OHOS_CAMERA_AF_TRIGGER_START, 269 OHOS_CAMERA_AF_TRIGGER_CANCEL, 270 } camera_af_trigger_t; 271 272 // OHOS_CONTROL_AF_STATE 273 typedef enum camera_af_state { 274 OHOS_CAMERA_AF_STATE_INACTIVE, 275 OHOS_CAMERA_AF_STATE_PASSIVE_SCAN, 276 OHOS_CAMERA_AF_STATE_PASSIVE_FOCUSED, 277 OHOS_CAMERA_AF_STATE_ACTIVE_SCAN, 278 OHOS_CAMERA_AF_STATE_FOCUSED_LOCKED, 279 OHOS_CAMERA_AF_STATE_NOT_FOCUSED_LOCKED, 280 OHOS_CAMERA_AF_STATE_PASSIVE_UNFOCUSED, 281 } camera_af_state_t; 282 283 // OHOS_CONTROL_AWB_LOCK 284 typedef enum camera_awb_lock { 285 OHOS_CAMERA_AWB_LOCK_OFF, 286 OHOS_CAMERA_AWB_LOCK_ON, 287 } camera_awb_lock_t; 288 289 // OHOS_CONTROL_AWB_MODE 290 typedef enum camera_awb_mode { 291 OHOS_CAMERA_AWB_MODE_OFF, 292 OHOS_CAMERA_AWB_MODE_AUTO, 293 OHOS_CAMERA_AWB_MODE_INCANDESCENT, 294 OHOS_CAMERA_AWB_MODE_FLUORESCENT, 295 OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT, 296 OHOS_CAMERA_AWB_MODE_DAYLIGHT, 297 OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT, 298 OHOS_CAMERA_AWB_MODE_TWILIGHT, 299 OHOS_CAMERA_AWB_MODE_SHADE, 300 } camera_awb_mode_t; 301 302 // OHOS_STATISTICS_FACE_DETECT_MODE 303 typedef enum camera_face_detect_mode { 304 OHOS_CAMERA_FACE_DETECT_MODE_OFF, 305 OHOS_CAMERA_FACE_DETECT_MODE_SIMPLE, 306 OHOS_CAMERA_FACE_DETECT_MODE_FULL, 307 } camera_face_detect_mode_t; 308 309 // OHOS_STATISTICS_HISTOGRAM_MODE 310 typedef enum camera_histogram_mode { 311 OHOS_CAMERA_HISTOGRAM_MODE_OFF, 312 OHOS_CAMERA_HISTOGRAM_MODE_ON, 313 } camera_histogram_mode_t; 314 315 // OHOS_STREAM_AVAILABLE_FORMATS 316 typedef enum camera_format { 317 OHOS_CAMERA_FORMAT_RGBA_8888 = 1, 318 OHOS_CAMERA_FORMAT_YCBCR_420_888, 319 OHOS_CAMERA_FORMAT_YCRCB_420_SP, 320 OHOS_CAMERA_FORMAT_JPEG, 321 } camera_format_t; 322 323 #endif 324