Tizen 2.0 Release
[framework/osp/media.git] / inc / FMediaCameraTypes.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
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.
16 //
17
18 /**
19  * @file                        FMediaCameraTypes.h
20  * @brief                       This is the header file for the enumerations of the Camera class.
21  *
22  * This header file contains the definitions of the enumerations of the Camera class.
23  */
24
25 #ifndef _FMEDIA_CAMERA_TYPES_H_
26 #define _FMEDIA_CAMERA_TYPES_H_
27
28 namespace Tizen { namespace Media
29 {
30
31 #define MAX_CAMERA_STRING_LENGTH 200
32
33 #define MIN_CAMERA_BRIGHTNESS 0
34 #define MAX_CAMERA_BRIGHTNESS 9
35 #define DEFAULT_CAMERA_BRIGHTNESS 5
36
37 #define MIN_CAMERA_CONTRAST 0
38 #define MAX_CAMERA_CONTRAST 9
39 #define DEFAULT_CAMERA_CONTRAST 5
40
41 #define MIN_CAMERA_EXPOSURE 0
42 #define MAX_CAMERA_EXPOSURE 9
43 #define DEFAULT_CAMERA_EXPOSURE 5
44
45 #define DEFAULT_CAMERA_PREVIEW_FPS 15
46
47 /**
48  * @enum CameraSelection
49  *
50  * Defines a functional camera.
51  *
52  * @since               2.0
53  *
54  * @see         Camera::PowerOn()
55  */
56 enum CameraSelection
57 {
58         CAMERA_PRIMARY,          /**< The primary camera */
59         CAMERA_SECONDARY,       /**< The secondary camera */
60 };
61
62 /**
63  * @enum CameraState
64  *
65  * Defines the state of the camera.
66  *
67  * @since               2.0
68  *
69  * @see         Camera::GetState()
70  */
71 enum CameraState
72 {
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 */
79 };
80
81 /**
82  * @enum CameraWhiteBalance
83  *
84  * Defines the white balance levels of the camera.
85  *
86  * @since               2.0
87  *
88  * @see         Camera::SetWhiteBalance()
89  * @see     Camera::GetWhiteBalance()
90  */
91 enum CameraWhiteBalance
92 {
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 */
98 };
99
100 /**
101  * @enum CameraEffect
102  *
103  * Defines the effects of the camera.
104  *
105  * @since               2.0
106  *
107  * @see         Camera::SetEffect()
108  * @see     Camera::GetEffect()
109  */
110 enum CameraEffect
111 {
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 */
119 };
120
121 /**
122  * @enum CameraIsoLevel
123  *
124  * Defines the ISO levels of the camera.
125  *
126  * @since               2.0
127  *
128  * @see         Camera::SetIsoLevel()
129  * @see     Camera::GetIsoLevel()
130  */
131 enum CameraIsoLevel
132 {
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 */
143 };
144
145 /**
146  * @enum CameraQuality
147  *
148  * Defines the capturing quality of the camera.
149  *
150  * @since               2.0
151  *
152  * @remarks The capturing quality of the camera cannot be set to CAMERA_QUALITY_MAX.
153  * @see         Camera::GetQuality()
154  * @see     Camera::SetQuality()
155  */
156 enum CameraQuality
157 {
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 */
162 };
163
164 /**
165  * @enum CameraErrorReason
166  *
167  * Defines the reason for the camera error.
168  *
169  * @since               2.0
170  */
171 enum CameraErrorReason
172 {
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  */
177 };
178
179
180 /**
181  * @enum CameraDirection
182  *
183  * Defines the physical direction of the camera.
184  *
185  * @since               2.0
186  */
187 enum CameraDirection
188 {
189         CAMERA_DIRECTION_FRONT = 0x01,  /**< The camera's direction: Front */
190         CAMERA_DIRECTION_BACK,          /**< The camera's direction: Backward */
191 } ;
192
193 /**
194  * @enum CameraRotation
195  *
196  * Defines the physical rotation of the camera in degrees.
197  *
198  * @since               2.0
199  */
200 enum CameraRotation
201 {
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  */
206 };
207
208 /**
209  * @enum CameraZoomType
210  *
211  * Defines the zoom types of the camera.
212  *
213  * @since               2.0
214  */
215 enum CameraZoomType
216 {
217         CAMERA_ZOOM_TYPE_DIGITAL = 0x01,    /**< The camera's zoom type: Digital */
218         CAMERA_ZOOM_TYPE_SMART,             /**< The camera's zoom type: Smart */
219 };
220
221 /**
222  * @enum CameraExifOrientation
223  *
224  * Defines the camera's EXIF orientation flags.
225  *
226  * @since               2.0
227  */
228 enum CameraExifOrientation
229 {
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 */
238 };
239
240 /**
241  * @enum CameraFlipType
242  *
243  * Defines the camera's flip types.
244  *
245  * @since               2.0
246  */
247 enum CameraFlipType
248 {
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*/
252 };
253
254 /**
255  * @enum CameraFocusMode
256  *
257  * Defines the camera focus mode
258  * @since               2.0
259  */
260 enum CameraFocusMode
261 {
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*/
267 };
268
269 /**
270  * @enum CameraFlashMode
271  *
272  * Defines the camera flash mode
273  * @since               2.0
274  */
275 enum CameraFlashMode
276 {
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 */
282 };
283
284 /**
285 * @enum CameraMeteringMode
286 *
287 * Defines the camera metering mode
288 * @since                2.0
289 */
290 enum CameraMeteringMode
291 {
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 */
296 };
297
298 }}// Tizen::Media
299
300
301 #endif