diff options
Diffstat (limited to 'include/cam_property.h')
-rwxr-xr-x | include/cam_property.h | 955 |
1 files changed, 955 insertions, 0 deletions
diff --git a/include/cam_property.h b/include/cam_property.h new file mode 100755 index 0000000..c2ffd35 --- /dev/null +++ b/include/cam_property.h @@ -0,0 +1,955 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * 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 __DEF_CAM_PROPERTY_H_ +#define __DEF_CAM_PROPERTY_H_ + +#include <glib.h> +/*#include <mmf/mm_camcorder.h>*/ +#include <camera.h> +#include <recorder.h> +#include <Evas.h> +#include <Eina.h> + + +#define CAM_LCD_WVGA + +#define PI (4 * atan(1)) +#define NEW_GUI +/* Macros + */ +#define HIWORD(x) ((x) >> 16) +#define LOWORD(y) (((y) << 16) >> 16) +#define MAKE_DWORD(x, y) ((x) << 16 | (y)) + +/* Resolution + */ +#define PREVIEW_W (640) +#define PREVIEW_WIDE_W (800) +#define PREVIEW_H (480) + +#define CAM_RESOLUTION(w, h) MAKE_DWORD(w, h) +#define CAM_RESOLUTION_W(r) HIWORD(r) +#define CAM_RESOLUTION_H(r) LOWORD(r) + +#define CAM_RESOLUTION_3264x2448 /*8M*/ CAM_RESOLUTION(3264, 2448) +#define CAM_RESOLUTION_3264x2176 /*7M_WIDE*/ CAM_RESOLUTION(3264, 2176) +#define CAM_RESOLUTION_3264x1960 /*6M_WIDE*/ CAM_RESOLUTION(3264, 1960) +#define CAM_RESOLUTION_3264x1836 /*6M_WIDE*/ CAM_RESOLUTION(3264, 1836) +#define CAM_RESOLUTION_2800x1920 /*5M_WIDE*/ CAM_RESOLUTION(2800, 1920) +#define CAM_RESOLUTION_2560x1920 /*5M*/ CAM_RESOLUTION(2560, 1920) +#define CAM_RESOLUTION_2560x1536 /*4M_WIDE*/ CAM_RESOLUTION(2560, 1536) +#define CAM_RESOLUTION_2560x1440 /*3M_WIDE*/ CAM_RESOLUTION(2560, 1440) +#define CAM_RESOLUTION_2048x1536 /*3M*/ CAM_RESOLUTION(2048, 1536) +#define CAM_RESOLUTION_2048x1152 /*2.4M*/ CAM_RESOLUTION(2048, 1152) +#define CAM_RESOLUTION_1920x1080 /*2M_WIDE*/ CAM_RESOLUTION(1920, 1080) +#define CAM_RESOLUTION_1600x1200 /*2M*/ CAM_RESOLUTION(1600, 1200) +#define CAM_RESOLUTION_1392x1392 /*2M*/ CAM_RESOLUTION(1392, 1392) +#define CAM_RESOLUTION_1280x720 /*0.9M*/ CAM_RESOLUTION(1280, 720) +#define CAM_RESOLUTION_1280x960 /*1M*/ CAM_RESOLUTION(1280, 960) + + +#define CAM_RESOLUTION_FULLHD CAM_RESOLUTION(1920, 1080) +#define CAM_RESOLUTION_HD CAM_RESOLUTION(1280, 720) +#define CAM_RESOLUTION_SVGA CAM_RESOLUTION(800, 600) +#define CAM_RESOLUTION_WVGA CAM_RESOLUTION(800, 480) +#define CAM_RESOLUTION_WVGA2 CAM_RESOLUTION(720, 480) +#define CAM_RESOLUTION_VGA CAM_RESOLUTION(640, 480) +#define CAM_RESOLUTION_WQVGA CAM_RESOLUTION(400, 240) +#define CAM_RESOLUTION_QVGA CAM_RESOLUTION(320, 240) +#define CAM_RESOLUTION_CIF CAM_RESOLUTION(352, 288) +#define CAM_RESOLUTION_QCIF CAM_RESOLUTION(176, 144) + +/* resolution string for camera ug */ +#define CAM_CAPTURE_RES_VGA "VGA" +#define CAM_RECORDING_RES_QCIF "QCIF" + +#define MAX_CONTINUOUS_SHOT (20) +#define MAX_BEST_PHOTO (8) +#define CONTINUOUS_SHOT_INTERVAL (150) + +#define LONG_PRESS_TIME (0.50) + +#define CAM_REC_NORMAL_MAX_SIZE (4*1024*1024) /* kbyte */ +#define CAM_REC_MMS_MAX_SIZE (295) /* kbyte */ + +#define STILL_MINIMAL_SPACE (100*1024) /* byte */ +#define REC_MMS_MIN_SPACE (300*1024) /* byte */ + +#define CAM_TIME_FORMAT "u:%02u:%02u" +#define CAM_TIME_FORMAT2 "02u:%02u" + +#define CAM_TIME_ARGS(t) \ + (uint) (t / (60*60)), \ + (uint) ((t / 60) % 60), \ + (uint) (t % 60) + +#define CAM_TIME_ARGS2(t) \ + (uint) ((t / 60) % 60), \ + (uint) (t % 60) + +#define REMOVE_TIMER(timer) \ + if (timer != NULL) {\ + ecore_timer_del(timer); \ + timer = NULL; \ + } + +#define REMOVE_IDLER(idler) \ + if (idler != NULL) {\ + ecore_idler_del(idler); \ + idler = NULL; \ + } + +#define DEL_EVAS_OBJECT(eo) \ + if (eo != NULL) {\ + evas_object_del(eo); \ + eo = NULL; \ + } +#define HIDE_EVAS_OBJECT(eo) \ + if (eo != NULL) {\ + evas_object_hide(eo); \ + } +#define SHOW_EVAS_OBJECT(eo) \ + if (eo != NULL) {\ + evas_object_show(eo); \ + } + +#define SCALED_W(w) (int)((double)w/MAIN_W*((struct appdata *)cam_appdata_get())->win_width) +#define SCALED_H(h) (int)((double)h/MAIN_H*((struct appdata *)cam_appdata_get())->win_height) + +/* set line byte */ +#define LINEBYTES_BGR565(w) (((w) * 2 + 3) >> 2 << 2) +#define LINEBYTES_YUV420(w) (((w) + 3) >> 2 << 2) +#define LINEBYTES_YUV422(w) (((w) * 2)) +#define LINEBYTES_RGB888(w) (((w) * 3)) + +#define CAMERA_APP_TIMEOUT (120.0) /* No input for 2 minite, Auto close camera app */ +#define CAM_SETTING_POPUP_TIMEOUT (10) +#ifndef ABS +#define ABS(x) ((x) < 0 ? -(x) : (x)) +#endif + +#ifndef CLAMP +#define CLAMP(x, min, max) (((x) > (max)) ? (max) : (((x) < (min)) ? (min) : (x))) +#endif + +#ifndef MIN +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#endif + +#ifndef CAM_LCD_WVGA +#define FIT_TO_RESOLUTION(p1, p2) (p1) +#else +#define FIT_TO_RESOLUTION(p1, p2) (((p2) == -1) ? ((p1) * 2) : (p2)) +#endif + +#ifndef CAM_LCD_WVGA +#define FIT_TO_FONT_SIZE(s1, s2) (s1) +#else +#define FIT_TO_FONT_SIZE(s1, s2) (((s2) == -1) ? (s1) : (s2)) +#endif + +/* temporary code */ +#ifndef YUV422_SIZE +#define YUV422_SIZE(width, height) ((width) * (height) * 2) +#endif /* YUV422_SIZE */ + +#ifndef YUV420_SIZE +#define YUV420_SIZE(width, height) ((width) * (height) * 3 / 2) +#endif /* YUV420_SIZE */ + +#define CAM_AUDIO_BITRATE_MMS (12200) +#define CAM_AUDIO_BITRATE_NORMAL (288000) + +#define MODE_DEFAULT CAM_CAMERA_MODE +#define SHOTMODE_DEFAULT CAM_SINGLE_MODE +#define RECMODE_DEFAULT CAM_RECORD_NORMAL +#define PG_MODE_DEFAULT CAM_SCENE_NONE +#define RESOLUTION_DEFAULT CAM_RESOLUTION_VGA +#define REC_RESOLUTION_DEFAULT CAM_RESOLUTION_FULLHD +#define IMAGE_RESOLUTION_DEFAULT CAM_RESOLUTION_3264x2448 +#define SELF_REC_RESOLUTION_DEFAULT CAM_RESOLUTION_HD +#define SELF_IMAGE_RESOLUTION_DEFAULT CAM_RESOLUTION_1392x1392 +#define WB_DEFAULT CAM_SETTINGS_WB_AWB +#define ISO_DEFAULT CAM_ISO_AUTO +#define AE_DEFAULT CAM_METERING_CENTER_WEIGHTED +#define EFFECT_DEFAULT CAM_SETTINGS_EFFECTS_NOR +#define AF_DEFAULT CAM_FOCUS_AUTO +#define AHS_DEFAULT CAM_AHS_OFF +#define WDR_DEFAULT CAM_WDR_OFF +#define FLASH_DEFAULT CAM_FLASH_AUTO +#define GUIDE_LINE_DEFAULT FALSE +#define REC_FLASH_DEFAULT CAM_FLASH_OFF +#define BRIGHTNESS_DEFAULT 4 /* should get from caps query */ +#define TIMER_DEFAULT CAM_SETTINGS_TIMER_OFF +#define ZOOM_DEFAULT (0) +#define QUALITY_DEFAULT CAM_QUALITY_HIGH +#define FPS_DEFAULT (30) +#define FPS_SLOW (15) +#define IMAGE_COUNT_DEFAULT (1) +#define AUDIOREC_DEFAULT TRUE +#define STORAGE_DEFAULT CAM_STORAGE_INTERNAL +#define REC_SIZE_LIMIT_DEFAULT CAM_REC_NORMAL_MAX_SIZE +#define SHUTTER_SOUND_DEFAULT CAM_SETTINGS_SOUND_1 +#define SOUND_DEFAULT TRUE +#define BURST_SHOT_DEFAULT TRUE + +#define POP_TIP_DEFAULT TRUE + + +#define REC_MAX_TIME_LIMITED (60*60) /* one hour */ +#define DEFAULT_REC_FPS (1.0) +#define SLOW_MOTION_REC_FPS (120) +#define FAST_MOTION_REC_FPS (30) +#define SLOW_MOTION_PLAY_FPS (0.25) +#define FAST_MOTION_PLAY_FPS (4) +#define CAM_EPSINON (0.000001) + +/*note: for focus edje zoom effect */ +#define CAM_FOCUS_EDJE_ZOOM_EFFECT_START_RATE (1.0) +#define CAM_FOCUS_EDJE_ZOOM_EFFECT_END_RATE (1.5) +#define CAM_FOCUS_EDJE_ZOOM_EFFECT_DURATION (0.20) +/*note: for thumbnail effect*/ +#define CAM_THUMBNAIL_ANTIMATION_EFFECT_DURATION (0.25) +/*note: for icons animation effect*/ +#define CAM_ROTATE_ICONS_ANTIMATION_DURATION (0.35) + +#define EDIT_SHORTCUTS_TIP_WIDTH (680) +#define EDIT_SHORTCUTS_TIP_HEIGHT (546) +#define EDIT_SHORTCUTS_TIPS_COORDINATE_PORTRAIT_Y (320) +#define EDIT_SHORTCUTS_TIPS_COORDINATE_PORTRAIT_X (20) + +#define EDIT_SHORTCUTS_TIPS_COORDINATE_LANDSCAPE_X (320) +#define EDIT_SHORTCUTS_TIPS_COORDINATE_LANDSCAPE_Y (87) + +typedef struct _cam_rectangle CamRectangle; + +struct _cam_rectangle { + int x, y, width, height; +}; + +/* face */ +typedef struct _cam_face_data CamFaceData; +struct _cam_face_data { + CamRectangle *pFaceRect; + int nFace; /* face count. */ + int faceOrient; /* the face angle 1:0angle 2:90angle, 3:270 angle */ +}; + +/* Eyes */ +typedef struct _cam_eyes_data CamEyesData; +struct _cam_eyes_data { + CamRectangle *pEyesRect; + int *nClosedEyesFlag; /* true is closed eyes otherwise false */ + int nEyes; +}; + +typedef struct _cam_exe_args CamExeArgs; +struct _cam_exe_args { + int cam_mode; + int resolution; + int width; + int height; + int size_limit; + gboolean review; + gboolean allow_switch; + char *caller; +}; + +enum _CamAppProperty { + PROP_MODE, // 0 + PROP_SELF_PORTRAIT, + PROP_SHOT_MODE, + PROP_REC_MODE, + PROP_SCENE_MODE, + PROP_PHOTO_RESOLUTION, // 5 + PROP_VIDEO_RESOLUTION, + PROP_FPS, + PROP_BRIGHTNESS, + PROP_WB, + PROP_ISO, // 10 + PROP_AUTO_CONTRAST, + PROP_METERING, + PROP_EFFECT, + PROP_AF_MODE, + PROP_AHS, // 15 + PROP_WDR, + PROP_FLASH, + PROP_TIMER, + PROP_IMAGE_QUALITY, + PROP_VIDEO_QUALITY, // 20 + PROP_AUDIO_REC, + PROP_AUDIO_QUALITY, + PROP_BATTERY_LEVEL, + PROP_BATTERY_CHARG, + PROP_GPS_LEVEL, // 25 + PROP_ZOOM, + PROP_STORAGE, + PROP_GUIDELINE, + PROP_GPS, + PROP_REVIEW, // 30 + PROP_IMAGE_COUNT, + PROP_SHUTTER_SOUND, + PROP_SIZE_LIMIT, + PROP_SIZE_LIMIT_TYPE, + PROP_REC_TIME, // 35 + PROP_REC_FILE_SIZE, + PROP_OUTDOOR_VISIBILITY, + PROP_VOLUME_KEY, + PROP_SAVE_AS_FLIP, + PROP_BURST_SHOT, // 40 + + PROP_NUMS +}; + +#define PROP_MODE_NAME "mode" +#define PROP_SELF_PORTRAIT_NAME "self_portrait" +#define PROP_SCENE_MODE_NAME "scene_mode" +#define PROP_PHOTO_RESOLUTION_NAME "photo_resolution" +#define PROP_VIDEO_RESOLUTION_NAME "video_resolution" +#define PROP_SELF_PHOTO_RESOLUTION_NAME "self_photo_resolution" +#define PROP_SELF_VIDEO_RESOLUTION_NAME "self_video_resolution" +#define PROP_WB_NAME "wb" +#define PROP_ISO_NAME "iso" +#define PROP_AUTO_CONTRAST_NAME "auto_contrast" +#define PROP_METERING_NAME "metering" +#define PROP_AF_NAME "af_mode" +#define PROP_AHS_NAME "ahs" +#define PROP_WDR_NAME "wdr" +#define PROP_FLASH_NAME "flash" +#define PROP_STORAGE_NAME "storage" +#define PROP_GUIDELINE_NAME "guideline" +#define PROP_GPS_NAME "gps" +#define PROP_REVIEW_NAME "review" +#define PROP_VOLUME_KEY_NAME "volume_key" +#define PROP_BURST_SHOT_NAME "burst_shot" + +#define PROP_TOOLBAR_0_TYPE_NAME "toolbar_0" +#define PROP_TOOLBAR_1_TYPE_NAME "toolbar_1" +#define PROP_TOOLBAR_2_TYPE_NAME "toolbar_2" +#define PROP_TOOLBAR_3_TYPE_NAME "toolbar_3" +#define PROP_TOOLBAR_4_TYPE_NAME "toolbar_4" + +/*NOTE: edit shortcuts*/ +#define PROP_SHOW_POP_TIP "pop_tip" +#define PROP_SHORTCUTS_INIT_PART_INDEX "init_part_index" + +#define PROP_SHORTCUTS_PART_INDEX_0 "part_index_0" +#define PROP_SHORTCUTS_PART_INDEX_1 "part_index_1" +#define PROP_SHORTCUTS_PART_INDEX_2 "part_index_2" +#define PROP_SHORTCUTS_PART_INDEX_3 "part_index_3" + +#define PROP_SHORTCUTS_PART_INDEX_4 "part_index_4" +#define PROP_SHORTCUTS_PART_INDEX_5 "part_index_5" +#define PROP_SHORTCUTS_PART_INDEX_6 "part_index_6" +#define PROP_SHORTCUTS_PART_INDEX_7 "part_index_7" + +#define PROP_SHORTCUTS_PART_INDEX_8 "part_index_8" +#define PROP_SHORTCUTS_PART_INDEX_9 "part_index_9" +#define PROP_SHORTCUTS_PART_INDEX_10 "part_index_10" +#define PROP_SHORTCUTS_PART_INDEX_11 "part_index_11" + +#define PROP_SHORTCUTS_PART_INDEX_12 "part_index_12" +#define PROP_SHORTCUTS_PART_INDEX_13 "part_index_13" +#define PROP_SHORTCUTS_PART_INDEX_14 "part_index_14" +#define PROP_SHORTCUTS_PART_INDEX_15 "part_index_15" + +#define PROP_SHORTCUTS_PART_INDEX_16 "part_index_16" +#define PROP_SHORTCUTS_PART_INDEX_17 "part_index_17" +#define PROP_SHORTCUTS_PART_INDEX_18 "part_index_18" +#define PROP_SHORTCUTS_PART_INDEX_19 "part_index_19" + + +#define STR_MOVE_PREV "move,prev" +#define STR_MOVE_NEXT "move,next" +#define STR_ANI_RETURN "ani,return" + + +typedef enum _CamDeviceType { + CAM_DEVICE_MEGA = CAMERA_DEVICE_CAMERA0, + CAM_DEVICE_VGA = CAMERA_DEVICE_CAMERA1, +} CamDeviceType; + +typedef enum _CamLaunchingMode { + CAM_LAUNCHING_MODE_NORMAL = 0, + CAM_LAUNCHING_MODE_EXTERNAL, + CAM_LAUNCHING_MODE_NUMS, +} CamLaunchingMode; + +#define CAMCORDER_MODE_IMAGE 1 +#define CAMCORDER_MODE_VIDEO 2 +typedef enum _CamMode { + CAM_CAMERA_MODE = CAMCORDER_MODE_IMAGE, + CAM_CAMCORDER_MODE = CAMCORDER_MODE_VIDEO, + CAM_MODE_NUMS = CAM_CAMCORDER_MODE +} CamMode; + +typedef enum __CAM_MENU_ITEM{ + CAM_MENU_EMPTY = -1, + CAM_MENU_SHORTCUTS = 0, + CAM_MENU_VOLUME_KEY, + CAM_MENU_BURST_SHOT_MODE, + CAM_MENU_SELF_PORTRAIT, + CAM_MENU_FLASH, + CAM_MENU_SHOOTING_MODE, + CAM_MENU_RECORDING_MODE, + CAM_MENU_SCENE_MODE, + CAM_MENU_EXPLOSURE_VALUE, + CAM_MENU_FOCUS_MODE, + CAM_MENU_TIMER, + CAM_MENU_EFFECTS, + CAM_MENU_PHOTO_RESOLUTION, + CAM_MENU_VIDEO_RESOLUTION, + CAM_MENU_WHITE_BALANCE, + CAM_MENU_ISO, + CAM_MENU_METERING, + CAM_MENU_ANTI_SHAKE, + CAM_MENU_OUTDOOR_VISIBILITY, + CAM_MENU_AUTO_CONTRAST, + CAM_MENU_GUIDELINES, + CAM_MENU_CAPTURE_VOICE, + CAM_MENU_GPS_TAG, + CAM_MENU_SAVE_AS_FLIP, + CAM_MENU_STORAGE, + CAM_MENU_RESET, + CAM_MENU_SCENE_AUTO, /* scene */ + CAM_MENU_SCENE_PORTRAIT, + CAM_MENU_SCENE_LANDSCAPE, + CAM_MENU_SCENE_NIGHT, + CAM_MENU_SCENE_SPORTS, + CAM_MENU_SCENE_PARTY, + CAM_MENU_SCENE_BEACHSNOW, + CAM_MENU_SCENE_SUNSET, + CAM_MENU_SCENE_DUSKDAWN, + CAM_MENU_SCENE_FALL, + CAM_MENU_SCENE_FIREWORK, + CAM_MENU_SCENE_TEXT, + CAM_MENU_SCENE_CANDLELIGHT, + CAM_MENU_SCENE_BACKLIGHT, + CAM_MENU_SCENE_SHOW_WINDOW, + CAM_MENU_SHOOTING_SINGLE, /*shooting mode*/ + CAM_MENU_SHOOTING_SELF_SINGLE, + CAM_MENU_VIDEO_RESOLUTION_FULLHD, /* video resolution */ + CAM_MENU_VIDEO_RESOLUTION_HD, + CAM_MENU_VIDEO_RESOLUTION_WVGA, + CAM_MENU_VIDEO_RESOLUTION_VGA, + CAM_MENU_VIDEO_RESOLUTION_QVGA, + CAM_MENU_VIDEO_RESOLUTION_QCIF, + CAM_MENU_PHOTO_RESOLUTION_3264x2448, /* photo resolution */ + CAM_MENU_PHOTO_RESOLUTION_3264x1960, + CAM_MENU_PHOTO_RESOLUTION_3264x1836, + CAM_MENU_PHOTO_RESOLUTION_2800x1920, + CAM_MENU_PHOTO_RESOLUTION_2560x1920, + CAM_MENU_PHOTO_RESOLUTION_2560x1536, + CAM_MENU_PHOTO_RESOLUTION_2560x1440, + CAM_MENU_PHOTO_RESOLUTION_2048x1536, + CAM_MENU_PHOTO_RESOLUTION_2048x1152, + CAM_MENU_PHOTO_RESOLUTION_1920x1080, + CAM_MENU_PHOTO_RESOLUTION_1600x1200, + CAM_MENU_PHOTO_RESOLUTION_1392x1392, + CAM_MENU_PHOTO_RESOLUTION_1280x960, + CAM_MENU_PHOTO_RESOLUTION_1280x720, + CAM_MENU_PHOTO_RESOLUTION_640x480, + CAM_MENU_WB_AWB, /* WB */ + CAM_MENU_WB_INCANDESCENT, + CAM_MENU_WB_FLUORESCENT, + CAM_MENU_WB_DAYLIGHT, + CAM_MENU_WB_CLOUDY, + CAM_MENU_WB_SHADE, + CAM_MENU_WB_HORIZON, + CAM_MENU_WB_FLASH, + CAM_MENU_WB_CUSTOM, + CAM_MENU_EFFECT_NONE, + CAM_MENU_EFFECT_NEGATIVE, + CAM_MENU_EFFECT_BLACKANDWHITE, + CAM_MENU_EFFECT_SEPIA, + CAM_MENU_FOCUS_AUTO, /* Focus mode */ + CAM_MENU_FOCUS_MACRO, + CAM_MENU_FOCUS_FACE_DETECTION, + CAM_MENU_RECORDING_MODE_NORMAL, /* Recording mode */ + CAM_MENU_RECORDING_MODE_LIMIT, + CAM_MENU_RECORDING_MODE_SLOW, + CAM_MENU_RECORDING_MODE_FAST, + CAM_MENU_RECORDING_MODE_SELF_NORMAL, + CAM_MENU_RECORDING_MODE_SELF_LIMIT, + CAM_MENU_FLASH_OFF, /* Flash */ + CAM_MENU_FLASH_ON, + CAM_MENU_FLASH_AUTO, + CAM_MENU_METERING_MATRIX, /* Metering */ + CAM_MENU_METERING_CENTER_WEIGHTED, + CAM_MENU_METERING_SPOT, + CAM_MENU_ISO_AUTO, /* ISO */ + CAM_MENU_ISO_50, + CAM_MENU_ISO_100, + CAM_MENU_ISO_200, + CAM_MENU_ISO_400, + CAM_MENU_ISO_80O, + CAM_MENU_ISO_1600, + CAM_MENU_ISO_320O, + CAM_MENU_TIMER_OFF, /*TIMER*/ + CAM_MENU_TIMER_2SEC, + CAM_MENU_TIMER_5SEC, + CAM_MENU_TIMER_10SEC, + CAM_MENU_STORAGE_PHONE, + CAM_MENU_STORAGE_MMC, + CAM_MENU_VOLUME_KEY_ZOOM, + CAM_MENU_VOLUME_KEY_SHUTTER, + CAM_MENU_MAX_NUMS, +}CAM_MENU_ITEM; + +typedef enum _CamStorage { + CAM_STORAGE_INTERNAL = 0, + CAM_STORAGE_EXTERNAL, + CAM_STORAGE_DCF, + CAM_STORAGE_NUM, +} CamStorage; + +typedef enum _CamToolbarButton { + CAM_TOOLBAR_BUTTON_MODE, + CAM_TOOLBAR_BUTTON_SHOT, + CAM_TOOLBAR_BUTTON_RECORD, + CAM_TOOLBAR_BUTTON_SCENE, + CAM_TOOLBAR_BUTTON_SETTINGS, + + CAM_TOOLBAR_BUTTON_BACK, + CAM_TOOLBAR_BUTTON_FLASH, + CAM_TOOLBAR_BUTTON_BRIGHTNESS, + CAM_TOOLBAR_BUTTON_QUICKVIEW, + + CAM_TOOLBAR_BUTTON_NUM, +} CamToolbarButton; + +typedef enum _CamShotMode { + CAM_SINGLE_MODE, + /* self shooting mode */ + CAM_SELF_SINGLE_MODE, + CAM_SHOT_MODE_NUMS +} CamShotMode; + +enum _CamRecordMode { + CAM_RECORD_NORMAL, + CAM_RECORD_SLOW, + CAM_RECORD_FAST, + CAM_RECORD_MMS, + /* self recording mode */ + CAM_RECORD_SELF, + CAM_RECORD_SELF_MMS, + CAM_RECORD_MODE_NUMS, +}; + +typedef enum _CamSceneMode { + CAM_SCENE_NONE = CAMERA_ATTR_SCENE_MODE_NORMAL, + CAM_SCENE_PORTRAIT = CAMERA_ATTR_SCENE_MODE_PORTRAIT, + CAM_SCENE_LANDSCAPE = CAMERA_ATTR_SCENE_MODE_LANDSCAPE, + CAM_SCENE_SPORTS = CAMERA_ATTR_SCENE_MODE_SPORTS, + CAM_SCENE_PARTY = CAMERA_ATTR_SCENE_MODE_PARTY_N_INDOOR, + CAM_SCENE_BEACHSNOW = CAMERA_ATTR_SCENE_MODE_BEACH_N_INDOOR, + CAM_SCENE_SUNSET = CAMERA_ATTR_SCENE_MODE_SUNSET, + CAM_SCENE_DUSKDAWN = CAMERA_ATTR_SCENE_MODE_DUSK_N_DAWN, + CAM_SCENE_FALL = CAMERA_ATTR_SCENE_MODE_FALL_COLOR, + CAM_SCENE_NIGHT = CAMERA_ATTR_SCENE_MODE_NIGHT_SCENE, + CAM_SCENE_FIREWORK = CAMERA_ATTR_SCENE_MODE_FIREWORK, + CAM_SCENE_TEXT = CAMERA_ATTR_SCENE_MODE_TEXT, + CAM_SCENE_SHOW_WINDOW = CAMERA_ATTR_SCENE_MODE_SHOW_WINDOW, + CAM_SCENE_CANDLELIGHT = CAMERA_ATTR_SCENE_MODE_CANDLE_LIGHT, + CAM_SCENE_BACKLIGHT = CAMERA_ATTR_SCENE_MODE_BACKLIGHT, + +} CamSceneMode; + +typedef enum _CamIso { + CAM_ISO_AUTO = CAMERA_ATTR_ISO_AUTO, + CAM_ISO_50 = CAMERA_ATTR_ISO_50, + CAM_ISO_100 = CAMERA_ATTR_ISO_100, + CAM_ISO_200 = CAMERA_ATTR_ISO_200, + CAM_ISO_400 = CAMERA_ATTR_ISO_400, + CAM_ISO_800 = CAMERA_ATTR_ISO_800, + CAM_ISO_1600 = CAMERA_ATTR_ISO_1600, + CAM_ISO_3200 = CAMERA_ATTR_ISO_3200, +}CamIso; + +typedef enum _CamMetering { + CAM_METERING_MATRIX = CAMERA_ATTR_EXPOSURE_MODE_ALL, + CAM_METERING_CENTER_WEIGHTED = CAMERA_ATTR_EXPOSURE_MODE_CENTER, + CAM_METERING_SPOT = CAMERA_ATTR_EXPOSURE_MODE_SPOT, +}CamMetering; + +#define CAMCORDER_WDR_OFF 0 +#define CAMCORDER_WDR_ON 1 +enum _CamWDR { + CAM_WDR_OFF =CAMCORDER_WDR_OFF, /*TODO:now capi not surpprot this attribute*/ + CAM_WDR_ON = CAMCORDER_WDR_ON, +}; +#define CAMCORDER_AHS_OFF 0 +#define CAMCORDER_AHS_ON 1 +enum _CamAHS { /*TODO:now capi not surpprot this attribute*/ + CAM_AHS_OFF = CAMCORDER_AHS_OFF, + CAM_AHS_ON = CAMCORDER_AHS_ON, +}; + +typedef enum _CamFlashMode { + CAM_FLASH_OFF = CAMERA_ATTR_FLASH_MODE_OFF, + CAM_FLASH_ON = CAMERA_ATTR_FLASH_MODE_ON, + CAM_FLASH_AUTO = CAMERA_ATTR_FLASH_MODE_AUTO, + CAM_FLASH_MOVIE_ON = CAMERA_ATTR_FLASH_MODE_PERMANENT, +} CamFlashMode; + +typedef enum _CamFocusMode { + CAM_FOCUS_NONE = CAMERA_ATTR_AF_NONE, + CAM_FOCUS_AUTO = CAMERA_ATTR_AF_NORMAL, + CAM_FOCUS_MACRO = CAMERA_ATTR_AF_MACRO, + CAM_FOCUS_CAF = CAMERA_ATTR_AF_FULL, + CAM_FOCUS_FACE = 100, /* It is not focus mode in MMF, set detect mode */ +} CamFocusMode; + +typedef enum _CamFocusStatus { + CAM_FOCUS_STATUS_RELEASED = 0, + /**< AF status released.*/ + CAM_FOCUS_STATUS_ONGOING, /**< AF in pregress*/ + CAM_FOCUS_STATUS_FOCUSED, /**< AF success*/ + CAM_FOCUS_STATUS_FAILED, /**< AF fail*/ + CAM_FOCUS_STATUS_NUM, /**< Number of AF status*/ +} CamFocusStatus; + +typedef enum _CamTouchAFState { + CAM_TOUCH_AF_STATE_NONE, + CAM_TOUCH_AF_STATE_READY, + CAM_TOUCH_AF_STATE_DOING, +}CamTouchAFState; + +typedef enum _CamContinuousShotStatus { + CAM_CONTI_SHOT_STATUS_DEFAULT = 0, /**< NOT Started */ + CAM_CONTI_SHOT_STATUS_CAPTURING,/**< NOW Capturing */ + CAM_CONTI_SHOT_STATUS_STOPPING, /**< NOW Stopping */ + CAM_CONTI_SHOT_STATUS_STOPPED, /**< Ignore Capture data */ + CAM_CONTI_SHOT_STATUS_NUM, /**< Number of Continuous shot status*/ +} CamContinuousShotStatus; + +typedef enum _CamContinuousShotError { + CAM_CONTI_SHOT_ERROR_NONE = 0, /**< NOT Started */ + CAM_CONTI_SHOT_ERROR_ENCODING, /**< JPEG Encoding error*/ + CAM_CONTI_SHOT_ERROR_MMC_REMOVED, + /**< MMC is removed */ + CAM_CONTI_SHOT_ERROR_FILE_WRITE, + /**< File write failed */ + CAM_CONTI_SHOT_ERROR_NUM, /**< Number of Continuous shot status*/ +} CamContinuousShotError; + +typedef enum _CamSettingOnOff { + CAM_SETTINGS_OFF, + CAM_SETTINGS_ON, +} CamSettingsOnOff; + +typedef enum _CamSettingsTimer { + CAM_SETTINGS_TIMER_OFF, + CAM_SETTINGS_TIMER_2SEC, + CAM_SETTINGS_TIMER_5SEC, + CAM_SETTINGS_TIMER_10SEC, + CAM_SETTINGS_TIMER_NUMS +} CamSettingsTimer; + +typedef enum _CamSettingsWB { + CAM_SETTINGS_WB_AWB = CAMERA_ATTR_WHITE_BALANCE_AUTOMATIC, + CAM_SETTINGS_WB_INCANDESCENT = CAMERA_ATTR_WHITE_BALANCE_INCANDESCENT, + CAM_SETTINGS_WB_FLUORESCENT = CAMERA_ATTR_WHITE_BALANCE_FLUORESCENT, + CAM_SETTINGS_WB_DAYLIGHT = CAMERA_ATTR_WHITE_BALANCE_DAYLIGHT, + CAM_SETTINGS_WB_CLOUDY = CAMERA_ATTR_WHITE_BALANCE_CLOUDY, + CAM_SETTINGS_WB_SHADE = CAMERA_ATTR_WHITE_BALANCE_SHADE, + CAM_SETTINGS_WB_HORIZON = CAMERA_ATTR_WHITE_BALANCE_HORIZON, + CAM_SETTINGS_WB_FLASH = CAMERA_ATTR_WHITE_BALANCE_FLASH, + CAM_SETTINGS_WB_CUSTOM = CAMERA_ATTR_WHITE_BALANCE_CUSTOM, +} CamSettingsWB; + +typedef enum _CamSettingsEffects { + /* + CAM_SETTINGS_EFFECTS_NOR = MM_CAMCORDER_COLOR_TONE_NORMAL, + */ + + CAM_SETTINGS_EFFECTS_NOR = CAMERA_ATTR_EFFECT_NONE, /**< None */ + CAM_SETTINGS_EFFECTS_MONO = CAMERA_ATTR_EFFECT_MONO, /**< Mono */ + CAM_SETTINGS_EFFECTS_SEPIA = CAMERA_ATTR_EFFECT_SEPIA, /**< Sepia */ + CAM_SETTINGS_EFFECTS_NEGATIVE = CAMERA_ATTR_EFFECT_NEGATIVE, /**< Negative */ + CAM_SETTINGS_EFFECTS_BLUE = CAMERA_ATTR_EFFECT_BLUE, /**< Blue */ + CAM_SETTINGS_EFFECTS_GREEN = CAMERA_ATTR_EFFECT_GREEN, /**< Green */ + CAM_SETTINGS_EFFECTS_AQUA = CAMERA_ATTR_EFFECT_AQUA, /**< Aqua */ + CAM_SETTINGS_EFFECTS_VIOLET = CAMERA_ATTR_EFFECT_VIOLET, /**< Violet (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_ORANGE = CAMERA_ATTR_EFFECT_ORANGE, /**< Orange (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_GRAY = CAMERA_ATTR_EFFECT_GRAY, /**< Gray (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_RED = CAMERA_ATTR_EFFECT_RED, /**< Red (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_ANTIQUE = CAMERA_ATTR_EFFECT_ANTIQUE, /**< Antique (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_WARM = CAMERA_ATTR_EFFECT_WARM, /**< Warm (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_PINK = CAMERA_ATTR_EFFECT_PINK, /**< Pink (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_YELLOW = CAMERA_ATTR_EFFECT_YELLOW, /**< Yellow (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_PURPLE = CAMERA_ATTR_EFFECT_PURPLE, /**< Purple (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_EMBOSS = CAMERA_ATTR_EFFECT_EMBOSS, /**< Emboss (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_OUTLINE = CAMERA_ATTR_EFFECT_OUTLINE, /**< Outline (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_SOLARIZATION= CAMERA_ATTR_EFFECT_SOLARIZATION, /**< Solarization (Samsung Extension)*/ + CAM_SETTINGS_EFFECTS_SKETCH_1 = CAMERA_ATTR_EFFECT_SKETCH, /**< Sketch (Samsung Extension/secondary camera only)*/ + CAM_SETTINGS_EFFECTS_WASHED = CAMERA_ATTR_EFFECT_WASHED, /**< Washed */ + CAM_SETTINGS_EFFECTS_VINTAGE_WARM = CAMERA_ATTR_EFFECT_VINTAGE_WARM, /**< Vintage warm */ + CAM_SETTINGS_EFFECTS_VINTAGE_COLD = CAMERA_ATTR_EFFECT_VINTAGE_COLD, /**< Vintage cold */ + CAM_SETTINGS_EFFECTS_POSTERIZATION = CAMERA_ATTR_EFFECT_POSTERIZATION, /**< Posterization */ + CAM_SETTINGS_EFFECTS_CARTOON = CAMERA_ATTR_EFFECT_CARTOON, /**< Cartoon */ + CAM_SETTINGS_EFFECTS_SELECTIVE_RED = CAMERA_ATTR_EFFECT_SELECTIVE_RED, /**< Selective color - Red */ + CAM_SETTINGS_EFFECTS_SELECTIVE_GREEN = CAMERA_ATTR_EFFECT_SELECTIVE_GREEN, /**< Selective color - Green */ + CAM_SETTINGS_EFFECTS_SELECTIVE_BLUE = CAMERA_ATTR_EFFECT_SELECTIVE_BLUE, /**< Selective color - Blue */ + CAM_SETTINGS_EFFECTS_SELECTIVE_YELLOW = CAMERA_ATTR_EFFECT_SELECTIVE_YELLOW, /**< Selective color - Yellow */ + CAM_SETTINGS_EFFECTS_SELECTIVE_RED_YELLOW = CAMERA_ATTR_EFFECT_SELECTIVE_RED_YELLOW, /**< Selective color - Red and Yellow */ + +} CamSettingsEffects; + +enum _CamMMSizeLimit { + CAM_MM_SIZE_LIMIT_TYPE_BYTE, + CAM_MM_SIZE_LIMIT_TYPE_SECOND, +}; + +enum _CamQuality { + CAM_QUALITY_BEST = 100, + CAM_QUALITY_HIGH = 95, /* still only */ + CAM_QUALITY_MEDIUM = 80, + CAM_QUALITY_LOW = 65, +}; + +enum _CamSound { + CAM_SETTINGS_SOUND_OFF = -1, + CAM_SETTINGS_SOUND_1, + CAM_SETTINGS_SOUND_2, + CAM_SETTINGS_SOUND_3, +}; + +typedef enum _CamVolumeKeyMode { + CAM_VOLUME_KEY_ZOOM, + CAM_VOLUME_KEY_SHUTTER, +} CamVolumeKeyMode; + +typedef enum _CamZoomValue { + CAM_ZOOM_VALUE_MIN, + + CAM_ZOOM_VALUE_01, + CAM_ZOOM_VALUE_02, + CAM_ZOOM_VALUE_03, + CAM_ZOOM_VALUE_04, + CAM_ZOOM_VALUE_05, + CAM_ZOOM_VALUE_06, + CAM_ZOOM_VALUE_07, + CAM_ZOOM_VALUE_08, + CAM_ZOOM_VALUE_09, + CAM_ZOOM_VALUE_10, + CAM_ZOOM_VALUE_11, + CAM_ZOOM_VALUE_12, + CAM_ZOOM_VALUE_13, + CAM_ZOOM_VALUE_14, + CAM_ZOOM_VALUE_15, + CAM_ZOOM_VALUE_16, + CAM_ZOOM_VALUE_17, + CAM_ZOOM_VALUE_18, + CAM_ZOOM_VALUE_19, + CAM_ZOOM_VALUE_20, + CAM_ZOOM_VALUE_21, + CAM_ZOOM_VALUE_22, + CAM_ZOOM_VALUE_23, + CAM_ZOOM_VALUE_24, + CAM_ZOOM_VALUE_25, + CAM_ZOOM_VALUE_26, + CAM_ZOOM_VALUE_27, + CAM_ZOOM_VALUE_28, + CAM_ZOOM_VALUE_29, + CAM_ZOOM_VALUE_30, + CAM_ZOOM_VALUE_4x, + + CAM_ZOOM_VALUE_MAX +} CamZoomValue; + +/* Continuous Shot */ +typedef struct _CamContinuousShotData { + int shot_num; + int lock; + CamContinuousShotStatus capture_status; + GError *error; + char *first_filename; + char *file_path[MAX_CONTINUOUS_SHOT]; + char *thumbnail_file_path[MAX_CONTINUOUS_SHOT]; +} CamContinuousShotData; + +enum _CamRecStopType { + CAM_REC_STOP_UNEXPECTED = 0, + CAM_REC_STOP_NORMAL, + CAM_REC_STOP_LOW_BATTERY, + CAM_REC_STOP_ASM, + CAM_REC_STOP_MAX_SIZE, + CAM_REC_STOP_TIME_LIMIT, + CAM_REC_STOP_NO_SPACE, + CAM_REC_STOP_USB_CONN, + CAM_REC_STOP_POWER_KEY, + + CAM_REC_STOP_NUM, +}; + +typedef enum _CamUgState { + CAM_UG_PAUSE_STATE = 1, + CAM_UG_RESUME_STATE, + CAM_UG_RESET_STATE, + CAM_UG_TERMINATE_STATE, +} CamUgState; + +typedef enum _CamFoucusMode { + CAM_FOCUS_MODE_TOUCH_AUTO = 0, + CAM_FOCUS_MODE_HALFSHUTTER = 1, + CAM_FOCUS_MODE_CONTINUOUS = 2, +} CamAppFocusMode; + +typedef struct __ShortCutData { + /*fixed*/ + Evas_Object *icon; + Evas_Object_Event_Cb func; + CAM_MENU_ITEM setting_type; + char *icon_filepath; + char *name; + /*if change, should swap*/ + int menu_bar_no;/*-1,if -1, not in menubar;0,1,2,3,4, from left to right; now: 0 be always setting */ + gboolean is_on_menu_bar; + gboolean is_virtual; + /*varible*/ + Evas_Coord x, y, w, h; + int part_index;/*part index*/ + int list_index; /*list index*/ + int row;/*unused*/ + int col;/*unused*/ + +} ShortCutData; + + +typedef struct __MenuBar_Shortcut { + Evas_Object *icon; + Evas_Object *icon_button; + Evas_Object_Event_Cb func; + CAM_MENU_ITEM setting_type; + int menu_bar_no; +}MenuBar_Shortcut; + +typedef struct __Ecore_Pipe_Data_Info { + void *data; + unsigned int cmd; +} Ecore_Pipe_Data_Info; + +enum { + CAM_MENU_BAR_LEFT_INVALID = -1, + CAM_MENU_BAR_LEFT_0 = 0, + CAM_MENU_BAR_LEFT_1, + CAM_MENU_BAR_LEFT_2, + CAM_MENU_BAR_LEFT_3, + CAM_MENU_BAR_LEFT_4, + CAM_MENU_BAR_LEFT_MAX_NUM, +}; + +enum { + CAM_MAIN_PIPE_OP_TYPE_INVAILD = -1, + CAM_MAIN_PIPE_OP_TYPE_UPDATE_THUMBNAIL, /*update thumbnail type*/ + CAM_MAIN_PIPE_OP_TYPE_UPDATE_THUMBNAIL_NO_ANI, /*update thumbnail type*/ + CAM_MAIN_PIPE_OP_TYPE_ROTATE_ANIMATOR, /*rotate target, start rotate icons*/ + CAM_MAIN_PIPE_OP_TYPE_SHUTTER_ANIMATION, /*shutter: show rect and thumbnail effect*/ + CAM_MAIN_PIPE_OP_TYPE_BURST_SHOT_UPDATE_PROGRESS, /*burstshot: update capture progress*/ + CAM_MAIN_PIPE_OP_TYPE_BURST_SHOT_DISPLAY_POPUP, + CAM_MAIN_PIPE_OP_TYPE_BEST_SHOT_IMAGE_HANDLE, + CAM_MAIN_PIPE_OP_TYPE_UPDATE_VIEW, + CAM_MAIN_PIPE_OP_TYPE_ERROR_POPUP, /*error popup*/ + CAM_MAIN_PIPE_OP_TYPE_VIDEO_CAPTURE_HANDLE, + CAM_MAIN_PIPE_OP_TYPE_RUN_IMAGE_VIEWER, + CAM_MAIN_PIPE_OP_TYPE_MAX_NUM, +}; /*note: this define for main pipe operation type*/ + + +typedef enum __CAM_EDIT_SHORTCUTS_INDEX{ + CAM_EDIT_SHORTCUTS_INDEX_INVALID = -1, + CAM_EDIT_SHORTCUTS_INDEX_0 = 0,/*row 1*/ + CAM_EDIT_SHORTCUTS_INDEX_1, + CAM_EDIT_SHORTCUTS_INDEX_2, + CAM_EDIT_SHORTCUTS_INDEX_3, + CAM_EDIT_SHORTCUTS_INDEX_4,/*row 2*/ + CAM_EDIT_SHORTCUTS_INDEX_5, + CAM_EDIT_SHORTCUTS_INDEX_6, + CAM_EDIT_SHORTCUTS_INDEX_7, + CAM_EDIT_SHORTCUTS_INDEX_8,/*row 3*/ + CAM_EDIT_SHORTCUTS_INDEX_9, + CAM_EDIT_SHORTCUTS_INDEX_10, + CAM_EDIT_SHORTCUTS_INDEX_11, + CAM_EDIT_SHORTCUTS_INDEX_12,/*row 4*/ + CAM_EDIT_SHORTCUTS_INDEX_13, + CAM_EDIT_SHORTCUTS_INDEX_14, + CAM_EDIT_SHORTCUTS_INDEX_15, + CAM_EDIT_SHORTCUTS_INDEX_16,/*row 5*/ + CAM_EDIT_SHORTCUTS_INDEX_17, + CAM_EDIT_SHORTCUTS_INDEX_18, + CAM_EDIT_SHORTCUTS_INDEX_19, + CAM_EDIT_SHORTCUTS_INDEX_MAX, +} CAM_EDIT_SHORTCUTS_INDEX; + +typedef enum _CamTargetDirection { + CAM_TARGET_DIRECTION_LANDSCAPE = 0, + CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE, + CAM_TARGET_DIRECTION_PORTRAIT, + CAM_TARGET_DIRECTION_PORTRAIT_INVERSE, + CAM_TARGET_DIRECTION_MAX, +}CamTargetDirection; + +typedef struct __cam_menu_composer { + const char* title; + Eina_Array* array; +} cam_menu_composer; + +typedef struct __Edit_ShortCuts_Rect { + Evas_Coord x; + Evas_Coord y; + Evas_Coord w; + Evas_Coord h; +} CAM_Edit_ShortCuts_Rect; + +typedef struct __cam_menubar_data { + Evas_Object *icon; + int menu_type; +} cam_menubar_data; + +typedef struct __cam_reserved_setting_data { + gint front_shooting_mode; + gint front_recording_mode; + gint rear_shooting_mode; + gint rear_recording_mode; + + gint front_photo_resolution; + gint front_video_resolution; + gint rear_photo_resolution; + gint rear_video_resolution; + + gint front_effect; + gint rear_effect; + + gint front_wb; + gint rear_wb; +} cam_reserved_setting_data; + +typedef enum _CamErrorType { + CAM_ERROR_TYPE_NONE = 0, + CAM_ERROR_TYPE_UNABLE_TO_LAUNCH, +} CamErrorType; + +typedef enum _CamTipPopupType { + CAM_TIP_POPUP_NONE = -1, + CAM_TIP_POPUP_BURSTSHOT_HELP = 0, + CAM_TIP_POPUP_VOLUMEKEY_HELP, + CAM_TIP_POPUP_MAX, +} CamTipPopupType; + +#endif /* __DEF_CAM_PROPERTY_H_ */ |