2 * Copyright 2012 Samsung Electronics Co., Ltd
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
8 * http://floralicense.org/license/
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.
18 #ifndef __DEF_CAM_PROPERTY_H_
19 #define __DEF_CAM_PROPERTY_H_
22 /*#include <mmf/mm_camcorder.h>*/
31 #define PI (4 * atan(1))
35 #define HIWORD(x) ((x) >> 16)
36 #define LOWORD(y) (((y) << 16) >> 16)
37 #define MAKE_DWORD(x, y) ((x) << 16 | (y))
41 #define PREVIEW_W (640)
42 #define PREVIEW_WIDE_W (800)
43 #define PREVIEW_H (480)
45 #define CAM_RESOLUTION(w, h) MAKE_DWORD(w, h)
46 #define CAM_RESOLUTION_W(r) HIWORD(r)
47 #define CAM_RESOLUTION_H(r) LOWORD(r)
49 #define CAM_RESOLUTION_3264x2448 /*8M*/ CAM_RESOLUTION(3264, 2448)
50 #define CAM_RESOLUTION_3264x2176 /*7M_WIDE*/ CAM_RESOLUTION(3264, 2176)
51 #define CAM_RESOLUTION_3264x1960 /*6M_WIDE*/ CAM_RESOLUTION(3264, 1960)
52 #define CAM_RESOLUTION_3264x1836 /*6M_WIDE*/ CAM_RESOLUTION(3264, 1836)
53 #define CAM_RESOLUTION_2800x1920 /*5M_WIDE*/ CAM_RESOLUTION(2800, 1920)
54 #define CAM_RESOLUTION_2560x1920 /*5M*/ CAM_RESOLUTION(2560, 1920)
55 #define CAM_RESOLUTION_2560x1536 /*4M_WIDE*/ CAM_RESOLUTION(2560, 1536)
56 #define CAM_RESOLUTION_2560x1440 /*3M_WIDE*/ CAM_RESOLUTION(2560, 1440)
57 #define CAM_RESOLUTION_2048x1536 /*3M*/ CAM_RESOLUTION(2048, 1536)
58 #define CAM_RESOLUTION_2048x1152 /*2.4M*/ CAM_RESOLUTION(2048, 1152)
59 #define CAM_RESOLUTION_1920x1080 /*2M_WIDE*/ CAM_RESOLUTION(1920, 1080)
60 #define CAM_RESOLUTION_1600x1200 /*2M*/ CAM_RESOLUTION(1600, 1200)
61 #define CAM_RESOLUTION_1392x1392 /*2M*/ CAM_RESOLUTION(1392, 1392)
62 #define CAM_RESOLUTION_1280x720 /*0.9M*/ CAM_RESOLUTION(1280, 720)
63 #define CAM_RESOLUTION_1280x960 /*1M*/ CAM_RESOLUTION(1280, 960)
66 #define CAM_RESOLUTION_FULLHD CAM_RESOLUTION(1920, 1080)
67 #define CAM_RESOLUTION_HD CAM_RESOLUTION(1280, 720)
68 #define CAM_RESOLUTION_SVGA CAM_RESOLUTION(800, 600)
69 #define CAM_RESOLUTION_WVGA CAM_RESOLUTION(800, 480)
70 #define CAM_RESOLUTION_WVGA2 CAM_RESOLUTION(720, 480)
71 #define CAM_RESOLUTION_VGA CAM_RESOLUTION(640, 480)
72 #define CAM_RESOLUTION_WQVGA CAM_RESOLUTION(400, 240)
73 #define CAM_RESOLUTION_QVGA CAM_RESOLUTION(320, 240)
74 #define CAM_RESOLUTION_CIF CAM_RESOLUTION(352, 288)
75 #define CAM_RESOLUTION_QCIF CAM_RESOLUTION(176, 144)
77 /* resolution string for camera ug */
78 #define CAM_CAPTURE_RES_VGA "VGA"
79 #define CAM_RECORDING_RES_QCIF "QCIF"
81 #define MAX_CONTINUOUS_SHOT (20)
82 #define MAX_BEST_PHOTO (8)
83 #define CONTINUOUS_SHOT_INTERVAL (150)
85 #define LONG_PRESS_TIME (0.50)
87 #define CAM_REC_NORMAL_MAX_SIZE (4*1024*1024) /* kbyte */
88 #define CAM_REC_MMS_MAX_SIZE (295) /* kbyte */
90 #define STILL_MINIMAL_SPACE (100*1024) /* byte */
91 #define REC_MMS_MIN_SPACE (300*1024) /* byte */
93 #define CAM_TIME_FORMAT "u:%02u:%02u"
94 #define CAM_TIME_FORMAT2 "02u:%02u"
96 #define CAM_TIME_ARGS(t) \
97 (uint) (t / (60*60)), \
98 (uint) ((t / 60) % 60), \
101 #define CAM_TIME_ARGS2(t) \
102 (uint) ((t / 60) % 60), \
105 #define REMOVE_TIMER(timer) \
106 if (timer != NULL) {\
107 ecore_timer_del(timer); \
111 #define REMOVE_IDLER(idler) \
112 if (idler != NULL) {\
113 ecore_idler_del(idler); \
117 #define DEL_EVAS_OBJECT(eo) \
119 evas_object_del(eo); \
122 #define HIDE_EVAS_OBJECT(eo) \
124 evas_object_hide(eo); \
126 #define SHOW_EVAS_OBJECT(eo) \
128 evas_object_show(eo); \
131 #define SCALED_W(w) (int)((double)w/MAIN_W*((struct appdata *)cam_appdata_get())->win_width)
132 #define SCALED_H(h) (int)((double)h/MAIN_H*((struct appdata *)cam_appdata_get())->win_height)
135 #define LINEBYTES_BGR565(w) (((w) * 2 + 3) >> 2 << 2)
136 #define LINEBYTES_YUV420(w) (((w) + 3) >> 2 << 2)
137 #define LINEBYTES_YUV422(w) (((w) * 2))
138 #define LINEBYTES_RGB888(w) (((w) * 3))
140 #define CAMERA_APP_TIMEOUT (120.0) /* No input for 2 minite, Auto close camera app */
141 #define CAM_SETTING_POPUP_TIMEOUT (10)
143 #define ABS(x) ((x) < 0 ? -(x) : (x))
147 #define CLAMP(x, min, max) (((x) > (max)) ? (max) : (((x) < (min)) ? (min) : (x)))
151 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
155 #define FIT_TO_RESOLUTION(p1, p2) (p1)
157 #define FIT_TO_RESOLUTION(p1, p2) (((p2) == -1) ? ((p1) * 2) : (p2))
161 #define FIT_TO_FONT_SIZE(s1, s2) (s1)
163 #define FIT_TO_FONT_SIZE(s1, s2) (((s2) == -1) ? (s1) : (s2))
168 #define YUV422_SIZE(width, height) ((width) * (height) * 2)
169 #endif /* YUV422_SIZE */
172 #define YUV420_SIZE(width, height) ((width) * (height) * 3 / 2)
173 #endif /* YUV420_SIZE */
175 #define CAM_AUDIO_BITRATE_MMS (12200)
176 #define CAM_AUDIO_BITRATE_NORMAL (288000)
178 #define MODE_DEFAULT CAM_CAMERA_MODE
179 #define SHOTMODE_DEFAULT CAM_SINGLE_MODE
180 #define RECMODE_DEFAULT CAM_RECORD_NORMAL
181 #define PG_MODE_DEFAULT CAM_SCENE_NONE
182 #define RESOLUTION_DEFAULT CAM_RESOLUTION_VGA
183 #define REC_RESOLUTION_DEFAULT CAM_RESOLUTION_FULLHD
184 #define IMAGE_RESOLUTION_DEFAULT CAM_RESOLUTION_3264x2448
185 #define SELF_REC_RESOLUTION_DEFAULT CAM_RESOLUTION_HD
186 #define SELF_IMAGE_RESOLUTION_DEFAULT CAM_RESOLUTION_1392x1392
187 #define WB_DEFAULT CAM_SETTINGS_WB_AWB
188 #define ISO_DEFAULT CAM_ISO_AUTO
189 #define AE_DEFAULT CAM_METERING_CENTER_WEIGHTED
190 #define EFFECT_DEFAULT CAM_SETTINGS_EFFECTS_NOR
191 #define AF_DEFAULT CAM_FOCUS_AUTO
192 #define AHS_DEFAULT CAM_AHS_OFF
193 #define WDR_DEFAULT CAM_WDR_OFF
194 #define FLASH_DEFAULT CAM_FLASH_AUTO
195 #define GUIDE_LINE_DEFAULT FALSE
196 #define REC_FLASH_DEFAULT CAM_FLASH_OFF
197 #define BRIGHTNESS_DEFAULT 4 /* should get from caps query */
198 #define TIMER_DEFAULT CAM_SETTINGS_TIMER_OFF
199 #define ZOOM_DEFAULT (0)
200 #define QUALITY_DEFAULT CAM_QUALITY_HIGH
201 #define FPS_DEFAULT (30)
202 #define FPS_SLOW (15)
203 #define IMAGE_COUNT_DEFAULT (1)
204 #define AUDIOREC_DEFAULT TRUE
205 #define STORAGE_DEFAULT CAM_STORAGE_INTERNAL
206 #define REC_SIZE_LIMIT_DEFAULT CAM_REC_NORMAL_MAX_SIZE
207 #define SHUTTER_SOUND_DEFAULT CAM_SETTINGS_SOUND_1
208 #define SOUND_DEFAULT TRUE
209 #define BURST_SHOT_DEFAULT TRUE
211 #define POP_TIP_DEFAULT TRUE
214 #define REC_MAX_TIME_LIMITED (60*60) /* one hour */
215 #define DEFAULT_REC_FPS (1.0)
216 #define SLOW_MOTION_REC_FPS (120)
217 #define FAST_MOTION_REC_FPS (30)
218 #define SLOW_MOTION_PLAY_FPS (0.25)
219 #define FAST_MOTION_PLAY_FPS (4)
220 #define CAM_EPSINON (0.000001)
222 /*note: for focus edje zoom effect */
223 #define CAM_FOCUS_EDJE_ZOOM_EFFECT_START_RATE (1.0)
224 #define CAM_FOCUS_EDJE_ZOOM_EFFECT_END_RATE (1.5)
225 #define CAM_FOCUS_EDJE_ZOOM_EFFECT_DURATION (0.20)
226 /*note: for thumbnail effect*/
227 #define CAM_THUMBNAIL_ANTIMATION_EFFECT_DURATION (0.25)
228 /*note: for icons animation effect*/
229 #define CAM_ROTATE_ICONS_ANTIMATION_DURATION (0.35)
231 #define EDIT_SHORTCUTS_TIP_WIDTH (680)
232 #define EDIT_SHORTCUTS_TIP_HEIGHT (546)
233 #define EDIT_SHORTCUTS_TIPS_COORDINATE_PORTRAIT_Y (320)
234 #define EDIT_SHORTCUTS_TIPS_COORDINATE_PORTRAIT_X (20)
236 #define EDIT_SHORTCUTS_TIPS_COORDINATE_LANDSCAPE_X (320)
237 #define EDIT_SHORTCUTS_TIPS_COORDINATE_LANDSCAPE_Y (87)
239 typedef struct _cam_rectangle CamRectangle;
241 struct _cam_rectangle {
242 int x, y, width, height;
246 typedef struct _cam_face_data CamFaceData;
247 struct _cam_face_data {
248 CamRectangle *pFaceRect;
249 int nFace; /* face count. */
250 int faceOrient; /* the face angle 1:0angle 2:90angle, 3:270 angle */
254 typedef struct _cam_eyes_data CamEyesData;
255 struct _cam_eyes_data {
256 CamRectangle *pEyesRect;
257 int *nClosedEyesFlag; /* true is closed eyes otherwise false */
261 typedef struct _cam_exe_args CamExeArgs;
262 struct _cam_exe_args {
269 gboolean allow_switch;
273 enum _CamAppProperty {
279 PROP_PHOTO_RESOLUTION, // 5
280 PROP_VIDEO_RESOLUTION,
294 PROP_VIDEO_QUALITY, // 20
299 PROP_GPS_LEVEL, // 25
308 PROP_SIZE_LIMIT_TYPE,
311 PROP_OUTDOOR_VISIBILITY,
314 PROP_BURST_SHOT, // 40
319 #define PROP_MODE_NAME "mode"
320 #define PROP_SELF_PORTRAIT_NAME "self_portrait"
321 #define PROP_SCENE_MODE_NAME "scene_mode"
322 #define PROP_PHOTO_RESOLUTION_NAME "photo_resolution"
323 #define PROP_VIDEO_RESOLUTION_NAME "video_resolution"
324 #define PROP_SELF_PHOTO_RESOLUTION_NAME "self_photo_resolution"
325 #define PROP_SELF_VIDEO_RESOLUTION_NAME "self_video_resolution"
326 #define PROP_WB_NAME "wb"
327 #define PROP_ISO_NAME "iso"
328 #define PROP_AUTO_CONTRAST_NAME "auto_contrast"
329 #define PROP_METERING_NAME "metering"
330 #define PROP_AF_NAME "af_mode"
331 #define PROP_AHS_NAME "ahs"
332 #define PROP_WDR_NAME "wdr"
333 #define PROP_FLASH_NAME "flash"
334 #define PROP_STORAGE_NAME "storage"
335 #define PROP_GUIDELINE_NAME "guideline"
336 #define PROP_GPS_NAME "gps"
337 #define PROP_REVIEW_NAME "review"
338 #define PROP_VOLUME_KEY_NAME "volume_key"
339 #define PROP_BURST_SHOT_NAME "burst_shot"
341 #define PROP_TOOLBAR_0_TYPE_NAME "toolbar_0"
342 #define PROP_TOOLBAR_1_TYPE_NAME "toolbar_1"
343 #define PROP_TOOLBAR_2_TYPE_NAME "toolbar_2"
344 #define PROP_TOOLBAR_3_TYPE_NAME "toolbar_3"
345 #define PROP_TOOLBAR_4_TYPE_NAME "toolbar_4"
347 /*NOTE: edit shortcuts*/
348 #define PROP_SHOW_POP_TIP "pop_tip"
349 #define PROP_SHORTCUTS_INIT_PART_INDEX "init_part_index"
351 #define PROP_SHORTCUTS_PART_INDEX_0 "part_index_0"
352 #define PROP_SHORTCUTS_PART_INDEX_1 "part_index_1"
353 #define PROP_SHORTCUTS_PART_INDEX_2 "part_index_2"
354 #define PROP_SHORTCUTS_PART_INDEX_3 "part_index_3"
356 #define PROP_SHORTCUTS_PART_INDEX_4 "part_index_4"
357 #define PROP_SHORTCUTS_PART_INDEX_5 "part_index_5"
358 #define PROP_SHORTCUTS_PART_INDEX_6 "part_index_6"
359 #define PROP_SHORTCUTS_PART_INDEX_7 "part_index_7"
361 #define PROP_SHORTCUTS_PART_INDEX_8 "part_index_8"
362 #define PROP_SHORTCUTS_PART_INDEX_9 "part_index_9"
363 #define PROP_SHORTCUTS_PART_INDEX_10 "part_index_10"
364 #define PROP_SHORTCUTS_PART_INDEX_11 "part_index_11"
366 #define PROP_SHORTCUTS_PART_INDEX_12 "part_index_12"
367 #define PROP_SHORTCUTS_PART_INDEX_13 "part_index_13"
368 #define PROP_SHORTCUTS_PART_INDEX_14 "part_index_14"
369 #define PROP_SHORTCUTS_PART_INDEX_15 "part_index_15"
371 #define PROP_SHORTCUTS_PART_INDEX_16 "part_index_16"
372 #define PROP_SHORTCUTS_PART_INDEX_17 "part_index_17"
373 #define PROP_SHORTCUTS_PART_INDEX_18 "part_index_18"
374 #define PROP_SHORTCUTS_PART_INDEX_19 "part_index_19"
377 #define STR_MOVE_PREV "move,prev"
378 #define STR_MOVE_NEXT "move,next"
379 #define STR_ANI_RETURN "ani,return"
382 typedef enum _CamDeviceType {
383 CAM_DEVICE_MEGA = CAMERA_DEVICE_CAMERA0,
384 CAM_DEVICE_VGA = CAMERA_DEVICE_CAMERA1,
387 typedef enum _CamLaunchingMode {
388 CAM_LAUNCHING_MODE_NORMAL = 0,
389 CAM_LAUNCHING_MODE_EXTERNAL,
390 CAM_LAUNCHING_MODE_NUMS,
393 #define CAMCORDER_MODE_IMAGE 1
394 #define CAMCORDER_MODE_VIDEO 2
395 typedef enum _CamMode {
396 CAM_CAMERA_MODE = CAMCORDER_MODE_IMAGE,
397 CAM_CAMCORDER_MODE = CAMCORDER_MODE_VIDEO,
398 CAM_MODE_NUMS = CAM_CAMCORDER_MODE
401 typedef enum __CAM_MENU_ITEM{
403 CAM_MENU_SHORTCUTS = 0,
405 CAM_MENU_BURST_SHOT_MODE,
406 CAM_MENU_SELF_PORTRAIT,
408 CAM_MENU_SHOOTING_MODE,
409 CAM_MENU_RECORDING_MODE,
411 CAM_MENU_EXPLOSURE_VALUE,
415 CAM_MENU_PHOTO_RESOLUTION,
416 CAM_MENU_VIDEO_RESOLUTION,
417 CAM_MENU_WHITE_BALANCE,
421 CAM_MENU_OUTDOOR_VISIBILITY,
422 CAM_MENU_AUTO_CONTRAST,
424 CAM_MENU_CAPTURE_VOICE,
426 CAM_MENU_SAVE_AS_FLIP,
429 CAM_MENU_SCENE_AUTO, /* scene */
430 CAM_MENU_SCENE_PORTRAIT,
431 CAM_MENU_SCENE_LANDSCAPE,
432 CAM_MENU_SCENE_NIGHT,
433 CAM_MENU_SCENE_SPORTS,
434 CAM_MENU_SCENE_PARTY,
435 CAM_MENU_SCENE_BEACHSNOW,
436 CAM_MENU_SCENE_SUNSET,
437 CAM_MENU_SCENE_DUSKDAWN,
439 CAM_MENU_SCENE_FIREWORK,
441 CAM_MENU_SCENE_CANDLELIGHT,
442 CAM_MENU_SCENE_BACKLIGHT,
443 CAM_MENU_SCENE_SHOW_WINDOW,
444 CAM_MENU_SHOOTING_SINGLE, /*shooting mode*/
445 CAM_MENU_SHOOTING_SELF_SINGLE,
446 CAM_MENU_VIDEO_RESOLUTION_FULLHD, /* video resolution */
447 CAM_MENU_VIDEO_RESOLUTION_HD,
448 CAM_MENU_VIDEO_RESOLUTION_WVGA,
449 CAM_MENU_VIDEO_RESOLUTION_VGA,
450 CAM_MENU_VIDEO_RESOLUTION_QVGA,
451 CAM_MENU_VIDEO_RESOLUTION_QCIF,
452 CAM_MENU_PHOTO_RESOLUTION_3264x2448, /* photo resolution */
453 CAM_MENU_PHOTO_RESOLUTION_3264x1960,
454 CAM_MENU_PHOTO_RESOLUTION_3264x1836,
455 CAM_MENU_PHOTO_RESOLUTION_2800x1920,
456 CAM_MENU_PHOTO_RESOLUTION_2560x1920,
457 CAM_MENU_PHOTO_RESOLUTION_2560x1536,
458 CAM_MENU_PHOTO_RESOLUTION_2560x1440,
459 CAM_MENU_PHOTO_RESOLUTION_2048x1536,
460 CAM_MENU_PHOTO_RESOLUTION_2048x1152,
461 CAM_MENU_PHOTO_RESOLUTION_1920x1080,
462 CAM_MENU_PHOTO_RESOLUTION_1600x1200,
463 CAM_MENU_PHOTO_RESOLUTION_1392x1392,
464 CAM_MENU_PHOTO_RESOLUTION_1280x960,
465 CAM_MENU_PHOTO_RESOLUTION_1280x720,
466 CAM_MENU_PHOTO_RESOLUTION_640x480,
467 CAM_MENU_WB_AWB, /* WB */
468 CAM_MENU_WB_INCANDESCENT,
469 CAM_MENU_WB_FLUORESCENT,
470 CAM_MENU_WB_DAYLIGHT,
476 CAM_MENU_EFFECT_NONE,
477 CAM_MENU_EFFECT_NEGATIVE,
478 CAM_MENU_EFFECT_BLACKANDWHITE,
479 CAM_MENU_EFFECT_SEPIA,
480 CAM_MENU_FOCUS_AUTO, /* Focus mode */
481 CAM_MENU_FOCUS_MACRO,
482 CAM_MENU_FOCUS_FACE_DETECTION,
483 CAM_MENU_RECORDING_MODE_NORMAL, /* Recording mode */
484 CAM_MENU_RECORDING_MODE_LIMIT,
485 CAM_MENU_RECORDING_MODE_SLOW,
486 CAM_MENU_RECORDING_MODE_FAST,
487 CAM_MENU_RECORDING_MODE_SELF_NORMAL,
488 CAM_MENU_RECORDING_MODE_SELF_LIMIT,
489 CAM_MENU_FLASH_OFF, /* Flash */
492 CAM_MENU_METERING_MATRIX, /* Metering */
493 CAM_MENU_METERING_CENTER_WEIGHTED,
494 CAM_MENU_METERING_SPOT,
495 CAM_MENU_ISO_AUTO, /* ISO */
503 CAM_MENU_TIMER_OFF, /*TIMER*/
506 CAM_MENU_TIMER_10SEC,
507 CAM_MENU_STORAGE_PHONE,
508 CAM_MENU_STORAGE_MMC,
509 CAM_MENU_VOLUME_KEY_ZOOM,
510 CAM_MENU_VOLUME_KEY_SHUTTER,
514 typedef enum _CamStorage {
515 CAM_STORAGE_INTERNAL = 0,
516 CAM_STORAGE_EXTERNAL,
521 typedef enum _CamToolbarButton {
522 CAM_TOOLBAR_BUTTON_MODE,
523 CAM_TOOLBAR_BUTTON_SHOT,
524 CAM_TOOLBAR_BUTTON_RECORD,
525 CAM_TOOLBAR_BUTTON_SCENE,
526 CAM_TOOLBAR_BUTTON_SETTINGS,
528 CAM_TOOLBAR_BUTTON_BACK,
529 CAM_TOOLBAR_BUTTON_FLASH,
530 CAM_TOOLBAR_BUTTON_BRIGHTNESS,
531 CAM_TOOLBAR_BUTTON_QUICKVIEW,
533 CAM_TOOLBAR_BUTTON_NUM,
536 typedef enum _CamShotMode {
538 /* self shooting mode */
539 CAM_SELF_SINGLE_MODE,
543 enum _CamRecordMode {
548 /* self recording mode */
551 CAM_RECORD_MODE_NUMS,
554 typedef enum _CamSceneMode {
555 CAM_SCENE_NONE = CAMERA_ATTR_SCENE_MODE_NORMAL,
556 CAM_SCENE_PORTRAIT = CAMERA_ATTR_SCENE_MODE_PORTRAIT,
557 CAM_SCENE_LANDSCAPE = CAMERA_ATTR_SCENE_MODE_LANDSCAPE,
558 CAM_SCENE_SPORTS = CAMERA_ATTR_SCENE_MODE_SPORTS,
559 CAM_SCENE_PARTY = CAMERA_ATTR_SCENE_MODE_PARTY_N_INDOOR,
560 CAM_SCENE_BEACHSNOW = CAMERA_ATTR_SCENE_MODE_BEACH_N_INDOOR,
561 CAM_SCENE_SUNSET = CAMERA_ATTR_SCENE_MODE_SUNSET,
562 CAM_SCENE_DUSKDAWN = CAMERA_ATTR_SCENE_MODE_DUSK_N_DAWN,
563 CAM_SCENE_FALL = CAMERA_ATTR_SCENE_MODE_FALL_COLOR,
564 CAM_SCENE_NIGHT = CAMERA_ATTR_SCENE_MODE_NIGHT_SCENE,
565 CAM_SCENE_FIREWORK = CAMERA_ATTR_SCENE_MODE_FIREWORK,
566 CAM_SCENE_TEXT = CAMERA_ATTR_SCENE_MODE_TEXT,
567 CAM_SCENE_SHOW_WINDOW = CAMERA_ATTR_SCENE_MODE_SHOW_WINDOW,
568 CAM_SCENE_CANDLELIGHT = CAMERA_ATTR_SCENE_MODE_CANDLE_LIGHT,
569 CAM_SCENE_BACKLIGHT = CAMERA_ATTR_SCENE_MODE_BACKLIGHT,
573 typedef enum _CamIso {
574 CAM_ISO_AUTO = CAMERA_ATTR_ISO_AUTO,
575 CAM_ISO_50 = CAMERA_ATTR_ISO_50,
576 CAM_ISO_100 = CAMERA_ATTR_ISO_100,
577 CAM_ISO_200 = CAMERA_ATTR_ISO_200,
578 CAM_ISO_400 = CAMERA_ATTR_ISO_400,
579 CAM_ISO_800 = CAMERA_ATTR_ISO_800,
580 CAM_ISO_1600 = CAMERA_ATTR_ISO_1600,
581 CAM_ISO_3200 = CAMERA_ATTR_ISO_3200,
584 typedef enum _CamMetering {
585 CAM_METERING_MATRIX = CAMERA_ATTR_EXPOSURE_MODE_ALL,
586 CAM_METERING_CENTER_WEIGHTED = CAMERA_ATTR_EXPOSURE_MODE_CENTER,
587 CAM_METERING_SPOT = CAMERA_ATTR_EXPOSURE_MODE_SPOT,
590 #define CAMCORDER_WDR_OFF 0
591 #define CAMCORDER_WDR_ON 1
593 CAM_WDR_OFF =CAMCORDER_WDR_OFF, /*TODO:now capi not surpprot this attribute*/
594 CAM_WDR_ON = CAMCORDER_WDR_ON,
596 #define CAMCORDER_AHS_OFF 0
597 #define CAMCORDER_AHS_ON 1
598 enum _CamAHS { /*TODO:now capi not surpprot this attribute*/
599 CAM_AHS_OFF = CAMCORDER_AHS_OFF,
600 CAM_AHS_ON = CAMCORDER_AHS_ON,
603 typedef enum _CamFlashMode {
604 CAM_FLASH_OFF = CAMERA_ATTR_FLASH_MODE_OFF,
605 CAM_FLASH_ON = CAMERA_ATTR_FLASH_MODE_ON,
606 CAM_FLASH_AUTO = CAMERA_ATTR_FLASH_MODE_AUTO,
607 CAM_FLASH_MOVIE_ON = CAMERA_ATTR_FLASH_MODE_PERMANENT,
610 typedef enum _CamFocusMode {
611 CAM_FOCUS_NONE = CAMERA_ATTR_AF_NONE,
612 CAM_FOCUS_AUTO = CAMERA_ATTR_AF_NORMAL,
613 CAM_FOCUS_MACRO = CAMERA_ATTR_AF_MACRO,
614 CAM_FOCUS_CAF = CAMERA_ATTR_AF_FULL,
615 CAM_FOCUS_FACE = 100, /* It is not focus mode in MMF, set detect mode */
618 typedef enum _CamFocusStatus {
619 CAM_FOCUS_STATUS_RELEASED = 0,
620 /**< AF status released.*/
621 CAM_FOCUS_STATUS_ONGOING, /**< AF in pregress*/
622 CAM_FOCUS_STATUS_FOCUSED, /**< AF success*/
623 CAM_FOCUS_STATUS_FAILED, /**< AF fail*/
624 CAM_FOCUS_STATUS_NUM, /**< Number of AF status*/
627 typedef enum _CamTouchAFState {
628 CAM_TOUCH_AF_STATE_NONE,
629 CAM_TOUCH_AF_STATE_READY,
630 CAM_TOUCH_AF_STATE_DOING,
633 typedef enum _CamContinuousShotStatus {
634 CAM_CONTI_SHOT_STATUS_DEFAULT = 0, /**< NOT Started */
635 CAM_CONTI_SHOT_STATUS_CAPTURING,/**< NOW Capturing */
636 CAM_CONTI_SHOT_STATUS_STOPPING, /**< NOW Stopping */
637 CAM_CONTI_SHOT_STATUS_STOPPED, /**< Ignore Capture data */
638 CAM_CONTI_SHOT_STATUS_NUM, /**< Number of Continuous shot status*/
639 } CamContinuousShotStatus;
641 typedef enum _CamContinuousShotError {
642 CAM_CONTI_SHOT_ERROR_NONE = 0, /**< NOT Started */
643 CAM_CONTI_SHOT_ERROR_ENCODING, /**< JPEG Encoding error*/
644 CAM_CONTI_SHOT_ERROR_MMC_REMOVED,
645 /**< MMC is removed */
646 CAM_CONTI_SHOT_ERROR_FILE_WRITE,
647 /**< File write failed */
648 CAM_CONTI_SHOT_ERROR_NUM, /**< Number of Continuous shot status*/
649 } CamContinuousShotError;
651 typedef enum _CamSettingOnOff {
656 typedef enum _CamSettingsTimer {
657 CAM_SETTINGS_TIMER_OFF,
658 CAM_SETTINGS_TIMER_2SEC,
659 CAM_SETTINGS_TIMER_5SEC,
660 CAM_SETTINGS_TIMER_10SEC,
661 CAM_SETTINGS_TIMER_NUMS
664 typedef enum _CamSettingsWB {
665 CAM_SETTINGS_WB_AWB = CAMERA_ATTR_WHITE_BALANCE_AUTOMATIC,
666 CAM_SETTINGS_WB_INCANDESCENT = CAMERA_ATTR_WHITE_BALANCE_INCANDESCENT,
667 CAM_SETTINGS_WB_FLUORESCENT = CAMERA_ATTR_WHITE_BALANCE_FLUORESCENT,
668 CAM_SETTINGS_WB_DAYLIGHT = CAMERA_ATTR_WHITE_BALANCE_DAYLIGHT,
669 CAM_SETTINGS_WB_CLOUDY = CAMERA_ATTR_WHITE_BALANCE_CLOUDY,
670 CAM_SETTINGS_WB_SHADE = CAMERA_ATTR_WHITE_BALANCE_SHADE,
671 CAM_SETTINGS_WB_HORIZON = CAMERA_ATTR_WHITE_BALANCE_HORIZON,
672 CAM_SETTINGS_WB_FLASH = CAMERA_ATTR_WHITE_BALANCE_FLASH,
673 CAM_SETTINGS_WB_CUSTOM = CAMERA_ATTR_WHITE_BALANCE_CUSTOM,
676 typedef enum _CamSettingsEffects {
678 CAM_SETTINGS_EFFECTS_NOR = MM_CAMCORDER_COLOR_TONE_NORMAL,
681 CAM_SETTINGS_EFFECTS_NOR = CAMERA_ATTR_EFFECT_NONE, /**< None */
682 CAM_SETTINGS_EFFECTS_MONO = CAMERA_ATTR_EFFECT_MONO, /**< Mono */
683 CAM_SETTINGS_EFFECTS_SEPIA = CAMERA_ATTR_EFFECT_SEPIA, /**< Sepia */
684 CAM_SETTINGS_EFFECTS_NEGATIVE = CAMERA_ATTR_EFFECT_NEGATIVE, /**< Negative */
685 CAM_SETTINGS_EFFECTS_BLUE = CAMERA_ATTR_EFFECT_BLUE, /**< Blue */
686 CAM_SETTINGS_EFFECTS_GREEN = CAMERA_ATTR_EFFECT_GREEN, /**< Green */
687 CAM_SETTINGS_EFFECTS_AQUA = CAMERA_ATTR_EFFECT_AQUA, /**< Aqua */
688 CAM_SETTINGS_EFFECTS_VIOLET = CAMERA_ATTR_EFFECT_VIOLET, /**< Violet (Samsung Extension)*/
689 CAM_SETTINGS_EFFECTS_ORANGE = CAMERA_ATTR_EFFECT_ORANGE, /**< Orange (Samsung Extension)*/
690 CAM_SETTINGS_EFFECTS_GRAY = CAMERA_ATTR_EFFECT_GRAY, /**< Gray (Samsung Extension)*/
691 CAM_SETTINGS_EFFECTS_RED = CAMERA_ATTR_EFFECT_RED, /**< Red (Samsung Extension)*/
692 CAM_SETTINGS_EFFECTS_ANTIQUE = CAMERA_ATTR_EFFECT_ANTIQUE, /**< Antique (Samsung Extension)*/
693 CAM_SETTINGS_EFFECTS_WARM = CAMERA_ATTR_EFFECT_WARM, /**< Warm (Samsung Extension)*/
694 CAM_SETTINGS_EFFECTS_PINK = CAMERA_ATTR_EFFECT_PINK, /**< Pink (Samsung Extension)*/
695 CAM_SETTINGS_EFFECTS_YELLOW = CAMERA_ATTR_EFFECT_YELLOW, /**< Yellow (Samsung Extension)*/
696 CAM_SETTINGS_EFFECTS_PURPLE = CAMERA_ATTR_EFFECT_PURPLE, /**< Purple (Samsung Extension)*/
697 CAM_SETTINGS_EFFECTS_EMBOSS = CAMERA_ATTR_EFFECT_EMBOSS, /**< Emboss (Samsung Extension)*/
698 CAM_SETTINGS_EFFECTS_OUTLINE = CAMERA_ATTR_EFFECT_OUTLINE, /**< Outline (Samsung Extension)*/
699 CAM_SETTINGS_EFFECTS_SOLARIZATION= CAMERA_ATTR_EFFECT_SOLARIZATION, /**< Solarization (Samsung Extension)*/
700 CAM_SETTINGS_EFFECTS_SKETCH_1 = CAMERA_ATTR_EFFECT_SKETCH, /**< Sketch (Samsung Extension/secondary camera only)*/
701 CAM_SETTINGS_EFFECTS_WASHED = CAMERA_ATTR_EFFECT_WASHED, /**< Washed */
702 CAM_SETTINGS_EFFECTS_VINTAGE_WARM = CAMERA_ATTR_EFFECT_VINTAGE_WARM, /**< Vintage warm */
703 CAM_SETTINGS_EFFECTS_VINTAGE_COLD = CAMERA_ATTR_EFFECT_VINTAGE_COLD, /**< Vintage cold */
704 CAM_SETTINGS_EFFECTS_POSTERIZATION = CAMERA_ATTR_EFFECT_POSTERIZATION, /**< Posterization */
705 CAM_SETTINGS_EFFECTS_CARTOON = CAMERA_ATTR_EFFECT_CARTOON, /**< Cartoon */
706 CAM_SETTINGS_EFFECTS_SELECTIVE_RED = CAMERA_ATTR_EFFECT_SELECTIVE_RED, /**< Selective color - Red */
707 CAM_SETTINGS_EFFECTS_SELECTIVE_GREEN = CAMERA_ATTR_EFFECT_SELECTIVE_GREEN, /**< Selective color - Green */
708 CAM_SETTINGS_EFFECTS_SELECTIVE_BLUE = CAMERA_ATTR_EFFECT_SELECTIVE_BLUE, /**< Selective color - Blue */
709 CAM_SETTINGS_EFFECTS_SELECTIVE_YELLOW = CAMERA_ATTR_EFFECT_SELECTIVE_YELLOW, /**< Selective color - Yellow */
710 CAM_SETTINGS_EFFECTS_SELECTIVE_RED_YELLOW = CAMERA_ATTR_EFFECT_SELECTIVE_RED_YELLOW, /**< Selective color - Red and Yellow */
712 } CamSettingsEffects;
714 enum _CamMMSizeLimit {
715 CAM_MM_SIZE_LIMIT_TYPE_BYTE,
716 CAM_MM_SIZE_LIMIT_TYPE_SECOND,
720 CAM_QUALITY_BEST = 100,
721 CAM_QUALITY_HIGH = 95, /* still only */
722 CAM_QUALITY_MEDIUM = 80,
723 CAM_QUALITY_LOW = 65,
727 CAM_SETTINGS_SOUND_OFF = -1,
728 CAM_SETTINGS_SOUND_1,
729 CAM_SETTINGS_SOUND_2,
730 CAM_SETTINGS_SOUND_3,
733 typedef enum _CamVolumeKeyMode {
735 CAM_VOLUME_KEY_SHUTTER,
738 typedef enum _CamZoomValue {
776 /* Continuous Shot */
777 typedef struct _CamContinuousShotData {
780 CamContinuousShotStatus capture_status;
782 char *first_filename;
783 char *file_path[MAX_CONTINUOUS_SHOT];
784 char *thumbnail_file_path[MAX_CONTINUOUS_SHOT];
785 } CamContinuousShotData;
787 enum _CamRecStopType {
788 CAM_REC_STOP_UNEXPECTED = 0,
790 CAM_REC_STOP_LOW_BATTERY,
792 CAM_REC_STOP_MAX_SIZE,
793 CAM_REC_STOP_TIME_LIMIT,
794 CAM_REC_STOP_NO_SPACE,
795 CAM_REC_STOP_USB_CONN,
796 CAM_REC_STOP_POWER_KEY,
801 typedef enum _CamUgState {
802 CAM_UG_PAUSE_STATE = 1,
805 CAM_UG_TERMINATE_STATE,
808 typedef enum _CamFoucusMode {
809 CAM_FOCUS_MODE_TOUCH_AUTO = 0,
810 CAM_FOCUS_MODE_HALFSHUTTER = 1,
811 CAM_FOCUS_MODE_CONTINUOUS = 2,
814 typedef struct __ShortCutData {
817 Evas_Object_Event_Cb func;
818 CAM_MENU_ITEM setting_type;
821 /*if change, should swap*/
822 int menu_bar_no;/*-1,if -1, not in menubar;0,1,2,3,4, from left to right; now: 0 be always setting */
823 gboolean is_on_menu_bar;
826 Evas_Coord x, y, w, h;
827 int part_index;/*part index*/
828 int list_index; /*list index*/
835 typedef struct __MenuBar_Shortcut {
837 Evas_Object *icon_button;
838 Evas_Object_Event_Cb func;
839 CAM_MENU_ITEM setting_type;
843 typedef struct __Ecore_Pipe_Data_Info {
846 } Ecore_Pipe_Data_Info;
849 CAM_MENU_BAR_LEFT_INVALID = -1,
850 CAM_MENU_BAR_LEFT_0 = 0,
855 CAM_MENU_BAR_LEFT_MAX_NUM,
859 CAM_MAIN_PIPE_OP_TYPE_INVAILD = -1,
860 CAM_MAIN_PIPE_OP_TYPE_UPDATE_THUMBNAIL, /*update thumbnail type*/
861 CAM_MAIN_PIPE_OP_TYPE_UPDATE_THUMBNAIL_NO_ANI, /*update thumbnail type*/
862 CAM_MAIN_PIPE_OP_TYPE_ROTATE_ANIMATOR, /*rotate target, start rotate icons*/
863 CAM_MAIN_PIPE_OP_TYPE_SHUTTER_ANIMATION, /*shutter: show rect and thumbnail effect*/
864 CAM_MAIN_PIPE_OP_TYPE_BURST_SHOT_UPDATE_PROGRESS, /*burstshot: update capture progress*/
865 CAM_MAIN_PIPE_OP_TYPE_BURST_SHOT_DISPLAY_POPUP,
866 CAM_MAIN_PIPE_OP_TYPE_BEST_SHOT_IMAGE_HANDLE,
867 CAM_MAIN_PIPE_OP_TYPE_UPDATE_VIEW,
868 CAM_MAIN_PIPE_OP_TYPE_ERROR_POPUP, /*error popup*/
869 CAM_MAIN_PIPE_OP_TYPE_VIDEO_CAPTURE_HANDLE,
870 CAM_MAIN_PIPE_OP_TYPE_RUN_IMAGE_VIEWER,
871 CAM_MAIN_PIPE_OP_TYPE_MAX_NUM,
872 }; /*note: this define for main pipe operation type*/
875 typedef enum __CAM_EDIT_SHORTCUTS_INDEX{
876 CAM_EDIT_SHORTCUTS_INDEX_INVALID = -1,
877 CAM_EDIT_SHORTCUTS_INDEX_0 = 0,/*row 1*/
878 CAM_EDIT_SHORTCUTS_INDEX_1,
879 CAM_EDIT_SHORTCUTS_INDEX_2,
880 CAM_EDIT_SHORTCUTS_INDEX_3,
881 CAM_EDIT_SHORTCUTS_INDEX_4,/*row 2*/
882 CAM_EDIT_SHORTCUTS_INDEX_5,
883 CAM_EDIT_SHORTCUTS_INDEX_6,
884 CAM_EDIT_SHORTCUTS_INDEX_7,
885 CAM_EDIT_SHORTCUTS_INDEX_8,/*row 3*/
886 CAM_EDIT_SHORTCUTS_INDEX_9,
887 CAM_EDIT_SHORTCUTS_INDEX_10,
888 CAM_EDIT_SHORTCUTS_INDEX_11,
889 CAM_EDIT_SHORTCUTS_INDEX_12,/*row 4*/
890 CAM_EDIT_SHORTCUTS_INDEX_13,
891 CAM_EDIT_SHORTCUTS_INDEX_14,
892 CAM_EDIT_SHORTCUTS_INDEX_15,
893 CAM_EDIT_SHORTCUTS_INDEX_16,/*row 5*/
894 CAM_EDIT_SHORTCUTS_INDEX_17,
895 CAM_EDIT_SHORTCUTS_INDEX_18,
896 CAM_EDIT_SHORTCUTS_INDEX_19,
897 CAM_EDIT_SHORTCUTS_INDEX_MAX,
898 } CAM_EDIT_SHORTCUTS_INDEX;
900 typedef enum _CamTargetDirection {
901 CAM_TARGET_DIRECTION_LANDSCAPE = 0,
902 CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE,
903 CAM_TARGET_DIRECTION_PORTRAIT,
904 CAM_TARGET_DIRECTION_PORTRAIT_INVERSE,
905 CAM_TARGET_DIRECTION_MAX,
908 typedef struct __cam_menu_composer {
913 typedef struct __Edit_ShortCuts_Rect {
918 } CAM_Edit_ShortCuts_Rect;
920 typedef struct __cam_menubar_data {
925 typedef struct __cam_reserved_setting_data {
926 gint front_shooting_mode;
927 gint front_recording_mode;
928 gint rear_shooting_mode;
929 gint rear_recording_mode;
931 gint front_photo_resolution;
932 gint front_video_resolution;
933 gint rear_photo_resolution;
934 gint rear_video_resolution;
941 } cam_reserved_setting_data;
943 typedef enum _CamErrorType {
944 CAM_ERROR_TYPE_NONE = 0,
945 CAM_ERROR_TYPE_UNABLE_TO_LAUNCH,
948 typedef enum _CamTipPopupType {
949 CAM_TIP_POPUP_NONE = -1,
950 CAM_TIP_POPUP_BURSTSHOT_HELP = 0,
951 CAM_TIP_POPUP_VOLUMEKEY_HELP,
955 #endif /* __DEF_CAM_PROPERTY_H_ */