2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FMediaCameraTypes.h
20 * @brief This is the header file for the enumerations of the Camera class.
22 * This header file contains the definitions of the enumerations of the Camera class.
25 #ifndef _FMEDIA_CAMERA_TYPES_H_
26 #define _FMEDIA_CAMERA_TYPES_H_
28 namespace Tizen { namespace Media
31 #define MAX_CAMERA_STRING_LENGTH 200
33 #define MIN_CAMERA_BRIGHTNESS 0
34 #define MAX_CAMERA_BRIGHTNESS 9
35 #define DEFAULT_CAMERA_BRIGHTNESS 5
37 #define MIN_CAMERA_CONTRAST 0
38 #define MAX_CAMERA_CONTRAST 9
39 #define DEFAULT_CAMERA_CONTRAST 5
41 #define MIN_CAMERA_EXPOSURE 0
42 #define MAX_CAMERA_EXPOSURE 9
43 #define DEFAULT_CAMERA_EXPOSURE 5
45 #define DEFAULT_CAMERA_PREVIEW_FPS 15
48 * @enum CameraSelection
50 * Defines a functional camera.
54 * @see Camera::PowerOn()
58 CAMERA_PRIMARY, /**< The primary camera */
59 CAMERA_SECONDARY, /**< The secondary camera */
65 * Defines the state of the camera.
69 * @see Camera::GetState()
73 CAMERA_STATE_INITIALIZED, /**< The camera in the initialized state */
74 CAMERA_STATE_PREVIEW, /**< The camera in the preview state */
75 CAMERA_STATE_AUTO_FOCUSING, /**< The camera state while auto-focusing */
76 CAMERA_STATE_CAPTURING, /**< The camera state while capturing */
77 CAMERA_STATE_CAPTURED, /**< The camera state after capturing */
78 CAMERA_STATE_ERROR /**< The camera in an error state */
82 * @enum CameraWhiteBalance
84 * Defines the white balance levels of the camera.
88 * @see Camera::SetWhiteBalance()
89 * @see Camera::GetWhiteBalance()
91 enum CameraWhiteBalance
93 CAMERA_WHITE_BALANCE_AUTO, /**< The camera's white balance level: Auto */
94 CAMERA_WHITE_BALANCE_SUNNY, /**< The camera's white balance level: Sunny */
95 CAMERA_WHITE_BALANCE_CLOUDY, /**< The camera's white balance level: Cloudy */
96 CAMERA_WHITE_BALANCE_FLUORESCENT, /**< The camera's white balance level: Fluorescent */
97 CAMERA_WHITE_BALANCE_TUNGSTEN, /**< The camera's white balance level: Tungsten */
103 * Defines the effects of the camera.
107 * @see Camera::SetEffect()
108 * @see Camera::GetEffect()
112 CAMERA_EFFECT_NONE, /**< The camera's effect: None */
113 CAMERA_EFFECT_COLOR, /**< The camera's effect: Color */
114 CAMERA_EFFECT_BW, /**< The camera's effect: Black and White */
115 CAMERA_EFFECT_SEPIA, /**< The camera's effect: Sepia */
116 CAMERA_EFFECT_SOLARIZE, /**< The camera's effect: Solarize */
117 CAMERA_EFFECT_NEGATIVE, /**< The camera's effect: Negative */
118 CAMERA_EFFECT_NIGHT, /**< The camera's effect: Night */
122 * @enum CameraIsoLevel
124 * Defines the ISO levels of the camera.
128 * @see Camera::SetIsoLevel()
129 * @see Camera::GetIsoLevel()
133 CAMERA_ISO_DEFAULT, /**< The device dependent default ISO level */
134 CAMERA_ISO_MIN, /**< The minimum supported ISO level */
135 CAMERA_ISO_AUTO, /**< The auto ISO level */
136 CAMERA_ISO_50, /**< The ISO 50 level */
137 CAMERA_ISO_100, /**< The ISO 100 level */
138 CAMERA_ISO_200, /**< The ISO 200 level */
139 CAMERA_ISO_400, /**< The ISO 400 level */
140 CAMERA_ISO_800, /**< The ISO 800 level */
141 CAMERA_ISO_1600, /**< The ISO 1600 level */
142 CAMERA_ISO_MAX /**< The maximum supported ISO level */
146 * @enum CameraQuality
148 * Defines the capturing quality of the camera.
152 * @remarks The capturing quality of the camera cannot be set to CAMERA_QUALITY_MAX.
153 * @see Camera::GetQuality()
154 * @see Camera::SetQuality()
158 CAMERA_QUALITY_NORMAL, /**< The camera's capturing quality: Normal */
159 CAMERA_QUALITY_FINE, /**< The camera's capturing quality: Fine */
160 CAMERA_QUALITY_SUPER_FINE, /**< The camera's capturing quality: Super Fine */
161 CAMERA_QUALITY_MAX, /**< The camera's capturing quality: Max boundary */
165 * @enum CameraErrorReason
167 * Defines the reason for the camera error.
171 enum CameraErrorReason
173 CAMERA_ERROR_NONE, // The undefined error
174 CAMERA_ERROR_OUT_OF_MEMORY, /**< The insufficient memory error */
175 CAMERA_ERROR_DEVICE_FAILED, /**< The camera device failed error */
176 CAMERA_ERROR_DEVICE_INTERRUPTED, /**< The camera device interrupted error */
181 * @enum CameraDirection
183 * Defines the physical direction of the camera.
189 CAMERA_DIRECTION_FRONT = 0x01, /**< The camera's direction: Front */
190 CAMERA_DIRECTION_BACK, /**< The camera's direction: Backward */
194 * @enum CameraRotation
196 * Defines the physical rotation of the camera in degrees.
202 CAMERA_ROTATION_NONE = 0x01, /**< The camera's rotation: None */
203 CAMERA_ROTATION_90, /**< The camera's rotation: 90 degree rotation */
204 CAMERA_ROTATION_180, /**< The camera's rotation: 180 degree rotation */
205 CAMERA_ROTATION_270, /**< The camera's rotation: 270 degree rotation */
209 * @enum CameraZoomType
211 * Defines the zoom types of the camera.
217 CAMERA_ZOOM_TYPE_DIGITAL = 0x01, /**< The camera's zoom type: Digital */
218 CAMERA_ZOOM_TYPE_SMART, /**< The camera's zoom type: Smart */
222 * @enum CameraExifOrientation
224 * Defines the camera's EXIF orientation flags.
228 enum CameraExifOrientation
230 CAMERA_EXIF_ORIENTATION_TOP_LEFT = 0x01, /**< The row #0 is top, column #0 is left */
231 CAMERA_EXIF_ORIENTATION_TOP_RIGHT, /**< The row #0 is top, column #0 is right */
232 CAMERA_EXIF_ORIENTATION_BOTTOM_RIGHT, /**< The row #0 is bottom, column #0 is right */
233 CAMERA_EXIF_ORIENTATION_BOTTOM_LEFT, /**< The row #0 is bottom, column #0 is left */
234 CAMERA_EXIF_ORIENTATION_LEFT_TOP, /**< The row #0 is left, column #0 is top */
235 CAMERA_EXIF_ORIENTATION_RIGHT_TOP, /**< The row #0 is right, column #0 is top */
236 CAMERA_EXIF_ORIENTATION_RIGHT_BOTTOM, /**< The row #0 is right, column #0 is bottom */
237 CAMERA_EXIF_ORIENTATION_LEFT_BOTTOM, /**< The row #0 is left, column #0 is bottom */
241 * @enum CameraFlipType
243 * Defines the camera's flip types.
249 CAMERA_FLIP_NONE, /**< The camera's flip type: None*/
250 CAMERA_FLIP_HORIZONTAL, /**< The camera's flip type: Horizontal*/
251 CAMERA_FLIP_VERTICAL, /**< The camera's flip type: Vertical*/
255 * @enum CameraFocusMode
257 * Defines the camera focus mode
262 CAMERA_FOCUS_MODE_NONE, /**< The camera's focus mode: None*/
263 CAMERA_FOCUS_MODE_NORMAL, /**< The camera's focus mode: Normal*/
264 CAMERA_FOCUS_MODE_MACRO, /**< The camera's focus mode: Macro*/
265 CAMERA_FOCUS_MODE_CONTINUOUS_AUTO, /**< The camera's focus mode: Continuous auto*/
266 CAMERA_FOCUS_MODE_INFINITE, /**< The camera's focus mode: Infinite*/
270 * @enum CameraFlashMode
272 * Defines the camera flash mode
277 CAMERA_FLASH_MODE_OFF, /**< Flash off */
278 CAMERA_FLASH_MODE_ON, /**< Flash splashes before capturing*/
279 CAMERA_FLASH_MODE_AUTO, /**< Flash splashes depending on intensity of light before capturing */
280 CAMERA_FLASH_MODE_RED_EYE_REDUCTION, /**< Flash splashes multiple times before capturing for red eye reduction. */
281 CAMERA_FLASH_MODE_CONTINUOUS, /**< Flash keeps turned on until turning off */
285 * @enum CameraMeteringMode
287 * Defines the camera metering mode
290 enum CameraMeteringMode
292 CAMERA_METERING_MODE_NONE, /**< No metering mode */
293 CAMERA_METERING_MODE_AVERAGE, /**< Average metering mode that uses information of entire scene */
294 CAMERA_METERING_MODE_CENTER_WEIGHTED, /**< Center weighted average metering mode that uses information of central part of the scene */
295 CAMERA_METERING_MODE_SPOT, /**< Spot metering mode that uses information of very small area of the scene */