2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 #ifndef __TIZEN_MULTIMEDIA_CAMERA_H__
18 #define __TIZEN_MULTIMEDIA_CAMERA_H__
21 #include <media_packet.h>
29 * @brief This file contains the Camera API, related structures and enumerations.
30 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
34 * @addtogroup CAPI_MEDIA_CAMERA_MODULE
38 #define CAMERA_ERROR_CLASS TIZEN_ERROR_CAMERA | 0x00
41 * @brief Enumeration for the error codes of Camera.
42 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
45 CAMERA_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
46 CAMERA_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
47 CAMERA_ERROR_INVALID_STATE = CAMERA_ERROR_CLASS | 0x02, /**< Invalid state */
48 CAMERA_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
49 CAMERA_ERROR_DEVICE = CAMERA_ERROR_CLASS | 0x04, /**< Device error */
50 CAMERA_ERROR_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION, /**< Internal error */
51 CAMERA_ERROR_SECURITY_RESTRICTED = CAMERA_ERROR_CLASS | 0x07, /**< Restricted by security system policy */
52 CAMERA_ERROR_DEVICE_BUSY = CAMERA_ERROR_CLASS | 0x08, /**< The device is using another application or working on some operation */
53 CAMERA_ERROR_DEVICE_NOT_FOUND = CAMERA_ERROR_CLASS | 0x09, /**< No camera device */
54 CAMERA_ERROR_ESD = CAMERA_ERROR_CLASS | 0x0c, /**< ESD situation */
55 CAMERA_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< The access to the resources can not be granted*/
56 CAMERA_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< The feature is not supported */
57 CAMERA_ERROR_RESOURCE_CONFLICT = CAMERA_ERROR_CLASS | 0x0d, /**< Blocked by resource conflict (Since 3.0) */
58 CAMERA_ERROR_SERVICE_DISCONNECTED = CAMERA_ERROR_CLASS | 0x0e, /**< Socket connection lost (Since 3.0) */
62 * @brief Enumeration for the camera state.
63 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
66 CAMERA_STATE_NONE, /**< Before creating */
67 CAMERA_STATE_CREATED, /**< Created, but not initialized yet */
68 CAMERA_STATE_PREVIEW, /**< Preview */
69 CAMERA_STATE_CAPTURING, /**< While capturing */
70 CAMERA_STATE_CAPTURED /**< After capturing */
74 * @brief Enumeration for the camera device state.
78 CAMERA_DEVICE_STATE_NULL, /**< Not opened */
79 CAMERA_DEVICE_STATE_OPENED, /**< Opened */
80 CAMERA_DEVICE_STATE_WORKING /**< Now previewing or capturing or is being used for video recording */
81 } camera_device_state_e;
84 * @brief Enumeration for the camera device.
85 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
88 CAMERA_DEVICE_CAMERA0 = 0, /**< Primary camera */
89 CAMERA_DEVICE_CAMERA1, /**< Secondary camera */
90 CAMERA_DEVICE_CAMERA2, /**< Third camera (Since 5.0) */
91 CAMERA_DEVICE_CAMERA3, /**< 4th camera (Since 5.0) */
92 CAMERA_DEVICE_CAMERA4, /**< 5th camera (Since 5.0) */
93 CAMERA_DEVICE_CAMERA5, /**< 6th camera (Since 5.0) */
94 CAMERA_DEVICE_CAMERA6, /**< 7th camera (Since 5.0) */
95 CAMERA_DEVICE_CAMERA7, /**< 8th camera (Since 5.0) */
96 CAMERA_DEVICE_CAMERA8, /**< 9th camera (Since 5.0) */
97 CAMERA_DEVICE_CAMERA9 /**< 10th camera (Since 5.0) */
101 * @brief Enumeration for the camera pixel format.
102 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
103 * @remarks If #CAMERA_PIXEL_FORMAT_INVZ is set, the type of display should be #CAMERA_DISPLAY_TYPE_NONE. \n
104 * Otherwise, camera_start_preview() will return #CAMERA_ERROR_INVALID_OPERATION. (Since 5.0)
107 CAMERA_PIXEL_FORMAT_INVALID = -1, /**< Invalid pixel format */
108 CAMERA_PIXEL_FORMAT_NV12, /**< NV12 pixel format */
109 CAMERA_PIXEL_FORMAT_NV12T, /**< NV12 Tiled pixel format */
110 CAMERA_PIXEL_FORMAT_NV16, /**< NV16 pixel format */
111 CAMERA_PIXEL_FORMAT_NV21, /**< NV21 pixel format */
112 CAMERA_PIXEL_FORMAT_YUYV, /**< YUYV(YUY2) pixel format */
113 CAMERA_PIXEL_FORMAT_UYVY, /**< UYVY pixel format */
114 CAMERA_PIXEL_FORMAT_422P, /**< YUV422(Y:U:V) planar pixel format */
115 CAMERA_PIXEL_FORMAT_I420, /**< I420 pixel format */
116 CAMERA_PIXEL_FORMAT_YV12, /**< YV12 pixel format */
117 CAMERA_PIXEL_FORMAT_RGB565, /**< RGB565 pixel format */
118 CAMERA_PIXEL_FORMAT_RGB888, /**< RGB888 pixel format */
119 CAMERA_PIXEL_FORMAT_RGBA, /**< RGBA pixel format */
120 CAMERA_PIXEL_FORMAT_ARGB, /**< ARGB pixel format */
121 CAMERA_PIXEL_FORMAT_JPEG, /**< Encoded pixel format */
122 CAMERA_PIXEL_FORMAT_H264 = 15, /**< Encoded pixel format : H264 (Since 3.0) */
123 CAMERA_PIXEL_FORMAT_INVZ, /**< Depth pixel format : INVZ (Since 5.0) */
124 CAMERA_PIXEL_FORMAT_MJPEG, /**< Encoded pixel format : Motion JPEG for preview (Since 6.0) */
125 CAMERA_PIXEL_FORMAT_VP8, /**< Encoded pixel format : VP8 (Since 6.5) */
126 CAMERA_PIXEL_FORMAT_VP9 /**< Encoded pixel format : VP9 (Since 6.5) */
127 } camera_pixel_format_e;
130 * @brief Enumeration for the camera display type.
131 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
134 CAMERA_DISPLAY_TYPE_OVERLAY = 0, /**< Overlay surface display */
135 CAMERA_DISPLAY_TYPE_EVAS, /**< Evas object surface display */
136 CAMERA_DISPLAY_TYPE_NONE /**< This disposes off buffers */
137 } camera_display_type_e;
140 * @brief Enumeration for the camera policy.
141 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
144 CAMERA_POLICY_NONE = 0, /**< None */
145 CAMERA_POLICY_SECURITY = 4, /**< Security policy */
146 CAMERA_POLICY_RESOURCE_CONFLICT /**< Resource conflict (Since 3.0) */
150 * @brief Enumeration for the camera rotation type.
151 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
154 CAMERA_ROTATION_NONE, /**< No rotation */
155 CAMERA_ROTATION_90, /**< 90 degree rotation */
156 CAMERA_ROTATION_180, /**< 180 degree rotation */
157 CAMERA_ROTATION_270, /**< 270 degree rotation */
162 * @brief Enumeration for the camera flip type.
163 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
166 CAMERA_FLIP_NONE, /**< No Flip */
167 CAMERA_FLIP_HORIZONTAL, /**< Horizontal flip */
168 CAMERA_FLIP_VERTICAL, /**< Vertical flip */
169 CAMERA_FLIP_BOTH /**< Horizontal and vertical flip */
173 * @brief Enumeration for the camera focus state.
174 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
177 CAMERA_FOCUS_STATE_RELEASED = 0, /**< Focus released */
178 CAMERA_FOCUS_STATE_ONGOING, /**< Focus in progress */
179 CAMERA_FOCUS_STATE_FOCUSED, /**< Focus succeeded */
180 CAMERA_FOCUS_STATE_FAILED, /**< Focus failed */
181 } camera_focus_state_e;
184 * @brief Enumeration for the facing direction of camera module.
188 CAMERA_FACING_DIRECTION_REAR = 0, /**< Rear */
189 CAMERA_FACING_DIRECTION_FRONT, /**< Front */
190 } camera_facing_direction_e;
193 * @brief Enumeration for the current flash state.
197 CAMERA_FLASH_STATE_NOT_USED = 0, /**< Flash is not used now through camera API */
198 CAMERA_FLASH_STATE_USED, /**< Flash is used now through camera API */
199 } camera_flash_state_e;
202 * @brief Enumeration for the device type.
206 CAMERA_DEVICE_TYPE_BUILTIN = 0, /**< Built-in camera */
207 CAMERA_DEVICE_TYPE_USB, /**< USB camera */
208 CAMERA_DEVICE_TYPE_NETWORK /**< Network camera */
209 } camera_device_type_e;
212 * @brief The structure type of the image data.
213 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
216 unsigned char *data; /**< The image buffer */
217 unsigned int size; /**< The size of the buffer */
218 int width; /**< The width of the image */
219 int height; /**< The height of the image */
220 camera_pixel_format_e format; /**< The format of the image pixel */
221 unsigned char *exif; /**< The exif raw data */
222 unsigned int exif_size; /**< The size of the exif data */
223 } camera_image_data_s;
226 * @brief The structure type for face detection.
227 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
230 int id; /**< The ID of each face */
231 int score; /**< The confidence level for the detection of the face */
232 int x; /**< The x coordinates of the face */
233 int y; /**< The y coordinates of the face */
234 int width; /**< The width of the face */
235 int height; /**< The height of the face */
236 } camera_detected_face_s;
239 * @brief The structure type to preview stream data.
240 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
243 camera_pixel_format_e format; /**< The format of the frame pixel */
244 int width; /**< The width of the frame */
245 int height; /**< The height of the frame */
246 int num_of_planes; /**< The number of planes */
247 unsigned int timestamp; /**< The timestamp of the frame */
250 unsigned char *yuv; /**< The yuv data pointer */
251 unsigned int size; /**< The size of data */
252 } single_plane; /**< Single plane frame data */
255 unsigned char *y; /**< The y data pointer */
256 unsigned char *uv; /**< The uv data pointer */
257 unsigned int y_size; /**< The size of y data */
258 unsigned int uv_size; /**< The size of uv data */
259 } double_plane; /**< Double plane frame data */
262 unsigned char *y; /**< The y data pointer */
263 unsigned char *u; /**< The u data pointer */
264 unsigned char *v; /**< The v data pointer */
265 unsigned int y_size; /**< The size of y data */
266 unsigned int u_size; /**< The size of u data */
267 unsigned int v_size; /**< The size of v data */
268 } triple_plane; /**< Triple plane frame data */
271 unsigned char *data; /**< The encoded data pointer */
272 unsigned int size; /**< The size of encoded data */
273 bool is_delta_frame; /**< The flag indicating whether it's delta frame or not (Since 6.0) */
274 } encoded_plane; /**< Encoded plane frame data */
277 unsigned char *data; /**< The depth data pointer */
278 unsigned int size; /**< The size of depth data */
279 } depth_plane; /**< Depth plane frame data (Since 5.0) */
282 unsigned char *data; /**< The RGB data pointer */
283 unsigned int size; /**< The size of RGB data */
284 } rgb_plane; /**< RGB plane frame data (Since 5.0) */
286 } camera_preview_data_s;
290 * @brief Maximum length of the camera device name.
293 #define CAMERA_DEVICE_NAME_MAX_LENGTH 64
296 * @brief Maximum length of the camera device ID.
299 #define CAMERA_DEVICE_ID_MAX_LENGTH 64
302 * @brief The structure type for the camera device.
305 typedef struct _camera_device_s {
306 camera_device_type_e type; /**< The type of camera device */
307 camera_device_e index; /**< The index of camera device */
308 char name[CAMERA_DEVICE_NAME_MAX_LENGTH]; /**< The name of camera device */
309 char id[CAMERA_DEVICE_ID_MAX_LENGTH]; /**< The ID of camera device */
310 int extra_stream_num; /**< The extra preview stream number of camera device */
314 * @brief The Camera handle.
315 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
316 * @see recorder_create_videorecorder()
318 typedef struct camera_cli_s *camera_h;
321 * @brief The Camera display handle.
322 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
324 typedef void *camera_display_h;
329 * @brief Gets a display handle.
330 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
332 #define GET_DISPLAY(x) (void*)(x)
337 * @brief The Camera device manager handle.
340 typedef void *camera_device_manager_h;
347 * @addtogroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE
352 * @brief Enumeration for the camera display mode.
353 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
356 CAMERA_DISPLAY_MODE_LETTER_BOX = 0, /**< Letter box */
357 CAMERA_DISPLAY_MODE_ORIGIN_SIZE, /**< Origin size */
358 CAMERA_DISPLAY_MODE_FULL, /**< Full screen */
359 CAMERA_DISPLAY_MODE_CROPPED_FULL, /**< Cropped full screen */
360 CAMERA_DISPLAY_MODE_ORIGIN_OR_LETTER_BOX, /**< Original size or letter box (Since 3.0) */
361 CAMERA_DISPLAY_MODE_CUSTOM_ROI, /**< Custom ROI (Since 3.0) */
362 } camera_display_mode_e;
369 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
374 * @brief Enumeration for the color tone, which provides the impression of looking through a tinted glass.
375 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
378 CAMERA_ATTR_EFFECT_NONE = 0, /**< None */
379 CAMERA_ATTR_EFFECT_MONO, /**< Mono */
380 CAMERA_ATTR_EFFECT_SEPIA, /**< Sepia */
381 CAMERA_ATTR_EFFECT_NEGATIVE, /**< Negative */
382 CAMERA_ATTR_EFFECT_BLUE, /**< Blue */
383 CAMERA_ATTR_EFFECT_GREEN, /**< Green */
384 CAMERA_ATTR_EFFECT_AQUA, /**< Aqua */
385 CAMERA_ATTR_EFFECT_VIOLET, /**< Violet */
386 CAMERA_ATTR_EFFECT_ORANGE, /**< Orange */
387 CAMERA_ATTR_EFFECT_GRAY, /**< Gray */
388 CAMERA_ATTR_EFFECT_RED, /**< Red */
389 CAMERA_ATTR_EFFECT_ANTIQUE, /**< Antique */
390 CAMERA_ATTR_EFFECT_WARM, /**< Warm */
391 CAMERA_ATTR_EFFECT_PINK, /**< Pink */
392 CAMERA_ATTR_EFFECT_YELLOW, /**< Yellow */
393 CAMERA_ATTR_EFFECT_PURPLE, /**< Purple */
394 CAMERA_ATTR_EFFECT_EMBOSS, /**< Emboss */
395 CAMERA_ATTR_EFFECT_OUTLINE, /**< Outline */
396 CAMERA_ATTR_EFFECT_SOLARIZATION, /**< Solarization */
397 CAMERA_ATTR_EFFECT_SKETCH, /**< Sketch */
398 CAMERA_ATTR_EFFECT_WASHED, /**< Washed */
399 CAMERA_ATTR_EFFECT_VINTAGE_WARM, /**< Vintage warm */
400 CAMERA_ATTR_EFFECT_VINTAGE_COLD, /**< Vintage cold */
401 CAMERA_ATTR_EFFECT_POSTERIZATION, /**< Posterization */
402 CAMERA_ATTR_EFFECT_CARTOON, /**< Cartoon */
403 CAMERA_ATTR_EFFECT_SELECTIVE_RED, /**< Selective color - Red */
404 CAMERA_ATTR_EFFECT_SELECTIVE_GREEN, /**< Selective color - Green */
405 CAMERA_ATTR_EFFECT_SELECTIVE_BLUE, /**< Selective color - Blue */
406 CAMERA_ATTR_EFFECT_SELECTIVE_YELLOW, /**< Selective color - Yellow */
407 CAMERA_ATTR_EFFECT_SELECTIVE_RED_YELLOW, /**< Selective color - Red and Yellow */
408 CAMERA_ATTR_EFFECT_OTHER_GRAPHICS, /**< Other Graphic effects */
409 } camera_attr_effect_mode_e;
412 * @brief Enumeration for the white balance levels of the camera.
413 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
416 CAMERA_ATTR_WHITE_BALANCE_NONE = 0, /**< None */
417 CAMERA_ATTR_WHITE_BALANCE_AUTOMATIC, /**< Automatic */
418 CAMERA_ATTR_WHITE_BALANCE_DAYLIGHT, /**< Daylight */
419 CAMERA_ATTR_WHITE_BALANCE_CLOUDY, /**< Cloudy */
420 CAMERA_ATTR_WHITE_BALANCE_FLUORESCENT, /**< Fluorescent */
421 CAMERA_ATTR_WHITE_BALANCE_INCANDESCENT, /**< Incandescent */
422 CAMERA_ATTR_WHITE_BALANCE_SHADE, /**< Shade */
423 CAMERA_ATTR_WHITE_BALANCE_HORIZON, /**< Horizon */
424 CAMERA_ATTR_WHITE_BALANCE_FLASH, /**< Flash */
425 CAMERA_ATTR_WHITE_BALANCE_CUSTOM, /**< Custom */
426 } camera_attr_whitebalance_e;
429 * @brief Enumeration for the scene mode.
430 * @details The mode of operation can be in daylight, night, or back-light.
431 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
434 CAMERA_ATTR_SCENE_MODE_NORMAL = 0, /**< Normal */
435 CAMERA_ATTR_SCENE_MODE_PORTRAIT, /**< Portrait */
436 CAMERA_ATTR_SCENE_MODE_LANDSCAPE, /**< Landscape */
437 CAMERA_ATTR_SCENE_MODE_SPORTS, /**< Sports */
438 CAMERA_ATTR_SCENE_MODE_PARTY_N_INDOOR, /**< Party & indoor */
439 CAMERA_ATTR_SCENE_MODE_BEACH_N_INDOOR, /**< Beach & indoor */
440 CAMERA_ATTR_SCENE_MODE_SUNSET, /**< Sunset */
441 CAMERA_ATTR_SCENE_MODE_DUSK_N_DAWN, /**< Dusk & dawn */
442 CAMERA_ATTR_SCENE_MODE_FALL_COLOR, /**< Fall */
443 CAMERA_ATTR_SCENE_MODE_NIGHT_SCENE, /**< Night scene */
444 CAMERA_ATTR_SCENE_MODE_FIREWORK, /**< Firework */
445 CAMERA_ATTR_SCENE_MODE_TEXT, /**< Text */
446 CAMERA_ATTR_SCENE_MODE_SHOW_WINDOW, /**< Show window */
447 CAMERA_ATTR_SCENE_MODE_CANDLE_LIGHT, /**< Candle light */
448 CAMERA_ATTR_SCENE_MODE_BACKLIGHT, /**< Backlight */
449 CAMERA_ATTR_SCENE_MODE_AQUA, /**< Aqua */
450 } camera_attr_scene_mode_e;
453 * @brief Enumeration for the auto focus mode.
454 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
457 CAMERA_ATTR_AF_NONE = 0, /**< auto-focus is not set */
458 CAMERA_ATTR_AF_NORMAL, /**< auto-focus in the normal mode */
459 CAMERA_ATTR_AF_MACRO, /**< auto-focus in the macro mode(close distance) */
460 CAMERA_ATTR_AF_FULL, /**< auto-focus in the full mode(all range scan, limited by device spec) */
461 } camera_attr_af_mode_e;
464 * @brief Enumeration for the ISO levels of the camera.
465 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
468 CAMERA_ATTR_ISO_AUTO = 0, /**< ISO auto mode */
469 CAMERA_ATTR_ISO_50, /**< ISO 50 */
470 CAMERA_ATTR_ISO_100, /**< ISO 100 */
471 CAMERA_ATTR_ISO_200, /**< ISO 200 */
472 CAMERA_ATTR_ISO_400, /**< ISO 400 */
473 CAMERA_ATTR_ISO_800, /**< ISO 800 */
474 CAMERA_ATTR_ISO_1600, /**< ISO 1600 */
475 CAMERA_ATTR_ISO_3200, /**< ISO 3200 */
479 * @brief Enumeration for the camera exposure modes.
480 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
483 CAMERA_ATTR_EXPOSURE_MODE_OFF = 0, /**< Off */
484 CAMERA_ATTR_EXPOSURE_MODE_ALL, /**< All mode */
485 CAMERA_ATTR_EXPOSURE_MODE_CENTER, /**< Center mode */
486 CAMERA_ATTR_EXPOSURE_MODE_SPOT, /**< Spot mode */
487 CAMERA_ATTR_EXPOSURE_MODE_CUSTOM, /**< Custom mode */
488 } camera_attr_exposure_mode_e;
491 * @brief Enumeration for the orientation values of tag.
492 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
495 CAMERA_ATTR_TAG_ORIENTATION_TOP_LEFT = 1, /**< Row #0 is at the top, Column #0 is to the left */
496 CAMERA_ATTR_TAG_ORIENTATION_TOP_RIGHT = 2, /**< Row #0 is at the top, Column #0 is to the right (flipped) */
497 CAMERA_ATTR_TAG_ORIENTATION_BOTTOM_RIGHT = 3, /**< Row #0 is at the bottom, Column #0 is to the right */
498 CAMERA_ATTR_TAG_ORIENTATION_BOTTOM_LEFT = 4, /**< Row #0 is at the bottom, Column #0 is to the left (flipped) */
499 CAMERA_ATTR_TAG_ORIENTATION_LEFT_TOP = 5, /**< Row #0 is to the left, Column #0 is at the top (flipped) */
500 CAMERA_ATTR_TAG_ORIENTATION_RIGHT_TOP = 6, /**< Row #0 is to the right, Column #0 is at the top */
501 CAMERA_ATTR_TAG_ORIENTATION_RIGHT_BOTTOM = 7, /**< Row #0 is to the right, Column #0 is at the bottom (flipped) */
502 CAMERA_ATTR_TAG_ORIENTATION_LEFT_BOTTOM = 8, /**< Row #0 is to the left, Column #0 is at the bottom */
503 } camera_attr_tag_orientation_e;
506 * @brief Enumeration for the flash mode.
507 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
510 CAMERA_ATTR_FLASH_MODE_OFF = 0, /**< Always off */
511 CAMERA_ATTR_FLASH_MODE_ON, /**< Always splashes */
512 CAMERA_ATTR_FLASH_MODE_AUTO, /**< Depending on intensity of light, strobe starts to flash */
513 CAMERA_ATTR_FLASH_MODE_REDEYE_REDUCTION, /**< Red eye reduction. Multiple flash before capturing */
514 CAMERA_ATTR_FLASH_MODE_SLOW_SYNC, /**< Slow sync curtain synchronization */
515 CAMERA_ATTR_FLASH_MODE_FRONT_CURTAIN, /**< Front curtain synchronization */
516 CAMERA_ATTR_FLASH_MODE_REAR_CURTAIN, /**< Rear curtain synchronization */
517 CAMERA_ATTR_FLASH_MODE_PERMANENT, /**< Keep turned on until turning off */
518 } camera_attr_flash_mode_e;
521 * @brief Enumeration to preview FPS.
522 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
525 CAMERA_ATTR_FPS_AUTO = 0, /**< AUTO FPS */
526 CAMERA_ATTR_FPS_7 = 7, /**< 7 FPS */
527 CAMERA_ATTR_FPS_8 = 8, /**< 8 FPS */
528 CAMERA_ATTR_FPS_15 = 15, /**< 15 FPS */
529 CAMERA_ATTR_FPS_20 = 20, /**< 20 FPS */
530 CAMERA_ATTR_FPS_24 = 24, /**< 24 FPS */
531 CAMERA_ATTR_FPS_25 = 25, /**< 25 FPS */
532 CAMERA_ATTR_FPS_30 = 30, /**< 30 FPS */
533 CAMERA_ATTR_FPS_60 = 60, /**< 60 FPS */
534 CAMERA_ATTR_FPS_90 = 90, /**< 90 FPS */
535 CAMERA_ATTR_FPS_120 = 120 /**< 120 FPS */
539 * @brief Enumeration for the theater mode.
540 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
543 CAMERA_ATTR_THEATER_MODE_DISABLE = 0, /**< Disable theater mode - External display shows same image as device display */
544 CAMERA_ATTR_THEATER_MODE_ENABLE = 2, /**< Enable theater mode - Preview image is displayed on external display with full screen mode, but preview image is not shown on device display */
545 CAMERA_ATTR_THEATER_MODE_CLONE = 1 /**< Clone mode - Preview image is displayed on external display with full screen mode. Also preview image is shown by the UI on device display */
546 } camera_attr_theater_mode_e;
549 * @brief Enumeration for HDR capture mode.
550 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
553 CAMERA_ATTR_HDR_MODE_DISABLE = 0, /**< Disable HDR capture */
554 CAMERA_ATTR_HDR_MODE_ENABLE, /**< Enable HDR capture */
555 CAMERA_ATTR_HDR_MODE_KEEP_ORIGINAL /**< Enable HDR capture and keep original image data */
556 } camera_attr_hdr_mode_e;
559 * @brief Enumeration for PTZ (Pan Tilt Zoom) type.
563 CAMERA_ATTR_PTZ_TYPE_MECHANICAL = 0, /**< Move the camera device physically */
564 CAMERA_ATTR_PTZ_TYPE_ELECTRONIC /**< Zoom digitally and move into portion of the image */
565 } camera_attr_ptz_type_e;
568 * @brief Enumeration for PTZ (Pan Tilt Zoom) movement type.
572 CAMERA_ATTR_PTZ_MOVE_ABSOLUTE = 0, /**< Move to a specific coordinate position */
573 CAMERA_ATTR_PTZ_MOVE_RELATIVE /**< Move a specific distance from the current position */
574 } camera_attr_ptz_move_type_e;
582 * @addtogroup CAPI_MEDIA_CAMERA_MODULE
587 * @brief Called when the camera state is changed.
588 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
589 * @param[in] previous The previous state of the camera
590 * @param[in] current The current state of the camera
591 * @param[in] by_policy If @c true the state is changed by policy, otherwise @c false
592 * @param[in] user_data The user data passed from the callback registration function
593 * @pre camera_start_preview(), camera_start_capture() or camera_stop_preview()
594 * will invoke this callback if you register this callback using camera_set_state_changed_cb().
595 * @see camera_set_state_changed_cb()
597 typedef void (*camera_state_changed_cb)(camera_state_e previous, camera_state_e current, bool by_policy, void *user_data);
600 * @brief Called when the camera device state is changed.
602 * @param[in] device The hardware camera type
603 * @param[in] state The state of the camera device
604 * @param[in] user_data The user data passed from the callback registration function
605 * @see camera_add_device_state_changed_cb()
607 typedef void (*camera_device_state_changed_cb)(camera_device_e device, camera_device_state_e state, void *user_data);
610 * @brief Called when the camera is interrupted by policy.
611 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
612 * @remarks This callback is called after interrupt handling is completed.
613 * @param[in] policy The policy that interrupted the camera
614 * @param[in] previous The previous state of the camera
615 * @param[in] current The current state of the camera
616 * @param[in] user_data The user data passed from the callback registration function
617 * @see camera_set_interrupted_cb()
619 typedef void (*camera_interrupted_cb)(camera_policy_e policy, camera_state_e previous, camera_state_e current, void *user_data);
622 * @brief Called when the camera interrupt is started by policy.
624 * @remarks This callback is called before interrupt handling is started.
625 * @param[in] policy The policy that is interrupting the camera
626 * @param[in] state The current state of the camera
627 * @param[in] user_data The user data passed from the callback registration function
628 * @see camera_set_interrupt_started_cb()
630 typedef void (*camera_interrupt_started_cb)(camera_policy_e policy, camera_state_e state, void *user_data);
633 * @brief Called when the camera focus state is changed.
634 * @details When the camera auto focus completes or a change to the focus state occurs,
635 * this callback is invoked. \n \n
636 * Changes of focus state are as follows: \n
637 * #CAMERA_FOCUS_STATE_RELEASED -> start focusing -> #CAMERA_FOCUS_STATE_ONGOING -> working ->
638 * #CAMERA_FOCUS_STATE_FOCUSED or #CAMERA_FOCUS_STATE_FAILED.
639 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
641 * @param[in] state The current state of the auto-focus
642 * @param[in] user_data The user data passed from the callback registration function
643 * @pre camera_start_focusing() will invoke this callback if you register it using camera_set_focus_changed_cb().
644 * @see camera_set_focus_changed_cb()
645 * @see camera_unset_focus_changed_cb()
646 * @see camera_start_focusing()
647 * @see camera_cancel_focusing()
649 typedef void (*camera_focus_changed_cb)(camera_focus_state_e state, void *user_data);
652 * @brief Called to register for notifications about delivering a copy of the new preview frame when every preview frame is displayed.
653 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
655 * @remarks This function is issued in the context of internal framework so the UI update code should not be directly invoked.\n
656 * If the camera is used as a recorder then this callback function won't be called.
657 * @remarks The @a frame should not be released and it's available until the callback returns.
659 * @param[in] frame The reference pointer to preview stream data
660 * @param[in] user_data The user data passed from the callback registration function
661 * @pre camera_start_preview() will invoke this callback function if you register this callback using camera_set_preview_cb().
662 * @see camera_start_preview()
663 * @see camera_set_preview_cb()
664 * @see camera_unset_preview_cb()
666 typedef void (*camera_preview_cb)(camera_preview_data_s *frame, void *user_data);
669 * @brief Called to register for notifications about delivering media packet when every preview frame is displayed.
670 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
672 * @remarks This function is issued in the context of internal framework so the UI update code should not be directly invoked.\n
673 * If the camera is used as a recorder then this callback function won't be called.\n
674 * and the packet should be released by media_packet_destroy() after use.
676 * @param[in] pkt Reference pointer to media packet
677 * @param[in] user_data The user data passed from the callback registration function
678 * @pre camera_start_preview() will invoke this callback function if you register this callback using camera_set_media_packet_preview_cb().
679 * @see camera_start_preview()
680 * @see camera_set_media_packet_preview_cb()
681 * @see camera_unset_media_packet_preview_cb()
683 typedef void (*camera_media_packet_preview_cb)(media_packet_h pkt, void *user_data);
686 * @brief Called to get information about image data taken by the camera once per frame while capturing.
687 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
689 * @remarks This function is issued in the context of internal framework so the UI update code should not be directly invoked.
690 * You must not call camera_start_preview() within this callback.
692 * @param[in] image The image data of the captured picture
693 * @param[in] postview The image data of the postview
694 * @param[in] thumbnail The image data of the thumbnail (it should be @c NULL if the available thumbnail data does not exist)
695 * @param[in] user_data The user data passed from the callback registration function
696 * @pre camera_start_capture() or camera_start_continuous_capture() will invoke this callback function if it is registered using camera_start_capture() or camera_start_continuous_capture().
697 * @see camera_start_capture()
698 * @see camera_start_continuous_capture()
699 * @see camera_capture_completed_cb()
701 typedef void (*camera_capturing_cb)(camera_image_data_s *image, camera_image_data_s *postview, camera_image_data_s *thumbnail, void *user_data);
704 * @brief Called when the camera capturing completes.
705 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
707 * @remarks The callback is called after camera_capturing_cb() is completed.\n
708 * If you want to show the user a preview after capturing is finished, \n
709 * an application can use camera_start_preview() after calling this callback.
710 * @param[in] user_data The user data passed from the callback registration function
711 * @pre This callback function is invoked if it is registered using camera_start_capture() or camera_start_continuous_capture().
712 * @see camera_start_capture()
713 * @see camera_start_continuous_capture()
714 * @see camera_capturing_cb()
716 typedef void (*camera_capture_completed_cb)(void *user_data);
719 * @brief Called when an error occurs.
720 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
722 * @remarks This callback informs about a critical error situation.\n
723 * When this callback is invoked, the user should release the resource and terminate the application.\n
724 * In case of errors, one of these codes occur:\n
725 * #CAMERA_ERROR_DEVICE,\n
726 * #CAMERA_ERROR_INVALID_OPERATION,\n
727 * #CAMERA_ERROR_OUT_OF_MEMORY.
728 * @param[in] error The error code
729 * @param[in] current_state The current state of the camera
730 * @param[in] user_data The user data passed from the callback registration function
731 * @pre This callback function is invoked if it is registered using camera_set_error_cb().
732 * @see camera_set_error_cb()
733 * @see camera_unset_error_cb()
735 typedef void (*camera_error_cb)(camera_error_e error, camera_state_e current_state, void *user_data);
738 * @brief Called when a face is detected in the preview frame.
739 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
740 * @param[in] faces The detected face array
741 * @param[in] count The length of the array
742 * @param[in] user_data The user data passed from the callback registration function
743 * @see camera_start_face_detection()
745 typedef void (*camera_face_detected_cb)(camera_detected_face_s *faces, int count, void *user_data);
748 * @brief Called when the connection state of a camera device was changed.
750 * @param[in] device The camera device
751 * @param[in] is_connected The state of device connection: (@c true = connected, @c false = disconnected)
752 * @param[in] user_data The user data passed from the callback registration function
753 * @see camera_device_manager_add_device_connection_changed_cb()
754 * @see camera_device_manager_remove_device_connection_changed_cb()
756 typedef void (*camera_device_connection_changed_cb)(camera_device_s *device, bool is_connected, void *user_data);
759 * @brief Called when the extra preview frame is delivered from the camera device.
761 * @param[in] frame The reference pointer to extra preview stream data
762 * @param[in] stream_id The ID of the preview stream
763 * @param[in] user_data The user data passed from the callback registration function
764 * @pre camera_start_preview() will invoke this callback function if you register this callback using camera_set_extra_preview_cb().
765 * @see camera_start_preview()
766 * @see camera_set_extra_preview_cb()
767 * @see camera_unset_extra_preview_cb()
769 typedef void (*camera_extra_preview_cb)(camera_preview_data_s *frame, int stream_id, void *user_data);
776 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
781 * @brief Called once for each supported preview resolution.
782 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
783 * @param[in] width The preview image width
784 * @param[in] height The preview image height
785 * @param[in] user_data The user data passed from the foreach function
786 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
787 * @pre camera_foreach_supported_preview_resolution() will invoke this callback.
788 * @see camera_foreach_supported_preview_resolution()
790 typedef bool (*camera_supported_preview_resolution_cb)(int width, int height, void *user_data);
793 * @brief Called once for each supported capture resolution.
794 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
795 * @param[in] width The capture resolution width
796 * @param[in] height The capture resolution height
797 * @param[in] user_data The user data passed from the foreach function
798 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
799 * @pre camera_foreach_supported_capture_resolution() will invoke this callback.
800 * @see camera_foreach_supported_capture_resolution()
802 typedef bool (*camera_supported_capture_resolution_cb)(int width, int height, void *user_data);
805 * @brief Called once for the pixel format of each supported capture format.
806 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
807 * @param[in] format The supported pixel format
808 * @param[in] user_data The user data passed from the foreach function
809 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
810 * @pre camera_foreach_supported_capture_format() will invoke this callback.
811 * @see camera_foreach_supported_capture_format()
813 typedef bool (*camera_supported_capture_format_cb)(camera_pixel_format_e format, void *user_data);
816 * @brief Called once for the pixel format of each supported preview format.
817 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
818 * @param[in] format The supported preview data format
819 * @param[in] user_data The user data passed from the foreach function
820 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
821 * @pre camera_foreach_supported_preview_format() will invoke this callback.
822 * @see camera_foreach_supported_preview_format()
824 typedef bool (*camera_supported_preview_format_cb)(camera_pixel_format_e format, void *user_data);
827 * @brief Called once for the each supported device.
829 * @param[in] device The camera device
830 * @param[in] user_data The user data passed from the foreach function
831 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
832 * @pre camera_device_manager_foreach_supported_device() will invoke this callback.
833 * @see camera_device_manager_foreach_supported_device()
835 typedef bool (*camera_supported_device_cb)(camera_device_s *device, void *user_data);
842 * @addtogroup CAPI_MEDIA_CAMERA_MODULE
847 * @brief Creates a new camera handle for controlling a camera.
849 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
850 * @remarks Multiple handles on a context at the same time are allowed to be created. However,
851 * camera cannot guarantee proper operation because of limited resources, such as
852 * camera device, audio device, and display device.\n.
853 * A @a camera must be released using camera_destroy().
854 * @remarks The privilege %http://tizen.org/privilege/camera is not required since 4.0,\n
855 * but it is required in all earlier versions.
856 * @param[in] device The hardware camera to access
857 * @param[out] camera A newly returned handle to the camera
858 * @return @c 0 on success, otherwise a negative error value
859 * @retval #CAMERA_ERROR_NONE Successful
860 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
861 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
862 * @retval #CAMERA_ERROR_OUT_OF_MEMORY Out of memory
863 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
864 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
865 * @post If it succeeds, the camera state will be #CAMERA_STATE_CREATED.
867 * @see camera_destroy()
869 int camera_create(camera_device_e device, camera_h *camera);
872 * @brief Changes the camera device.
875 * @remarks This function can be used to change camera device simply without camera_destroy() and camera_create().\n
876 * If display reuse hint is set by camera_set_display_reuse_hint() before stopping the preview,\n
877 * display handle will be reused and last frame on display can be kept even though camera device is changed.
878 * @param[in] camera The handle to the camera
879 * @param[in] device The hardware camera to access
880 * @return @c 0 on success, otherwise a negative error value
881 * @retval #CAMERA_ERROR_NONE Successful
882 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
883 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
884 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
885 * @retval #CAMERA_ERROR_OUT_OF_MEMORY Out of memory
886 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
887 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
888 * @pre The camera state must be set to #CAMERA_STATE_CREATED.
889 * @post If it succeeds, the camera attributes and settings will be reset.
891 * @see camera_set_display_reuse_hint()
892 * @see camera_get_display_reuse_hint()
894 int camera_change_device(camera_h camera, camera_device_e device);
897 * @brief Destroys the camera handle and releases all its resources.
899 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
900 * @param[in] camera The handle to the camera
901 * @return @c 0 on success, otherwise a negative error value
902 * @retval #CAMERA_ERROR_NONE Successful
903 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
904 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
905 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
906 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
907 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
908 * @see camera_create()
909 * @see camera_create_network()
911 int camera_destroy(camera_h camera);
914 * @brief Creates a new camera handle for controlling a network camera.
916 * @remarks A @a camera must be released using camera_destroy().
917 * @param[in] device The network camera to access
918 * @param[out] camera A newly returned handle to the camera
919 * @return @c 0 on success, otherwise a negative error value
920 * @retval #CAMERA_ERROR_NONE Successful
921 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
922 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
923 * @retval #CAMERA_ERROR_OUT_OF_MEMORY Out of memory
924 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
925 * @post If it succeeds, the camera state will be #CAMERA_STATE_CREATED.
926 * @see camera_destroy()
928 int camera_create_network(camera_device_e device, camera_h *camera);
931 * @brief Initializes a camera device manager.
933 * @remarks A @a manager must be released with camera_device_manager_deinitialize().
934 * @param[out] manager A newly returned handle to the camera device manager
935 * @return @c 0 on success, otherwise a negative error value
936 * @retval #CAMERA_ERROR_NONE Successful
937 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
938 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
939 * @retval #CAMERA_ERROR_OUT_OF_MEMORY Out of memory
940 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
941 * @see camera_device_manager_deinitialize()
943 int camera_device_manager_initialize(camera_device_manager_h *manager);
946 * @brief Deinitializes the camera device manager handle.
948 * @param[in] manager The handle to the camera device manager
949 * @return @c 0 on success, otherwise a negative error value
950 * @retval #CAMERA_ERROR_NONE Successful
951 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
952 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
953 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
954 * @see camera_device_manager_initialize()
956 int camera_device_manager_deinitialize(camera_device_manager_h manager);
963 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
968 * @brief Retrieves all supported devices by invoking the callback function once for each supported device.
970 * @param[in] manager The handle to the camera device manager
971 * @param[in] callback The callback function to register
972 * @param[in] user_data The user data to be passed to the callback function
973 * @return @c 0 on success, otherwise a negative error value
974 * @retval #CAMERA_ERROR_NONE Successful
975 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
976 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
977 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
978 * @post This function invokes camera_supported_device_cb() repeatedly to retrieve each supported device.
979 * @see camera_supported_device_cb()
980 * @see camera_device_manager_initialize()
981 * @see camera_device_manager_deinitialize()
983 int camera_device_manager_foreach_supported_device(camera_device_manager_h manager, camera_supported_device_cb callback, void *user_data);
990 * @addtogroup CAPI_MEDIA_CAMERA_MODULE
995 * @brief Adds a callback function to be called when the connection state of camera device is changed.
997 * @param[in] manager The handle to the camera device manager
998 * @param[in] callback The callback function to register
999 * @param[in] user_data The user data to be passed to the callback function
1000 * @param[out] cb_id The id of registered callback
1001 * @return @c 0 on success, otherwise a negative error value
1002 * @retval #CAMERA_ERROR_NONE Successful
1003 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1004 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1005 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
1006 * @post camera_device_connection_changed_cb() will be invoked when the connection state of camera device is changed.
1007 * @see camera_device_manager_remove_device_connection_changed_cb()
1008 * @see camera_device_connection_changed_cb()
1010 int camera_device_manager_add_device_connection_changed_cb(camera_device_manager_h manager, camera_device_connection_changed_cb callback, void *user_data, int *cb_id);
1013 * @brief Removes the callback function.
1015 * @param[in] manager The handle to the camera device manager
1016 * @param[in] cb_id The id of registered callback
1017 * @return @c 0 on success, otherwise a negative error value
1018 * @retval #CAMERA_ERROR_NONE Successful
1019 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1020 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1021 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
1022 * @see camera_device_manager_add_device_changed_cb()
1024 int camera_device_manager_remove_device_connection_changed_cb(camera_device_manager_h manager, int cb_id);
1027 * @brief Starts capturing and drawing preview frames on the screen.
1029 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1031 * @privilege %http://tizen.org/privilege/camera
1032 * @param[in] camera The handle to the camera
1033 * @return @c 0 on success, otherwise a negative error value
1034 * @retval #CAMERA_ERROR_NONE Successful
1035 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1036 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1037 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1038 * @retval #CAMERA_ERROR_RESOURCE_CONFLICT Resource conflict error
1039 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
1040 * @retval #CAMERA_ERROR_DEVICE_BUSY The device is being used in another application or is performing other operations
1041 * @retval #CAMERA_ERROR_DEVICE_NOT_FOUND No camera device
1042 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1043 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1044 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_CAPTURED.\n
1045 * You must set the display handle. \n
1046 * If needed, modify preview FPS(camera_attr_set_preview_fps()),
1047 * preview resolution(camera_set_preview_resolution()), or preview format(camera_set_preview_format()).
1048 * @post If it succeeds, the camera state will be #CAMERA_STATE_PREVIEW.\n
1049 * camera_preview_cb() will be called when preview image data becomes available.
1051 * @see camera_stop_preview()
1052 * @see camera_set_display()
1053 * @see camera_set_preview_cb()
1054 * @see camera_set_media_packet_preview_cb()
1055 * @see camera_foreach_supported_preview_resolution()
1056 * @see camera_set_preview_resolution()
1057 * @see camera_get_preview_resolution()
1058 * @see camera_foreach_supported_preview_format()
1059 * @see camera_set_preview_format()
1060 * @see camera_get_preview_format()
1061 * @see camera_attr_foreach_supported_fps()
1062 * @see camera_attr_set_preview_fps()
1063 * @see camera_attr_get_preview_fps()
1065 int camera_start_preview(camera_h camera);
1068 * @brief Stops capturing and drawing preview frames.
1069 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1071 * @privilege %http://tizen.org/privilege/camera
1072 * @param[in] camera The handle to the camera
1073 * @return @c 0 on success, otherwise a negative error value
1074 * @retval #CAMERA_ERROR_NONE Successful
1075 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1076 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1077 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1078 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
1079 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1080 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1081 * @pre The camera state must be set to #CAMERA_STATE_PREVIEW.
1082 * @post The camera state will be #CAMERA_STATE_CREATED.
1083 * @see camera_start_preview()
1084 * @see camera_unset_preview_cb()
1085 * @see camera_unset_media_packet_preview_cb()
1087 int camera_stop_preview(camera_h camera);
1090 * @brief Starts capturing of still images.
1092 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1094 * @privilege %http://tizen.org/privilege/camera
1095 * @remarks This function causes the transition of the camera state from #CAMERA_STATE_CAPTURING to #CAMERA_STATE_CAPTURED automatically\n
1096 * and the corresponding callback function camera_capturing_cb() and camera_capture_completed_cb() will be invoked\n
1097 * The captured image will be delivered through camera_capturing_cb().\n
1098 * camera_capture_completed_cb() callback notifies about completion of camera_capturing_cb(). \n
1099 * The camera's preview should be restarted by calling camera_start_preview().
1100 * @param[in] camera The handle to the camera
1101 * @param[in] capturing_cb The callback for capturing data
1102 * @param[in] completed_cb The callback for notification of completion
1103 * @param[in] user_data The user data
1104 * @return @c 0 on success, otherwise a negative error value
1105 * @retval #CAMERA_ERROR_NONE Successful
1106 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1107 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1108 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1109 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
1110 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1111 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1112 * @pre The camera state must be set to #CAMERA_STATE_PREVIEW. \n
1113 * If needed, modify capture resolution(camera_set_capture_resolution()),
1114 * capture format(camera_set_capture_format()), or image quality(camera_attr_set_image_quality()).
1115 * @post If it succeeds the camera state will be #CAMERA_STATE_CAPTURED.
1117 * @see camera_start_preview()
1118 * @see camera_start_continuous_capture();
1119 * @see camera_foreach_supported_capture_resolution()
1120 * @see camera_set_capture_resolution()
1121 * @see camera_get_capture_resolution()
1122 * @see camera_foreach_supported_capture_format()
1123 * @see camera_set_capture_format()
1124 * @see camera_get_capture_format()
1125 * @see camera_attr_set_image_quality()
1126 * @see camera_attr_get_image_quality()
1128 int camera_start_capture(camera_h camera, camera_capturing_cb capturing_cb, camera_capture_completed_cb completed_cb, void *user_data);
1131 * @brief Starts continuously capturing still images.
1133 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1135 * @privilege %http://tizen.org/privilege/camera
1136 * @remarks If this is not supported zero shutter lag occurs. The capture resolution could be changed to the preview resolution.\n
1137 * This function causes the transition of the camera state from #CAMERA_STATE_CAPTURING to #CAMERA_STATE_CAPTURED automatically\n
1138 * and the corresponding callback function camera_capturing_cb() and camera_capture_completed_cb() will be invoked\n
1139 * Each Captured image will be delivered through camera_capturing_cb().\n
1140 * The camera_capture_completed_cb() callback notifies about the completion of an entire capture.\n
1141 * The camera's preview should be restarted by calling camera_start_preview().\n.
1142 * @param[in] camera The handle to the camera
1143 * @param[in] count The number of still images
1144 * @param[in] interval The interval of the capture (millisecond)
1145 * @param[in] capturing_cb The callback for capturing data
1146 * @param[in] completed_cb The callback for notification of completion
1147 * @param[in] user_data The user data
1148 * @return @c 0 on success, otherwise a negative error value
1149 * @retval #CAMERA_ERROR_NONE Successful
1150 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1151 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1152 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1153 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
1154 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1155 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1156 * @post If it succeeds the camera state will be #CAMERA_STATE_CAPTURED.
1158 * @see camera_start_preview()
1159 * @see camera_start_capture();
1160 * @see camera_stop_continuous_capture()
1161 * @see camera_is_supported_zero_shutter_lag()
1163 int camera_start_continuous_capture(camera_h camera, int count, int interval, camera_capturing_cb capturing_cb, camera_capture_completed_cb completed_cb, void *user_data);
1166 * @brief Aborts continuous capturing.
1168 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1170 * @privilege %http://tizen.org/privilege/camera
1171 * @remarks The camera state will be changed to #CAMERA_STATE_CAPTURED.
1172 * @param[in] camera The handle to the camera
1173 * @return @c 0 on success, otherwise a negative error value
1174 * @retval #CAMERA_ERROR_NONE Successful
1175 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1176 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1177 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1178 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
1179 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1180 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1181 * @pre The camera state must be set to #CAMERA_STATE_PREVIEW.
1183 * @see camera_start_continuous_capture()
1185 int camera_stop_continuous_capture(camera_h camera);
1188 * @brief Gets the state of the camera.
1190 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1191 * @param[in] camera The handle to the camera
1192 * @param[out] state The current state of the camera
1193 * @return @c 0 on success, otherwise a negative error value
1194 * @retval #CAMERA_ERROR_NONE Successful
1195 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1196 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1197 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1198 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1199 * @see camera_create()
1200 * @see camera_start_preview()
1201 * @see camera_stop_preview()
1202 * @see camera_start_capture()
1204 int camera_get_state(camera_h camera, camera_state_e *state);
1207 * @brief Starts camera auto-focusing, asynchronously.
1209 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1211 * @privilege %http://tizen.org/privilege/camera
1212 * @remarks If continuous status is @c true, the camera continuously tries to focus.
1213 * @param[in] camera The handle to the camera
1214 * @param[in] continuous The status of continuous focusing
1215 * @return @c 0 on success, otherwise a negative error value
1216 * @retval #CAMERA_ERROR_NONE Successful
1217 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1218 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1219 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1220 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
1221 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1222 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1223 * @pre The camera state must be set to #CAMERA_STATE_PREVIEW.
1224 * @post The camera focus state will be #CAMERA_FOCUS_STATE_ONGOING.
1226 * @see camera_cancel_focusing()
1227 * @see camera_set_focus_changed_cb()
1228 * @see camera_focus_changed_cb()
1229 * @see camera_attr_set_af_mode()
1231 int camera_start_focusing(camera_h camera, bool continuous);
1234 * @brief Stops camera auto focusing.
1235 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1237 * @privilege %http://tizen.org/privilege/camera
1238 * @param[in] camera The handle to the camera
1239 * @return @c 0 on success, otherwise a negative error value
1240 * @retval #CAMERA_ERROR_NONE Successful
1241 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1242 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1243 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1244 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
1245 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1246 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1247 * @pre The camera state must be set to #CAMERA_STATE_PREVIEW.
1249 * @see camera_start_focusing()
1250 * @see camera_focus_changed_cb()
1252 int camera_cancel_focusing(camera_h camera);
1255 * @brief Sets the display handle to show preview images.
1257 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1258 * @remarks This function must be called before previewing (see camera_start_preview()).
1259 * In Custom ROI display mode, camera_attr_set_display_roi_area() function must be called before calling this function.
1260 * @remarks This function must be called in main thread of the application.
1261 * Otherwise, it will return #CAMERA_ERROR_INVALID_OPERATION by internal restriction.
1262 * To avoid #CAMERA_ERROR_INVALID_OPERATION in sub thread, ecore_thread_main_loop_begin() and
1263 * ecore_thread_main_loop_end() can be used, but deadlock can occur if the main thread is busy.
1264 * So, it's not recommended to use them. (Since 5.0)
1265 * @param[in] camera The handle to the camera
1266 * @param[in] type The display type
1267 * @param[in] display The display handle from #GET_DISPLAY
1268 * @return @c 0 on success, otherwise a negative error value
1269 * @retval #CAMERA_ERROR_NONE Successful
1270 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1271 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1272 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1273 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
1274 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1275 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1276 * @pre The camera state must be set to #CAMERA_STATE_CREATED.
1278 * @see camera_start_preview()
1280 * @see ecore_thread_main_loop_begin()
1281 * @see ecore_thread_main_loop_end()
1283 int camera_set_display(camera_h camera, camera_display_type_e type, camera_display_h display);
1286 * @brief Sets the resolution of the preview.
1288 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1289 * @remarks This function should be called before previewing (camera_start_preview()).
1290 * @param[in] camera The handle to the camera
1291 * @param[in] width The preview width
1292 * @param[in] height The preview height
1293 * @return @c 0 on success, otherwise a negative error value
1294 * @retval #CAMERA_ERROR_NONE Successful
1295 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1296 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1297 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1298 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1299 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1300 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
1302 * @see camera_start_preview()
1303 * @see camera_get_preview_resolution()
1304 * @see camera_foreach_supported_preview_resolution()
1306 int camera_set_preview_resolution(camera_h camera, int width, int height);
1309 * @brief Gets the resolution of the preview.
1311 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1312 * @param[in] camera The handle to the camera
1313 * @param[out] width The preview width
1314 * @param[out] height The preview height
1315 * @return @c 0 on success, otherwise a negative error value
1316 * @retval #CAMERA_ERROR_NONE Successful
1317 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1318 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1319 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1320 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1321 * @see camera_set_preview_resolution()
1322 * @see camera_foreach_supported_preview_resolution()
1324 int camera_get_preview_resolution(camera_h camera, int *width, int *height);
1327 * @brief Gets the recommended preview resolution.
1329 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1330 * @remarks Depending on the capture resolution aspect ratio and display resolution, the recommended preview resolution is determined.
1331 * @param[in] camera The handle to the camera
1332 * @param[out] width The preview width
1333 * @param[out] height The preview height
1334 * @return @c 0 on success, otherwise a negative error value
1335 * @retval #CAMERA_ERROR_NONE Successful
1336 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1337 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1338 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1339 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1340 * @see camera_set_preview_resolution()
1341 * @see camera_foreach_supported_preview_resolution()
1343 int camera_get_recommended_preview_resolution(camera_h camera, int *width, int *height);
1346 * @brief Starts face detection.
1347 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1349 * @privilege %http://tizen.org/privilege/camera
1350 * @remarks This should be called after the preview is started.\n
1351 * This callback will be invoked when the face is detected in the preview frame.\n
1352 * Internally it starts continuous focus and focusing on the detected face.\n
1353 * When face detection is running, the camera_start_focusing(), camera_cancel_focusing(), camera_attr_set_af_mode(), camera_attr_set_af_area(), camera_attr_set_exposure_mode(), and camera_attr_set_whitebalance() settings are ignored.\n
1354 * If camera_stop_preview() is invoked, face detection is stopped and then preview is resumed using camera_start_preview(), this method should be called again to resume face detection.
1355 * @param[in] camera The handle to the camera
1356 * @param[in] callback The callback to notify face detection
1357 * @param[in] user_data The user data to be passed to the callback function
1359 * @return @c 0 on success, otherwise a negative error value
1360 * @retval #CAMERA_ERROR_NONE Successful
1361 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1362 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1363 * @retval #CAMERA_ERROR_INVALID_STATE Not preview state
1364 * @retval #CAMERA_ERROR_INVALID_OPERATION Not supported this feature
1365 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1366 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1367 * @pre The camera state must be #CAMERA_STATE_PREVIEW.
1369 * @see camera_stop_face_detection()
1370 * @see camera_face_detected_cb()
1371 * @see camera_is_supported_face_detection()
1373 int camera_start_face_detection(camera_h camera, camera_face_detected_cb callback, void *user_data);
1376 * @brief Stops face detection.
1378 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1380 * @privilege %http://tizen.org/privilege/camera
1381 * @param[in] camera The handle to the camera
1382 * @return @c 0 on success, otherwise a negative error value
1383 * @retval #CAMERA_ERROR_NONE Successful
1384 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1385 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1386 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1387 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1388 * @pre This should be called after face detection is started.
1390 * @see camera_start_face_detection()
1391 * @see camera_is_supported_face_detection()
1393 int camera_stop_face_detection(camera_h camera);
1400 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
1405 * @brief Gets continuous capture feature's supported state.
1406 * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
1407 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1408 * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
1409 * @param[in] camera The handle to the camera
1410 * @return @c true on supported, otherwise false
1411 * @exception #CAMERA_ERROR_NONE Successful
1412 * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1413 * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1414 * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1417 bool camera_is_supported_continuous_capture(camera_h camera);
1420 * @brief Retrieves all supported camera preview resolutions by invoking the callback function once for each supported camera preview resolution.
1422 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1423 * @param[in] camera The handle to the camera
1424 * @param[in] callback The callback function to be invoked
1425 * @param[in] user_data The user data to be passed to the callback function
1426 * @return @c 0 on success, otherwise a negative error value
1427 * @retval #CAMERA_ERROR_NONE Successful
1428 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1429 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1430 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1431 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1432 * @post This function invokes camera_supported_preview_resolution_cb() repeatedly to retrieve each supported preview resolution.
1434 * @see camera_set_preview_resolution()
1435 * @see camera_get_preview_resolution()
1436 * @see camera_supported_preview_resolution_cb()
1438 int camera_foreach_supported_preview_resolution(camera_h camera, camera_supported_preview_resolution_cb callback, void *user_data);
1445 * @addtogroup CAPI_MEDIA_CAMERA_MODULE
1450 * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE
1451 * @brief Sets the display rotation.
1453 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1454 * @remarks This function should be called before previewing (see camera_start_preview())
1455 * @param[in] camera The handle to the camera
1456 * @param[in] rotation The display rotation
1457 * @return @c 0 on success, otherwise a negative error value
1458 * @retval #CAMERA_ERROR_NONE Successful
1459 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1460 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1461 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1462 * @retval #CAMERA_ERROR_INVALID_OPERATION Display type is incorrect
1463 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1464 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1465 * @see camera_start_preview()
1466 * @see camera_get_display_rotation()
1468 int camera_set_display_rotation(camera_h camera, camera_rotation_e rotation);
1471 * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE
1472 * @brief Gets the display rotation.
1474 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1475 * @param[in] camera The handle to the camera
1476 * @param[out] rotation The display rotation
1477 * @return @c 0 on success, otherwise a negative error value
1478 * @retval #CAMERA_ERROR_NONE Successful
1479 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1480 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1481 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1482 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1483 * @see camera_set_display_rotation()
1485 int camera_get_display_rotation(camera_h camera, camera_rotation_e *rotation);
1488 * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE
1489 * @brief Sets the display flip.
1491 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1492 * @param[in] camera The handle to the camera
1493 * @param[in] flip The display flip
1494 * @return @c 0 on success, otherwise a negative error value
1495 * @retval #CAMERA_ERROR_NONE Successful
1496 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1497 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1498 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1499 * @retval #CAMERA_ERROR_INVALID_OPERATION Display type is incorrect
1500 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1501 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1502 * @see camera_get_display_flip()
1504 int camera_set_display_flip(camera_h camera, camera_flip_e flip);
1507 * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE
1508 * @brief Gets the display flip.
1510 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1511 * @param[in] camera The handle to the camera
1512 * @param[out] flip The display flip
1513 * @return @c 0 on success, otherwise a negative error value
1514 * @retval #CAMERA_ERROR_NONE Successful
1515 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1516 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1517 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1518 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1519 * @see camera_set_display_flip()
1521 int camera_get_display_flip(camera_h camera, camera_flip_e *flip);
1524 * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE
1525 * @brief Sets the visible property for display.
1527 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1528 * @param[in] camera The handle to the camera
1529 * @param[in] visible The display visibility property
1531 * @return @c 0 on success, otherwise a negative error value
1532 * @retval #CAMERA_ERROR_NONE Successful
1533 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1534 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1535 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1536 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1537 * @see camera_is_display_visible()
1539 int camera_set_display_visible(camera_h camera, bool visible);
1542 * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE
1543 * @brief Gets the visible property of display.
1545 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1546 * @param[in] camera The handle to the camera
1547 * @param[out] visible @c true if camera display is visible, otherwise @c false
1549 * @return @c 0 on success, otherwise a negative error value
1550 * @retval #CAMERA_ERROR_NONE Successful
1551 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1552 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1553 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1554 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1555 * @see camera_set_display_visible()
1557 int camera_is_display_visible(camera_h camera, bool *visible);
1560 * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE
1561 * @brief Sets the display mode.
1563 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1564 * @param[in] camera The handle to the camera
1565 * @param[in] mode The display mode
1567 * @return @c 0 on success, otherwise a negative error value
1568 * @retval #CAMERA_ERROR_NONE Successful
1569 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1570 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1571 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1572 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1573 * @see camera_get_display_mode()
1575 int camera_set_display_mode(camera_h camera, camera_display_mode_e mode);
1578 * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE
1579 * @brief Gets the display mode.
1581 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1582 * @param[in] camera The handle to the camera
1583 * @param[out] mode The display mode
1585 * @return @c 0 on success, otherwise a negative error value
1586 * @retval #CAMERA_ERROR_NONE Successful
1587 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1588 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1589 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1590 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1591 * @see camera_set_display_mode()
1593 int camera_get_display_mode(camera_h camera, camera_display_mode_e *mode);
1596 * @brief Sets the hint for display reuse.
1597 * @details If the hint is set to true, the display will be reused when the camera device is changed with camera_change_device().
1599 * @remarks If the current display type is #CAMERA_DISPLAY_TYPE_NONE, this function will return #CAMERA_ERROR_INVALID_OPERATION.
1600 * @param[in] camera The handle to the camera
1601 * @param[in] hint The hint for display reuse; true - reuse the display, false - do not reuse
1602 * @return @c 0 on success, otherwise a negative error value
1603 * @retval #CAMERA_ERROR_NONE Successful
1604 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1605 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1606 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
1607 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1608 * @pre The camera state must be set to #CAMERA_STATE_PREVIEW.
1609 * @see camera_get_display_reuse_hint()
1610 * @see camera_change_device()
1612 int camera_set_display_reuse_hint(camera_h camera, bool hint);
1615 * @brief Gets the hint for display reuse.
1617 * @remarks If the current display type is #CAMERA_DISPLAY_TYPE_NONE, this function will return #CAMERA_ERROR_INVALID_OPERATION.
1618 * @param[in] camera The handle to the camera
1619 * @param[out] hint The hint for display reuse; true - reuse the display, false - do not reuse
1620 * @return @c 0 on success, otherwise a negative error value
1621 * @retval #CAMERA_ERROR_NONE Successful
1622 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1623 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
1624 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1625 * @see camera_set_display_reuse_hint()
1626 * @see camera_change_device()
1628 int camera_get_display_reuse_hint(camera_h camera, bool *hint);
1631 * @brief Sets the resolution of the captured image.
1632 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1633 * @param[in] camera The handle to the camera
1634 * @param[in] width The capture width
1635 * @param[in] height The capture height
1636 * @return @c 0 on success, otherwise a negative error value
1637 * @retval #CAMERA_ERROR_NONE Successful
1638 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1639 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1640 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1641 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1642 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1643 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
1644 * @see camera_start_capture()
1645 * @see camera_get_capture_resolution()
1646 * @see camera_foreach_supported_capture_resolution()
1648 int camera_set_capture_resolution(camera_h camera, int width, int height);
1651 * @brief Gets the resolution of the captured image.
1652 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1653 * @param[in] camera The handle to the camera
1654 * @param[out] width The capture width
1655 * @param[out] height The capture height
1656 * @return @c 0 on success, otherwise a negative error value
1657 * @retval #CAMERA_ERROR_NONE Successful
1658 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1659 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1660 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1661 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1662 * @see camera_set_capture_resolution()
1663 * @see camera_foreach_supported_capture_resolution()
1665 int camera_get_capture_resolution(camera_h camera, int *width, int *height);
1672 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
1677 * @brief Retrieves all supported camera captured resolutions by invoking the callback function once for each supported camera capture resolution.
1679 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1680 * @param[in] camera The handle to the camera
1681 * @param[in] callback The callback function to register
1682 * @param[in] user_data The user data to be passed to the callback function
1683 * @return @c 0 on success, otherwise a negative error value
1684 * @retval #CAMERA_ERROR_NONE Successful
1685 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1686 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1687 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1688 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1689 * @post This function invokes camera_supported_capture_resolution_cb() repeatedly to retrieve each supported capture resolution.
1690 * @see camera_set_capture_resolution()
1691 * @see camera_get_capture_resolution()
1692 * @see camera_supported_capture_resolution_cb()
1694 int camera_foreach_supported_capture_resolution(camera_h camera, camera_supported_capture_resolution_cb callback, void *user_data);
1701 * @addtogroup CAPI_MEDIA_CAMERA_MODULE
1706 * @brief Sets the format of an image to be captured.
1708 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1709 * @remarks This function should be called before capturing (see camera_start_capture()).
1710 * @param[in] camera The handle to the camera
1711 * @param[out] format The format of the image to be captured
1712 * @return @c 0 on success, otherwise a negative error value
1713 * @retval #CAMERA_ERROR_NONE Successful
1714 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1715 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1716 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1717 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1718 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1719 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
1720 * @see camera_start_capture()
1721 * @see camera_get_capture_format()
1722 * @see camera_foreach_supported_capture_format()
1724 int camera_set_capture_format(camera_h camera, camera_pixel_format_e format);
1727 * @brief Gets the format of the image to be captured.
1729 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1730 * @param[in] camera The handle to the camera
1731 * @param[out] format The format of the image to be captured
1732 * @return @c 0 on success, otherwise a negative error value
1733 * @retval #CAMERA_ERROR_NONE Successful
1734 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1735 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1736 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1737 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1738 * @see camera_set_capture_format()
1739 * @see camera_foreach_supported_capture_format()
1741 int camera_get_capture_format(camera_h camera, camera_pixel_format_e *format);
1748 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
1753 * @brief Retrieves all supported camera capture formats by invoking the callback function once for each supported camera capture format.
1755 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1756 * @param[in] camera The handle to the camera
1757 * @param[in] callback The callback function to be invoked
1758 * @param[in] user_data The user data to be passed to the callback function
1759 * @return @c 0 on success, otherwise a negative error value
1760 * @retval #CAMERA_ERROR_NONE Successful
1761 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1762 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1763 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1764 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1765 * @post This function invokes camera_supported_capture_format_cb() repeatedly to retrieve each supported capture format.
1766 * @see camera_set_capture_format()
1767 * @see camera_get_capture_format()
1768 * @see camera_supported_capture_format_cb()
1770 int camera_foreach_supported_capture_format(camera_h camera, camera_supported_capture_format_cb callback, void *user_data);
1777 * @addtogroup CAPI_MEDIA_CAMERA_MODULE
1782 * @brief Sets the preview data format.
1783 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1784 * @remarks This function should be called before previewing (see camera_start_preview()).
1785 * @param[in] camera The handle to the camera
1786 * @param[in] format The preview data format
1787 * @return @c 0 on success, otherwise a negative error value
1788 * @retval #CAMERA_ERROR_NONE Successful
1789 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1790 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1791 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1792 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1793 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1794 * @pre The camera state must be set to #CAMERA_STATE_CREATED.
1795 * @see camera_start_preview()
1796 * @see camera_get_preview_format()
1797 * @see camera_foreach_supported_preview_format()
1799 int camera_set_preview_format(camera_h camera, camera_pixel_format_e format);
1802 * @brief Gets the format of the preview stream.
1803 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1804 * @param[in] camera The handle to the camera
1805 * @param[out] format The preview data format
1806 * @return @c 0 on success, otherwise a negative error value
1807 * @retval #CAMERA_ERROR_NONE Successful
1808 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1809 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1810 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1811 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1812 * @see camera_set_preview_format()
1813 * @see camera_foreach_supported_preview_format()
1815 int camera_get_preview_format(camera_h camera, camera_pixel_format_e *format);
1818 * @brief Gets the facing direction of camera module.
1820 * @param[in] camera The handle to the camera
1821 * @param[out] facing_direction The facing direction of camera module
1822 * @return @c 0 on success, otherwise a negative error value
1823 * @retval #CAMERA_ERROR_NONE Successful
1824 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1825 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
1826 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1827 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1829 int camera_get_facing_direction(camera_h camera, camera_facing_direction_e *facing_direction);
1832 * @brief Gets the camera's flash state.
1834 * @param[in] device The hardware camera to access
1835 * @param[out] state The current flash state
1836 * @return @c 0 on success, otherwise a negative error value
1837 * @retval #CAMERA_ERROR_NONE Successful
1838 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1839 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
1840 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1841 * @see camera_attr_set_flash_mode()
1842 * @see camera_attr_get_flash_mode()
1844 int camera_get_flash_state(camera_device_e device, camera_flash_state_e *state);
1847 * @brief Sets a callback function to be called for extra preview frames.
1849 * @param[in] camera The handle to the camera
1850 * @param[in] callback The callback function to be registered
1851 * @param[in] user_data The user data to be passed to the callback function
1852 * @return @c 0 on success, otherwise a negative error value
1853 * @retval #CAMERA_ERROR_NONE Successful
1854 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1855 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1856 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1857 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
1858 * @see camera_start_preview()
1859 * @see camera_unset_extra_preview_cb()
1860 * @see camera_extra_preview_cb()
1862 int camera_set_extra_preview_cb(camera_h camera, camera_extra_preview_cb callback, void *user_data);
1865 * @brief Unsets the callback function.
1867 * @param[in] camera The handle to the camera
1868 * @return @c 0 on success, otherwise a negative error value
1869 * @retval #CAMERA_ERROR_NONE Successful
1870 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1871 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1872 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1873 * @see camera_set_extra_preview_cb()
1875 int camera_unset_extra_preview_cb(camera_h camera);
1878 * @brief Sets the extra preview stream format.
1880 * @param[in] camera The handle to the camera
1881 * @param[in] stream_id The id of extra preview stream
1882 * @param[in] pixel_format The pixel format of extra preview stream
1883 * @param[in] width The width of extra preview stream
1884 * @param[in] height The height of extra preview stream
1885 * @param[in] fps The fps of extra preview stream
1886 * @return @c 0 on success, otherwise a negative error value
1887 * @retval #CAMERA_ERROR_NONE Successful
1888 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1889 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1890 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1891 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1892 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
1893 * @see camera_start_preview()
1894 * @see camera_set_extra_preview_cb()
1895 * @see camera_unset_extra_preview_cb()
1896 * @see camera_get_extra_preview_stream_format()
1898 int camera_set_extra_preview_stream_format(camera_h camera, int stream_id, camera_pixel_format_e pixel_format, int width, int height, int fps);
1901 * @brief Gets the extra preview stream format.
1903 * @param[in] camera The handle to the camera
1904 * @param[in] stream_id The id of extra preview stream
1905 * @param[out] pixel_format The pixel format of extra preview stream
1906 * @param[out] width The width of extra preview stream
1907 * @param[out] height The height of extra preview stream
1908 * @param[out] fps The fps of extra preview stream
1909 * @return @c 0 on success, otherwise a negative error value
1910 * @retval #CAMERA_ERROR_NONE Successful
1911 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1912 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1913 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
1914 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1915 * @pre The camera state must be set to #CAMERA_STATE_PREVIEW.
1916 * @see camera_start_preview()
1917 * @see camera_set_extra_preview_cb()
1918 * @see camera_unset_extra_preview_cb()
1919 * @see camera_set_extra_preview_stream_format()
1921 int camera_get_extra_preview_stream_format(camera_h camera, int stream_id, camera_pixel_format_e *pixel_format, int *width, int *height, int *fps);
1928 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
1933 * @brief Retrieves all supported camera preview formats by invoking the callback function once for each supported camera preview format.
1934 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1935 * @param[in] camera The handle to the camera
1936 * @param[in] callback The callback function to be invoked
1937 * @param[in] user_data The user data to be passed to the callback function
1938 * @return @c 0 on success, otherwise a negative error value
1939 * @retval #CAMERA_ERROR_NONE Successful
1940 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1941 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1942 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1943 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1944 * @post This function invokes camera_supported_preview_format_cb() repeatedly to retrieve each supported preview format.
1945 * @see camera_set_preview_format()
1946 * @see camera_get_preview_format()
1947 * @see camera_supported_preview_format_cb()
1949 int camera_foreach_supported_preview_format(camera_h camera, camera_supported_preview_format_cb callback, void *user_data);
1952 * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
1953 * @brief Gets the face detection feature's supported state.
1954 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1955 * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
1956 * @param[in] camera The handle to the camera
1957 * @return @c true if supported, otherwise @c false
1958 * @exception #CAMERA_ERROR_NONE Successful
1959 * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1960 * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1961 * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1962 * @see camera_start_face_detection()
1963 * @see camera_stop_face_detection()
1965 bool camera_is_supported_face_detection(camera_h camera);
1968 * @brief Gets the zero shutter lag feature's supported state.
1969 * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
1970 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1971 * @remarks If supporting zero shutter lag, continuous shot can be done with full capture size. \n
1972 * The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
1973 * @param[in] camera The handle to the camera
1974 * @return @c true if supported, otherwise @c false
1975 * @exception #CAMERA_ERROR_NONE Successful
1976 * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1977 * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1978 * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1980 bool camera_is_supported_zero_shutter_lag(camera_h camera);
1983 * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
1984 * @brief Gets the camera device count.
1985 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1986 * @remarks If the device supports primary and secondary camera, this returns @c 2. If @c 1 is returned, the device only supports primary camera.
1987 * @param[in] camera The handle to the camera
1988 * @param[out] device_count The device count
1989 * @return @c 0 on success, otherwise a negative error value
1990 * @retval #CAMERA_ERROR_NONE Successful
1991 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
1992 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
1993 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
1994 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
1996 int camera_get_device_count(camera_h camera, int *device_count);
1999 * @brief Gets the media packet preview callback feature's supported state.
2000 * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
2001 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2002 * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
2003 * @param[in] camera The handle to the camera
2004 * @return @c true if supported, otherwise @c false
2005 * @exception #CAMERA_ERROR_NONE Successful
2006 * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2007 * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2008 * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2011 bool camera_is_supported_media_packet_preview_cb(camera_h camera);
2014 * @brief Gets the extra preview feature's supported state.
2015 * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
2017 * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
2018 * @param[in] camera The handle to the camera
2019 * @return @c true if supported, otherwise @c false
2020 * @exception #CAMERA_ERROR_NONE Successful
2021 * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2023 bool camera_is_supported_extra_preview(camera_h camera);
2030 * @addtogroup CAPI_MEDIA_CAMERA_MODULE
2035 * @brief Registers a callback function to be called once per frame when previewing.
2036 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2037 * @remarks This callback does not work in the video recorder mode.\n
2038 * Before 4.0, the only allowed state for calling this function was #CAMERA_STATE_CREATED.\n
2039 * Since 4.0, #CAMERA_STATE_PREVIEW has been added as an allowed state,\n
2040 * so that this function could be called before previewing or even while previewing.\n
2041 * A registered callback is called on the internal thread of the camera.\n
2042 * A video frame can be retrieved using a registered callback,\n
2043 * and the buffer is only available in a registered callback.\n
2044 * Since tizen 3.0, if you change the buffer in a registered callback,\n
2045 * it could not be displayed on the device in case of copied buffer.\n
2046 * and if camera_is_supported_media_packet_preview_cb() returns false,\n
2047 * it's copied buffer case.
2048 * @param[in] camera The handle to the camera
2049 * @param[in] callback The callback function to be registered
2050 * @param[in] user_data The user data to be passed to the callback function
2051 * @return @c 0 on success, otherwise a negative error value
2052 * @retval #CAMERA_ERROR_NONE Successful
2053 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2054 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2055 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2056 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2057 * @pre Before 4.0 : The camera state must be set to #CAMERA_STATE_CREATED.\n
2058 * Since 4.0 : The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
2059 * @see camera_start_preview()
2060 * @see camera_unset_preview_cb()
2061 * @see camera_preview_cb()
2063 int camera_set_preview_cb(camera_h camera, camera_preview_cb callback, void *user_data);
2066 * @brief Unregisters the callback function.
2067 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2068 * @param[in] camera The handle to the camera
2069 * @return @c 0 on success, otherwise a negative error value
2070 * @retval #CAMERA_ERROR_NONE Successful
2071 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2072 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2073 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2074 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2075 * @see camera_set_preview_cb()
2077 int camera_unset_preview_cb(camera_h camera);
2080 * @brief Registers a media packet callback function to be called once per frame when previewing.
2081 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2082 * @remarks This callback does not work in video recorder mode.\n
2083 * This function should be called before previewing (see camera_start_preview())\n
2084 * A registered callback is called on the internal thread of the camera.\n
2085 * A video frame can be retrieved using a registered callback as a media packet.\n
2086 * The callback function holds the same buffer that will be drawn on the display device.\n
2087 * So if you change the media packet in a registered callback, it will be displayed on the device\n
2088 * and the media packet is available until it's destroyed by media_packet_destroy().
2089 * @param[in] camera The handle to the camera
2090 * @param[in] callback The callback function to be registered
2091 * @param[in] user_data The user data to be passed to the callback function
2092 * @return 0 on success, otherwise a negative error value
2093 * @retval #CAMERA_ERROR_NONE Successful
2094 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2095 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2096 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2097 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2098 * @pre The camera's state should be #CAMERA_STATE_CREATED.
2099 * @see camera_start_preview()
2100 * @see camera_unset_media_packet_preview_cb()
2101 * @see camera_media_packet_preview_cb()
2103 int camera_set_media_packet_preview_cb(camera_h camera, camera_media_packet_preview_cb callback, void *user_data);
2106 * @brief Unregisters the media packet callback function.
2107 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2108 * @param[in] camera The handle to the camera
2109 * @return @c 0 on success, otherwise a negative error value
2110 * @retval #CAMERA_ERROR_NONE Successful
2111 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2112 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2113 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2114 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2115 * @see camera_set_media_packet_preview_cb()
2117 int camera_unset_media_packet_preview_cb(camera_h camera);
2120 * @brief Registers a callback function to be called when the camera state changes.
2121 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2122 * @param[in] camera The handle to the camera
2123 * @param[in] callback The callback function to register
2124 * @param[in] user_data The user data to be passed to the callback function
2125 * @return @c 0 on success, otherwise a negative error value
2126 * @retval #CAMERA_ERROR_NONE Successful
2127 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2128 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2129 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2130 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2131 * @post This function will invoke camera_state_changed_cb() when the camera state changes.
2132 * @see camera_unset_state_changed_cb()
2133 * @see camera_state_changed_cb()
2135 int camera_set_state_changed_cb(camera_h camera, camera_state_changed_cb callback, void *user_data);
2138 * @brief Unregisters the callback function.
2139 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2140 * @param[in] camera The handle to the camera
2141 * @return @c 0 on success, otherwise a negative error value
2142 * @retval #CAMERA_ERROR_NONE Successful
2143 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2144 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2145 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2146 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2147 * @see camera_set_state_changed_cb()
2149 int camera_unset_state_changed_cb(camera_h camera);
2152 * @brief Registers a callback function to be called when the camera is interrupted by policy.
2153 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2154 * @param[in] camera The handle to the camera
2155 * @param[in] callback The callback function to register
2156 * @param[in] user_data The user data to be passed to the callback function
2157 * @return @c 0 on success, otherwise a negative error value
2158 * @retval #CAMERA_ERROR_NONE Successful
2159 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2160 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2161 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2162 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2163 * @see camera_unset_interrupted_cb()
2164 * @see camera_interrupted_cb()
2166 int camera_set_interrupted_cb(camera_h camera, camera_interrupted_cb callback, void *user_data);
2169 * @brief Unregisters the callback function.
2170 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2171 * @param[in] camera The handle to the camera
2172 * @return @c 0 on success, otherwise a negative error value
2173 * @retval #CAMERA_ERROR_NONE Successful
2174 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2175 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2176 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2177 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2178 * @see camera_set_interrupted_cb()
2180 int camera_unset_interrupted_cb(camera_h camera);
2183 * @brief Registers a callback function to be called when the camera interrupt is started by policy.
2185 * @param[in] camera The handle to the camera
2186 * @param[in] callback The callback function to register
2187 * @param[in] user_data The user data to be passed to the callback function
2188 * @return @c 0 on success, otherwise a negative error value
2189 * @retval #CAMERA_ERROR_NONE Successful
2190 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2191 * @see camera_unset_interrupt_started_cb()
2192 * @see camera_interrupt_started_cb()
2194 int camera_set_interrupt_started_cb(camera_h camera, camera_interrupt_started_cb callback, void *user_data);
2197 * @brief Unregisters the callback function.
2199 * @param[in] camera The handle to the camera
2200 * @return @c 0 on success, otherwise a negative error value
2201 * @retval #CAMERA_ERROR_NONE Successful
2202 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2203 * @see camera_set_interrupt_started_cb()
2205 int camera_unset_interrupt_started_cb(camera_h camera);
2208 * @brief Registers a callback function to be called when the auto-focus state changes.
2209 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2210 * @param[in] camera The handle to the camera
2211 * @param[in] callback The callback function to register
2212 * @param[in] user_data The user data to be passed to the callback function
2213 * @return @c 0 on success, otherwise a negative error value
2214 * @retval #CAMERA_ERROR_NONE Successful
2215 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2216 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2217 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2218 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2219 * @post This function will invoke camera_focus_changed_cb() when the auto-focus state changes.
2220 * @see camera_start_focusing()
2221 * @see camera_cancel_focusing()
2222 * @see camera_unset_focus_changed_cb()
2223 * @see camera_focus_changed_cb()
2225 int camera_set_focus_changed_cb(camera_h camera, camera_focus_changed_cb callback, void *user_data);
2228 * @brief Unregisters the callback function.
2229 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2230 * @param[in] camera The handle to the camera
2231 * @return @c 0 on success, otherwise a negative error value
2232 * @retval #CAMERA_ERROR_NONE Successful
2233 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2234 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2235 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2236 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2237 * @see camera_set_focus_changed_cb()
2239 int camera_unset_focus_changed_cb(camera_h camera);
2242 * @brief Registers a callback function to be called when an asynchronous operation error occurs.
2243 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2244 * @remarks This callback informs about a critical error situation.\n
2245 * When this callback is invoked, the user should release the resource and terminate the application.\n
2246 * In case of errors, one of the following codes will occur:\n
2247 * #CAMERA_ERROR_DEVICE,\n
2248 * #CAMERA_ERROR_INVALID_OPERATION,\n
2249 * #CAMERA_ERROR_OUT_OF_MEMORY.
2250 * @param[in] camera The handle to the camera
2251 * @param[in] callback The callback function to register
2252 * @param[in] user_data The user data to be passed to the callback function
2253 * @return @c 0 on success, otherwise a negative error value
2254 * @retval #CAMERA_ERROR_NONE Successful
2255 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2256 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2257 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2258 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2259 * @post This function will invoke camera_error_cb() when an asynchronous operation error occurs.
2261 * @see camera_unset_error_cb()
2262 * @see camera_error_cb()
2264 int camera_set_error_cb(camera_h camera, camera_error_cb callback, void *user_data);
2267 * @brief Unregisters the callback function.
2268 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2269 * @param[in] camera The handle to the camera
2270 * @return @c 0 on success, otherwise a negative error value
2271 * @retval #CAMERA_ERROR_NONE Successful
2272 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2273 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2274 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2275 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2276 * @see camera_set_error_cb()
2278 int camera_unset_error_cb(camera_h camera);
2281 * @brief Gets the state of camera device.
2283 * @param[in] device The hardware camera type
2284 * @param[out] state The current state of the device
2285 * @return @c 0 on success, otherwise a negative error value
2286 * @retval #CAMERA_ERROR_NONE Successful
2287 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2288 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2289 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
2291 int camera_get_device_state(camera_device_e device, camera_device_state_e *state);
2294 * @brief Registers a callback function to be called when the camera device state changes.
2296 * @param[in] callback The callback function to register
2297 * @param[in] user_data The user data to be passed to the callback function
2298 * @param[out] cb_id The id of registered callback
2299 * @return @c 0 on success, otherwise a negative error value
2300 * @retval #CAMERA_ERROR_NONE Successful
2301 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2302 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2303 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
2304 * @retval #CAMERA_ERROR_OUT_OF_MEMORY Out of memory
2305 * @post This function will invoke camera_device_state_changed_cb() when the camera device's state changes.
2306 * @see camera_remove_device_state_changed_cb()
2307 * @see camera_device_state_changed_cb()
2309 int camera_add_device_state_changed_cb(camera_device_state_changed_cb callback, void *user_data, int *cb_id);
2312 * @brief Unregisters the callback function.
2314 * @param[in] cb_id The id of registered callback
2315 * @return @c 0 on success, otherwise a negative error value
2316 * @retval #CAMERA_ERROR_NONE Successful
2317 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2318 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2319 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
2320 * @see camera_add_device_state_changed_cb()
2322 int camera_remove_device_state_changed_cb(int cb_id);
2329 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
2334 * @brief Called to get each supported auto-focus mode.
2335 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2336 * @param[in] mode The supported auto-focus mode
2337 * @param[in] user_data The user data passed from the foreach function
2338 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
2339 * @pre camera_attr_foreach_supported_af_mode() will invoke this callback.
2340 * @see camera_attr_foreach_supported_af_mode()
2342 typedef bool (*camera_attr_supported_af_mode_cb)(camera_attr_af_mode_e mode, void *user_data);
2345 * @brief Called to get each supported exposure mode.
2346 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2347 * @param[in] mode The supported exposure mode
2348 * @param[in] user_data The user data passed from the foreach function
2349 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
2350 * @pre camera_attr_foreach_supported_exposure_mode() will invoke this callback.
2351 * @see camera_attr_foreach_supported_exposure_mode()
2352 * @see #camera_attr_exposure_mode_e
2354 typedef bool (*camera_attr_supported_exposure_mode_cb)(camera_attr_exposure_mode_e mode, void *user_data);
2357 * @brief Called to get each supported ISO mode.
2358 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2359 * @param[in] iso The supported ISO mode
2360 * @param[in] user_data The user data passed from the foreach function
2361 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
2362 * @pre camera_attr_foreach_supported_iso() will invoke this callback.
2363 * @see camera_attr_foreach_supported_iso()
2365 typedef bool (*camera_attr_supported_iso_cb)(camera_attr_iso_e iso, void *user_data);
2368 * @brief Called to get each supported white balance.
2369 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2370 * @param[in] wb The supported white balance mode
2371 * @param[in] user_data The user data passed from the foreach function
2372 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
2373 * @pre camera_attr_foreach_supported_whitebalance() will invoke this callback.
2374 * @see camera_attr_foreach_supported_whitebalance()
2375 * @see #camera_attr_whitebalance_e
2377 typedef bool (*camera_attr_supported_whitebalance_cb)(camera_attr_whitebalance_e wb, void *user_data);
2380 * @brief Called to get each supported effect mode.
2381 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2382 * @param[in] effect The supported effect mode
2383 * @param[in] user_data The user data passed from the foreach function
2384 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
2385 * @pre camera_attr_foreach_supported_effect() will invoke this callback.
2386 * @see camera_attr_foreach_supported_effect()
2388 typedef bool (*camera_attr_supported_effect_cb)(camera_attr_effect_mode_e effect, void *user_data);
2391 * @brief Called to get each supported scene mode.
2392 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2393 * @param[in] mode The supported scene mode
2394 * @param[in] user_data The user data passed from the foreach function
2395 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
2396 * @pre camera_attr_foreach_supported_scene_mode() will invoke this callback.
2397 * @see camera_attr_foreach_supported_scene_mode()
2398 * @see #camera_attr_scene_mode_e
2400 typedef bool (*camera_attr_supported_scene_mode_cb)(camera_attr_scene_mode_e mode, void *user_data);
2403 * @brief Called to get each supported flash mode.
2404 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2405 * @param[in] mode The supported flash mode
2406 * @param[in] user_data The user data passed from the foreach function
2407 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
2408 * @pre camera_attr_foreach_supported_flash_mode() will invoke this callback.
2409 * @see camera_attr_foreach_supported_flash_mode()
2411 typedef bool (*camera_attr_supported_flash_mode_cb)(camera_attr_flash_mode_e mode, void *user_data);
2414 * @brief Called to get each supported FPS mode.
2415 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2416 * @param[in] fps The supported FPS mode
2417 * @param[in] user_data The user data passed from the foreach function
2418 * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop
2419 * @pre camera_attr_foreach_supported_fps() will invoke this callback.
2420 * @see camera_attr_foreach_supported_fps()
2422 typedef bool (*camera_attr_supported_fps_cb)(camera_attr_fps_e fps, void *user_data);
2425 * @brief Called to get each supported stream flip mode.
2426 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2427 * @param[in] flip The supported stream flip mode
2428 * @param[in] user_data The user data passed from the foreach function
2429 * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop
2430 * @pre camera_attr_foreach_supported_stream_flip() will invoke this callback.
2431 * @see camera_attr_foreach_supported_stream_flip()
2433 typedef bool (*camera_attr_supported_stream_flip_cb)(camera_flip_e flip, void *user_data);
2436 * @brief Called to get each supported stream rotation mode.
2437 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2438 * @param[in] rotation The supported stream rotation mode
2439 * @param[in] user_data The user data passed from the foreach function
2440 * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop
2441 * @pre camera_attr_foreach_supported_stream_rotation() will invoke this callback.
2442 * @see camera_attr_foreach_supported_stream_rotation()
2444 typedef bool (*camera_attr_supported_stream_rotation_cb)(camera_rotation_e rotation, void *user_data);
2447 * @brief Called to get each supported theater mode.
2448 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2449 * @param[in] mode The supported theater mode
2450 * @param[in] user_data The user data passed from the foreach function
2451 * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop
2452 * @pre camera_attr_foreach_supported_theater_mode() will invoke this callback.
2453 * @see camera_attr_foreach_supported_theater_mode()
2455 typedef bool (*camera_attr_supported_theater_mode_cb)(camera_attr_theater_mode_e mode, void *user_data);
2458 * @brief Called to get each supported PTZ (Pan Tilt Zoom) type.
2460 * @param[in] type The supported ptz type
2461 * @param[in] user_data The user data passed from the foreach function
2462 * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop
2463 * @pre camera_attr_foreach_supported_ptz_mode() will invoke this callback.
2464 * @see camera_attr_foreach_supported_ptz_mode()
2466 typedef bool (*camera_attr_supported_ptz_type_cb)(camera_attr_ptz_type_e type, void *user_data);
2474 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
2479 * @brief Sets the preview frame rate.
2480 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2481 * @remarks This function should be called before previewing (see camera_start_preview()).
2482 * @param[in] camera The handle to the camera
2483 * @param[in] fps The frame rate
2484 * @return @c 0 on success, otherwise a negative error value
2485 * @retval #CAMERA_ERROR_NONE Successful
2486 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2487 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2488 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
2489 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2490 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2491 * @pre The camera state must be set to #CAMERA_STATE_CREATED.
2492 * @see camera_start_preview()
2493 * @see camera_attr_get_preview_fps()
2494 * @see camera_attr_foreach_supported_fps()
2496 int camera_attr_set_preview_fps(camera_h camera, camera_attr_fps_e fps);
2499 * @brief Gets the frames per second of a preview video stream.
2500 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2501 * @param[in] camera The handle to the camera
2502 * @param[out] fps The frames per second of the preview video stream
2503 * @return @c 0 on success, otherwise a negative error value
2504 * @retval #CAMERA_ERROR_NONE Successful
2505 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2506 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2507 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2508 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2509 * @see camera_attr_set_preview_fps()
2510 * @see camera_attr_foreach_supported_fps()
2512 int camera_attr_get_preview_fps(camera_h camera, camera_attr_fps_e *fps);
2515 * @brief Sets the bitrate of extra preview.
2517 * @param[in] camera The handle to the camera
2518 * @param[in] stream_id The id of extra preview stream
2519 * @param[in] bitrate The bitrate(bps) of extra preview
2520 * @return @c 0 on success, otherwise a negative error value
2521 * @retval #CAMERA_ERROR_NONE Successful
2522 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2523 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
2524 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2525 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2526 * @see camera_attr_get_extra_preview_bitrate()
2528 int camera_attr_set_extra_preview_bitrate(camera_h camera, int stream_id, int bitrate);
2531 * @brief Gets the bitrate of extra preview.
2533 * @param[in] camera The handle to the camera
2534 * @param[in] stream_id The id of extra preview stream
2535 * @param[out] bitrate The bitrate(bps) of extra preview stream
2536 * @return @c 0 on success, otherwise a negative error value
2537 * @retval #CAMERA_ERROR_NONE Successful
2538 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2539 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
2540 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2541 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2542 * @see camera_attr_set_extra_preview_bitrate()
2544 int camera_attr_get_extra_preview_bitrate(camera_h camera, int stream_id, int *bitrate);
2547 * @brief Sets the GOP (Group Of Pictures) interval of extra preview.
2549 * @remarks The recommended range is from 1,000 (1 second) to 600,000 (10 minutes). \n
2550 * But, due to codec limitations, it may not apply.
2551 * @param[in] camera The handle to the camera
2552 * @param[in] stream_id The id of extra preview stream
2553 * @param[in] interval The GOP interval of extra preview (millisecond)
2554 * @return @c 0 on success, otherwise a negative error value
2555 * @retval #CAMERA_ERROR_NONE Successful
2556 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2557 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
2558 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2559 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2560 * @see camera_attr_get_extra_preview_gop_interval()
2562 int camera_attr_set_extra_preview_gop_interval(camera_h camera, int stream_id, int interval);
2565 * @brief Gets the GOP (Group Of Pictures) interval of extra preview.
2567 * @param[in] camera The handle to the camera
2568 * @param[in] stream_id The id of extra preview stream
2569 * @param[out] interval The GOP interval of extra preview (millisecond)
2570 * @return @c 0 on success, otherwise a negative error value
2571 * @retval #CAMERA_ERROR_NONE Successful
2572 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2573 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
2574 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2575 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2576 * @see camera_attr_set_extra_preview_gop_interval()
2578 int camera_attr_get_extra_preview_gop_interval(camera_h camera, int stream_id, int *interval);
2581 * @brief Gets the rotation of preview frame.
2583 * @remarks The function should be called in camera_preview_cb(),\n
2584 * otherwise, it will return #CAMERA_ERROR_INVALID_OPERATION.
2585 * @param[in] camera The handle to the camera
2586 * @param[out] rotation The rotation of preview frame
2587 * @return @c 0 on success, otherwise a negative error value
2588 * @retval #CAMERA_ERROR_NONE Successful
2589 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
2590 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2591 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2593 int camera_attr_get_preview_frame_rotation(camera_h camera, camera_rotation_e *rotation);
2600 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
2605 * @brief Retrieves all supported FPS modes by invoking the callback function once for each supported FPS mode.
2606 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2607 * @param[in] camera The handle to the camera
2608 * @param[in] callback The callback function to invoke
2609 * @param[in] user_data The user data to be passed to the callback function
2610 * @return @c 0 on success, otherwise a negative error value
2611 * @retval #CAMERA_ERROR_NONE Successful
2612 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2613 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2614 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2615 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2616 * @post This function invokes camera_attr_supported_fps_cb() repeatedly to get each supported FPS mode.
2617 * @see camera_attr_set_preview_fps()
2618 * @see camera_attr_get_preview_fps()
2619 * @see camera_attr_supported_fps_cb()
2621 int camera_attr_foreach_supported_fps(camera_h camera, camera_attr_supported_fps_cb callback, void *user_data);
2624 * @brief Retrieves all supported FPS modes by invoking the callback function once for each supported FPS mode.
2625 * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
2626 * @param[in] camera The handle to the camera
2627 * @param[in] width Required preview resolution's width
2628 * @param[in] height Required preview resolution's height
2629 * @param[in] callback The callback function to invoke
2630 * @param[in] user_data The user data to be passed to the callback function
2631 * @return @c 0 on success, otherwise a negative error value
2632 * @retval #CAMERA_ERROR_NONE Successful
2633 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2634 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2635 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2636 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2637 * @post This function invokes camera_attr_supported_fps_cb() repeatedly to get each supported FPS mode.
2638 * @see camera_attr_set_preview_fps()
2639 * @see camera_attr_get_preview_fps()
2640 * @see camera_attr_supported_fps_cb()
2642 int camera_attr_foreach_supported_fps_by_resolution(camera_h camera, int width, int height, camera_attr_supported_fps_cb callback, void *user_data);
2649 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
2654 * @brief Sets quality of the image.
2655 * @details The range for image quality is 1 to 100. If @a quality is out of range, #CAMERA_ERROR_INVALID_PARAMETER error occurred.
2656 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2657 * @param[in] camera The handle to the camera
2658 * @param[in] quality The quality of image (1 ~ 100)
2659 * @return @c 0 on success, otherwise a negative error value
2660 * @retval #CAMERA_ERROR_NONE Successful
2661 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2662 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2663 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
2664 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2665 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2666 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
2667 * @see camera_start_preview()
2668 * @see camera_attr_get_image_quality()
2670 int camera_attr_set_image_quality(camera_h camera, int quality);
2673 * @brief Gets the quality of a still image, which is captured.
2674 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2675 * @param[in] camera The handle to the camera
2676 * @param[out] quality The quality of the image(1 ~ 100)
2677 * @return @c 0 on success, otherwise a negative error value
2678 * @retval #CAMERA_ERROR_NONE Successful
2679 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2680 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2681 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2682 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2683 * @see camera_attr_set_image_quality()
2685 int camera_attr_get_image_quality(camera_h camera, int *quality);
2688 * @brief Gets the bit rate of encoded preview.
2690 * @param[in] camera The handle to the camera
2691 * @param[out] bitrate The bit rate of encoded preview
2692 * @return @c 0 on success, otherwise a negative error value
2693 * @retval #CAMERA_ERROR_NONE Successful
2694 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2695 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
2696 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2697 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2698 * @see camera_attr_set_encoded_preview_bitrate()
2700 int camera_attr_get_encoded_preview_bitrate(camera_h camera, int *bitrate);
2703 * @brief Sets the bit rate of encoded preview.
2705 * @remarks The recommended range is from 1,000 (1 kbps) to 100,000,000 (100 Mbps). \n
2706 * But, due to codec limitations, it may not apply.
2707 * @param[in] camera The handle to the camera
2708 * @param[in] bitrate The bit rate of encoded preview
2709 * @return @c 0 on success, otherwise a negative error value
2710 * @retval #CAMERA_ERROR_NONE Successful
2711 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2712 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
2713 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2714 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2715 * @see camera_attr_get_encoded_preview_bitrate()
2717 int camera_attr_set_encoded_preview_bitrate(camera_h camera, int bitrate);
2720 * @brief Gets the GOP (Group Of Pictures) interval of encoded preview.
2722 * @param[in] camera The handle to the camera
2723 * @param[out] interval The GOP interval of encoded preview (millisecond)
2724 * @return @c 0 on success, otherwise a negative error value
2725 * @retval #CAMERA_ERROR_NONE Successful
2726 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2727 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
2728 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2729 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2730 * @see camera_attr_set_encoded_preview_gop_interval()
2732 int camera_attr_get_encoded_preview_gop_interval(camera_h camera, int *interval);
2735 * @brief Sets the GOP (Group Of Pictures) interval of encoded preview.
2737 * @remarks The recommended range is from 1,000 (1 second) to 600,000 (10 minutes). \n
2738 * But, due to codec limitations, it may not apply.
2739 * @param[in] camera The handle to the camera
2740 * @param[in] interval The GOP interval of encoded preview (millisecond)
2741 * @return @c 0 on success, otherwise a negative error value
2742 * @retval #CAMERA_ERROR_NONE Successful
2743 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2744 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
2745 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2746 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2747 * @see camera_attr_get_encoded_preview_gop_interval()
2749 int camera_attr_set_encoded_preview_gop_interval(camera_h camera, int interval);
2752 * @brief Sets the zoom level.
2753 * @details The range for the zoom level is received from camera_attr_get_zoom_range(). If @a zoom is out of range, the #CAMERA_ERROR_INVALID_PARAMETER error occurs.
2754 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2755 * @param[in] camera The handle to the camera
2756 * @param[in] zoom The zoom level
2757 * @return @c 0 on success, otherwise a negative error value
2758 * @retval #CAMERA_ERROR_NONE Successful
2759 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2760 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2761 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
2762 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2763 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2764 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
2765 * @see camera_attr_get_zoom()
2766 * @see camera_attr_get_zoom_range()
2768 int camera_attr_set_zoom(camera_h camera, int zoom);
2771 * @brief Gets the zoom level.
2772 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2773 * @param[in] camera The handle to the camera
2774 * @param[out] zoom The zoom level
2775 * @return @c 0 on success, otherwise a negative error value
2776 * @retval #CAMERA_ERROR_NONE Successful
2777 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2778 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2779 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2780 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2781 * @see camera_attr_set_zoom()
2782 * @see camera_attr_get_zoom_range()
2784 int camera_attr_get_zoom(camera_h camera, int *zoom);
2787 * @brief Gets the available zoom level.
2788 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2789 * @remarks If the min value is greater than the max value, it means that this feature is not supported.
2790 * @param[in] camera The handle to the camera
2791 * @param[out] min The minimum zoom level
2792 * @param[out] max The maximum zoom level
2793 * @return @c 0 on success, otherwise a negative error value
2794 * @retval #CAMERA_ERROR_NONE Successful
2795 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2796 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2797 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2798 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2799 * @see camera_attr_set_zoom()
2800 * @see camera_attr_get_zoom()
2802 int camera_attr_get_zoom_range(camera_h camera, int *min, int *max);
2806 * @brief Sets the auto focus mode.
2807 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2808 * @param[in] camera The handle to the camera
2809 * @param[in] mode The auto focus mode
2810 * @return @c 0 on success, otherwise a negative error value
2811 * @retval #CAMERA_ERROR_NONE Successful
2812 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2813 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2814 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
2815 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2816 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2817 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
2818 * @see camera_attr_get_af_mode()
2819 * @see camera_attr_foreach_supported_af_mode()
2820 * @see #camera_attr_af_mode_e
2822 int camera_attr_set_af_mode(camera_h camera, camera_attr_af_mode_e mode);
2825 * @brief Gets the auto focus mode.
2826 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2827 * @param[in] camera The handle to the camera
2828 * @param[out] mode The auto focus mode
2829 * @return @c 0 on success, otherwise a negative error value
2830 * @retval #CAMERA_ERROR_NONE Successful
2831 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2832 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2833 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2834 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2835 * @see camera_attr_foreach_supported_af_mode()
2836 * @see camera_attr_set_af_mode()
2837 * @see #camera_attr_af_mode_e
2839 int camera_attr_get_af_mode(camera_h camera, camera_attr_af_mode_e *mode);
2842 * @brief Sets auto focus area.
2843 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2844 * @remarks This API is invalid in the #CAMERA_ATTR_AF_NONE mode.\n
2845 * The coordinates are mapped to preview area.
2846 * @param[in] camera The handle to the camera
2847 * @param[in] x The x coordinates of the focus area
2848 * @param[in] y The y coordinates of the focus area
2849 * @return @c 0 on success, otherwise a negative error value
2850 * @retval #CAMERA_ERROR_NONE Successful
2851 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2852 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2853 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
2854 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
2855 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2856 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2857 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
2858 * @see camera_attr_set_af_mode()
2859 * @see camera_attr_clear_af_area()
2861 int camera_attr_set_af_area(camera_h camera, int x, int y);
2864 * @brief Clears the auto focus area.
2865 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2866 * @remarks The focusing area is set to the center.
2867 * @param[in] camera The handle to the camera
2868 * @return @c 0 on success, otherwise a negative error value
2869 * @retval #CAMERA_ERROR_NONE Successful
2870 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2871 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2872 * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation
2873 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2874 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2875 * @see camera_attr_set_af_mode()
2876 * @see camera_attr_set_af_area()
2878 int camera_attr_clear_af_area(camera_h camera);
2885 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
2890 * @brief Retrieves all supported auto focus modes by invoking the callback function once for each supported auto focus mode.
2891 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2892 * @param[in] camera The handle to the camera
2893 * @param[in] callback The callback function to invoke
2894 * @param[in] user_data The user data to be passed to the callback function
2895 * @return @c 0 on success, otherwise a negative error value
2896 * @retval #CAMERA_ERROR_NONE Successful
2897 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2898 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2899 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2900 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2901 * @post This function invokes camera_attr_supported_af_mode_cb() to get all the supported auto focus modes.
2902 * @see camera_attr_set_af_mode()
2903 * @see camera_attr_get_af_mode()
2904 * @see camera_attr_supported_af_mode_cb()
2906 int camera_attr_foreach_supported_af_mode(camera_h camera, camera_attr_supported_af_mode_cb callback, void *user_data);
2913 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
2918 * @brief Sets the exposure mode.
2919 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2920 * @param[in] camera The handle to the camera
2921 * @param[in] mode The exposure mode
2922 * @return @c 0 on success, otherwise a negative error value
2923 * @retval #CAMERA_ERROR_NONE Successful
2924 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2925 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2926 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
2927 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2928 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2929 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
2930 * @see camera_attr_get_exposure_mode()
2931 * @see camera_attr_foreach_supported_exposure_mode()
2933 int camera_attr_set_exposure_mode(camera_h camera, camera_attr_exposure_mode_e mode);
2936 * @brief Gets the exposure mode.
2937 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2938 * @param[in] camera The handle to the camera
2939 * @param[out] mode The exposure mode
2940 * @return @c 0 on success, otherwise a negative error value
2941 * @retval #CAMERA_ERROR_NONE Successful
2942 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2943 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2944 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2945 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2946 * @see camera_attr_set_exposure_mode()
2947 * @see camera_attr_foreach_supported_exposure_mode()
2949 int camera_attr_get_exposure_mode(camera_h camera, camera_attr_exposure_mode_e *mode);
2956 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
2961 * @brief Retrieves all supported exposure modes by invoking the callback function once for each supported exposure mode.
2962 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2963 * @param[in] camera The handle to the camera
2964 * @param[in] callback The callback function to be invoked
2965 * @param[in] user_data The user data to be passed to the callback function
2966 * @return @c 0 on success, otherwise a negative error value
2967 * @retval #CAMERA_ERROR_NONE Successful
2968 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2969 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2970 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2971 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2972 * @post This function invokes camera_attr_supported_exposure_mode_cb() to get all the supported exposure modes.
2973 * @see camera_attr_set_exposure_mode()
2974 * @see camera_attr_get_exposure_mode()
2975 * @see camera_attr_supported_exposure_mode_cb()
2977 int camera_attr_foreach_supported_exposure_mode(camera_h camera, camera_attr_supported_exposure_mode_cb callback, void *user_data);
2984 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
2989 * @brief Sets the exposure value.
2990 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
2991 * @param[in] camera The handle to the camera
2992 * @param[in] value The exposure value
2993 * @return @c 0 on success, otherwise a negative error value
2994 * @retval #CAMERA_ERROR_NONE Successful
2995 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
2996 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
2997 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
2998 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
2999 * @see camera_attr_get_exposure()
3001 int camera_attr_set_exposure(camera_h camera, int value);
3004 * @brief Gets the exposure value.
3005 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3006 * @param[in] camera The handle to the camera
3007 * @param[out] value The exposure value
3008 * @return @c 0 on success, otherwise a negative error value
3009 * @retval #CAMERA_ERROR_NONE Successful
3010 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3011 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3012 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3013 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3014 * @see camera_attr_set_exposure()
3016 int camera_attr_get_exposure(camera_h camera, int *value);
3019 * @brief Gets the available exposure value.
3020 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3021 * @remarks If the min value is greater than the max value, it means that this feature is not supported.
3022 * @param[in] camera The handle to the camera
3023 * @param[out] min The minimum exposure value
3024 * @param[out] max The maximum exposure value
3025 * @return @c 0 on success, otherwise a negative error value
3026 * @retval #CAMERA_ERROR_NONE Successful
3027 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3028 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3029 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3030 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3031 * @see camera_attr_set_exposure()
3033 int camera_attr_get_exposure_range(camera_h camera, int *min, int *max);
3036 * @brief Sets the ISO level.
3037 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3038 * @param[in] camera The handle to the camera
3039 * @param[in] iso The ISO level
3040 * @return @c 0 on success, otherwise a negative error value
3041 * @retval #CAMERA_ERROR_NONE Successful
3042 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3043 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3044 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3045 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3046 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3047 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
3048 * @see camera_attr_get_iso()
3049 * @see camera_attr_foreach_supported_iso()
3051 int camera_attr_set_iso(camera_h camera, camera_attr_iso_e iso);
3054 * @brief Gets the ISO level.
3055 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3056 * @param[in] camera The handle to the camera
3057 * @param[out] iso The ISO level
3058 * @return @c 0 on success, otherwise a negative error value
3059 * @retval #CAMERA_ERROR_NONE Successful
3060 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3061 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3062 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3063 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3064 * @see camera_attr_set_iso()
3065 * @see camera_attr_foreach_supported_iso()
3067 int camera_attr_get_iso(camera_h camera, camera_attr_iso_e *iso);
3074 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
3079 * @brief Retrieves all supported ISO levels by invoking the callback function once for each supported ISO level.
3080 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3081 * @param[in] camera The handle to the camera
3082 * @param[in] callback The callback function to be invoked
3083 * @param[in] user_data The user data to be passed to the callback function
3084 * @return @c 0 on success, otherwise a negative error value
3085 * @retval #CAMERA_ERROR_NONE Successful
3086 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3087 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3088 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3089 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3090 * @post This function invokes camera_attr_supported_iso_cb() to get all the supported ISO levels.
3091 * @see camera_attr_set_iso()
3092 * @see camera_attr_get_iso()
3093 * @see camera_attr_supported_iso_cb()
3095 int camera_attr_foreach_supported_iso(camera_h camera, camera_attr_supported_iso_cb callback, void *user_data);
3102 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
3107 * @brief Sets the theater mode.
3108 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3109 * @remarks If you want to display the preview image on the external display with the full screen mode, use this function.
3110 * @param[in] camera The handle to the camera
3111 * @param[in] mode The theater mode
3112 * @return @c 0 on success, otherwise a negative error value
3113 * @retval #CAMERA_ERROR_NONE Successful
3114 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3115 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3116 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3117 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3118 * @pre This function is valid only when the external display is connected.
3119 * @see camera_attr_get_theater_mode()
3121 int camera_attr_set_theater_mode(camera_h camera, camera_attr_theater_mode_e mode);
3124 * @brief Gets the theater mode.
3125 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3126 * @param[in] camera The handle to the camera
3127 * @param[out] mode The theater mode
3128 * @return @c 0 on success, otherwise a negative error value
3129 * @retval #CAMERA_ERROR_NONE Successful
3130 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3131 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3132 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3133 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3134 * @see camera_attr_set_theater_mode()
3136 int camera_attr_get_theater_mode(camera_h camera, camera_attr_theater_mode_e *mode);
3143 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
3148 * @brief Retrieves all supported theater modes by invoking callback function once for each supported theater modes.
3149 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3150 * @param[in] camera The handle to the camera
3151 * @param[in] callback The callback function to be invoked
3152 * @param[in] user_data The user data to be passed to the callback function
3153 * @return @c 0 on success, otherwise a negative error value
3154 * @retval #CAMERA_ERROR_NONE Successful
3155 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3156 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3157 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3158 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3159 * @post This function invokes camera_attr_supported_theater_mode_cb() to get all supported theater modes.
3160 * @see camera_attr_set_theater_mode()
3161 * @see camera_attr_get_theater_mode()
3162 * @see camera_attr_supported_theater_mode_cb()
3164 int camera_attr_foreach_supported_theater_mode(camera_h camera, camera_attr_supported_theater_mode_cb callback, void *user_data);
3172 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
3177 * @brief Sets the brightness level.
3178 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3179 * @remarks If the min value is greater than the max value from camera_attr_get_brightness_range(), \n
3180 * it means that this feature is not supported.
3181 * @param[in] camera The handle to the camera
3182 * @param[in] level The brightness level
3183 * @return @c 0 on success, otherwise a negative error value
3184 * @retval #CAMERA_ERROR_NONE Successful
3185 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3186 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3187 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3188 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3189 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3190 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
3191 * @see camera_attr_get_brightness()
3192 * @see camera_attr_get_brightness_range()
3194 int camera_attr_set_brightness(camera_h camera, int level);
3197 * @brief Gets the brightness level.
3198 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3199 * @param[in] camera The handle to the camera
3200 * @param[out] level The brightness level
3201 * @return @c 0 on success, otherwise a negative error value
3202 * @retval #CAMERA_ERROR_NONE Successful
3203 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3204 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3205 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3206 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3207 * @see camera_attr_set_brightness()
3208 * @see camera_attr_get_brightness_range()
3210 int camera_attr_get_brightness(camera_h camera, int *level);
3213 * @brief Gets the available brightness level.
3214 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3215 * @remarks If the min value is greater than the max value, it means that this feature is not supported.
3216 * @param[in] camera The handle to the camera
3217 * @param[out] min The minimum brightness level
3218 * @param[out] max The maximum brightness level
3219 * @return @c 0 on success, otherwise a negative error value
3220 * @retval #CAMERA_ERROR_NONE Successful
3221 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3222 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3223 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3224 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3225 * @see camera_attr_set_brightness()
3226 * @see camera_attr_get_brightness()
3228 int camera_attr_get_brightness_range(camera_h camera, int *min, int *max);
3231 * @brief Sets the contrast level.
3232 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3233 * @param[in] camera The handle to the camera
3234 * @param[in] level The contrast level
3235 * @return @c 0 on success, otherwise a negative error value
3236 * @retval #CAMERA_ERROR_NONE Successful
3237 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3238 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3239 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3240 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3241 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3242 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
3243 * @see camera_attr_get_contrast()
3244 * @see camera_attr_get_contrast_range()
3246 int camera_attr_set_contrast(camera_h camera, int level);
3249 * @brief Gets the contrast level.
3250 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3251 * @param[in] camera The handle to the camera
3252 * @param[out] level The contrast level
3253 * @return @c 0 on success, otherwise a negative error value
3254 * @retval #CAMERA_ERROR_NONE Successful
3255 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3256 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3257 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3258 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3259 * @see camera_attr_set_contrast()
3260 * @see camera_attr_get_contrast_range()
3262 int camera_attr_get_contrast(camera_h camera, int *level);
3265 * @brief Gets the available contrast level.
3266 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3267 * @remarks If the min value is greater than the max value, it means that this feature is not supported.
3268 * @param[in] camera The handle to the camera
3269 * @param[out] min The minimum contrast level
3270 * @param[out] max The maximum contrast level
3271 * @return @c 0 on success, otherwise a negative error value
3272 * @retval #CAMERA_ERROR_NONE Successful
3273 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3274 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3275 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3276 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3277 * @see camera_attr_set_contrast()
3278 * @see camera_attr_get_contrast()
3280 int camera_attr_get_contrast_range(camera_h camera, int *min, int *max);
3283 * @brief Sets the hue level.
3285 * @param[in] camera The handle to the camera
3286 * @param[in] level The hue level
3287 * @return @c 0 on success, otherwise a negative error value
3288 * @retval #CAMERA_ERROR_NONE Successful
3289 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3290 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3291 * @see camera_attr_get_hue()
3292 * @see camera_attr_get_hue_range()
3294 int camera_attr_set_hue(camera_h camera, int level);
3297 * @brief Gets the hue level.
3299 * @param[in] camera The handle to the camera
3300 * @param[out] level The hue level
3301 * @return @c 0 on success, otherwise a negative error value
3302 * @retval #CAMERA_ERROR_NONE Successful
3303 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3304 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3305 * @see camera_attr_set_hue()
3306 * @see camera_attr_get_hue_range()
3308 int camera_attr_get_hue(camera_h camera, int *level);
3311 * @brief Gets the available hue level.
3313 * @remarks If the min value is greater than the max value, it means that this feature is not supported.
3314 * @param[in] camera The handle to the camera
3315 * @param[out] min The minimum hue level
3316 * @param[out] max The maximum hue level
3317 * @return @c 0 on success, otherwise a negative error value
3318 * @retval #CAMERA_ERROR_NONE Successful
3319 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3320 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3321 * @see camera_attr_set_hue()
3322 * @see camera_attr_get_hue()
3324 int camera_attr_get_hue_range(camera_h camera, int *min, int *max);
3327 * @brief Sets the white balance mode.
3328 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3329 * @param[in] camera The handle to the camera
3330 * @param[in] whitebalance The white balance mode
3331 * @return @c 0 on success, otherwise a negative error value
3332 * @retval #CAMERA_ERROR_NONE Successful
3333 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3334 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3335 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3336 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3337 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3338 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
3339 * @see camera_attr_foreach_supported_whitebalance()
3340 * @see camera_attr_get_whitebalance()
3342 int camera_attr_set_whitebalance(camera_h camera, camera_attr_whitebalance_e whitebalance);
3345 * @brief Gets the white balance mode.
3346 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3347 * @param[in] camera The handle to the camera
3348 * @param[out] whitebalance The white balance mode
3349 * @return @c 0 on success, otherwise a negative error value
3350 * @retval #CAMERA_ERROR_NONE Successful
3351 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3352 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3353 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3354 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3355 * @see camera_attr_foreach_supported_whitebalance()
3356 * @see camera_attr_set_whitebalance()
3358 int camera_attr_get_whitebalance(camera_h camera, camera_attr_whitebalance_e *whitebalance);
3365 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
3370 * @brief Retrieves all supported white balances by invoking the callback function once for each supported white balance.
3371 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3372 * @param[in] camera The handle to the camera
3373 * @param[in] callback The callback function to be invoked
3374 * @param[in] user_data The user data to be passed to the callback function
3375 * @return @c 0 on success, otherwise a negative error value
3376 * @retval #CAMERA_ERROR_NONE Successful
3377 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3378 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3379 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3380 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3381 * @post This function invokes camera_attr_supported_whitebalance_cb() to get all the supported white balances.
3382 * @see camera_attr_set_whitebalance()
3383 * @see camera_attr_get_whitebalance()
3384 * @see camera_attr_supported_whitebalance_cb()
3386 int camera_attr_foreach_supported_whitebalance(camera_h camera, camera_attr_supported_whitebalance_cb callback, void *user_data);
3393 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
3398 * @brief Sets the camera effect mode.
3399 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3400 * @param[in] camera The handle to the camera
3401 * @param[in] effect The camera effect mode
3402 * @return @c 0 on success, otherwise a negative error value
3403 * @retval #CAMERA_ERROR_NONE Successful
3404 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3405 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3406 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3407 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3408 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3409 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
3410 * @see camera_attr_foreach_supported_effect()
3411 * @see camera_attr_get_effect()
3413 int camera_attr_set_effect(camera_h camera, camera_attr_effect_mode_e effect);
3417 * @brief Gets the camera effect mode.
3418 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3419 * @param[in] camera The handle to the camera
3420 * @param[out] effect The camera effect mode
3421 * @return @c 0 on success, otherwise a negative error value
3422 * @retval #CAMERA_ERROR_NONE Successful
3423 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3424 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3425 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3426 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3427 * @see camera_attr_foreach_supported_effect()
3428 * @see camera_attr_set_effect()
3430 int camera_attr_get_effect(camera_h camera, camera_attr_effect_mode_e *effect);
3437 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
3442 * @brief Retrieves all supported effect modes by invoking the callback function once for each supported effect mode.
3443 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3444 * @param[in] camera The handle to the camera
3445 * @param[in] callback The callback function to invoke
3446 * @param[in] user_data The user data to be passed to the callback function
3447 * @return @c 0 on success, otherwise a negative error value
3448 * @retval #CAMERA_ERROR_NONE Successful
3449 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3450 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3451 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3452 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3453 * @post This function invokes camera_attr_supported_effect_cb() to get all the supported effect modes.
3454 * @see camera_attr_set_effect()
3455 * @see camera_attr_get_effect()
3456 * @see camera_attr_supported_effect_cb()
3458 int camera_attr_foreach_supported_effect(camera_h camera, camera_attr_supported_effect_cb callback, void *user_data);
3465 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
3470 * @brief Sets the scene mode.
3471 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3472 * @param[in] camera The handle to the camera
3473 * @param[in] mode The scene mode
3474 * @return @c 0 on success, otherwise a negative error value
3475 * @retval #CAMERA_ERROR_NONE Successful
3476 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3477 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3478 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3479 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3480 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3481 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
3482 * @see camera_attr_foreach_supported_scene_mode()
3483 * @see camera_attr_get_scene_mode()
3485 int camera_attr_set_scene_mode(camera_h camera, camera_attr_scene_mode_e mode);
3488 * @brief Gets the scene mode.
3489 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3490 * @param[in] camera The handle to the camera
3491 * @param[out] mode The scene mode
3492 * @return @c 0 on success, otherwise a negative error value
3493 * @retval #CAMERA_ERROR_NONE Successful
3494 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3495 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3496 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3497 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3498 * @see camera_attr_foreach_supported_scene_mode()
3499 * @see camera_attr_set_scene_mode()
3501 int camera_attr_get_scene_mode(camera_h camera, camera_attr_scene_mode_e *mode);
3508 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
3513 * @brief Retrieves all supported scene modes by invoking the callback function once for each supported scene mode.
3514 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3515 * @param[in] camera The handle to the camera
3516 * @param[in] callback The callback function to invoke
3517 * @param[in] user_data The user data to be passed to the callback function
3518 * @return @c 0 on success, otherwise a negative error value
3519 * @retval #CAMERA_ERROR_NONE Successful
3520 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3521 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3522 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3523 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3524 * @post This function invokes camera_attr_supported_scene_mode_cb() to get all the supported scene modes.
3525 * @see camera_attr_set_scene_mode()
3526 * @see camera_attr_get_scene_mode()
3527 * @see camera_attr_supported_scene_mode_cb()
3529 int camera_attr_foreach_supported_scene_mode(camera_h camera, camera_attr_supported_scene_mode_cb callback, void *user_data);
3536 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
3541 * @brief Enables to write EXIF(Exchangeable image file format) tags in a JPEG file.
3542 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3543 * @param[in] camera The handle to the camera
3544 * @param[in] enable If @c true writing EXIF tags in a JPEG file is enabled, otherwise @c false
3545 * @return @c 0 on success, otherwise a negative error value
3546 * @retval #CAMERA_ERROR_NONE Successful
3547 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3548 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3549 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3550 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3551 * @see camera_attr_is_enabled_tag()
3553 int camera_attr_enable_tag(camera_h camera, bool enable);
3556 * @brief Gets the value that indicates whether writing EXIF(Exchangeable image file format) tags in a JPEG file is enabled.
3557 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3558 * @param[in] camera The handle to the camera
3559 * @param[out] enabled If @c true camera information is enabled, otherwise @c false
3560 * @return @c 0 on success, otherwise a negative error value
3561 * @retval #CAMERA_ERROR_NONE Successful
3562 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3563 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3564 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3565 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3566 * @see camera_attr_enable_tag()
3568 int camera_attr_is_enabled_tag(camera_h camera, bool *enabled);
3571 * @brief Sets the camera image description in the EXIF(Exchangeable image file format) tag.
3572 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3573 * @param[in] camera The handle to the camera
3574 * @param[in] description The string with description
3575 * @return @c 0 on success, otherwise a negative error value
3576 * @retval #CAMERA_ERROR_NONE Successful
3577 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3578 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3579 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3580 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3581 * @see camera_attr_get_tag_image_description()
3583 int camera_attr_set_tag_image_description(camera_h camera, const char *description);
3586 * @brief Gets the camera image description in EXIF(Exchangeable image file format) tag.
3587 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3588 * @remarks You must release @a description using free().
3589 * @param[in] camera The handle to the camera
3590 * @param[out] description A pointer to a string
3591 * @return @c 0 on success, otherwise a negative error value
3592 * @retval #CAMERA_ERROR_NONE Successful
3593 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3594 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3595 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3596 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3597 * @see camera_attr_set_tag_image_description()
3599 int camera_attr_get_tag_image_description(camera_h camera, char **description);
3602 * @brief Sets the camera orientation in the EXIF(Exchangeable image file format) tag.
3603 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3604 * @param[in] camera The handle to the camera
3605 * @param[in] orientation The camera orientation
3606 * @return @c 0 on success, otherwise a negative error value
3607 * @retval #CAMERA_ERROR_NONE Successful
3608 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3609 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3610 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3611 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3612 * @see camera_attr_get_tag_orientation()
3614 int camera_attr_set_tag_orientation(camera_h camera, camera_attr_tag_orientation_e orientation);
3617 * @brief Gets the camera orientation in the EXIF(Exchangeable image file format) tag.
3618 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3619 * @param[in] camera The handle to the camera
3620 * @param[out] orientation The camera orientation
3621 * @return @c 0 on success, otherwise a negative error value
3622 * @retval #CAMERA_ERROR_NONE Successful
3623 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3624 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3625 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3626 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3627 * @see camera_attr_set_tag_orientation()
3629 int camera_attr_get_tag_orientation(camera_h camera, camera_attr_tag_orientation_e *orientation);
3632 * @brief Sets the software information in the EXIF(Exchangeable image file format) tag.
3633 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3634 * @param[in] camera The handle to the camera
3635 * @param[in] software The software information tag
3636 * @return @c 0 on success, otherwise a negative error value
3637 * @retval #CAMERA_ERROR_NONE Successful
3638 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3639 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3640 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3641 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3642 * @see camera_attr_get_tag_software()
3644 int camera_attr_set_tag_software(camera_h camera, const char *software);
3647 * @brief Gets the software information in the EXIF(Exchangeable image file format) tag.
3648 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3649 * @remarks You must release @a software using free().
3650 * @param[in] camera The handle to the camera
3651 * @param[out] software A pointer to a string
3652 * @return @c 0 on success, otherwise a negative error value
3653 * @retval #CAMERA_ERROR_NONE Successful
3654 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3655 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3656 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3657 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3658 * @see camera_attr_set_tag_software()
3660 int camera_attr_get_tag_software(camera_h camera, char **software);
3663 * @brief Sets the geotag(GPS data) in the EXIF(Exchangeable image file format) tag.
3664 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3665 * @param[in] camera The handle to the camera
3666 * @param[in] latitude The latitude data
3667 * @param[in] longitude The longitude data
3668 * @param[in] altitude The altitude data
3669 * @return @c 0 on success, otherwise a negative error value
3670 * @retval #CAMERA_ERROR_NONE Successful
3671 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3672 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3673 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3674 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3675 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3676 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
3677 * @see camera_attr_get_geotag()
3678 * @see camera_attr_remove_geotag()
3680 int camera_attr_set_geotag(camera_h camera, double latitude, double longitude, double altitude);
3683 * @brief Gets the geotag(GPS data) in the EXIF(Exchangeable image file format) tag.
3684 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3685 * @param[in] camera The handle to the camera
3686 * @param[out] latitude The latitude data
3687 * @param[out] longitude The longitude data
3688 * @param[out] altitude The altitude data
3689 * @return @c 0 on success, otherwise a negative error value
3690 * @retval #CAMERA_ERROR_NONE Successful
3691 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3692 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3693 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3694 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3695 * @see camera_attr_set_geotag()
3696 * @see camera_attr_remove_geotag()
3698 int camera_attr_get_geotag(camera_h camera, double *latitude, double *longitude, double *altitude);
3701 * @brief Removes the geotag(GPS data) in the EXIF(Exchangeable image file format) tag.
3702 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3703 * @param[in] camera The handle to the camera
3704 * @return @c 0 on success, otherwise a negative error value
3705 * @retval #CAMERA_ERROR_NONE Successful
3706 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3707 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3708 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3709 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3710 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3711 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
3712 * @see camera_attr_set_geotag()
3713 * @see camera_attr_get_geotag()
3715 int camera_attr_remove_geotag(camera_h camera);
3718 * @brief Sets the camera's flash mode.
3719 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3720 * @remarks Since @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif, while setting the flash mode, if the flash was preempted by other APIs,\n
3721 * then this function returns #CAMERA_ERROR_DEVICE_BUSY error.
3722 * @param[in] camera The handle to the camera
3723 * @param[in] mode The flash mode
3724 * @return @c 0 on success, otherwise a negative error value
3725 * @retval #CAMERA_ERROR_NONE Successful
3726 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3727 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3728 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3729 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3730 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3731 * @retval #CAMERA_ERROR_DEVICE_BUSY The flash was preempted by other API
3732 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
3733 * @see camera_attr_foreach_supported_flash_mode()
3734 * @see camera_attr_get_flash_mode()
3736 int camera_attr_set_flash_mode(camera_h camera, camera_attr_flash_mode_e mode);
3739 * @brief Gets the camera's flash mode.
3740 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3741 * @param[in] camera The handle to the camera
3742 * @param[out] mode The flash mode
3743 * @return @c 0 on success, otherwise a negative error value
3744 * @retval #CAMERA_ERROR_NONE Successful
3745 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3746 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3747 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3748 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3749 * @see camera_attr_foreach_supported_flash_mode()
3750 * @see camera_attr_set_flash_mode()
3752 int camera_attr_get_flash_mode(camera_h camera, camera_attr_flash_mode_e *mode);
3759 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
3764 * @brief Retrieves all supported flash modes by invoking the callback function once for each supported flash mode.
3765 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3766 * @param[in] camera The handle to the camera
3767 * @param[in] callback The callback function to invoke
3768 * @param[in] user_data The user data passed to the callback registration function
3769 * @return @c 0 on success, otherwise a negative error value
3770 * @retval #CAMERA_ERROR_NONE Successful
3771 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3772 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3773 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3774 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3775 * @post This function invokes camera_attr_supported_flash_mode_cb() to get all supported flash modes.
3776 * @see camera_attr_set_flash_mode()
3777 * @see camera_attr_get_flash_mode()
3778 * @see camera_attr_supported_flash_mode_cb()
3780 int camera_attr_foreach_supported_flash_mode(camera_h camera, camera_attr_supported_flash_mode_cb callback, void *user_data);
3787 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
3792 * @brief Gets the camera len's orientation angle.
3793 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3794 * @param[in] camera The handle to the camera
3795 * @param[out] angle The orientation angle
3796 * @return @c 0 on success, otherwise a negative error value
3797 * @retval #CAMERA_ERROR_NONE Successful
3798 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3799 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3800 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3801 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3802 * @see camera_set_display_rotation()
3804 int camera_attr_get_lens_orientation(camera_h camera, int *angle);
3807 * @brief Sets the stream rotation.
3808 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3809 * @param[in] camera The handle to the camera
3810 * @param[in] rotation The stream rotation
3811 * @return @c 0 on success, otherwise a negative error value
3812 * @retval #CAMERA_ERROR_NONE Successful
3813 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3814 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3815 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3816 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3817 * @pre The camera state must be set to #CAMERA_STATE_CREATED.
3818 * @see camera_attr_get_stream_rotation()
3820 int camera_attr_set_stream_rotation(camera_h camera, camera_rotation_e rotation);
3823 * @brief Gets the stream rotation.
3824 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3825 * @param[in] camera The handle to the camera
3826 * @param[out] rotation The stream rotation
3827 * @return @c 0 on success, otherwise a negative error value
3828 * @retval #CAMERA_ERROR_NONE Successful
3829 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3830 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3831 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3832 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3833 * @pre The camera state must be set to #CAMERA_STATE_CREATED.
3834 * @see camera_attr_set_stream_rotation()
3836 int camera_attr_get_stream_rotation(camera_h camera, camera_rotation_e *rotation);
3843 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
3848 * @brief Retrieves all supported stream rotation modes by invoking callback function once for each supported stream rotation mode.
3849 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3850 * @param[in] camera The handle to the camera
3851 * @param[in] callback The callback function to invoke
3852 * @param[in] user_data The user data to be passed to the callback function
3853 * @return @c 0 on success, otherwise a negative error value
3854 * @retval #CAMERA_ERROR_NONE Successful
3855 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3856 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3857 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3858 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3859 * @post This function invokes camera_attr_supported_stream_rotation_cb() to get all supported stream rotation mode.
3860 * @see camera_attr_set_stream_rotation()
3861 * @see camera_attr_get_stream_rotation()
3862 * @see camera_attr_supported_stream_rotation_cb()
3864 int camera_attr_foreach_supported_stream_rotation(camera_h camera, camera_attr_supported_stream_rotation_cb callback, void *user_data);
3871 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
3876 * @brief Sets the stream flip.
3877 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3878 * @param[in] camera The handle to the camera
3879 * @param[in] flip The stream flip
3880 * @return @c 0 on success, otherwise a negative error value
3881 * @retval #CAMERA_ERROR_NONE Successful
3882 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3883 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3884 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3885 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3886 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3887 * @pre The camera state must be set to #CAMERA_STATE_CREATED.
3888 * @see camera_attr_set_stream_rotation()
3890 int camera_attr_set_stream_flip(camera_h camera, camera_flip_e flip);
3893 * @brief Gets the stream flip.
3894 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3895 * @param[in] camera The handle to the camera
3896 * @param[out] flip The stream flip
3897 * @return @c 0 on success, otherwise a negative error value
3898 * @retval #CAMERA_ERROR_NONE Successful
3899 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3900 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3901 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3902 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3903 * @pre The camera state must be set to #CAMERA_STATE_CREATED.
3904 * @see camera_attr_set_stream_rotation()
3906 int camera_attr_get_stream_flip(camera_h camera, camera_flip_e *flip);
3913 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
3918 * @brief Retrieves all supported stream flip modes by invoking callback function once for each supported stream flip mode.
3919 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3920 * @param[in] camera The handle to the camera
3921 * @param[in] callback The callback function to invoke
3922 * @param[in] user_data The user data to be passed to the callback function
3923 * @return @c 0 on success, otherwise a negative error value
3924 * @retval #CAMERA_ERROR_NONE Successful
3925 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3926 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3927 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3928 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3929 * @post This function invokes camera_attr_supported_stream_flip_cb() to get all supported stream flip mode.
3930 * @see camera_attr_set_stream_flip()
3931 * @see camera_attr_get_stream_flip()
3932 * @see camera_attr_supported_stream_flip_cb()
3934 int camera_attr_foreach_supported_stream_flip(camera_h camera, camera_attr_supported_stream_flip_cb callback, void *user_data);
3941 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
3946 * @brief Called when the HDR capture process is updated.
3947 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3948 * @param[in] percent The progress percentage of HDR capture
3949 * @param[in] user_data The user data passed from the callback registration function
3950 * @pre camera_start_capture() will invoke this callback if you register it using camera_attr_set_hdr_capture_progress_cb().
3951 * @see camera_attr_get_hdr_mode()
3952 * @see camera_attr_set_hdr_capture_progress_cb()
3953 * @see camera_attr_unset_hdr_capture_progress_cb()
3954 * @see camera_attr_is_supported_hdr_capture()
3956 typedef void (*camera_attr_hdr_progress_cb)(int percent, void *user_data);
3959 * @brief Sets the mode of HDR (High Dynamic Range) capture.
3960 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3961 * @remarks Taking multiple pictures at different exposure levels and intelligently stitching them together so that we eventually arrive at a picture that is representative in both dark and bright areas.\n
3962 * If this attribute is set to @c true. camera_attr_hdr_progress_cb() is invoked during capture.\n
3963 * If you set #CAMERA_ATTR_HDR_MODE_KEEP_ORIGINAL, the capturing callback is invoked twice. The first callback is delivering origin image data. The second callback is delivering improved image data.
3964 * @param[in] camera The handle to the camera
3965 * @param[in] mode The mode of HDR capture
3966 * @return @c 0 on success, otherwise a negative error value
3967 * @retval #CAMERA_ERROR_NONE Successful
3968 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3969 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3970 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
3971 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3972 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3973 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
3974 * @see camera_attr_get_hdr_mode()
3975 * @see camera_attr_set_hdr_capture_progress_cb()
3976 * @see camera_attr_unset_hdr_capture_progress_cb()
3977 * @see camera_attr_is_supported_hdr_capture()
3980 int camera_attr_set_hdr_mode(camera_h camera, camera_attr_hdr_mode_e mode);
3983 * @brief Gets the mode of HDR (High Dynamic Range) capture.
3984 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
3985 * @param[in] camera The handle to the camera
3986 * @param[out] mode The mode of HDR capture
3987 * @return @c 0 on success, otherwise a negative error value
3988 * @retval #CAMERA_ERROR_NONE Successful
3989 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
3990 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
3991 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
3992 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
3993 * @see camera_attr_set_hdr_mode()
3994 * @see camera_attr_set_hdr_capture_progress_cb()
3995 * @see camera_attr_unset_hdr_capture_progress_cb()
3996 * @see camera_attr_is_supported_hdr_capture()
3998 int camera_attr_get_hdr_mode(camera_h camera, camera_attr_hdr_mode_e *mode);
4001 * @brief Registers a callback function to be called when HDR capture is progressing.
4002 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4003 * @remarks This callback notifies progress of the HDR process.
4004 * @param[in] camera The handle to the camera
4005 * @param[in] callback The callback function to invoke
4006 * @param[in] user_data The user data passed to the callback registration function
4007 * @return @c 0 on success, otherwise a negative error value
4008 * @retval #CAMERA_ERROR_NONE Successful
4009 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4010 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4011 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4012 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4013 * @see camera_attr_set_hdr_mode()
4014 * @see camera_attr_get_hdr_mode()
4015 * @see camera_attr_unset_hdr_capture_progress_cb()
4016 * @see camera_attr_is_supported_hdr_capture()
4018 int camera_attr_set_hdr_capture_progress_cb(camera_h camera, camera_attr_hdr_progress_cb callback, void* user_data);
4021 * @brief Unregisters the callback function.
4022 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4023 * @param[in] camera The handle to the camera
4024 * @return @c 0 on success, otherwise a negative error value
4025 * @retval #CAMERA_ERROR_NONE Successful
4026 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4027 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4028 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4029 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4030 * @see camera_attr_set_hdr_mode()
4031 * @see camera_attr_get_hdr_mode()
4032 * @see camera_attr_set_hdr_capture_progress_cb()
4033 * @see camera_attr_is_supported_hdr_capture()
4035 int camera_attr_unset_hdr_capture_progress_cb(camera_h camera);
4038 * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
4039 * @brief Gets the support state of HDR capture.
4040 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4041 * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
4042 * @param[in] camera The handle to the camera
4043 * @return @c true if supported, otherwise @c false
4044 * @exception #CAMERA_ERROR_NONE Successful
4045 * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4046 * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4047 * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4048 * @see camera_attr_set_hdr_mode()
4049 * @see camera_attr_get_hdr_mode()
4050 * @see camera_attr_set_hdr_capture_progress_cb()
4051 * @see camera_attr_unset_hdr_capture_progress_cb()
4053 bool camera_attr_is_supported_hdr_capture(camera_h camera);
4056 * @brief Enables/Disables the anti-shake feature.
4057 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4058 * @remarks This feature is used for image capture.
4059 * @param[in] camera The handle to the camera
4060 * @param[in] enable If @c true the anti-shake feature is enabled, otherwise @c false
4061 * @return @c 0 on success, otherwise a negative error value
4062 * @retval #CAMERA_ERROR_NONE Successful
4063 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4064 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4065 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4066 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4067 * @see camera_attr_is_enabled_anti_shake()
4068 * @see camera_attr_is_supported_anti_shake()
4071 int camera_attr_enable_anti_shake(camera_h camera, bool enable);
4074 * @brief Gets the state of the anti-shake feature.
4075 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4076 * @param[in] camera The handle to the camera
4077 * @param[out] enabled The state of anti-shake
4078 * @return @c 0 on success, otherwise a negative error value
4079 * @retval #CAMERA_ERROR_NONE Successful
4080 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4081 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4082 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4083 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4084 * @see camera_attr_enable_anti_shake()
4085 * @see camera_attr_is_supported_anti_shake()
4087 int camera_attr_is_enabled_anti_shake(camera_h camera, bool *enabled);
4090 * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
4091 * @brief Gets the support state of the anti-shake feature.
4092 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4093 * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
4094 * @param[in] camera The handle to the camera
4095 * @return @c true if supported, otherwise @c false
4096 * @exception #CAMERA_ERROR_NONE Successful
4097 * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4098 * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4099 * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4100 * @see camera_attr_enable_anti_shake()
4101 * @see camera_attr_is_enabled_anti_shake()
4103 bool camera_attr_is_supported_anti_shake(camera_h camera);
4106 * @brief Enables/Disables the video stabilization feature.
4107 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4108 * @remarks If video stabilization is enabled, zero shutter lag is disabled.\n
4109 * This feature is used to record a video.
4110 * @param[in] camera The handle to the camera
4111 * @param[in] enable If @c true video stabilization is enabled, otherwise @c false
4112 * @return @c 0 on success, otherwise a negative error value
4113 * @retval #CAMERA_ERROR_NONE Successful
4114 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4115 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4116 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4117 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4118 * @see camera_attr_is_enabled_video_stabilization()
4119 * @see camera_attr_is_supported_video_stabilization()
4122 int camera_attr_enable_video_stabilization(camera_h camera, bool enable);
4125 * @brief Gets the state of the video stabilization feature.
4126 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4127 * @param[in] camera The handle to the camera
4128 * @param[out] enabled The state of video stabilization
4129 * @return @c 0 on success, otherwise a negative error value
4130 * @retval #CAMERA_ERROR_NONE Successful
4131 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4132 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4133 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4134 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4135 * @see camera_attr_enable_video_stabilization()
4136 * @see camera_attr_is_supported_video_stabilization()
4138 int camera_attr_is_enabled_video_stabilization(camera_h camera, bool *enabled);
4141 * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
4142 * @brief Gets the support state of the video stabilization feature.
4143 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4144 * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
4145 * @param[in] camera The handle to the camera
4146 * @return @c true if supported, otherwise @c false
4147 * @exception #CAMERA_ERROR_NONE Successful
4148 * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4149 * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4150 * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4151 * @see camera_attr_enable_video_stabilization()
4152 * @see camera_attr_is_enabled_video_stabilization()
4154 bool camera_attr_is_supported_video_stabilization(camera_h camera);
4157 * @brief Enables/Disables auto contrast.
4158 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4159 * @param[in] camera The handle to the camera
4160 * @param[in] enable If @c true auto contrast is enabled, otherwise @c false
4161 * @return @c 0 on success, otherwise a negative error value
4162 * @retval #CAMERA_ERROR_NONE Successful
4163 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4164 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4165 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
4166 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4167 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4168 * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW.
4169 * @see camera_attr_is_enabled_auto_contrast()
4171 int camera_attr_enable_auto_contrast(camera_h camera, bool enable);
4174 * @brief Gets the state of auto contrast.
4175 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4176 * @param[in] camera The handle to the camera
4177 * @param[out] enabled The state of auto contrast
4178 * @return @c 0 on success, otherwise a negative error value
4179 * @retval #CAMERA_ERROR_NONE Successful
4180 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4181 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4182 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4183 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4184 * @see camera_attr_enable_auto_contrast()
4186 int camera_attr_is_enabled_auto_contrast(camera_h camera, bool *enabled);
4193 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
4198 * @brief Gets state of support of auto contrast feature.
4199 * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
4200 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4201 * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
4202 * @param[in] camera The handle to the camera
4203 * @return true on supported, otherwise false
4204 * @exception #CAMERA_ERROR_NONE Successful
4205 * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4206 * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4207 * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4208 * @see camera_attr_enable_auto_contrast()
4209 * @see camera_attr_is_enabled_auto_contrast()
4211 bool camera_attr_is_supported_auto_contrast(camera_h camera);
4218 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
4223 * @brief Disables shutter sound.
4224 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
4225 * @remarks In some countries, this operation is not permitted.
4226 * @param[in] camera The handle to the camera
4227 * @param[in] disable If @c true shutter sound is disabled, otherwise @c false
4228 * @return @c 0 on success, otherwise a negative error value
4229 * @retval #CAMERA_ERROR_NONE Successful
4230 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4231 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4232 * @retval #CAMERA_ERROR_INVALID_OPERATION Disabling shutter sound is not permitted
4233 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4234 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4236 int camera_attr_disable_shutter_sound(camera_h camera, bool disable);
4239 * @brief Sets the position to move horizontally.
4241 * @param[in] camera The handle to the camera
4242 * @param[in] move_type The PTZ(Pan Tilt Zoom) move type
4243 * @param[in] pan_step The step to move the camera
4244 * @return @c 0 on success, otherwise a negative error value
4245 * @retval #CAMERA_ERROR_NONE Successful
4246 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4247 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
4248 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4249 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
4250 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4251 * @pre The camera state must be set to #CAMERA_STATE_PREVIEW.
4252 * @see camera_attr_get_pan()
4253 * @see camera_attr_get_pan_range()
4255 int camera_attr_set_pan(camera_h camera, camera_attr_ptz_move_type_e move_type, int pan_step);
4258 * @brief Gets the current position of the camera.
4260 * @param[in] camera The handle to the camera
4261 * @param[out] pan_step The current horizontal distance from the starting point.
4262 * @return @c 0 on success, otherwise a negative error value
4263 * @retval #CAMERA_ERROR_NONE Successful
4264 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4265 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
4266 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4267 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4268 * @see camera_attr_set_pan()
4269 * @see camera_attr_get_pan_range()
4271 int camera_attr_get_pan(camera_h camera, int *pan_step);
4274 * @brief Gets lower limit and upper limit for pan position.
4276 * @remarks If the min value is greater than the max value, it means that this feature is not supported.
4277 * @param[in] camera The handle to the camera
4278 * @param[out] min The lower limit for pan
4279 * @param[out] max The upper limit for pan
4280 * @return @c 0 on success, otherwise a negative error value
4281 * @retval #CAMERA_ERROR_NONE Successful
4282 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4283 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
4284 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4285 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4286 * @see camera_attr_set_pan()
4287 * @see camera_attr_get_pan()
4289 int camera_attr_get_pan_range(camera_h camera, int *min, int *max);
4292 * @brief Sets the position to move vertically.
4294 * @param[in] camera The handle to the camera
4295 * @param[in] move_type The PTZ(Pan Tilt Zoom) move type
4296 * @param[in] tilt_step The step to move the camera
4297 * @return @c 0 on success, otherwise a negative error value
4298 * @retval #CAMERA_ERROR_NONE Successful
4299 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4300 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
4301 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4302 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
4303 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4304 * @pre The camera state must be set to #CAMERA_STATE_PREVIEW.
4305 * @see camera_attr_get_tilt()
4306 * @see camera_attr_get_tilt_range()
4308 int camera_attr_set_tilt(camera_h camera, camera_attr_ptz_move_type_e move_type, int tilt_step);
4311 * @brief Gets the current position of the camera.
4313 * @param[in] camera The handle to the camera
4314 * @param[out] tilt_step The current vertical distance from the starting point.
4315 * @return @c 0 on success, otherwise a negative error value
4316 * @retval #CAMERA_ERROR_NONE Successful
4317 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4318 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
4319 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4320 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4321 * @see camera_attr_set_tilt()
4322 * @see camera_attr_get_tilt_range()
4324 int camera_attr_get_tilt(camera_h camera, int *tilt_step);
4327 * @brief Gets lower limit and upper limit for tilt position.
4329 * @remarks If the min value is greater than the max value, it means that this feature is not supported.
4330 * @param[in] camera The handle to the camera
4331 * @param[out] min The lower limit for tilt
4332 * @param[out] max The upper limit for tilt
4333 * @return @c 0 on success, otherwise a negative error value
4334 * @retval #CAMERA_ERROR_NONE Successful
4335 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4336 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
4337 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4338 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4339 * @see camera_attr_set_tilt()
4340 * @see camera_attr_get_tilt()
4342 int camera_attr_get_tilt_range(camera_h camera, int *min, int *max);
4345 * @brief Sets the type of PTZ(Pan Tilt Zoom).
4347 * @param[in] camera The handle to the camera
4348 * @param[in] ptz_type PTZ type
4349 * @return @c 0 on success, otherwise a negative error value
4350 * @retval #CAMERA_ERROR_NONE Successful
4351 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4352 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
4353 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4354 * @retval #CAMERA_ERROR_INVALID_STATE Invalid state
4355 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4356 * @pre The camera state must be set to #CAMERA_STATE_PREVIEW.
4357 * @see camera_attr_get_pan()
4358 * @see camera_attr_set_pan()
4359 * @see camera_attr_get_pan_range()
4360 * @see camera_attr_get_tilt()
4361 * @see camera_attr_set_tilt()
4362 * @see camera_attr_get_tilt_range()
4363 * @see camera_attr_foreach_supported_ptz_type()
4365 int camera_attr_set_ptz_type(camera_h camera, camera_attr_ptz_type_e ptz_type);
4372 * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE
4377 * @brief Retrieves all supported PTZ(Pan Tilt Zoom) types by invoking callback function once for each supported ptz type.
4379 * @param[in] camera The handle to the camera
4380 * @param[in] callback The callback function to invoke
4381 * @param[in] user_data The user data to be passed to the callback function
4382 * @return @c 0 on success, otherwise a negative error value
4383 * @retval #CAMERA_ERROR_NONE Successful
4384 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4385 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4386 * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted
4387 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4388 * @post This function invokes camera_attr_supported_ptz_type_cb() to get all supported ptz type.
4389 * @see camera_attr_set_ptz_type()
4391 int camera_attr_foreach_supported_ptz_type(camera_h camera, camera_attr_supported_ptz_type_cb callback, void *user_data);
4398 * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE
4403 * @brief Sets the ROI(Region Of Interest) area of display.
4405 * @remarks If no display is set, no operation is performed and
4406 * the ROI area is valid only in #CAMERA_DISPLAY_MODE_CUSTOM_ROI display mode.
4407 * @remarks The minimum value of width and height are 1.
4408 * @remarks ROI area can be set before setting ROI display mode. (since 4.0)
4409 * @param[in] camera The handle to the camera
4410 * @param[in] x X coordinate of area
4411 * @param[in] y Y coordinate of area
4412 * @param[in] width Width of area
4413 * @param[in] height Height of area
4414 * @return @c 0 on success, otherwise a negative error value
4415 * @retval #CAMERA_ERROR_NONE Successful
4416 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4417 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
4418 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4419 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4420 * @see camera_attr_get_display_roi_area()
4422 int camera_attr_set_display_roi_area(camera_h camera, int x, int y, int width, int height);
4425 * @brief Gets the ROI(Region Of Interest) area of display.
4427 * @param[in] camera The handle to the camera
4428 * @param[out] x X coordinate of area
4429 * @param[out] y Y coordinate of area
4430 * @param[out] width Width of area
4431 * @param[out] height Height of area
4432 * @return @c 0 on success, otherwise a negative error value
4433 * @retval #CAMERA_ERROR_NONE Successful
4434 * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported
4435 * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error
4436 * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter
4437 * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected
4438 * @see camera_attr_set_display_roi_area()
4440 int camera_attr_get_display_roi_area(camera_h camera, int *x, int *y, int *width, int *height);
4449 #endif /* __TIZEN_MULTIMEDIA_CAMERA_H__ */