#define SERVICE_MIME_TYPE_IMAGE_2 "image/jpeg"
#define SERVICE_MIME_TYPE_VIDEO_1 "video/3gp"
#define SERVICE_MIME_TYPE_VIDEO_2 "video/3gpp"
+#define SERVICE_OPTIONAL_KEY_ALLOW_SWITCH "http://tizen.org/appcontrol/data/camera/allow_switch"
#define DEFAULT_WIN_ANGLE (270)
int height;
int size_limit;
gboolean review;
+ gboolean allow_switch;
char *caller;
};
return FALSE;
}
+ /* mime type */
if (ad->service_mime != NULL) {
- /* get mode */
if ((strcmp(ad->service_mime, SERVICE_MIME_TYPE_IMAGE_1) == 0)
|| (strcmp(ad->service_mime, SERVICE_MIME_TYPE_IMAGE_2) == 0)) {
- cam_debug(LOG_UI, "CAM_CAMERA_MODE");
args->cam_mode = CAM_CAMERA_MODE;
} else if ((strcmp(ad->service_mime, SERVICE_MIME_TYPE_VIDEO_1) == 0)
|| (strcmp(ad->service_mime, SERVICE_MIME_TYPE_VIDEO_2) == 0)) {
- cam_debug(LOG_UI, "CAM_CAMCORDER_MODE");
args->cam_mode = CAM_CAMCORDER_MODE;
} else {
- cam_critical(LOG_UI, "Invalid mime type");
+ cam_critical(LOG_UI, "invalid mime type");
args->cam_mode = CAM_CAMERA_MODE;
}
+ } else {
+ cam_critical(LOG_UI, "service mime is NULL");
+ args->cam_mode = CAM_CAMERA_MODE;
}
+ /* allow switch */
const char *val = NULL;
+ service_get_extra_data(service, "SERVICE_OPTIONAL_KEY_ALLOW_SWITCH", (char **)&val);
+ if (val) {
+ if (0 == strcmp(val, "true")) {
+ args->allow_switch = TRUE;
+ args->cam_mode = CAM_CAMERA_MODE;
+ } else {
+ args->allow_switch = FALSE;
+ }
+ } else {
+ args->allow_switch = FALSE;
+ }
+
/* get caller appl. */
+ val = NULL;
service_get_extra_data(service, "CALLER", (char **)&val);
if (val) {
cam_debug(LOG_UI, "CALLER %s", val);
cam_debug(LOG_UI, "LIMIT %s", val);
args->size_limit = atoi(val);
} else {
- args->size_limit = 0;
+ args->size_limit = REC_SIZE_LIMIT_DEFAULT;
}
args->review = TRUE;
cam_debug(LOG_SYS, "height =%d", args->height);
cam_debug(LOG_SYS, "limit =%d", args->size_limit);
cam_debug(LOG_SYS, "review =%d", args->review);
+ cam_debug(LOG_SYS, "allow_switch =%d", args->allow_switch);
cam_debug(LOG_SYS, "############### end ###############");
return TRUE;
if(!(capacity & CAM_CP_FUNC_SHOT_MODE))
return FALSE;
+ if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL
+ && ad->exe_args->allow_switch == FALSE
+ && camapp->camera_mode == CAM_CAMCORDER_MODE)
+ return FALSE;
+
return TRUE;
}
cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
if(ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL
+ && ad->exe_args->allow_switch == FALSE
&& camapp->camera_mode == CAM_CAMERA_MODE)
return FALSE;
return FALSE;
if(ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL
+ && ad->exe_args->allow_switch == FALSE
&& camapp->camera_mode == CAM_CAMCORDER_MODE)
return FALSE;
GetCamDevFuncCaps(&capacity, (void*)ad);
if(ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL
+ && ad->exe_args->allow_switch == FALSE
&& camapp->camera_mode == CAM_CAMCORDER_MODE)
return FALSE;
return FALSE;
if(ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL
+ && ad->exe_args->allow_switch == FALSE
&& camapp->camera_mode == CAM_CAMERA_MODE)
return FALSE;
int mm_state = cam_mm_get_state();
- if ((camapp->camera_mode == CAM_CAMERA_MODE)
- && (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL)) {
- cam_debug(LOG_UI, "do not record");
- return;
- }
-
if (strcmp(emission, "press_shutter_sig") == 0) {
if ((camapp->camera_mode == CAM_CAMCORDER_MODE) && (mm_state == RECORDER_STATE_RECORDING))
edje_object_signal_emit(_EDJ(ad->recordingbtn), "recording_pause_button,press", "prog");
case CAM_SELF_SINGLE_MODE:
__toolbar_bg_update(ad, TOOLBAR_ITEM_STATE_NORMAL);
- if(ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL){
+ if((ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) && (ad->exe_args->allow_switch == FALSE)){
__toolbar_menu_item_update(ad, TOOLBAR_ITEM_STATE_NORMAL);
__toolbar_shutter_button_update(ad, TOOLBAR_ITEM_STATE_NORMAL);
__toolbar_recording_button_update(ad, TOOLBAR_ITEM_STATE_DIM);
__toolbar_bg_update(ad, TOOLBAR_ITEM_STATE_NORMAL);
__toolbar_menu_item_update(ad, TOOLBAR_ITEM_STATE_NORMAL);
- if(ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL){
+ if((ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) && (ad->exe_args->allow_switch == FALSE)){
__toolbar_shutter_button_update(ad, TOOLBAR_ITEM_STATE_DIM);
} else {
__toolbar_shutter_button_update(ad, TOOLBAR_ITEM_STATE_NORMAL);