return TRUE;
}
-gboolean cam_app_start(void *data)
+Eina_Bool cam_app_start(void *data)
{
CAM_TA_ACUM_ITEM_BEGIN("#########cam_app_start", 0);
debug_fenter(LOG_CAM);
- cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+ cam_retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "appdata is NULL");
camapp = ad->camapp_handle;
- cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+ cam_retvm_if(camapp == NULL, ECORE_CALLBACK_CANCEL, "camapp_handle is NULL");
+
+ if (!cam_condition_check_to_start_camera(ad)) {
+ cam_critical(LOG_CAM, "cannot start camera");
+ return ECORE_CALLBACK_CANCEL;
+ }
/*init guideline value*/
#ifdef GUIDE_LINE_ENALBE
if (!cam_mm_create(CAM_DEVICE_MEGA, camapp->camera_mode)) {
cam_critical(LOG_MM, "cam_mm_create failed");
cam_app_notice_popup(ad, "UNABLE TO LAUNCH CAMERA", cam_app_timeout_notice_response_cb);
- return FALSE;
+ return ECORE_CALLBACK_CANCEL;
}
}
CAM_TA_ACUM_ITEM_END(" cam_mm_create", 0);
if (!cam_callback_init(ad)) {
cam_critical(LOG_CAM, "cam_init_mm_callback failed");
cam_app_notice_popup(ad, "UNABLE TO START PREVIEW", cam_app_timeout_notice_response_cb);
- return FALSE;
+ return ECORE_CALLBACK_CANCEL;
}
CAM_TA_ACUM_ITEM_END(" cam_callback_init", 0);
* TODO: this func dealt with efl ui api, but cam_app_start is called in thread.
* We should consider it carefully.
*/
- cam_continuous_af_start(ad);
if (!cam_app_preview_start(ad)) {
if (ad->is_calling == CAMERA_ERROR_SOUND_POLICY ||ad->is_calling == RECORDER_ERROR_SOUND_POLICY) {
DEBUG_TRACE(" MM CAMCARORDER ERROR\n");
cam_app_black_screen_show(ad, 2);
ecore_timer_add(0.01, cam_delay_popup, (void *)ad);
- return FALSE;
+ return ECORE_CALLBACK_CANCEL;
}
cam_critical(LOG_MM, "cam_app_preview_start failed");
cam_app_notice_popup(ad, "UNABLE TO START PREVIEW", cam_app_timeout_notice_response_cb);
- return FALSE;
+ return ECORE_CALLBACK_CANCEL;
}
CAM_TA_ACUM_ITEM_END(" cam_app_preview_start", 0);
#endif
CAM_TA_ACUM_ITEM_END("#########cam_app_start", 0);
- return TRUE;
+ return ECORE_CALLBACK_CANCEL;
}
gboolean cam_app_pause(void *data)
cam_app_get_preview_offset_coordinate(ad);
- cam_continuous_af_start(ad);
if (!cam_app_preview_start(ad)) {
cam_critical(LOG_MM, "cam_app_preview_start failed");
goto MODE_CHANGE_FAILED;
return FALSE;
}
- cam_continuous_af_start(ad);
if (!cam_app_preview_start(ad)) {
cam_critical(LOG_MM, "cam_app_preview_start failed");
cam_app_notice_popup(ad, "PREVIEW START FAILED !!", cam_app_timeout_notice_response_cb);
}
cam_mm_get_video_size( &camapp->default_preview_width, &camapp->default_preview_height);
DEBUG_TRACE("default_width = %d,default_height = %d", camapp->default_preview_width, camapp->default_preview_height);
-
- cam_continuous_af_start(ad);
}
g_value_init(&value, G_TYPE_INT);
return TRUE;
}
-Eina_Bool cam_continuous_af_start(void *data)
-{
-
- struct appdata *ad = (struct appdata *)data;
- cam_retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "appdata is NULL");
-
- CamAppData *camapp = NULL;
- camapp = ad->camapp_handle;
- cam_retvm_if(camapp == NULL, ECORE_CALLBACK_CANCEL, "camapp_handle is NULL");
-
- DEBUG_TRACE("cam_continuous_af_start");
-
- /* init */
- ad->af_x = (ad->win_width / 2) - ad->preview_offset_x;
- ad->af_y = (ad->win_height / 2) - ad->preview_offset_y;
-
- ad->af_x = (ad->af_x * ad->camfw_video_width) / ad->preview_w;
- ad->af_y = (ad->af_y * ad->camfw_video_height) / ad->preview_h;
- /* init */
- ad->touch_lcd_x = (ad->win_height / 2);
- ad->touch_lcd_y = (ad->win_width / 2);
-
- cam_app_draw_af_box(ad);
- camapp->focus_state = CAM_FOCUS_STATUS_RELEASED;
- cam_app_focus_guide_update(ad);
-
- evas_object_show(ad->focus_edje);
-
- camapp->focus_mode = CAM_FOCUS_MODE_CONTINUOUS;
-
- /* cam_mm_set_af_area include init focusing */
- DEBUG_TRACE("start continuous AF");
- if (cam_mm_set_af_area(ad->af_x, ad->af_y, ad->camera_focus_w, ad->camera_focus_h)) {
- DEBUG_TRACE("cam_mm_set_af_area success!");
- /*focus guide update*/
- } else {
- DEBUG_TRACE("cam_mm_set_af_area error!");
- }
- if (!cam_mm_start_focusing(camapp->focus_mode)) {
- cam_critical(LOG_MM, "cam_mm_start_focusing error");
- }
- return ECORE_CALLBACK_CANCEL;
-}
-
Eina_Bool cam_volume_key_press(void *data)
{
struct appdata *ad = (struct appdata *)data;
DEBUG_TRACE("start caf");
cam_app_focus_guide_create(ad);
cam_app_focus_guide_update(ad);
- ad->continuous_af_timer= ecore_timer_add(FOCUS_FOCUSED_TIME_OUT, cam_continuous_af_start, ad);
}
}
break;
DEBUG_TRACE("start caf");
cam_app_focus_guide_create(ad);
cam_app_focus_guide_update(ad);
- ad->continuous_af_timer= ecore_timer_add(FOCUS_FAILED_TIME_OUT, cam_continuous_af_start, ad);
}
}
break;