Updating INI configuration file to work with most cameras.
[profile/ivi/camera.git] / include / cam_property.h
1 /*
2  * Copyright 2012  Samsung Electronics Co., Ltd
3  *
4  * Licensed under the Flora License, Version 1.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *        http://www.tizenopensource.org/license
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17
18 #ifndef __DEF_CAM_PROPERTY_H_
19 #define __DEF_CAM_PROPERTY_H_
20
21 #include <glib.h>
22 /*#include <mmf/mm_camcorder.h>*/
23 #include <camera.h>
24 #include <recorder.h>
25 #include <Evas.h>
26 #include <Eina.h>
27
28 #define USE_CAM_STORAGE_SETTING
29 #define CAPI_CAMERA_NEW
30
31 //#define PREVIEW_PINCH_ENALBE
32 #define GUIDE_LINE_ENALBE
33 #define CAM_LCD_WVGA
34
35 #define PI (4 * atan(1))
36 #define NEW_GUI
37 /* Macros
38  */
39 #define HIWORD(x)                                                       ((x) >> 16)
40 #define LOWORD(y)                                                       (((y) << 16) >> 16)
41 #define MAKE_DWORD(x, y)                                                ((x) << 16 | (y))
42
43 /* Resolution
44  */
45 #define PREVIEW_W                                          (640)
46 #define PREVIEW_WIDE_W                               (800)
47 #define PREVIEW_H                                           (480)
48
49 #define FRONT_CAM_W     (352)
50 #define FRONT_CAM_H     (288)
51
52 #define CAM_RESOLUTION(w, h)                                    MAKE_DWORD(w, h)
53 #define CAM_RESOLUTION_W(r)                                     HIWORD(r)
54 #define CAM_RESOLUTION_H(r)                                     LOWORD(r)
55
56
57 #define CAM_RESOLUTION_3264x2448 /*8M*/                                 CAM_RESOLUTION(3264, 2448)
58 #define CAM_RESOLUTION_3264x1960 /*6M_WIDE*/                    CAM_RESOLUTION(3264, 1960)
59 #define CAM_RESOLUTION_3264x1836 /*6M_WIDE*/                    CAM_RESOLUTION(3264, 1836)
60 #define CAM_RESOLUTION_2800x1920 /*5M_WIDE*/                    CAM_RESOLUTION(2800, 1920)
61 #define CAM_RESOLUTION_2560x1920 /*5M*/                                 CAM_RESOLUTION(2560, 1920)
62 #define CAM_RESOLUTION_2560x1536 /*4M_WIDE*/                    CAM_RESOLUTION(2560, 1536)
63 #define CAM_RESOLUTION_2560x1440 /*3M_WIDE*/                    CAM_RESOLUTION(2560, 1440)
64 #define CAM_RESOLUTION_2048x1536 /*3M*/                                 CAM_RESOLUTION(2048, 1536)
65 #define CAM_RESOLUTION_2048x1152 /*2.4M*/                               CAM_RESOLUTION(2048, 1152)
66 #define CAM_RESOLUTION_1920x1080 /*2M_WIDE*/                    CAM_RESOLUTION(1920, 1080)
67 #define CAM_RESOLUTION_1600x1200 /*2M*/                                 CAM_RESOLUTION(1600, 1200)
68 #define CAM_RESOLUTION_1280x720  /*0.9M*/                       CAM_RESOLUTION(1280, 720)
69 #define CAM_RESOLUTION_1280x960  /*1M*/                                 CAM_RESOLUTION(1280, 960)
70
71
72 #define CAM_RESOLUTION_FULLHD                           CAM_RESOLUTION(1920, 1080)
73 #define CAM_RESOLUTION_HD                                       CAM_RESOLUTION(1280, 720)
74 #define CAM_RESOLUTION_SVGA                             CAM_RESOLUTION(800, 600)
75 #define CAM_RESOLUTION_WVGA                             CAM_RESOLUTION(800, 480)
76 #define CAM_RESOLUTION_WVGA2                            CAM_RESOLUTION(720, 480)
77 #define CAM_RESOLUTION_VGA                              CAM_RESOLUTION(640, 480)
78 #define CAM_RESOLUTION_WQVGA                            CAM_RESOLUTION(400, 240)
79 #define CAM_RESOLUTION_QVGA                             CAM_RESOLUTION(320, 240)
80 #define CAM_RESOLUTION_CIF                                      CAM_RESOLUTION(352, 288)
81 #define CAM_RESOLUTION_QCIF                             CAM_RESOLUTION(176, 144)
82
83 /* resolution string for AUL */
84 #define CAM_CAPTURE_RES_BIG     "BIG"   /* 8M */
85 #define CAM_CAPTURE_RES_BIG_WIDE        "BIG_WIDE"      /* 5M wide */
86 #define CAM_CAPTURE_RES_MIDDLE  "MIDDLE"        /* 3M */
87 #define CAM_CAPTURE_RES_MIDDLE_WIDE     "MIDDLE_WIDE"   /* 3M wide */
88 #define CAM_CAPTURE_RES_SMALL                   "SMALL" /*  1M */
89 #define CAM_CAPTURE_RES_SMALL_WIDE      "SMALL_WIDE"    /*  1M wide */
90 #define CAM_CAPTURE_RES_VGA                     "VGA"
91
92 #define CAM_RECORDING_RES_HD                    "HD"
93 #define CAM_RECORDING_RES_VGA                   "VGA"
94 #define CAM_RECORDING_RES_QCIF          "QCIF"
95
96 #define CAM_SETTINGS_RESOLUTION_NUMS 14
97 #define CAM_RESOULUTION_NUMS 6
98 #define CAMCORDER_RESOULUTION_NUMS 6
99
100 #define CAM_PREVIEW_FORMAT                                      MM_PIXEL_FORMAT_UYVY    /* UYVY */
101 #define CAM_RAW_CAPTURE_FORMAT                          MM_PIXEL_FORMAT_UYVY    /* UYVY */
102
103 #define CAM_MM_ZOOM_MAX (30)
104 #define CAM_MM_ZOOM_MIN (10)
105 #define CAM_MM_ZOOM_INTERVAL (2)
106
107 #define CAM_REC_NORMAL_MAX_SIZE (2*1024*1024)   /* kbyte */
108 #define CAM_REC_MMS_MAX_SIZE (295)      /* kbyte */
109
110 #define STILL_MINIMAL_SPACE                             (100*1024)      /* byte */
111 #define REC_NORMAL_MIN_SPACE (1024*1024)        /* byte */
112 #define REC_MMS_MIN_SPACE       (300*1024)      /* byte */
113
114 #define CAM_TIME_FORMAT "u:%02u:%02u"
115 #define CAM_TIME_FORMAT2 "02u:%02u"
116
117 #define CAM_TIME_ARGS(t) \
118         (uint) (t / (60*60)), \
119         (uint) ((t / 60) % 60), \
120         (uint) (t % 60)
121
122 #define CAM_TIME_ARGS2(t) \
123         (uint) ((t / 60) % 60), \
124         (uint) (t % 60)
125
126 #define REMOVE_TIMER(timer) \
127         if (timer != NULL) {\
128                 ecore_timer_del(timer); \
129                 timer = NULL; \
130         }
131
132 #define REMOVE_IDLER(idler) \
133         if (idler != NULL) {\
134                 ecore_idler_del(idler); \
135                 idler = NULL; \
136         }
137
138 #define DEL_EVAS_OBJECT(eo) \
139                 if (eo != NULL) {\
140                         evas_object_del(eo); \
141                         eo = NULL; \
142                 }
143
144 #define SCALED_W(w)             (int)((double)w/MAIN_W*((struct appdata *)cam_appdata_get())->win_width)
145 #define SCALED_H(h)             (int)((double)h/MAIN_H*((struct appdata *)cam_appdata_get())->win_height)
146
147 /* set line byte */
148 #define LINEBYTES_BGR565(w)             (((w) * 2 + 3) >> 2 << 2)
149 #define LINEBYTES_YUV420(w)             (((w) + 3) >> 2 << 2)
150 #define LINEBYTES_YUV422(w)             (((w) * 2))
151 #define LINEBYTES_RGB888(w)             (((w) * 3))
152
153 #define CAMERA_APP_TIMEOUT (180.0) /* No input for 1 minite, Auto close camera app */
154 #define CAM_SETTING_POPUP_TIMEOUT (10)
155 #ifndef ABS
156 #define ABS(x) ((x) < 0 ? -(x) : (x))
157 #endif
158
159 #ifndef CLAMP
160 #define CLAMP(x, min, max) (((x) > (max)) ? (max) : (((x) < (min)) ? (min) : (x)))
161 #endif
162
163 #ifndef MIN
164 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
165 #endif
166
167 #ifndef CAM_LCD_WVGA
168 #define FIT_TO_RESOLUTION(p1, p2)       (p1)
169 #else
170 #define FIT_TO_RESOLUTION(p1, p2)       (((p2) == -1) ? ((p1) * 2) : (p2))
171 #endif
172
173 #ifndef CAM_LCD_WVGA
174 #define FIT_TO_FONT_SIZE(s1, s2)        (s1)
175 #else
176 #define FIT_TO_FONT_SIZE(s1, s2)        (((s2) == -1) ? (s1) : (s2))
177 #endif
178
179 /* temporary code */
180 #ifndef YUV422_SIZE
181 #define YUV422_SIZE(width, height) ((width) * (height) *  2)
182 #endif                          /* YUV422_SIZE */
183
184 #ifndef YUV420_SIZE
185 #define YUV420_SIZE(width, height) ((width) * (height) * 3 / 2)
186 #endif                          /* YUV420_SIZE */
187
188 #define CAM_AUDIO_BITRATE_MMS           (12200)
189 #define CAM_AUDIO_BITRATE_NORMAL                (288000)
190
191 #define MODE_DEFAULT                    CAM_CAMERA_MODE
192 #define SHOTMODE_DEFAULT                CAM_SINGLE_MODE
193 #define RECMODE_DEFAULT                 CAM_RECORD_NORMAL
194 #define RESOLUTION_DEFAULT      CAM_RESOLUTION_VGA
195 #define REC_RESOLUTION_DEFAULT  CAM_RESOLUTION_VGA
196 #define IMAGE_RESOLUTION_DEFAULT      CAM_RESOLUTION_3264x2448
197 #define EFFECT_DEFAULT                  CAM_SETTINGS_EFFECTS_NOR
198 #define AF_DEFAULT                              CAM_FOCUS_AUTO
199 #define FLASH_DEFAULT                   CAM_FLASH_OFF
200 #ifdef GUIDE_LINE_ENALBE
201 #define GUIDE_LINE_DEFAULT      FALSE
202 #endif
203 #define REC_FLASH_DEFAULT               CAM_FLASH_OFF
204 #define TIMER_DEFAULT                   CAM_SETTINGS_TIMER_OFF
205 #define ZOOM_DEFAULT                    (10)
206 #define QUALITY_DEFAULT                 CAM_QUALITY_HIGH
207 #define FPS_DEFAULT                     (30)
208 #define FPS_SLOW                                (15)
209 #define IMAGE_COUNT_DEFAULT     (1)
210 #define AUDIOREC_DEFAULT                TRUE
211 #define STORAGE_DEFAULT         CAM_STORAGE_INTERNAL
212 #define BATTERY_LEVEL_DEFAULT   5
213 #define REC_SIZE_LIMIT_DEFAULT CAM_REC_NORMAL_MAX_SIZE
214 #define SHUTTER_SOUND_DEFAULT CAM_SETTINGS_SOUND_1
215 #define SOUND_DEFAULT TRUE
216
217 #define REC_MAX_TIME_LIMITED    (60*60) /*  one hour */
218 #define DEFAULT_REC_FPS (1.0)
219 #define SLOW_MOTION_REC_FPS     (120)
220 #define FAST_MOTION_REC_FPS     (30)
221 #define SLOW_MOTION_PLAY_FPS    (0.25)
222 #define FAST_MOTION_PLAY_FPS    (4)
223 #define CAM_EPSINON (0.000001)
224
225 /*note: for focus edje zoom effect */
226 #define CAM_FOCUS_EDJE_ZOOM_EFFECT_START_RATE (1.0)
227 #define CAM_FOCUS_EDJE_ZOOM_EFFECT_END_RATE (1.5)
228 #define CAM_FOCUS_EDJE_ZOOM_EFFECT_DURATION (0.20)
229 /*note: for thumbnail effect*/
230 #define CAM_THUMBNAIL_ANTIMATION_EFFECT_DURATION (0.25)
231 /*note: for icons animation effect*/
232 #define CAM_ROTATE_ICONS_ANTIMATION_DURATION (0.35)
233
234
235 typedef struct _cam_rectangle CamRectangle;
236
237 struct _cam_rectangle {
238         int x, y, width, height;
239 };
240
241 /* face */
242 typedef struct _cam_face_data CamFaceData;
243 struct _cam_face_data {
244         CamRectangle *pFaceRect;
245         int nFace;              /* face count. */
246         int faceOrient;         /* the face angle 1:0angle 2:90angle, 3:270 angle */
247 };
248
249 /* Eyes */
250 typedef struct _cam_eyes_data CamEyesData;
251 struct _cam_eyes_data {
252         CamRectangle *pEyesRect;
253         int *nClosedEyesFlag;   /* true is closed eyes otherwise false */
254         int nEyes;
255 };
256
257 typedef struct _cam_exe_args CamExeArgs;
258 struct _cam_exe_args {
259         int cam_mode;
260         int resolution;
261         int width;
262         int height;
263         int size_limit;
264         gboolean review;
265         char *caller;
266 };
267
268 enum _CamAppProperty {
269         PROP_MODE,
270         PROP_SHOT_MODE,
271         PROP_REC_MODE,
272         PROP_RESOLUTION,
273         PROP_FPS,
274         PROP_EFFECT,
275         PROP_AF_MODE,
276         PROP_FLASH,
277         PROP_TIMER,
278         PROP_IMAGE_QUALITY,
279         PROP_VIDEO_QUALITY,
280         PROP_AUDIO_REC,
281         PROP_AUDIO_QUALITY,
282         PROP_BATTERY_LEVEL,
283         PROP_BATTERY_CHARG,
284         PROP_ZOOM,
285         PROP_STORAGE,
286         PROP_GUIDELINE,
287         PROP_REVIEW,
288         PROP_IMAGE_COUNT,
289         PROP_SHUTTER_SOUND,
290         PROP_SIZE_LIMIT,
291         PROP_SIZE_LIMIT_TYPE,
292         PROP_REC_TIME,
293         PROP_REC_FILE_SIZE,
294
295         PROP_NUMS
296 };
297
298 #define PROP_MODE_NAME                          "mode"
299 #define PROP_SHOT_MODE_NAME                     "shot_mode"
300 #define PROP_REC_MODE_NAME                      "rec_mode"
301 #define PROP_RESOLUTION_NAME            "resolution"
302 #define PROP_FPS_NAME                           "fps"
303 #define PROP_EFFECT_NAME                        "effect"
304 #define PROP_AF_NAME                            "af_mode"
305 #define PROP_FLASH_NAME                         "flash"
306 #define PROP_TIMER_NAME                         "timer"
307 #define PROP_IMAGE_QUALITY_NAME         "image_quality"
308 #define PROP_VIDEO_QUALITY_NAME         "video_quality"
309 #define PROP_AUDIO_REC_NAME                     "audio_rec"
310 #define PROP_AUDIO_QUALITY_NAME         "audio_quality"
311 #define PROP_BATTERY_LEVEL_NAME         "battery_level"
312 #define PROP_ZOOM_NAME                          "zoom"
313 #define PROP_STORAGE_NAME                       "storage"
314 #define PROP_GUIDELINE_NAME                     "guideline"
315 #define PROP_REVIEW_NAME                        "review"
316 #define PROP_IMAGE_COUNT_NAME           "image_cnt"
317 #define PROP_SHUTTER_SOUND_NAME         "shutter_sound"
318 #define PROP_SIZE_LIMIT_NAME            "size_limit"
319 #define PROP_SIZE_LIMIT_TYPE_NAME       "size_limit_type"
320
321 #define PROP_TOOLBAR_0_TYPE_NAME        "toolbar_0"
322 #define PROP_TOOLBAR_1_TYPE_NAME        "toolbar_1"
323 #define PROP_TOOLBAR_2_TYPE_NAME        "toolbar_2"
324 #define PROP_TOOLBAR_3_TYPE_NAME        "toolbar_3"
325 #define PROP_TOOLBAR_4_TYPE_NAME        "toolbar_4"
326
327
328 typedef enum _CamDeviceType {
329         CAM_DEVICE_MEGA = CAMERA_DEVICE_CAMERA0,
330         CAM_DEVICE_VGA = CAMERA_DEVICE_CAMERA1,
331 } CamDeviceType;
332
333 typedef enum _CamLaunchingMode {
334         CAM_LAUNCHING_MODE_NORMAL = 0,
335         CAM_LAUNCHING_MODE_EXTERNAL,
336         CAM_LAUNCHING_MODE_NUMS,
337 } CamLaunchingMode;
338
339 #define CAMCORDER_MODE_IMAGE 1
340 #define CAMCORDER_MODE_VIDEO 2
341 typedef enum _CamMode {
342         CAM_CAMERA_MODE = CAMCORDER_MODE_IMAGE,
343         CAM_CAMCORDER_MODE = CAMCORDER_MODE_VIDEO,
344         CAM_MODE_NUMS = CAM_CAMCORDER_MODE
345 } CamMode;
346
347
348 /* storage */
349 #define CAM_STORAGE_NUMS 3
350
351 typedef enum __CAM_MENU_ITEM{
352         CAM_MENU_EMPTY = -1,
353         CAM_MENU_SHORTCUTS = 0,
354         CAM_MENU_TIMER,
355         CAM_MENU_EFFECTS,
356         CAM_MENU_GUIDELINES,
357         CAM_MENU_RESET,
358         CAM_MENU_EFFECT_NONE,
359         CAM_MENU_EFFECT_NEGATIVE,
360         CAM_MENU_EFFECT_BLACKANDWHITE,
361         CAM_MENU_EFFECT_SEPIA,
362         CAM_MENU_MAX_NUMS,
363 }CAM_MENU_ITEM;
364
365 typedef enum _CamStorage {
366         CAM_STORAGE_INTERNAL = 0,
367         CAM_STORAGE_EXTERNAL,
368         CAM_STORAGE_DCF,
369         CAM_STORAGE_NUM,
370 } CamStorage;
371
372 typedef enum _CamToolbarButton {
373         CAM_TOOLBAR_BUTTON_MODE,
374         CAM_TOOLBAR_BUTTON_SHOT,
375         CAM_TOOLBAR_BUTTON_RECORD,
376         CAM_TOOLBAR_BUTTON_SCENE,
377         CAM_TOOLBAR_BUTTON_SETTINGS,
378
379         CAM_TOOLBAR_BUTTON_BACK,
380         CAM_TOOLBAR_BUTTON_FLASH,
381         CAM_TOOLBAR_BUTTON_QUICKVIEW,
382
383         CAM_TOOLBAR_BUTTON_NUM,
384 } CamToolbarButton;
385
386 typedef enum _CamShotMode {
387         CAM_SINGLE_MODE,
388         CAM_SELF_MODE, /*remove it*/
389         CAM_SHOT_MODE_NUMS
390 } CamShotMode;
391
392 enum _CamRecordMode {
393         CAM_RECORD_NORMAL,
394         CAM_RECORD_MMS,
395         CAM_RECORD_MODE_NUMS,
396         CAM_RECORD_SELF,
397         CAM_RECORD_SELF_MMS,
398 };
399
400 #define CAM_FLASH_NUMS 4
401 typedef enum _CamFlashMode {
402         CAM_FLASH_OFF = CAMERA_ATTR_FLASH_MODE_OFF,
403         CAM_FLASH_ON = CAMERA_ATTR_FLASH_MODE_ON,
404         CAM_FLASH_AUTO = CAMERA_ATTR_FLASH_MODE_AUTO,
405         CAM_FLASH_MOVIE_ON = CAMERA_ATTR_FLASH_MODE_PERMANENT,
406 } CamFlashMode;
407
408 #define CAM_FOCUS_NUMS 3
409 typedef enum _CamFocusMode {
410         CAM_FOCUS_AUTO = CAMERA_ATTR_AF_NORMAL,
411         CAM_FOCUS_MACRO = CAMERA_ATTR_AF_MACRO,
412         CAM_FOCUS_CAF = CAMERA_ATTR_AF_FULL,
413 } CamFocusMode;
414
415 typedef enum _CamFocusStatus {
416         CAM_FOCUS_STATUS_RELEASED = 0,
417                                      /**< AF status released.*/
418         CAM_FOCUS_STATUS_ONGOING,    /**< AF in pregress*/
419         CAM_FOCUS_STATUS_FOCUSED,    /**< AF success*/
420         CAM_FOCUS_STATUS_FAILED,     /**< AF fail*/
421         CAM_FOCUS_STATUS_NUM,        /**< Number of AF status*/
422 } CamFocusStatus;
423
424 typedef enum _CamSettingOnOff {
425         CAM_SETTINGS_OFF,
426         CAM_SETTINGS_ON,
427 } CamSettingsOnOff;
428
429 typedef enum _CamSettingsTimer {
430         CAM_SETTINGS_TIMER_OFF,
431         CAM_SETTINGS_TIMER_2SEC,
432         CAM_SETTINGS_TIMER_5SEC,
433         CAM_SETTINGS_TIMER_10SEC,
434
435         CAM_SETTINGS_TIMER_NUMS
436 } CamSettingsTimer;
437
438
439 /*#define CAM_SETTINGS_EFFECTS_NUMS 26*/
440 #define CAM_SETTINGS_EFFECTS_NUMS 4
441
442 typedef enum _CamSettingsEffects {
443         /*
444            CAM_SETTINGS_EFFECTS_NOR = MM_CAMCORDER_COLOR_TONE_NORMAL,
445          */
446
447         CAM_SETTINGS_EFFECTS_NOR = CAMERA_ATTR_EFFECT_NONE,                     /**< None */
448         CAM_SETTINGS_EFFECTS_MONO = CAMERA_ATTR_EFFECT_MONO,                    /**< Mono */
449         CAM_SETTINGS_EFFECTS_SEPIA = CAMERA_ATTR_EFFECT_SEPIA,                  /**< Sepia */
450         CAM_SETTINGS_EFFECTS_NEGATIVE = CAMERA_ATTR_EFFECT_NEGATIVE,            /**< Negative */
451         CAM_SETTINGS_EFFECTS_BLUE = CAMERA_ATTR_EFFECT_BLUE,                    /**< Blue */
452         CAM_SETTINGS_EFFECTS_GREEN = CAMERA_ATTR_EFFECT_GREEN,                  /**< Green */
453         CAM_SETTINGS_EFFECTS_AQUA = CAMERA_ATTR_EFFECT_AQUA,                    /**< Aqua */
454         CAM_SETTINGS_EFFECTS_VIOLET = CAMERA_ATTR_EFFECT_VIOLET,                        /**< Violet (Samsung Extension)*/
455         CAM_SETTINGS_EFFECTS_ORANGE = CAMERA_ATTR_EFFECT_ORANGE,                        /**< Orange (Samsung Extension)*/
456         CAM_SETTINGS_EFFECTS_GRAY = CAMERA_ATTR_EFFECT_GRAY,                    /**< Gray (Samsung Extension)*/
457         CAM_SETTINGS_EFFECTS_RED = CAMERA_ATTR_EFFECT_RED,                      /**< Red (Samsung Extension)*/
458         CAM_SETTINGS_EFFECTS_ANTIQUE = CAMERA_ATTR_EFFECT_ANTIQUE,              /**< Antique (Samsung Extension)*/
459         CAM_SETTINGS_EFFECTS_WARM = CAMERA_ATTR_EFFECT_WARM,                    /**< Warm (Samsung Extension)*/
460         CAM_SETTINGS_EFFECTS_PINK = CAMERA_ATTR_EFFECT_PINK,                    /**< Pink (Samsung Extension)*/
461         CAM_SETTINGS_EFFECTS_YELLOW = CAMERA_ATTR_EFFECT_YELLOW,                        /**< Yellow (Samsung Extension)*/
462         CAM_SETTINGS_EFFECTS_PURPLE = CAMERA_ATTR_EFFECT_PURPLE,                        /**< Purple (Samsung Extension)*/
463         CAM_SETTINGS_EFFECTS_EMBOSS = CAMERA_ATTR_EFFECT_EMBOSS,                        /**< Emboss (Samsung Extension)*/
464         CAM_SETTINGS_EFFECTS_OUTLINE = CAMERA_ATTR_EFFECT_OUTLINE,              /**< Outline (Samsung Extension)*/
465         CAM_SETTINGS_EFFECTS_SOLAR_1 = CAMERA_ATTR_EFFECT_SOLARIZATION, /**< Solarization (Samsung Extension)*/
466         CAM_SETTINGS_EFFECTS_SKETCH_1 = CAMERA_ATTR_EFFECT_SKETCH,              /**< Sketch (Samsung Extension/secondary camera only)*/
467
468         /*CAM_SETTINGS_EFFECTS_ACCENT, */
469         /*CAM_SETTINGS_EFFECTS_SWAP, */
470 } CamSettingsEffects;
471
472 enum _CamMMSizeLimit {
473         CAM_MM_SIZE_LIMIT_TYPE_BYTE,
474         CAM_MM_SIZE_LIMIT_TYPE_SECOND,
475 };
476
477 #define CAM_QUALITY_NUMS 3
478 enum _CamQuality {
479         CAM_QUALITY_BEST = 100,
480         CAM_QUALITY_HIGH = 95,  /*  still only */
481         CAM_QUALITY_MEDIUM = 80,
482         CAM_QUALITY_LOW = 65,
483 };
484
485 #define CAM_SETTINGS_SOUND_NUMS 4
486 enum _CamSound {
487         CAM_SETTINGS_SOUND_OFF = -1,
488         CAM_SETTINGS_SOUND_1,
489         CAM_SETTINGS_SOUND_2,
490         CAM_SETTINGS_SOUND_3,
491 };
492
493 typedef enum _CamZoomValue {
494         CAM_ZOOM_VALUE_MIN,
495         CAM_ZOOM_VALUE_01,
496         CAM_ZOOM_VALUE_02,
497         CAM_ZOOM_VALUE_03,
498         CAM_ZOOM_VALUE_04,
499         CAM_ZOOM_VALUE_05,
500         CAM_ZOOM_VALUE_06,
501         CAM_ZOOM_VALUE_07,
502         CAM_ZOOM_VALUE_08,
503         CAM_ZOOM_VALUE_09,
504         CAM_ZOOM_VALUE_MAX
505 } CamZoomValue;
506
507 enum _CamRecStopType {
508         CAM_REC_STOP_UNEXPECTED = 0,
509         CAM_REC_STOP_NORMAL,
510         CAM_REC_STOP_LOW_BATTERY,
511         CAM_REC_STOP_ASM,
512         CAM_REC_STOP_MAX_SIZE,
513         CAM_REC_STOP_TIME_LIMIT,
514         CAM_REC_STOP_NO_SPACE,
515         CAM_REC_STOP_USB_CONN,
516         CAM_REC_STOP_POWER_KEY,
517         CAM_REC_STOP_NUM,
518 };
519
520 typedef enum _CamLaunchType {
521         CAM_LAUNCH_FIRST = 0,
522         CAM_LAUNCH_RELAUNCH,
523         CAM_LAUNCH_IS_ALREADY_RUNNING,
524 } CamLaunchType;
525
526 typedef enum _CamAppCoreState {
527         CAM_APPCORE_PAUSE_STATE = 1,
528         CAM_APPCORE_RESUME_STATE,
529         CAM_APPCORE_RESET_STATE,
530         CAM_APPCORE_TERMINATE_STATE,
531 } CamAppCoreState;
532
533 typedef enum _CamFoucusMode {
534         CAM_FOCUS_MODE_TOUCH_AUTO = 0,
535         CAM_FOCUS_MODE_CONTINUOUS = 1,
536 } CamAppFocusMode;
537
538 typedef struct __ShortCutData {
539         /*fixed*/
540         Evas_Object *icon;
541         Evas_Object_Event_Cb func;
542         CAM_MENU_ITEM setting_type;
543         char *icon_filepath;
544         char *name_line_1;
545         char *name_line_2;
546         /*if change, should swap*/
547         int menu_bar_no;/*-1,if -1, not in menubar;0,1,2,3,4, from left to right; now: 0 be always setting */
548         gboolean is_on_menu_bar;
549         /*varible*/
550         Evas_Coord x, y, w, h;
551         int part_index;/*part index*/
552         int list_index; /*list index*/
553         int row;/*unused*/
554         int col;/*unused*/
555
556 } ShortCutData;
557
558
559 typedef struct __MenuBar_Shortcut {
560         Evas_Object *icon;
561         Evas_Object *icon_button;
562         Evas_Object_Event_Cb func;
563         CAM_MENU_ITEM setting_type;
564         int menu_bar_no;
565 }MenuBar_Shortcut;
566
567 enum {
568         CAM_MENU_BAR_LEFT_INVALID = -1,
569         CAM_MENU_BAR_LEFT_0 = 0,
570         CAM_MENU_BAR_LEFT_1,
571         CAM_MENU_BAR_LEFT_2,
572         CAM_MENU_BAR_LEFT_3,
573         CAM_MENU_BAR_LEFT_4,
574         CAM_MENU_BAR_LEFT_MAX_NUM,
575 };
576
577 enum  {
578         CAM_MAIN_PIPE_OP_TYPE_INVAILD = -1,
579         CAM_MAIN_PIPE_OP_TYPE_UPDATE_THUMBNAIL, /*update thumbnail type*/
580         CAM_MAIN_PIPE_OP_TYPE_ROTATE_ANIMATOR, /*rotate target, start rotate icons*/
581         CAM_MAIN_PIPE_OP_TYPE_MAX_NUM,
582 }; /*note: this define for main pipe operation type*/
583
584 typedef enum _CamTargetDirection {
585         CAM_TARGET_DIRECTION_LANDSCAPE = 0,
586         CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE,
587         CAM_TARGET_DIRECTION_PORTRAIT,
588         CAM_TARGET_DIRECTION_PORTRAIT_INVERSE,
589         CAM_TARGET_DIRECTION_MAX,
590 }CamTargetDirection;
591
592 typedef struct __cam_menu_composer{
593         const char* title;
594         Eina_Array* array;
595 }cam_menu_composer;
596
597
598 #endif                          /* __DEF_CAM_PROPERTY_H_ */