/* * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __TIZEN_MULTIMEDIA_CAMERA_H__ #define __TIZEN_MULTIMEDIA_CAMERA_H__ #include #include #ifdef __cplusplus extern "C" { #endif /** * @file camera.h * @brief This file contains the Camera API, related structures and enumerations. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ /** * @addtogroup CAPI_MEDIA_CAMERA_MODULE * @{ */ #define CAMERA_ERROR_CLASS TIZEN_ERROR_CAMERA | 0x00 /** * @brief Enumeration for the error codes of Camera. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ CAMERA_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ CAMERA_ERROR_INVALID_STATE = CAMERA_ERROR_CLASS | 0x02, /**< Invalid state */ CAMERA_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */ CAMERA_ERROR_DEVICE = CAMERA_ERROR_CLASS | 0x04, /**< Device error */ CAMERA_ERROR_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION, /**< Internal error */ CAMERA_ERROR_SECURITY_RESTRICTED = CAMERA_ERROR_CLASS | 0x07, /**< Restricted by security system policy */ CAMERA_ERROR_DEVICE_BUSY = CAMERA_ERROR_CLASS | 0x08, /**< The device is using another application or working on some operation */ CAMERA_ERROR_DEVICE_NOT_FOUND = CAMERA_ERROR_CLASS | 0x09, /**< No camera device */ CAMERA_ERROR_ESD = CAMERA_ERROR_CLASS | 0x0c, /**< ESD situation */ CAMERA_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< The access to the resources can not be granted*/ CAMERA_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< The feature is not supported */ CAMERA_ERROR_RESOURCE_CONFLICT = CAMERA_ERROR_CLASS | 0x0d, /**< Blocked by resource conflict (Since 3.0) */ CAMERA_ERROR_SERVICE_DISCONNECTED = CAMERA_ERROR_CLASS | 0x0e, /**< Socket connection lost (Since 3.0) */ } camera_error_e; /** * @brief Enumeration for the camera state. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_STATE_NONE, /**< Before creating */ CAMERA_STATE_CREATED, /**< Created, but not initialized yet */ CAMERA_STATE_PREVIEW, /**< Preview */ CAMERA_STATE_CAPTURING, /**< While capturing */ CAMERA_STATE_CAPTURED /**< After capturing */ } camera_state_e; /** * @brief Enumeration for the camera device state. * @since_tizen 3.0 */ typedef enum { CAMERA_DEVICE_STATE_NULL, /**< Not opened */ CAMERA_DEVICE_STATE_OPENED, /**< Opened */ CAMERA_DEVICE_STATE_WORKING /**< Now previewing or capturing or is being used for video recording */ } camera_device_state_e; /** * @brief Enumeration for the camera device. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_DEVICE_CAMERA0 = 0, /**< Primary camera */ CAMERA_DEVICE_CAMERA1, /**< Secondary camera */ CAMERA_DEVICE_CAMERA2, /**< Third camera (Since 5.0) */ CAMERA_DEVICE_CAMERA3, /**< 4th camera (Since 5.0) */ CAMERA_DEVICE_CAMERA4, /**< 5th camera (Since 5.0) */ CAMERA_DEVICE_CAMERA5, /**< 6th camera (Since 5.0) */ CAMERA_DEVICE_CAMERA6, /**< 7th camera (Since 5.0) */ CAMERA_DEVICE_CAMERA7, /**< 8th camera (Since 5.0) */ CAMERA_DEVICE_CAMERA8, /**< 9th camera (Since 5.0) */ CAMERA_DEVICE_CAMERA9 /**< 10th camera (Since 5.0) */ } camera_device_e; /** * @brief Enumeration for the camera pixel format. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks If #CAMERA_PIXEL_FORMAT_INVZ is set, the type of display should be #CAMERA_DISPLAY_TYPE_NONE. \n * Otherwise, camera_start_preview() will return #CAMERA_ERROR_INVALID_OPERATION. (Since 5.0) */ typedef enum { CAMERA_PIXEL_FORMAT_INVALID = -1, /**< Invalid pixel format */ CAMERA_PIXEL_FORMAT_NV12, /**< NV12 pixel format */ CAMERA_PIXEL_FORMAT_NV12T, /**< NV12 Tiled pixel format */ CAMERA_PIXEL_FORMAT_NV16, /**< NV16 pixel format */ CAMERA_PIXEL_FORMAT_NV21, /**< NV21 pixel format */ CAMERA_PIXEL_FORMAT_YUYV, /**< YUYV(YUY2) pixel format */ CAMERA_PIXEL_FORMAT_UYVY, /**< UYVY pixel format */ CAMERA_PIXEL_FORMAT_422P, /**< YUV422(Y:U:V) planar pixel format */ CAMERA_PIXEL_FORMAT_I420, /**< I420 pixel format */ CAMERA_PIXEL_FORMAT_YV12, /**< YV12 pixel format */ CAMERA_PIXEL_FORMAT_RGB565, /**< RGB565 pixel format */ CAMERA_PIXEL_FORMAT_RGB888, /**< RGB888 pixel format */ CAMERA_PIXEL_FORMAT_RGBA, /**< RGBA pixel format */ CAMERA_PIXEL_FORMAT_ARGB, /**< ARGB pixel format */ CAMERA_PIXEL_FORMAT_JPEG, /**< Encoded pixel format */ CAMERA_PIXEL_FORMAT_H264 = 15, /**< Encoded pixel format : H264 (Since 3.0) */ CAMERA_PIXEL_FORMAT_INVZ, /**< Depth pixel format : INVZ (Since 5.0) */ CAMERA_PIXEL_FORMAT_MJPEG /**< Encoded pixel format : Motion JPEG for preview (Since 6.0) */ } camera_pixel_format_e; /** * @brief Enumeration for the camera display type. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_DISPLAY_TYPE_OVERLAY = 0, /**< Overlay surface display */ CAMERA_DISPLAY_TYPE_EVAS, /**< Evas object surface display */ CAMERA_DISPLAY_TYPE_NONE /**< This disposes off buffers */ } camera_display_type_e; /** * @brief Enumeration for the camera policy. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_POLICY_NONE = 0, /**< None */ CAMERA_POLICY_SECURITY = 4, /**< Security policy */ CAMERA_POLICY_RESOURCE_CONFLICT /**< Resource conflict (Since 3.0) */ } camera_policy_e; /** * @brief Enumeration for the camera rotation type. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ROTATION_NONE, /**< No rotation */ CAMERA_ROTATION_90, /**< 90 degree rotation */ CAMERA_ROTATION_180, /**< 180 degree rotation */ CAMERA_ROTATION_270, /**< 270 degree rotation */ } camera_rotation_e; /** * @brief Enumeration for the camera flip type. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_FLIP_NONE, /**< No Flip */ CAMERA_FLIP_HORIZONTAL, /**< Horizontal flip */ CAMERA_FLIP_VERTICAL, /**< Vertical flip */ CAMERA_FLIP_BOTH /**< Horizontal and vertical flip */ } camera_flip_e; /** * @brief Enumeration for the camera focus state. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_FOCUS_STATE_RELEASED = 0, /**< Focus released */ CAMERA_FOCUS_STATE_ONGOING, /**< Focus in progress */ CAMERA_FOCUS_STATE_FOCUSED, /**< Focus succeeded */ CAMERA_FOCUS_STATE_FAILED, /**< Focus failed */ } camera_focus_state_e; /** * @brief Enumeration for the facing direction of camera module. * @since_tizen 3.0 */ typedef enum { CAMERA_FACING_DIRECTION_REAR = 0, /**< Rear */ CAMERA_FACING_DIRECTION_FRONT, /**< Front */ } camera_facing_direction_e; /** * @brief Enumeration for the current flash state. * @since_tizen 3.0 */ typedef enum { CAMERA_FLASH_STATE_NOT_USED = 0, /**< Flash is not used now through camera API */ CAMERA_FLASH_STATE_USED, /**< Flash is used now through camera API */ } camera_flash_state_e; /** * @brief The structure type of the image data. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef struct { unsigned char *data; /**< The image buffer */ unsigned int size; /**< The size of the buffer */ int width; /**< The width of the image */ int height; /**< The height of the image */ camera_pixel_format_e format; /**< The format of the image pixel */ unsigned char *exif; /**< The exif raw data */ unsigned int exif_size; /**< The size of the exif data */ } camera_image_data_s; /** * @brief The structure type for face detection. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef struct { int id; /**< The ID of each face */ int score; /**< The confidence level for the detection of the face */ int x; /**< The x coordinates of the face */ int y; /**< The y coordinates of the face */ int width; /**< The width of the face */ int height; /**< The height of the face */ } camera_detected_face_s; /** * @brief The structure type to preview stream data. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef struct { camera_pixel_format_e format; /**< The format of the frame pixel */ int width; /**< The width of the frame */ int height; /**< The height of the frame */ int num_of_planes; /**< The number of planes */ unsigned int timestamp; /**< The timestamp of the frame */ union { struct { unsigned char *yuv; /**< The yuv data pointer */ unsigned int size; /**< The size of data */ } single_plane; /**< Single plane frame data */ struct { unsigned char *y; /**< The y data pointer */ unsigned char *uv; /**< The uv data pointer */ unsigned int y_size; /**< The size of y data */ unsigned int uv_size; /**< The size of uv data */ } double_plane; /**< Double plane frame data */ struct { unsigned char *y; /**< The y data pointer */ unsigned char *u; /**< The u data pointer */ unsigned char *v; /**< The v data pointer */ unsigned int y_size; /**< The size of y data */ unsigned int u_size; /**< The size of u data */ unsigned int v_size; /**< The size of v data */ } triple_plane; /**< Triple plane frame data */ struct { unsigned char *data; /**< The encoded data pointer */ unsigned int size; /**< The size of encoded data */ bool is_delta_frame; /**< The flag indicating whether it's delta frame or not (Since 6.0) */ } encoded_plane; /**< Encoded plane frame data */ struct { unsigned char *data; /**< The depth data pointer */ unsigned int size; /**< The size of depth data */ } depth_plane; /**< Depth plane frame data (Since 5.0) */ struct { unsigned char *data; /**< The RGB data pointer */ unsigned int size; /**< The size of RGB data */ } rgb_plane; /**< RGB plane frame data (Since 5.0) */ } data; } camera_preview_data_s; /** * @brief The Camera handle. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @see recorder_create_videorecorder() */ typedef struct camera_cli_s *camera_h; /** * @brief The Camera display handle. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef void *camera_display_h; #ifndef GET_DISPLAY /** * @brief Gets a display handle. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ #define GET_DISPLAY(x) (void*)(x) #endif /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE * @{ */ /** * @brief Enumeration for the camera display mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_DISPLAY_MODE_LETTER_BOX = 0, /**< Letter box */ CAMERA_DISPLAY_MODE_ORIGIN_SIZE, /**< Origin size */ CAMERA_DISPLAY_MODE_FULL, /**< Full screen */ CAMERA_DISPLAY_MODE_CROPPED_FULL, /**< Cropped full screen */ CAMERA_DISPLAY_MODE_ORIGIN_OR_LETTER_BOX, /**< Original size or letter box (Since 3.0) */ CAMERA_DISPLAY_MODE_CUSTOM_ROI, /**< Custom ROI (Since 3.0) */ } camera_display_mode_e; /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Enumeration for the color tone, which provides the impression of looking through a tinted glass. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_EFFECT_NONE = 0, /**< None */ CAMERA_ATTR_EFFECT_MONO, /**< Mono */ CAMERA_ATTR_EFFECT_SEPIA, /**< Sepia */ CAMERA_ATTR_EFFECT_NEGATIVE, /**< Negative */ CAMERA_ATTR_EFFECT_BLUE, /**< Blue */ CAMERA_ATTR_EFFECT_GREEN, /**< Green */ CAMERA_ATTR_EFFECT_AQUA, /**< Aqua */ CAMERA_ATTR_EFFECT_VIOLET, /**< Violet */ CAMERA_ATTR_EFFECT_ORANGE, /**< Orange */ CAMERA_ATTR_EFFECT_GRAY, /**< Gray */ CAMERA_ATTR_EFFECT_RED, /**< Red */ CAMERA_ATTR_EFFECT_ANTIQUE, /**< Antique */ CAMERA_ATTR_EFFECT_WARM, /**< Warm */ CAMERA_ATTR_EFFECT_PINK, /**< Pink */ CAMERA_ATTR_EFFECT_YELLOW, /**< Yellow */ CAMERA_ATTR_EFFECT_PURPLE, /**< Purple */ CAMERA_ATTR_EFFECT_EMBOSS, /**< Emboss */ CAMERA_ATTR_EFFECT_OUTLINE, /**< Outline */ CAMERA_ATTR_EFFECT_SOLARIZATION, /**< Solarization */ CAMERA_ATTR_EFFECT_SKETCH, /**< Sketch */ CAMERA_ATTR_EFFECT_WASHED, /**< Washed */ CAMERA_ATTR_EFFECT_VINTAGE_WARM, /**< Vintage warm */ CAMERA_ATTR_EFFECT_VINTAGE_COLD, /**< Vintage cold */ CAMERA_ATTR_EFFECT_POSTERIZATION, /**< Posterization */ CAMERA_ATTR_EFFECT_CARTOON, /**< Cartoon */ CAMERA_ATTR_EFFECT_SELECTIVE_RED, /**< Selective color - Red */ CAMERA_ATTR_EFFECT_SELECTIVE_GREEN, /**< Selective color - Green */ CAMERA_ATTR_EFFECT_SELECTIVE_BLUE, /**< Selective color - Blue */ CAMERA_ATTR_EFFECT_SELECTIVE_YELLOW, /**< Selective color - Yellow */ CAMERA_ATTR_EFFECT_SELECTIVE_RED_YELLOW, /**< Selective color - Red and Yellow */ CAMERA_ATTR_EFFECT_OTHER_GRAPHICS, /**< Other Graphic effects */ } camera_attr_effect_mode_e; /** * @brief Enumeration for the white balance levels of the camera. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_WHITE_BALANCE_NONE = 0, /**< None */ CAMERA_ATTR_WHITE_BALANCE_AUTOMATIC, /**< Automatic */ CAMERA_ATTR_WHITE_BALANCE_DAYLIGHT, /**< Daylight */ CAMERA_ATTR_WHITE_BALANCE_CLOUDY, /**< Cloudy */ CAMERA_ATTR_WHITE_BALANCE_FLUORESCENT, /**< Fluorescent */ CAMERA_ATTR_WHITE_BALANCE_INCANDESCENT, /**< Incandescent */ CAMERA_ATTR_WHITE_BALANCE_SHADE, /**< Shade */ CAMERA_ATTR_WHITE_BALANCE_HORIZON, /**< Horizon */ CAMERA_ATTR_WHITE_BALANCE_FLASH, /**< Flash */ CAMERA_ATTR_WHITE_BALANCE_CUSTOM, /**< Custom */ } camera_attr_whitebalance_e; /** * @brief Enumeration for the scene mode. * @details The mode of operation can be in daylight, night, or back-light. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_SCENE_MODE_NORMAL = 0, /**< Normal */ CAMERA_ATTR_SCENE_MODE_PORTRAIT, /**< Portrait */ CAMERA_ATTR_SCENE_MODE_LANDSCAPE, /**< Landscape */ CAMERA_ATTR_SCENE_MODE_SPORTS, /**< Sports */ CAMERA_ATTR_SCENE_MODE_PARTY_N_INDOOR, /**< Party & indoor */ CAMERA_ATTR_SCENE_MODE_BEACH_N_INDOOR, /**< Beach & indoor */ CAMERA_ATTR_SCENE_MODE_SUNSET, /**< Sunset */ CAMERA_ATTR_SCENE_MODE_DUSK_N_DAWN, /**< Dusk & dawn */ CAMERA_ATTR_SCENE_MODE_FALL_COLOR, /**< Fall */ CAMERA_ATTR_SCENE_MODE_NIGHT_SCENE, /**< Night scene */ CAMERA_ATTR_SCENE_MODE_FIREWORK, /**< Firework */ CAMERA_ATTR_SCENE_MODE_TEXT, /**< Text */ CAMERA_ATTR_SCENE_MODE_SHOW_WINDOW, /**< Show window */ CAMERA_ATTR_SCENE_MODE_CANDLE_LIGHT, /**< Candle light */ CAMERA_ATTR_SCENE_MODE_BACKLIGHT, /**< Backlight */ CAMERA_ATTR_SCENE_MODE_AQUA, /**< Aqua */ } camera_attr_scene_mode_e; /** * @brief Enumeration for the auto focus mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_AF_NONE = 0, /**< auto-focus is not set */ CAMERA_ATTR_AF_NORMAL, /**< auto-focus in the normal mode */ CAMERA_ATTR_AF_MACRO, /**< auto-focus in the macro mode(close distance) */ CAMERA_ATTR_AF_FULL, /**< auto-focus in the full mode(all range scan, limited by device spec) */ } camera_attr_af_mode_e; /** * @brief Enumeration for the ISO levels of the camera. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_ISO_AUTO = 0, /**< ISO auto mode */ CAMERA_ATTR_ISO_50, /**< ISO 50 */ CAMERA_ATTR_ISO_100, /**< ISO 100 */ CAMERA_ATTR_ISO_200, /**< ISO 200 */ CAMERA_ATTR_ISO_400, /**< ISO 400 */ CAMERA_ATTR_ISO_800, /**< ISO 800 */ CAMERA_ATTR_ISO_1600, /**< ISO 1600 */ CAMERA_ATTR_ISO_3200, /**< ISO 3200 */ } camera_attr_iso_e; /** * @brief Enumeration for the camera exposure modes. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_EXPOSURE_MODE_OFF = 0, /**< Off */ CAMERA_ATTR_EXPOSURE_MODE_ALL, /**< All mode */ CAMERA_ATTR_EXPOSURE_MODE_CENTER, /**< Center mode */ CAMERA_ATTR_EXPOSURE_MODE_SPOT, /**< Spot mode */ CAMERA_ATTR_EXPOSURE_MODE_CUSTOM, /**< Custom mode */ } camera_attr_exposure_mode_e; /** * @brief Enumeration for the orientation values of tag. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_TAG_ORIENTATION_TOP_LEFT = 1, /**< Row #0 is at the top, Column #0 is to the left */ CAMERA_ATTR_TAG_ORIENTATION_TOP_RIGHT = 2, /**< Row #0 is at the top, Column #0 is to the right (flipped) */ CAMERA_ATTR_TAG_ORIENTATION_BOTTOM_RIGHT = 3, /**< Row #0 is at the bottom, Column #0 is to the right */ CAMERA_ATTR_TAG_ORIENTATION_BOTTOM_LEFT = 4, /**< Row #0 is at the bottom, Column #0 is to the left (flipped) */ CAMERA_ATTR_TAG_ORIENTATION_LEFT_TOP = 5, /**< Row #0 is to the left, Column #0 is at the top (flipped) */ CAMERA_ATTR_TAG_ORIENTATION_RIGHT_TOP = 6, /**< Row #0 is to the right, Column #0 is at the top */ CAMERA_ATTR_TAG_ORIENTATION_RIGHT_BOTTOM = 7, /**< Row #0 is to the right, Column #0 is at the bottom (flipped) */ CAMERA_ATTR_TAG_ORIENTATION_LEFT_BOTTOM = 8, /**< Row #0 is to the left, Column #0 is at the bottom */ } camera_attr_tag_orientation_e; /** * @brief Enumeration for the flash mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_FLASH_MODE_OFF = 0, /**< Always off */ CAMERA_ATTR_FLASH_MODE_ON, /**< Always splashes */ CAMERA_ATTR_FLASH_MODE_AUTO, /**< Depending on intensity of light, strobe starts to flash */ CAMERA_ATTR_FLASH_MODE_REDEYE_REDUCTION, /**< Red eye reduction. Multiple flash before capturing */ CAMERA_ATTR_FLASH_MODE_SLOW_SYNC, /**< Slow sync curtain synchronization */ CAMERA_ATTR_FLASH_MODE_FRONT_CURTAIN, /**< Front curtain synchronization */ CAMERA_ATTR_FLASH_MODE_REAR_CURTAIN, /**< Rear curtain synchronization */ CAMERA_ATTR_FLASH_MODE_PERMANENT, /**< Keep turned on until turning off */ } camera_attr_flash_mode_e; /** * @brief Enumeration to preview FPS. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_FPS_AUTO = 0, /**< AUTO FPS */ CAMERA_ATTR_FPS_7 = 7, /**< 7 FPS */ CAMERA_ATTR_FPS_8 = 8, /**< 8 FPS */ CAMERA_ATTR_FPS_15 = 15, /**< 15 FPS */ CAMERA_ATTR_FPS_20 = 20, /**< 20 FPS */ CAMERA_ATTR_FPS_24 = 24, /**< 24 FPS */ CAMERA_ATTR_FPS_25 = 25, /**< 25 FPS */ CAMERA_ATTR_FPS_30 = 30, /**< 30 FPS */ CAMERA_ATTR_FPS_60 = 60, /**< 60 FPS */ CAMERA_ATTR_FPS_90 = 90, /**< 90 FPS */ CAMERA_ATTR_FPS_120 = 120 /**< 120 FPS */ } camera_attr_fps_e; /** * @brief Enumeration for the theater mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_THEATER_MODE_DISABLE = 0, /**< Disable theater mode - External display shows same image as device display */ 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 */ 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 */ } camera_attr_theater_mode_e; /** * @brief Enumeration for HDR capture mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */ typedef enum { CAMERA_ATTR_HDR_MODE_DISABLE = 0, /**< Disable HDR capture */ CAMERA_ATTR_HDR_MODE_ENABLE, /**< Enable HDR capture */ CAMERA_ATTR_HDR_MODE_KEEP_ORIGINAL /**< Enable HDR capture and keep original image data */ } camera_attr_hdr_mode_e; /** * @brief Enumeration for PTZ (Pan Tilt Zoom) type. * @since_tizen 3.0 */ typedef enum { CAMERA_ATTR_PTZ_TYPE_MECHANICAL = 0, /**< Move the camera device physically */ CAMERA_ATTR_PTZ_TYPE_ELECTRONIC /**< Zoom digitally and move into portion of the image */ } camera_attr_ptz_type_e; /** * @brief Enumeration for PTZ (Pan Tilt Zoom) movement type. * @since_tizen 3.0 */ typedef enum { CAMERA_ATTR_PTZ_MOVE_ABSOLUTE = 0, /**< Move to a specific coordinate position */ CAMERA_ATTR_PTZ_MOVE_RELATIVE /**< Move a specific distance from the current position */ } camera_attr_ptz_move_type_e; /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_MODULE * @{ */ /** * @brief Called when the camera state is changed. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] previous The previous state of the camera * @param[in] current The current state of the camera * @param[in] by_policy If @c true the state is changed by policy, otherwise @c false * @param[in] user_data The user data passed from the callback registration function * @pre camera_start_preview(), camera_start_capture() or camera_stop_preview() * will invoke this callback if you register this callback using camera_set_state_changed_cb(). * @see camera_set_state_changed_cb() */ typedef void (*camera_state_changed_cb)(camera_state_e previous, camera_state_e current, bool by_policy, void *user_data); /** * @brief Called when the camera device state is changed. * @since_tizen 3.0 * @param[in] device The hardware camera type * @param[in] state The state of the camera device * @param[in] user_data The user data passed from the callback registration function * @see camera_add_device_state_changed_cb() */ typedef void (*camera_device_state_changed_cb)(camera_device_e device, camera_device_state_e state, void *user_data); /** * @brief Called when the camera is interrupted by policy. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This callback is called after interrupt handling is completed. * @param[in] policy The policy that interrupted the camera * @param[in] previous The previous state of the camera * @param[in] current The current state of the camera * @param[in] user_data The user data passed from the callback registration function * @see camera_set_interrupted_cb() */ typedef void (*camera_interrupted_cb)(camera_policy_e policy, camera_state_e previous, camera_state_e current, void *user_data); /** * @brief Called when the camera interrupt is started by policy. * @since_tizen 4.0 * @remarks This callback is called before interrupt handling is started. * @param[in] policy The policy that is interrupting the camera * @param[in] state The current state of the camera * @param[in] user_data The user data passed from the callback registration function * @see camera_set_interrupt_started_cb() */ typedef void (*camera_interrupt_started_cb)(camera_policy_e policy, camera_state_e state, void *user_data); /** * @brief Called when the camera focus state is changed. * @details When the camera auto focus completes or a change to the focus state occurs, * this callback is invoked. \n \n * Changes of focus state are as follows: \n * #CAMERA_FOCUS_STATE_RELEASED -> start focusing -> #CAMERA_FOCUS_STATE_ONGOING -> working -> * #CAMERA_FOCUS_STATE_FOCUSED or #CAMERA_FOCUS_STATE_FAILED. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * * @param[in] state The current state of the auto-focus * @param[in] user_data The user data passed from the callback registration function * @pre camera_start_focusing() will invoke this callback if you register it using camera_set_focus_changed_cb(). * @see camera_set_focus_changed_cb() * @see camera_unset_focus_changed_cb() * @see camera_start_focusing() * @see camera_cancel_focusing() */ typedef void (*camera_focus_changed_cb)(camera_focus_state_e state, void *user_data); /** * @brief Called to register for notifications about delivering a copy of the new preview frame when every preview frame is displayed. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * * @remarks This function is issued in the context of internal framework so the UI update code should not be directly invoked.\n * If the camera is used as a recorder then this callback function won't be called. * @remarks The @a frame should not be released and it's available until the callback returns. * * @param[in] frame The reference pointer to preview stream data * @param[in] user_data The user data passed from the callback registration function * @pre camera_start_preview() will invoke this callback function if you register this callback using camera_set_preview_cb(). * @see camera_start_preview() * @see camera_set_preview_cb() * @see camera_unset_preview_cb() */ typedef void (*camera_preview_cb)(camera_preview_data_s *frame, void *user_data); /** * @brief Called to register for notifications about delivering media packet when every preview frame is displayed. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * * @remarks This function is issued in the context of internal framework so the UI update code should not be directly invoked.\n * If the camera is used as a recorder then this callback function won't be called.\n * and the packet should be released by media_packet_destroy() after use. * * @param[in] pkt Reference pointer to media packet * @param[in] user_data The user data passed from the callback registration function * @pre camera_start_preview() will invoke this callback function if you register this callback using camera_set_media_packet_preview_cb(). * @see camera_start_preview() * @see camera_set_media_packet_preview_cb() * @see camera_unset_media_packet_preview_cb() */ typedef void (*camera_media_packet_preview_cb)(media_packet_h pkt, void *user_data); /** * @brief Called to get information about image data taken by the camera once per frame while capturing. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * * @remarks This function is issued in the context of internal framework so the UI update code should not be directly invoked. * You must not call camera_start_preview() within this callback. * * @param[in] image The image data of the captured picture * @param[in] postview The image data of the postview * @param[in] thumbnail The image data of the thumbnail (it should be @c NULL if the available thumbnail data does not exist) * @param[in] user_data The user data passed from the callback registration function * @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(). * @see camera_start_capture() * @see camera_start_continuous_capture() * @see camera_capture_completed_cb() */ typedef void (*camera_capturing_cb)(camera_image_data_s *image, camera_image_data_s *postview, camera_image_data_s *thumbnail, void *user_data); /** * @brief Called when the camera capturing completes. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * * @remarks The callback is called after camera_capturing_cb() is completed.\n * If you want to show the user a preview after capturing is finished, \n * an application can use camera_start_preview() after calling this callback. * @param[in] user_data The user data passed from the callback registration function * @pre This callback function is invoked if it is registered using camera_start_capture() or camera_start_continuous_capture(). * @see camera_start_capture() * @see camera_start_continuous_capture() * @see camera_capturing_cb() */ typedef void (*camera_capture_completed_cb)(void *user_data); /** * @brief Called when an error occurs. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * * @remarks This callback informs about a critical error situation.\n * When this callback is invoked, the user should release the resource and terminate the application.\n * In case of errors, one of these codes occur:\n * #CAMERA_ERROR_DEVICE,\n * #CAMERA_ERROR_INVALID_OPERATION,\n * #CAMERA_ERROR_OUT_OF_MEMORY. * @param[in] error The error code * @param[in] current_state The current state of the camera * @param[in] user_data The user data passed from the callback registration function * @pre This callback function is invoked if it is registered using camera_set_error_cb(). * @see camera_set_error_cb() * @see camera_unset_error_cb() */ typedef void (*camera_error_cb)(camera_error_e error, camera_state_e current_state, void *user_data); /** * @brief Called when a face is detected in the preview frame. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] faces The detected face array * @param[in] count The length of the array * @param[in] user_data The user data passed from the callback registration function * @see camera_start_face_detection() */ typedef void (*camera_face_detected_cb)(camera_detected_face_s *faces, int count, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Called once for each supported preview resolution. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] width The preview image width * @param[in] height The preview image height * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_foreach_supported_preview_resolution() will invoke this callback. * @see camera_foreach_supported_preview_resolution() */ typedef bool (*camera_supported_preview_resolution_cb)(int width, int height, void *user_data); /** * @brief Called once for each supported capture resolution. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] width The capture resolution width * @param[in] height The capture resolution height * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_foreach_supported_capture_resolution() will invoke this callback. * @see camera_foreach_supported_capture_resolution() */ typedef bool (*camera_supported_capture_resolution_cb)(int width, int height, void *user_data); /** * @brief Called once for the pixel format of each supported capture format. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] format The supported pixel format * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_foreach_supported_capture_format() will invoke this callback. * @see camera_foreach_supported_capture_format() */ typedef bool (*camera_supported_capture_format_cb)(camera_pixel_format_e format, void *user_data); /** * @brief Called once for the pixel format of each supported preview format. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] format The supported preview data format * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_foreach_supported_preview_format() will invoke this callback. * @see camera_foreach_supported_preview_format() */ typedef bool (*camera_supported_preview_format_cb)(camera_pixel_format_e format, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_MODULE * @{ */ /** * @brief Creates a new camera handle for controlling a camera. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks Multiple handles on a context at the same time are allowed to be created. However, * camera cannot guarantee proper operation because of limited resources, such as * camera device, audio device, and display device.\n. * A @a camera must be released using camera_destroy(). * @remarks The privilege %http://tizen.org/privilege/camera is not required since 4.0,\n * but it is required in all earlier versions. * @param[in] device The hardware camera to access * @param[out] camera A newly returned handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_OUT_OF_MEMORY Out of memory * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @post If it succeeds, the camera state will be #CAMERA_STATE_CREATED. * * @see camera_destroy() */ int camera_create(camera_device_e device, camera_h *camera); /** * @brief Changes the camera device. * * @since_tizen 3.0 * @remarks This function can be used to change camera device simply without camera_destroy() and camera_create().\n * If display reuse hint is set by camera_set_display_reuse_hint() before stopping the preview,\n * display handle will be reused and last frame on display can be kept even though camera device is changed. * @param[in] camera The handle to the camera * @param[in] device The hardware camera to access * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_OUT_OF_MEMORY Out of memory * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED. * @post If it succeeds, the camera attributes and settings will be reset. * * @see camera_set_display_reuse_hint() * @see camera_get_display_reuse_hint() */ int camera_change_device(camera_h camera, camera_device_e device); /** * @brief Destroys the camera handle and releases all its resources. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_create() */ int camera_destroy(camera_h camera); /** * @brief Starts capturing and drawing preview frames on the screen. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/camera * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_RESOURCE_CONFLICT Resource conflict error * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_DEVICE_BUSY The device is being used in another application or is performing other operations * @retval #CAMERA_ERROR_DEVICE_NOT_FOUND No camera device * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_CAPTURED.\n * You must set the display handle. \n * If needed, modify preview FPS(camera_attr_set_preview_fps()), * preview resolution(camera_set_preview_resolution()), or preview format(camera_set_preview_format()). * @post If it succeeds, the camera state will be #CAMERA_STATE_PREVIEW.\n * camera_preview_cb() will be called when preview image data becomes available. * * @see camera_stop_preview() * @see camera_set_display() * @see camera_set_preview_cb() * @see camera_set_media_packet_preview_cb() * @see camera_foreach_supported_preview_resolution() * @see camera_set_preview_resolution() * @see camera_get_preview_resolution() * @see camera_foreach_supported_preview_format() * @see camera_set_preview_format() * @see camera_get_preview_format() * @see camera_attr_foreach_supported_fps() * @see camera_attr_set_preview_fps() * @see camera_attr_get_preview_fps() */ int camera_start_preview(camera_h camera); /** * @brief Stops capturing and drawing preview frames. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/camera * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_PREVIEW. * @post The camera state will be #CAMERA_STATE_CREATED. * @see camera_start_preview() * @see camera_unset_preview_cb() * @see camera_unset_media_packet_preview_cb() */ int camera_stop_preview(camera_h camera); /** * @brief Starts capturing of still images. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/camera * @remarks This function causes the transition of the camera state from #CAMERA_STATE_CAPTURING to #CAMERA_STATE_CAPTURED automatically\n * and the corresponding callback function camera_capturing_cb() and camera_capture_completed_cb() will be invoked\n * The captured image will be delivered through camera_capturing_cb().\n * camera_capture_completed_cb() callback notifies about completion of camera_capturing_cb(). \n * The camera's preview should be restarted by calling camera_start_preview(). * @param[in] camera The handle to the camera * @param[in] capturing_cb The callback for capturing data * @param[in] completed_cb The callback for notification of completion * @param[in] user_data The user data * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_PREVIEW. \n * If needed, modify capture resolution(camera_set_capture_resolution()), * capture format(camera_set_capture_format()), or image quality(camera_attr_set_image_quality()). * @post If it succeeds the camera state will be #CAMERA_STATE_CAPTURED. * * @see camera_start_preview() * @see camera_start_continuous_capture(); * @see camera_foreach_supported_capture_resolution() * @see camera_set_capture_resolution() * @see camera_get_capture_resolution() * @see camera_foreach_supported_capture_format() * @see camera_set_capture_format() * @see camera_get_capture_format() * @see camera_attr_set_image_quality() * @see camera_attr_get_image_quality() */ int camera_start_capture(camera_h camera, camera_capturing_cb capturing_cb, camera_capture_completed_cb completed_cb, void *user_data); /** * @brief Starts continuously capturing still images. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/camera * @remarks If this is not supported zero shutter lag occurs. The capture resolution could be changed to the preview resolution.\n * This function causes the transition of the camera state from #CAMERA_STATE_CAPTURING to #CAMERA_STATE_CAPTURED automatically\n * and the corresponding callback function camera_capturing_cb() and camera_capture_completed_cb() will be invoked\n * Each Captured image will be delivered through camera_capturing_cb().\n * The camera_capture_completed_cb() callback notifies about the completion of an entire capture.\n * The camera's preview should be restarted by calling camera_start_preview().\n. * @param[in] camera The handle to the camera * @param[in] count The number of still images * @param[in] interval The interval of the capture (millisecond) * @param[in] capturing_cb The callback for capturing data * @param[in] completed_cb The callback for notification of completion * @param[in] user_data The user data * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post If it succeeds the camera state will be #CAMERA_STATE_CAPTURED. * * @see camera_start_preview() * @see camera_start_capture(); * @see camera_stop_continuous_capture() * @see camera_is_supported_zero_shutter_lag() */ 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); /** * @brief Aborts continuous capturing. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/camera * @remarks The camera state will be changed to #CAMERA_STATE_CAPTURED. * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_PREVIEW. * * @see camera_start_continuous_capture() */ int camera_stop_continuous_capture(camera_h camera); /** * @brief Gets the state of the camera. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] state The current state of the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_create() * @see camera_start_preview() * @see camera_stop_preview() * @see camera_start_capture() */ int camera_get_state(camera_h camera, camera_state_e *state); /** * @brief Starts camera auto-focusing, asynchronously. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/camera * @remarks If continuous status is @c true, the camera continuously tries to focus. * @param[in] camera The handle to the camera * @param[in] continuous The status of continuous focusing * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_PREVIEW. * @post The camera focus state will be #CAMERA_FOCUS_STATE_ONGOING. * * @see camera_cancel_focusing() * @see camera_set_focus_changed_cb() * @see camera_focus_changed_cb() * @see camera_attr_set_af_mode() */ int camera_start_focusing(camera_h camera, bool continuous); /** * @brief Stops camera auto focusing. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/camera * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_PREVIEW. * * @see camera_start_focusing() * @see camera_focus_changed_cb() */ int camera_cancel_focusing(camera_h camera); /** * @brief Sets the display handle to show preview images. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This function must be called before previewing (see camera_start_preview()). * In Custom ROI display mode, camera_attr_set_display_roi_area() function must be called before calling this function. * @remarks This function must be called in main thread of the application. * Otherwise, it will return #CAMERA_ERROR_INVALID_OPERATION by internal restriction. * To avoid #CAMERA_ERROR_INVALID_OPERATION in sub thread, ecore_thread_main_loop_begin() and * ecore_thread_main_loop_end() can be used, but deadlock can occur if the main thread is busy. * So, it's not recommended to use them. (Since 5.0) * @param[in] camera The handle to the camera * @param[in] type The display type * @param[in] display The display handle from #GET_DISPLAY * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED. * * @see camera_start_preview() * @see #GET_DISPLAY * @see ecore_thread_main_loop_begin() * @see ecore_thread_main_loop_end() */ int camera_set_display(camera_h camera, camera_display_type_e type, camera_display_h display); /** * @brief Sets the resolution of the preview. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This function should be called before previewing (camera_start_preview()). * @param[in] camera The handle to the camera * @param[in] width The preview width * @param[in] height The preview height * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * * @see camera_start_preview() * @see camera_get_preview_resolution() * @see camera_foreach_supported_preview_resolution() */ int camera_set_preview_resolution(camera_h camera, int width, int height); /** * @brief Gets the resolution of the preview. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] width The preview width * @param[out] height The preview height * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_preview_resolution() * @see camera_foreach_supported_preview_resolution() */ int camera_get_preview_resolution(camera_h camera, int *width, int *height); /** * @brief Gets the recommended preview resolution. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks Depending on the capture resolution aspect ratio and display resolution, the recommended preview resolution is determined. * @param[in] camera The handle to the camera * @param[out] width The preview width * @param[out] height The preview height * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_preview_resolution() * @see camera_foreach_supported_preview_resolution() */ int camera_get_recommended_preview_resolution(camera_h camera, int *width, int *height); /** * @brief Starts face detection. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/camera * @remarks This should be called after the preview is started.\n * This callback will be invoked when the face is detected in the preview frame.\n * Internally it starts continuous focus and focusing on the detected face.\n * 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 * 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. * @param[in] camera The handle to the camera * @param[in] callback The callback to notify face detection * @param[in] user_data The user data to be passed to the callback function * * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Not preview state * @retval #CAMERA_ERROR_INVALID_OPERATION Not supported this feature * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be #CAMERA_STATE_PREVIEW. * * @see camera_stop_face_detection() * @see camera_face_detected_cb() * @see camera_is_supported_face_detection() */ int camera_start_face_detection(camera_h camera, camera_face_detected_cb callback, void *user_data); /** * @brief Stops face detection. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @privlevel public * @privilege %http://tizen.org/privilege/camera * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre This should be called after face detection is started. * * @see camera_start_face_detection() * @see camera_is_supported_face_detection() */ int camera_stop_face_detection(camera_h camera); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Gets continuous capture feature's supported state. * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. * @param[in] camera The handle to the camera * @return @c true on supported, otherwise false * @exception #CAMERA_ERROR_NONE Successful * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * */ bool camera_is_supported_continuous_capture(camera_h camera); /** * @brief Retrieves all supported camera preview resolutions by invoking the callback function once for each supported camera preview resolution. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to be invoked * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_supported_preview_resolution_cb() repeatedly to retrieve each supported preview resolution. * * @see camera_set_preview_resolution() * @see camera_get_preview_resolution() * @see camera_supported_preview_resolution_cb() */ int camera_foreach_supported_preview_resolution(camera_h camera, camera_supported_preview_resolution_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_MODULE * @{ */ /** * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE * @brief Sets the display rotation. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This function should be called before previewing (see camera_start_preview()) * @param[in] camera The handle to the camera * @param[in] rotation The display rotation * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Display type is incorrect * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_start_preview() * @see camera_get_display_rotation() */ int camera_set_display_rotation(camera_h camera, camera_rotation_e rotation); /** * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE * @brief Gets the display rotation. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] rotation The display rotation * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_display_rotation() */ int camera_get_display_rotation(camera_h camera, camera_rotation_e *rotation); /** * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE * @brief Sets the display flip. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] flip The display flip * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Display type is incorrect * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_get_display_flip() */ int camera_set_display_flip(camera_h camera, camera_flip_e flip); /** * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE * @brief Gets the display flip. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] flip The display flip * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_display_flip() */ int camera_get_display_flip(camera_h camera, camera_flip_e *flip); /** * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE * @brief Sets the visible property for display. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] visible The display visibility property * * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_is_display_visible() */ int camera_set_display_visible(camera_h camera, bool visible); /** * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE * @brief Gets the visible property of display. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] visible @c true if camera display is visible, otherwise @c false * * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_display_visible() */ int camera_is_display_visible(camera_h camera, bool *visible); /** * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE * @brief Sets the display mode. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] mode The display mode * * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_get_display_mode() */ int camera_set_display_mode(camera_h camera, camera_display_mode_e mode); /** * @ingroup CAPI_MEDIA_CAMERA_DISPLAY_MODULE * @brief Gets the display mode. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] mode The display mode * * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_display_mode() */ int camera_get_display_mode(camera_h camera, camera_display_mode_e *mode); /** * @brief Sets the hint for display reuse. * @details If the hint is set to true, the display will be reused when the camera device is changed with camera_change_device(). * @since_tizen 3.0 * @remarks If the current display type is #CAMERA_DISPLAY_TYPE_NONE, this function will return #CAMERA_ERROR_INVALID_OPERATION. * @param[in] camera The handle to the camera * @param[in] hint The hint for display reuse; true - reuse the display, false - do not reuse * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_PREVIEW. * @see camera_get_display_reuse_hint() * @see camera_change_device() */ int camera_set_display_reuse_hint(camera_h camera, bool hint); /** * @brief Gets the hint for display reuse. * @since_tizen 3.0 * @remarks If the current display type is #CAMERA_DISPLAY_TYPE_NONE, this function will return #CAMERA_ERROR_INVALID_OPERATION. * @param[in] camera The handle to the camera * @param[out] hint The hint for display reuse; true - reuse the display, false - do not reuse * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_display_reuse_hint() * @see camera_change_device() */ int camera_get_display_reuse_hint(camera_h camera, bool *hint); /** * @brief Sets the resolution of the captured image. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] width The capture width * @param[in] height The capture height * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_start_capture() * @see camera_get_capture_resolution() * @see camera_foreach_supported_capture_resolution() */ int camera_set_capture_resolution(camera_h camera, int width, int height); /** * @brief Gets the resolution of the captured image. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] width The capture width * @param[out] height The capture height * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_capture_resolution() * @see camera_foreach_supported_capture_resolution() */ int camera_get_capture_resolution(camera_h camera, int *width, int *height); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported camera captured resolutions by invoking the callback function once for each supported camera capture resolution. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to register * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_supported_capture_resolution_cb() repeatedly to retrieve each supported capture resolution. * @see camera_set_capture_resolution() * @see camera_get_capture_resolution() * @see camera_supported_capture_resolution_cb() */ int camera_foreach_supported_capture_resolution(camera_h camera, camera_supported_capture_resolution_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_MODULE * @{ */ /** * @brief Sets the format of an image to be captured. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This function should be called before capturing (see camera_start_capture()). * @param[in] camera The handle to the camera * @param[out] format The format of the image to be captured * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_start_capture() * @see camera_get_capture_format() * @see camera_foreach_supported_capture_format() */ int camera_set_capture_format(camera_h camera, camera_pixel_format_e format); /** * @brief Gets the format of the image to be captured. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] format The format of the image to be captured * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_capture_format() * @see camera_foreach_supported_capture_format() */ int camera_get_capture_format(camera_h camera, camera_pixel_format_e *format); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported camera capture formats by invoking the callback function once for each supported camera capture format. * * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to be invoked * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_supported_capture_format_cb() repeatedly to retrieve each supported capture format. * @see camera_set_capture_format() * @see camera_get_capture_format() * @see camera_supported_capture_format_cb() */ int camera_foreach_supported_capture_format(camera_h camera, camera_supported_capture_format_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_MODULE * @{ */ /** * @brief Sets the preview data format. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This function should be called before previewing (see camera_start_preview()). * @param[in] camera The handle to the camera * @param[in] format The preview data format * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED. * @see camera_start_preview() * @see camera_get_preview_format() * @see camera_foreach_supported_preview_format() */ int camera_set_preview_format(camera_h camera, camera_pixel_format_e format); /** * @brief Gets the format of the preview stream. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] format The preview data format * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_preview_format() * @see camera_foreach_supported_preview_format() */ int camera_get_preview_format(camera_h camera, camera_pixel_format_e *format); /** * @brief Gets the facing direction of camera module. * @since_tizen 3.0 * @param[in] camera The handle to the camera * @param[out] facing_direction The facing direction of camera module * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected */ int camera_get_facing_direction(camera_h camera, camera_facing_direction_e *facing_direction); /** * @brief Gets the camera's flash state. * @since_tizen 3.0 * @param[in] device The hardware camera to access * @param[out] state The current flash state * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_attr_set_flash_mode() * @see camera_attr_get_flash_mode() */ int camera_get_flash_state(camera_device_e device, camera_flash_state_e *state); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported camera preview formats by invoking the callback function once for each supported camera preview format. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to be invoked * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_supported_preview_format_cb() repeatedly to retrieve each supported preview format. * @see camera_set_preview_format() * @see camera_get_preview_format() * @see camera_supported_preview_format_cb() */ int camera_foreach_supported_preview_format(camera_h camera, camera_supported_preview_format_cb callback, void *user_data); /** * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @brief Gets the face detection feature's supported state. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. * @param[in] camera The handle to the camera * @return @c true if supported, otherwise @c false * @exception #CAMERA_ERROR_NONE Successful * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_start_face_detection() * @see camera_stop_face_detection() */ bool camera_is_supported_face_detection(camera_h camera); /** * @brief Gets the zero shutter lag feature's supported state. * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks If supporting zero shutter lag, continuous shot can be done with full capture size. \n * The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. * @param[in] camera The handle to the camera * @return @c true if supported, otherwise @c false * @exception #CAMERA_ERROR_NONE Successful * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported */ bool camera_is_supported_zero_shutter_lag(camera_h camera); /** * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @brief Gets the camera device count. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks If the device supports primary and secondary camera, this returns @c 2. If @c 1 is returned, the device only supports primary camera. * @param[in] camera The handle to the camera * @param[out] device_count The device count * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected */ int camera_get_device_count(camera_h camera, int *device_count); /** * @brief Gets the media packet preview callback feature's supported state. * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. * @param[in] camera The handle to the camera * @return @c true if supported, otherwise @c false * @exception #CAMERA_ERROR_NONE Successful * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * */ bool camera_is_supported_media_packet_preview_cb(camera_h camera); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_MODULE * @{ */ /** * @brief Registers a callback function to be called once per frame when previewing. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This callback does not work in the video recorder mode.\n * Before 4.0, the only allowed state for calling this function was #CAMERA_STATE_CREATED.\n * Since 4.0, #CAMERA_STATE_PREVIEW has been added as an allowed state,\n * so that this function could be called before previewing or even while previewing.\n * A registered callback is called on the internal thread of the camera.\n * A video frame can be retrieved using a registered callback,\n * and the buffer is only available in a registered callback.\n * Since tizen 3.0, if you change the buffer in a registered callback,\n * it could not be displayed on the device in case of copied buffer.\n * and if camera_is_supported_media_packet_preview_cb() returns false,\n * it's copied buffer case. * @param[in] camera The handle to the camera * @param[in] callback The callback function to be registered * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre Before 4.0 : The camera state must be set to #CAMERA_STATE_CREATED.\n * Since 4.0 : The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_start_preview() * @see camera_unset_preview_cb() * @see camera_preview_cb() */ int camera_set_preview_cb(camera_h camera, camera_preview_cb callback, void *user_data); /** * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_preview_cb() */ int camera_unset_preview_cb(camera_h camera); /** * @brief Registers a media packet callback function to be called once per frame when previewing. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This callback does not work in video recorder mode.\n * This function should be called before previewing (see camera_start_preview())\n * A registered callback is called on the internal thread of the camera.\n * A video frame can be retrieved using a registered callback as a media packet.\n * The callback function holds the same buffer that will be drawn on the display device.\n * So if you change the media packet in a registered callback, it will be displayed on the device\n * and the media packet is available until it's destroyed by media_packet_destroy(). * @param[in] camera The handle to the camera * @param[in] callback The callback function to be registered * @param[in] user_data The user data to be passed to the callback function * @return 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera's state should be #CAMERA_STATE_CREATED. * @see camera_start_preview() * @see camera_unset_media_packet_preview_cb() * @see camera_media_packet_preview_cb() */ int camera_set_media_packet_preview_cb(camera_h camera, camera_media_packet_preview_cb callback, void *user_data); /** * @brief Unregisters the media packet callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_media_packet_preview_cb() */ int camera_unset_media_packet_preview_cb(camera_h camera); /** * @brief Registers a callback function to be called when the camera state changes. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to register * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function will invoke camera_state_changed_cb() when the camera state changes. * @see camera_unset_state_changed_cb() * @see camera_state_changed_cb() */ int camera_set_state_changed_cb(camera_h camera, camera_state_changed_cb callback, void *user_data); /** * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_state_changed_cb() */ int camera_unset_state_changed_cb(camera_h camera); /** * @brief Registers a callback function to be called when the camera is interrupted by policy. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to register * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_unset_interrupted_cb() * @see camera_interrupted_cb() */ int camera_set_interrupted_cb(camera_h camera, camera_interrupted_cb callback, void *user_data); /** * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_interrupted_cb() */ int camera_unset_interrupted_cb(camera_h camera); /** * @brief Registers a callback function to be called when the camera interrupt is started by policy. * @since_tizen 4.0 * @param[in] camera The handle to the camera * @param[in] callback The callback function to register * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @see camera_unset_interrupt_started_cb() * @see camera_interrupt_started_cb() */ int camera_set_interrupt_started_cb(camera_h camera, camera_interrupt_started_cb callback, void *user_data); /** * @brief Unregisters the callback function. * @since_tizen 4.0 * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @see camera_set_interrupt_started_cb() */ int camera_unset_interrupt_started_cb(camera_h camera); /** * @brief Registers a callback function to be called when the auto-focus state changes. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to register * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function will invoke camera_focus_changed_cb() when the auto-focus state changes. * @see camera_start_focusing() * @see camera_cancel_focusing() * @see camera_unset_focus_changed_cb() * @see camera_focus_changed_cb() */ int camera_set_focus_changed_cb(camera_h camera, camera_focus_changed_cb callback, void *user_data); /** * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_focus_changed_cb() */ int camera_unset_focus_changed_cb(camera_h camera); /** * @brief Registers a callback function to be called when an asynchronous operation error occurs. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This callback informs about a critical error situation.\n * When this callback is invoked, the user should release the resource and terminate the application.\n * In case of errors, one of the following codes will occur:\n * #CAMERA_ERROR_DEVICE,\n * #CAMERA_ERROR_INVALID_OPERATION,\n * #CAMERA_ERROR_OUT_OF_MEMORY. * @param[in] camera The handle to the camera * @param[in] callback The callback function to register * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function will invoke camera_error_cb() when an asynchronous operation error occurs. * @see camera_unset_error_cb() * @see camera_error_cb() */ int camera_set_error_cb(camera_h camera, camera_error_cb callback, void *user_data); /** * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_error_cb() */ int camera_unset_error_cb(camera_h camera); /** * @brief Gets the state of camera device. * @since_tizen 3.0 * @param[in] device The hardware camera type * @param[out] state The current state of the device * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported */ int camera_get_device_state(camera_device_e device, camera_device_state_e *state); /** * @brief Registers a callback function to be called when the camera device state changes. * @since_tizen 3.0 * @param[in] callback The callback function to register * @param[in] user_data The user data to be passed to the callback function * @param[out] cb_id The id of registered callback * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_OUT_OF_MEMORY Out of memory * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @post This function will invoke camera_device_state_changed_cb() when the camera device's state changes. * @see camera_remove_device_state_changed_cb() * @see camera_device_state_changed_cb() */ int camera_add_device_state_changed_cb(camera_device_state_changed_cb callback, void *user_data, int *cb_id); /** * @brief Unregisters the callback function. * @since_tizen 3.0 * @param[in] cb_id The id of registered callback * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_add_device_state_changed_cb() */ int camera_remove_device_state_changed_cb(int cb_id); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Called to get each supported auto-focus mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] mode The supported auto-focus mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_attr_foreach_supported_af_mode() will invoke this callback. * @see camera_attr_foreach_supported_af_mode() */ typedef bool (*camera_attr_supported_af_mode_cb)(camera_attr_af_mode_e mode, void *user_data); /** * @brief Called to get each supported exposure mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] mode The supported exposure mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_attr_foreach_supported_exposure_mode() will invoke this callback. * @see camera_attr_foreach_supported_exposure_mode() * @see #camera_attr_exposure_mode_e */ typedef bool (*camera_attr_supported_exposure_mode_cb)(camera_attr_exposure_mode_e mode, void *user_data); /** * @brief Called to get each supported ISO mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] iso The supported ISO mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_attr_foreach_supported_iso() will invoke this callback. * @see camera_attr_foreach_supported_iso() */ typedef bool (*camera_attr_supported_iso_cb)(camera_attr_iso_e iso, void *user_data); /** * @brief Called to get each supported white balance. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] wb The supported white balance mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_attr_foreach_supported_whitebalance() will invoke this callback. * @see camera_attr_foreach_supported_whitebalance() * @see #camera_attr_whitebalance_e */ typedef bool (*camera_attr_supported_whitebalance_cb)(camera_attr_whitebalance_e wb, void *user_data); /** * @brief Called to get each supported effect mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] effect The supported effect mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_attr_foreach_supported_effect() will invoke this callback. * @see camera_attr_foreach_supported_effect() */ typedef bool (*camera_attr_supported_effect_cb)(camera_attr_effect_mode_e effect, void *user_data); /** * @brief Called to get each supported scene mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] mode The supported scene mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_attr_foreach_supported_scene_mode() will invoke this callback. * @see camera_attr_foreach_supported_scene_mode() * @see #camera_attr_scene_mode_e */ typedef bool (*camera_attr_supported_scene_mode_cb)(camera_attr_scene_mode_e mode, void *user_data); /** * @brief Called to get each supported flash mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] mode The supported flash mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_attr_foreach_supported_flash_mode() will invoke this callback. * @see camera_attr_foreach_supported_flash_mode() */ typedef bool (*camera_attr_supported_flash_mode_cb)(camera_attr_flash_mode_e mode, void *user_data); /** * @brief Called to get each supported FPS mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] fps The supported FPS mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n otherwise @c false to break out of the loop * @pre camera_attr_foreach_supported_fps() will invoke this callback. * @see camera_attr_foreach_supported_fps() */ typedef bool (*camera_attr_supported_fps_cb)(camera_attr_fps_e fps, void *user_data); /** * @brief Called to get each supported stream flip mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] flip The supported stream flip mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop * @pre camera_attr_foreach_supported_stream_flip() will invoke this callback. * @see camera_attr_foreach_supported_stream_flip() */ typedef bool (*camera_attr_supported_stream_flip_cb)(camera_flip_e flip, void *user_data); /** * @brief Called to get each supported stream rotation mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] rotation The supported stream rotation mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop * @pre camera_attr_foreach_supported_stream_rotation() will invoke this callback. * @see camera_attr_foreach_supported_stream_rotation() */ typedef bool (*camera_attr_supported_stream_rotation_cb)(camera_rotation_e rotation, void *user_data); /** * @brief Called to get each supported theater mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] mode The supported theater mode * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop * @pre camera_attr_foreach_supported_theater_mode() will invoke this callback. * @see camera_attr_foreach_supported_theater_mode() */ typedef bool (*camera_attr_supported_theater_mode_cb)(camera_attr_theater_mode_e mode, void *user_data); /** * @brief Called to get each supported PTZ (Pan Tilt Zoom) type. * @since_tizen 3.0 * @param[in] type The supported ptz type * @param[in] user_data The user data passed from the foreach function * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop * @pre camera_attr_foreach_supported_ptz_mode() will invoke this callback. * @see camera_attr_foreach_supported_ptz_mode() */ typedef bool (*camera_attr_supported_ptz_type_cb)(camera_attr_ptz_type_e type, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Sets the preview frame rate. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This function should be called before previewing (see camera_start_preview()). * @param[in] camera The handle to the camera * @param[in] fps The frame rate * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED. * @see camera_start_preview() * @see camera_attr_get_preview_fps() * @see camera_attr_foreach_supported_fps() */ int camera_attr_set_preview_fps(camera_h camera, camera_attr_fps_e fps); /** * @brief Gets the frames per second of a preview video stream. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] fps The frames per second of the preview video stream * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_preview_fps() * @see camera_attr_foreach_supported_fps() */ int camera_attr_get_preview_fps(camera_h camera, camera_attr_fps_e *fps); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported FPS modes by invoking the callback function once for each supported FPS mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to invoke * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_fps_cb() repeatedly to get each supported FPS mode. * @see camera_attr_set_preview_fps() * @see camera_attr_get_preview_fps() * @see camera_attr_supported_fps_cb() */ int camera_attr_foreach_supported_fps(camera_h camera, camera_attr_supported_fps_cb callback, void *user_data); /** * @brief Retrieves all supported FPS modes by invoking the callback function once for each supported FPS mode. * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif * @param[in] camera The handle to the camera * @param[in] width Required preview resolution's width * @param[in] height Required preview resolution's height * @param[in] callback The callback function to invoke * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_fps_cb() repeatedly to get each supported FPS mode. * @see camera_attr_set_preview_fps() * @see camera_attr_get_preview_fps() * @see camera_attr_supported_fps_cb() */ int camera_attr_foreach_supported_fps_by_resolution(camera_h camera, int width, int height, camera_attr_supported_fps_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Sets quality of the image. * @details The range for image quality is 1 to 100. If @a quality is out of range, #CAMERA_ERROR_INVALID_PARAMETER error occurred. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] quality The quality of image (1 ~ 100) * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_start_preview() * @see camera_attr_get_image_quality() */ int camera_attr_set_image_quality(camera_h camera, int quality); /** * @brief Gets the quality of a still image, which is captured. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] quality The quality of the image(1 ~ 100) * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_image_quality() */ int camera_attr_get_image_quality(camera_h camera, int *quality); /** * @brief Gets the bit rate of encoded preview. * @since_tizen 3.0 * @param[in] camera The handle to the camera * @param[out] bitrate The bit rate of encoded preview * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_encoded_preview_bitrate() */ int camera_attr_get_encoded_preview_bitrate(camera_h camera, int *bitrate); /** * @brief Sets the bit rate of encoded preview. * @since_tizen 3.0 * @remarks The recommended range is from 1,000 (1 kbps) to 100,000,000 (100 Mbps). \n * But, due to codec limitations, it may not apply. * @param[in] camera The handle to the camera * @param[in] bitrate The bit rate of encoded preview * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_get_encoded_preview_bitrate() */ int camera_attr_set_encoded_preview_bitrate(camera_h camera, int bitrate); /** * @brief Gets the GOP (Group Of Pictures) interval of encoded preview. * @since_tizen 3.0 * @param[in] camera The handle to the camera * @param[out] interval the GOP interval of encoded preview (millisecond) * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_encoded_preview_gop_interval() */ int camera_attr_get_encoded_preview_gop_interval(camera_h camera, int *interval); /** * @brief Sets the GOP (Group Of Pictures) interval of encoded preview. * @since_tizen 3.0 * @remarks The recommended range is from 1,000 (1 second) to 600,000 (10 minutes). \n * But, due to codec limitations, it may not apply. * @param[in] camera The handle to the camera * @param[in] interval the GOP interval of encoded preview (millisecond) * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_get_encoded_preview_gop_interval() */ int camera_attr_set_encoded_preview_gop_interval(camera_h camera, int interval); /** * @brief Sets the zoom level. * @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. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] zoom The zoom level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_get_zoom() * @see camera_attr_get_zoom_range() */ int camera_attr_set_zoom(camera_h camera, int zoom); /** * @brief Gets the zoom level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] zoom The zoom level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_zoom() * @see camera_attr_get_zoom_range() */ int camera_attr_get_zoom(camera_h camera, int *zoom); /** * @brief Gets the available zoom level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks If the min value is greater than the max value, it means that this feature is not supported. * @param[in] camera The handle to the camera * @param[out] min The minimum zoom level * @param[out] max The maximum zoom level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_zoom() * @see camera_attr_get_zoom() */ int camera_attr_get_zoom_range(camera_h camera, int *min, int *max); /** * @brief Sets the auto focus mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] mode The auto focus mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_get_af_mode() * @see camera_attr_foreach_supported_af_mode() * @see #camera_attr_af_mode_e */ int camera_attr_set_af_mode(camera_h camera, camera_attr_af_mode_e mode); /** * @brief Gets the auto focus mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] mode The auto focus mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_foreach_supported_af_mode() * @see camera_attr_set_af_mode() * @see #camera_attr_af_mode_e */ int camera_attr_get_af_mode(camera_h camera, camera_attr_af_mode_e *mode); /** * @brief Sets auto focus area. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This API is invalid in the #CAMERA_ATTR_AF_NONE mode.\n * The coordinates are mapped to preview area. * @param[in] camera The handle to the camera * @param[in] x The x coordinates of the focus area * @param[in] y The y coordinates of the focus area * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_set_af_mode() * @see camera_attr_clear_af_area() */ int camera_attr_set_af_area(camera_h camera, int x, int y); /** * @brief Clears the auto focus area. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks The focusing area is set to the center. * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_OPERATION Invalid operation * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_af_mode() * @see camera_attr_set_af_area() */ int camera_attr_clear_af_area(camera_h camera); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported auto focus modes by invoking the callback function once for each supported auto focus mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to invoke * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_af_mode_cb() to get all the supported auto focus modes. * @see camera_attr_set_af_mode() * @see camera_attr_get_af_mode() * @see camera_attr_supported_af_mode_cb() */ int camera_attr_foreach_supported_af_mode(camera_h camera, camera_attr_supported_af_mode_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Sets the exposure mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] mode The exposure mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_get_exposure_mode() * @see camera_attr_foreach_supported_exposure_mode() */ int camera_attr_set_exposure_mode(camera_h camera, camera_attr_exposure_mode_e mode); /** * @brief Gets the exposure mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] mode The exposure mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_exposure_mode() * @see camera_attr_foreach_supported_exposure_mode() */ int camera_attr_get_exposure_mode(camera_h camera, camera_attr_exposure_mode_e *mode); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported exposure modes by invoking the callback function once for each supported exposure mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to be invoked * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_exposure_mode_cb() to get all the supported exposure modes. * @see camera_attr_set_exposure_mode() * @see camera_attr_get_exposure_mode() * @see camera_attr_supported_exposure_mode_cb() */ int camera_attr_foreach_supported_exposure_mode(camera_h camera, camera_attr_supported_exposure_mode_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Sets the exposure value. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] value The exposure value * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_get_exposure() */ int camera_attr_set_exposure(camera_h camera, int value); /** * @brief Gets the exposure value. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] value The exposure value * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_exposure() */ int camera_attr_get_exposure(camera_h camera, int *value); /** * @brief Gets the available exposure value. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks If the min value is greater than the max value, it means that this feature is not supported. * @param[in] camera The handle to the camera * @param[out] min The minimum exposure value * @param[out] max The maximum exposure value * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_exposure() */ int camera_attr_get_exposure_range(camera_h camera, int *min, int *max); /** * @brief Sets the ISO level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] iso The ISO level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_get_iso() * @see camera_attr_foreach_supported_iso() */ int camera_attr_set_iso(camera_h camera, camera_attr_iso_e iso); /** * @brief Gets the ISO level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] iso The ISO level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_iso() * @see camera_attr_foreach_supported_iso() */ int camera_attr_get_iso(camera_h camera, camera_attr_iso_e *iso); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported ISO levels by invoking the callback function once for each supported ISO level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to be invoked * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_iso_cb() to get all the supported ISO levels. * @see camera_attr_set_iso() * @see camera_attr_get_iso() * @see camera_attr_supported_iso_cb() */ int camera_attr_foreach_supported_iso(camera_h camera, camera_attr_supported_iso_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Sets the theater mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks If you want to display the preview image on the external display with the full screen mode, use this function. * @param[in] camera The handle to the camera * @param[in] mode The mode to change * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre This function is valid only when the external display is connected. * @see camera_attr_get_theater_mode() */ int camera_attr_set_theater_mode(camera_h camera, camera_attr_theater_mode_e mode); /** * @brief Gets the theater mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] mode Current theater mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_get_theater_mode() */ int camera_attr_get_theater_mode(camera_h camera, camera_attr_theater_mode_e *mode); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported theater modes by invoking callback function once for each supported theater modes. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to be invoked * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_theater_mode_cb() to get all supported theater modes. * @see camera_attr_set_theater_mode() * @see camera_attr_get_theater_mode() * @see camera_attr_supported_theater_mode_cb() */ int camera_attr_foreach_supported_theater_mode(camera_h camera, camera_attr_supported_theater_mode_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Sets the brightness level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks If the min value is greater than the max value from camera_attr_get_brightness_range(), \n * it means that this feature is not supported. * @param[in] camera The handle to the camera * @param[in] level The brightness level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_get_brightness() * @see camera_attr_get_brightness_range() */ int camera_attr_set_brightness(camera_h camera, int level); /** * @brief Gets the brightness level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] level The brightness level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_brightness() * @see camera_attr_get_brightness_range() */ int camera_attr_get_brightness(camera_h camera, int *level); /** * @brief Gets the available brightness level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks If the min value is greater than the max value, it means that this feature is not supported. * @param[in] camera The handle to the camera * @param[out] min The minimum brightness level * @param[out] max The maximum brightness level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_brightness() * @see camera_attr_get_brightness() */ int camera_attr_get_brightness_range(camera_h camera, int *min, int *max); /** * @brief Sets the contrast level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] level The contrast level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_get_contrast() * @see camera_attr_get_contrast_range() */ int camera_attr_set_contrast(camera_h camera, int level); /** * @brief Gets the contrast level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] level The contrast level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_contrast() * @see camera_attr_get_contrast_range() */ int camera_attr_get_contrast(camera_h camera, int *level); /** * @brief Gets the available contrast level. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks If the min value is greater than the max value, it means that this feature is not supported. * @param[in] camera The handle to the camera * @param[out] min The minimum contrast level * @param[out] max The maximum contrast level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_contrast() * @see camera_attr_get_contrast() */ int camera_attr_get_contrast_range(camera_h camera, int *min, int *max); /** * @brief Sets the hue level. * @since_tizen 5.0 * @param[in] camera The handle to the camera * @param[in] level The hue level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_attr_get_hue() * @see camera_attr_get_hue_range() */ int camera_attr_set_hue(camera_h camera, int level); /** * @brief Gets the hue level. * @since_tizen 5.0 * @param[in] camera The handle to the camera * @param[out] level The hue level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_attr_set_hue() * @see camera_attr_get_hue_range() */ int camera_attr_get_hue(camera_h camera, int *level); /** * @brief Gets the available hue level. * @since_tizen 5.0 * @remarks If the min value is greater than the max value, it means that this feature is not supported. * @param[in] camera The handle to the camera * @param[out] min The minimum hue level * @param[out] max The maximum hue level * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_attr_set_hue() * @see camera_attr_get_hue() */ int camera_attr_get_hue_range(camera_h camera, int *min, int *max); /** * @brief Sets the white balance mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] whitebalance The white balance mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_foreach_supported_whitebalance() * @see camera_attr_get_whitebalance() */ int camera_attr_set_whitebalance(camera_h camera, camera_attr_whitebalance_e whitebalance); /** * @brief Gets the white balance mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] whitebalance The white balance mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_foreach_supported_whitebalance() * @see camera_attr_set_whitebalance() */ int camera_attr_get_whitebalance(camera_h camera, camera_attr_whitebalance_e *whitebalance); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported white balances by invoking the callback function once for each supported white balance. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to be invoked * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_whitebalance_cb() to get all the supported white balances. * @see camera_attr_set_whitebalance() * @see camera_attr_get_whitebalance() * @see camera_attr_supported_whitebalance_cb() */ int camera_attr_foreach_supported_whitebalance(camera_h camera, camera_attr_supported_whitebalance_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Sets the camera effect mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] effect The camera effect mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_foreach_supported_effect() * @see camera_attr_get_effect() */ int camera_attr_set_effect(camera_h camera, camera_attr_effect_mode_e effect); /** * @brief Gets the camera effect mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] effect The camera effect mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_foreach_supported_effect() * @see camera_attr_set_effect() */ int camera_attr_get_effect(camera_h camera, camera_attr_effect_mode_e *effect); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported effect modes by invoking the callback function once for each supported effect mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to invoke * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_effect_cb() to get all the supported effect modes. * @see camera_attr_set_effect() * @see camera_attr_get_effect() * @see camera_attr_supported_effect_cb() */ int camera_attr_foreach_supported_effect(camera_h camera, camera_attr_supported_effect_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Sets the scene mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] mode The scene mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_foreach_supported_scene_mode() * @see camera_attr_get_scene_mode() */ int camera_attr_set_scene_mode(camera_h camera, camera_attr_scene_mode_e mode); /** * @brief Gets the scene mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] mode The scene mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_foreach_supported_scene_mode() * @see camera_attr_set_scene_mode() */ int camera_attr_get_scene_mode(camera_h camera, camera_attr_scene_mode_e *mode); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported scene modes by invoking the callback function once for each supported scene mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to invoke * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_scene_mode_cb() to get all the supported scene modes. * @see camera_attr_set_scene_mode() * @see camera_attr_get_scene_mode() * @see camera_attr_supported_scene_mode_cb() */ int camera_attr_foreach_supported_scene_mode(camera_h camera, camera_attr_supported_scene_mode_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Enables to write EXIF(Exchangeable image file format) tags in a JPEG file. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] enable If @c true writing EXIF tags in a JPEG file is enabled, otherwise @c false * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_is_enabled_tag() */ int camera_attr_enable_tag(camera_h camera, bool enable); /** * @brief Gets the value that indicates whether writing EXIF(Exchangeable image file format) tags in a JPEG file is enabled. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] enabled If @c true camera information is enabled, otherwise @c false * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_enable_tag() */ int camera_attr_is_enabled_tag(camera_h camera, bool *enabled); /** * @brief Sets the camera image description in the EXIF(Exchangeable image file format) tag. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] description The string with description * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_get_tag_image_description() */ int camera_attr_set_tag_image_description(camera_h camera, const char *description); /** * @brief Gets the camera image description in EXIF(Exchangeable image file format) tag. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks You must release @a description using free(). * @param[in] camera The handle to the camera * @param[out] description A pointer to a string * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_tag_image_description() */ int camera_attr_get_tag_image_description(camera_h camera, char **description); /** * @brief Sets the camera orientation in the EXIF(Exchangeable image file format) tag. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] orientation The camera orientation * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_get_tag_orientation() */ int camera_attr_set_tag_orientation(camera_h camera, camera_attr_tag_orientation_e orientation); /** * @brief Gets the camera orientation in the EXIF(Exchangeable image file format) tag. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] orientation The camera orientation * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_tag_orientation() */ int camera_attr_get_tag_orientation(camera_h camera, camera_attr_tag_orientation_e *orientation); /** * @brief Sets the software information in the EXIF(Exchangeable image file format) tag. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] software The software information tag * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_get_tag_software() */ int camera_attr_set_tag_software(camera_h camera, const char *software); /** * @brief Gets the software information in the EXIF(Exchangeable image file format) tag. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks You must release @a software using free(). * @param[in] camera The handle to the camera * @param[out] software A pointer to a string * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_tag_software() */ int camera_attr_get_tag_software(camera_h camera, char **software); /** * @brief Sets the geotag(GPS data) in the EXIF(Exchangeable image file format) tag. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] latitude The latitude data * @param[in] longitude The longitude data * @param[in] altitude The altitude data * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_get_geotag() * @see camera_attr_remove_geotag() */ int camera_attr_set_geotag(camera_h camera, double latitude, double longitude, double altitude); /** * @brief Gets the geotag(GPS data) in the EXIF(Exchangeable image file format) tag. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] latitude The latitude data * @param[out] longitude The longitude data * @param[out] altitude The altitude data * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_geotag() * @see camera_attr_remove_geotag() */ int camera_attr_get_geotag(camera_h camera, double *latitude, double *longitude, double *altitude); /** * @brief Removes the geotag(GPS data) in the EXIF(Exchangeable image file format) tag. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_set_geotag() * @see camera_attr_get_geotag() */ int camera_attr_remove_geotag(camera_h camera); /** * @brief Sets the camera's flash mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @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 * then this function returns #CAMERA_ERROR_DEVICE_BUSY error. * @param[in] camera The handle to the camera * @param[in] mode The flash mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @retval #CAMERA_ERROR_DEVICE_BUSY The flash was preempted by other API * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_foreach_supported_flash_mode() * @see camera_attr_get_flash_mode() */ int camera_attr_set_flash_mode(camera_h camera, camera_attr_flash_mode_e mode); /** * @brief Gets the camera's flash mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] mode The flash mode * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_foreach_supported_flash_mode() * @see camera_attr_set_flash_mode() */ int camera_attr_get_flash_mode(camera_h camera, camera_attr_flash_mode_e *mode); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported flash modes by invoking the callback function once for each supported flash mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to invoke * @param[in] user_data The user data passed to the callback registration function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_flash_mode_cb() to get all supported flash modes. * @see camera_attr_set_flash_mode() * @see camera_attr_get_flash_mode() * @see camera_attr_supported_flash_mode_cb() */ int camera_attr_foreach_supported_flash_mode(camera_h camera, camera_attr_supported_flash_mode_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Gets the camera len's orientation angle. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] angle The orientation angle * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_set_display_rotation() */ int camera_attr_get_lens_orientation(camera_h camera, int *angle); /** * @brief Sets the stream rotation. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] rotation The stream rotation * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED. * @see camera_attr_get_stream_rotation() */ int camera_attr_set_stream_rotation(camera_h camera, camera_rotation_e rotation); /** * @brief Gets the stream rotation. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] rotation The stream rotation * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED. * @see camera_attr_set_stream_rotation() */ int camera_attr_get_stream_rotation(camera_h camera, camera_rotation_e *rotation); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported stream rotation modes by invoking callback function once for each supported stream rotation mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to invoke * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_stream_rotation_cb() to get all supported stream rotation mode. * @see camera_attr_set_stream_rotation() * @see camera_attr_get_stream_rotation() * @see camera_attr_supported_stream_rotation_cb() */ int camera_attr_foreach_supported_stream_rotation(camera_h camera, camera_attr_supported_stream_rotation_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Sets the stream flip. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] flip The stream flip * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED. * @see camera_attr_set_stream_rotation() */ int camera_attr_set_stream_flip(camera_h camera, camera_flip_e flip); /** * @brief Gets the stream flip. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] flip The stream flip * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED. * @see camera_attr_set_stream_rotation() */ int camera_attr_get_stream_flip(camera_h camera, camera_flip_e *flip); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported stream flip modes by invoking callback function once for each supported stream flip mode. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] callback The callback function to invoke * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_stream_flip_cb() to get all supported stream flip mode. * @see camera_attr_set_stream_flip() * @see camera_attr_get_stream_flip() * @see camera_attr_supported_stream_flip_cb() */ int camera_attr_foreach_supported_stream_flip(camera_h camera, camera_attr_supported_stream_flip_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Called when the HDR capture process is updated. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] percent The progress percentage of HDR capture * @param[in] user_data The user data passed from the callback registration function * @pre camera_start_capture() will invoke this callback if you register it using camera_attr_set_hdr_capture_progress_cb(). * @see camera_attr_get_hdr_mode() * @see camera_attr_set_hdr_capture_progress_cb() * @see camera_attr_unset_hdr_capture_progress_cb() * @see camera_attr_is_supported_hdr_capture() */ typedef void (*camera_attr_hdr_progress_cb)(int percent, void *user_data); /** * @brief Sets the mode of HDR (High Dynamic Range) capture. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @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 * If this attribute is set to @c true. camera_attr_hdr_progress_cb() is invoked during capture.\n * 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. * @param[in] camera The handle to the camera * @param[in] mode The mode of HDR capture * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_get_hdr_mode() * @see camera_attr_set_hdr_capture_progress_cb() * @see camera_attr_unset_hdr_capture_progress_cb() * @see camera_attr_is_supported_hdr_capture() * */ int camera_attr_set_hdr_mode(camera_h camera, camera_attr_hdr_mode_e mode); /** * @brief Gets the mode of HDR (High Dynamic Range) capture. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] mode The mode of HDR capture * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_hdr_mode() * @see camera_attr_set_hdr_capture_progress_cb() * @see camera_attr_unset_hdr_capture_progress_cb() * @see camera_attr_is_supported_hdr_capture() */ int camera_attr_get_hdr_mode(camera_h camera, camera_attr_hdr_mode_e *mode); /** * @brief Registers a callback function to be called when HDR capture is progressing. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This callback notifies progress of the HDR process. * @param[in] camera The handle to the camera * @param[in] callback The callback function to invoke * @param[in] user_data The user data passed to the callback registration function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_hdr_mode() * @see camera_attr_get_hdr_mode() * @see camera_attr_unset_hdr_capture_progress_cb() * @see camera_attr_is_supported_hdr_capture() */ int camera_attr_set_hdr_capture_progress_cb(camera_h camera, camera_attr_hdr_progress_cb callback, void* user_data); /** * @brief Unregisters the callback function. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_hdr_mode() * @see camera_attr_get_hdr_mode() * @see camera_attr_set_hdr_capture_progress_cb() * @see camera_attr_is_supported_hdr_capture() */ int camera_attr_unset_hdr_capture_progress_cb(camera_h camera); /** * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @brief Gets the support state of HDR capture. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. * @param[in] camera The handle to the camera * @return @c true if supported, otherwise @c false * @exception #CAMERA_ERROR_NONE Successful * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_attr_set_hdr_mode() * @see camera_attr_get_hdr_mode() * @see camera_attr_set_hdr_capture_progress_cb() * @see camera_attr_unset_hdr_capture_progress_cb() */ bool camera_attr_is_supported_hdr_capture(camera_h camera); /** * @brief Enables/Disables the anti-shake feature. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks This feature is used for image capture. * @param[in] camera The handle to the camera * @param[in] enable If @c true the anti-shake feature is enabled, otherwise @c false * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_is_enabled_anti_shake() * @see camera_attr_is_supported_anti_shake() * */ int camera_attr_enable_anti_shake(camera_h camera, bool enable); /** * @brief Gets the state of the anti-shake feature. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] enabled The state of anti-shake * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_enable_anti_shake() * @see camera_attr_is_supported_anti_shake() */ int camera_attr_is_enabled_anti_shake(camera_h camera, bool *enabled); /** * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @brief Gets the support state of the anti-shake feature. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. * @param[in] camera The handle to the camera * @return @c true if supported, otherwise @c false * @exception #CAMERA_ERROR_NONE Successful * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_attr_enable_anti_shake() * @see camera_attr_is_enabled_anti_shake() */ bool camera_attr_is_supported_anti_shake(camera_h camera); /** * @brief Enables/Disables the video stabilization feature. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks If video stabilization is enabled, zero shutter lag is disabled.\n * This feature is used to record a video. * @param[in] camera The handle to the camera * @param[in] enable If @c true video stabilization is enabled, otherwise @c false * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_is_enabled_video_stabilization() * @see camera_attr_is_supported_video_stabilization() * */ int camera_attr_enable_video_stabilization(camera_h camera, bool enable); /** * @brief Gets the state of the video stabilization feature. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] enabled The state of video stabilization * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_enable_video_stabilization() * @see camera_attr_is_supported_video_stabilization() */ int camera_attr_is_enabled_video_stabilization(camera_h camera, bool *enabled); /** * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @brief Gets the support state of the video stabilization feature. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. * @param[in] camera The handle to the camera * @return @c true if supported, otherwise @c false * @exception #CAMERA_ERROR_NONE Successful * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_attr_enable_video_stabilization() * @see camera_attr_is_enabled_video_stabilization() */ bool camera_attr_is_supported_video_stabilization(camera_h camera); /** * @brief Enables/Disables auto contrast. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[in] enable If @c true auto contrast is enabled, otherwise @c false * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_CREATED or #CAMERA_STATE_PREVIEW. * @see camera_attr_is_enabled_auto_contrast() */ int camera_attr_enable_auto_contrast(camera_h camera, bool enable); /** * @brief Gets the state of auto contrast. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @param[in] camera The handle to the camera * @param[out] enabled The state of auto contrast * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_enable_auto_contrast() */ int camera_attr_is_enabled_auto_contrast(camera_h camera, bool *enabled); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Gets state of support of auto contrast feature. * @ingroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. * @param[in] camera The handle to the camera * @return true on supported, otherwise false * @exception #CAMERA_ERROR_NONE Successful * @exception #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @exception #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @exception #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @see camera_attr_enable_auto_contrast() * @see camera_attr_is_enabled_auto_contrast() */ bool camera_attr_is_supported_auto_contrast(camera_h camera); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Disables shutter sound. * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif * @remarks In some countries, this operation is not permitted. * @param[in] camera The handle to the camera * @param[in] disable If @c true shutter sound is disabled, otherwise @c false * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_OPERATION Disabling shutter sound is not permitted * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected */ int camera_attr_disable_shutter_sound(camera_h camera, bool disable); /** * @brief Sets the position to move horizontally. * @since_tizen 3.0 * @param[in] camera The handle to the camera * @param[in] move_type The PTZ(Pan Tilt Zoom) move type * @param[in] pan_step The step to move the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_PREVIEW. * @see camera_attr_get_pan() * @see camera_attr_get_pan_range() */ int camera_attr_set_pan(camera_h camera, camera_attr_ptz_move_type_e move_type, int pan_step); /** * @brief Gets the current position of the camera. * @since_tizen 3.0 * @param[in] camera The handle to the camera * @param[out] pan_step The current horizontal distance from the starting point. * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_pan() * @see camera_attr_get_pan_range() */ int camera_attr_get_pan(camera_h camera, int *pan_step); /** * @brief Gets lower limit and upper limit for pan position. * @since_tizen 3.0 * @remarks If the min value is greater than the max value, it means that this feature is not supported. * @param[in] camera The handle to the camera * @param[out] min The lower limit for pan * @param[out] max The upper limit for pan * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_pan() * @see camera_attr_get_pan() */ int camera_attr_get_pan_range(camera_h camera, int *min, int *max); /** * @brief Sets the position to move vertically. * @since_tizen 3.0 * @param[in] camera The handle to the camera * @param[in] move_type The PTZ(Pan Tilt Zoom) move type * @param[in] tilt_step The step to move the camera * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_PREVIEW. * @see camera_attr_get_tilt() * @see camera_attr_get_tilt_range() */ int camera_attr_set_tilt(camera_h camera, camera_attr_ptz_move_type_e move_type, int tilt_step); /** * @brief Gets the current position of the camera. * @since_tizen 3.0 * @param[in] camera The handle to the camera * @param[out] tilt_step The current vertical distance from the starting point. * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_tilt() * @see camera_attr_get_tilt_range() */ int camera_attr_get_tilt(camera_h camera, int *tilt_step); /** * @brief Gets lower limit and upper limit for tilt position. * @since_tizen 3.0 * @remarks If the min value is greater than the max value, it means that this feature is not supported. * @param[in] camera The handle to the camera * @param[out] min The lower limit for tilt * @param[out] max The upper limit for tilt * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_tilt() * @see camera_attr_get_tilt() */ int camera_attr_get_tilt_range(camera_h camera, int *min, int *max); /** * @brief Sets the type of PTZ(Pan Tilt Zoom). * @since_tizen 3.0 * @param[in] camera The handle to the camera * @param[in] ptz_type PTZ type * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_INVALID_STATE Invalid state * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @pre The camera state must be set to #CAMERA_STATE_PREVIEW. * @see camera_attr_get_pan() * @see camera_attr_set_pan() * @see camera_attr_get_pan_range() * @see camera_attr_get_tilt() * @see camera_attr_set_tilt() * @see camera_attr_get_tilt_range() * @see camera_attr_foreach_supported_ptz_type() */ int camera_attr_set_ptz_type(camera_h camera, camera_attr_ptz_type_e ptz_type); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_CAPABILITY_MODULE * @{ */ /** * @brief Retrieves all supported PTZ(Pan Tilt Zoom) types by invoking callback function once for each supported ptz type. * @since_tizen 3.0 * @param[in] camera The handle to the camera * @param[in] callback The callback function to invoke * @param[in] user_data The user data to be passed to the callback function * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_PERMISSION_DENIED The access to the resources can not be granted * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @post This function invokes camera_attr_supported_ptz_type_cb() to get all supported ptz type. * @see camera_attr_set_ptz_type() */ int camera_attr_foreach_supported_ptz_type(camera_h camera, camera_attr_supported_ptz_type_cb callback, void *user_data); /** * @} */ /** * @addtogroup CAPI_MEDIA_CAMERA_ATTRIBUTES_MODULE * @{ */ /** * @brief Sets the ROI(Region Of Interest) area of display. * @since_tizen 3.0 * @remarks If no display is set, no operation is performed and * the ROI area is valid only in #CAMERA_DISPLAY_MODE_CUSTOM_ROI display mode. * @remarks The minimum value of width and height are 1. * @remarks ROI area can be set before setting ROI display mode. (since 4.0) * @param[in] camera The handle to the camera * @param[in] x X coordinate of area * @param[in] y Y coordinate of area * @param[in] width Width of area * @param[in] height Height of area * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_get_display_roi_area() */ int camera_attr_set_display_roi_area(camera_h camera, int x, int y, int width, int height); /** * @brief Gets the ROI(Region Of Interest) area of display. * @since_tizen 3.0 * @param[in] camera The handle to the camera * @param[out] x X coordinate of area * @param[out] y Y coordinate of area * @param[out] width Width of area * @param[out] height Height of area * @return @c 0 on success, otherwise a negative error value * @retval #CAMERA_ERROR_NONE Successful * @retval #CAMERA_ERROR_INVALID_OPERATION Internal error * @retval #CAMERA_ERROR_INVALID_PARAMETER Invalid parameter * @retval #CAMERA_ERROR_NOT_SUPPORTED The feature is not supported * @retval #CAMERA_ERROR_SERVICE_DISCONNECTED The socket to multimedia server is disconnected * @see camera_attr_set_display_roi_area() */ int camera_attr_get_display_roi_area(camera_h camera, int *x, int *y, int *width, int *height); /** * @} */ #ifdef __cplusplus } #endif #endif /* __TIZEN_MULTIMEDIA_CAMERA_H__ */