Fix camera start bs issue 2.0alpha master 2.0_alpha submit/master/20120920.150942 submit/tizen/20130710.101333
authorh2.seo <h2.seo@samsung.com>
Wed, 12 Sep 2012 04:23:44 +0000 (13:23 +0900)
committerh2.seo <h2.seo@samsung.com>
Wed, 12 Sep 2012 04:58:07 +0000 (13:58 +0900)
edc/cam_guideline_edje.edc
include/cam.h
include/cam_app.h
packaging/org.tizen.camera-app.spec
src/cam.c
src/cam_app.c
src/cam_menu_composer.c
src/cam_rec.c
src/edc-callback/cam_toolbar_edc_callback.c

index fcb6cbc..aaa29b8 100644 (file)
@@ -50,6 +50,7 @@ group {
                        name: "guide_line1_outline1_1";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
                                rel1 { relative: (GUIDE_LINE_W1 - 1)/MAIN_W 0.0; }\r
@@ -65,6 +66,7 @@ group {
                        name: "guide_line1";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
                                rel1 { relative: GUIDE_LINE_W1/MAIN_W 0.0; }\r
@@ -76,8 +78,8 @@ group {
                        }\r
                        description {\r
                                state: "ver_default" 0.0;\r
-                               rel1 { relative: VER_GUIDE_LINE_W1/VER_MAIN_W 0.1; }\r
-                               rel2 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP)/VER_MAIN_W 0.9; }\r
+                               rel1 { relative: VER_GUIDE_LINE_W1/VER_MAIN_W 0.125; }\r
+                               rel2 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP)/VER_MAIN_W 0.875; }\r
                                image{\r
                                        normal: GUDIE_LINE_1_IMAGE ;\r
                                }\r
@@ -99,6 +101,7 @@ group {
                        name: "guide_line1_outline1_2";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
                                rel1 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP)/MAIN_W 0.0; }\r
@@ -115,6 +118,7 @@ group {
                        name: "guide_line2_outline2_1";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
                                rel1 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP + GUIDE_LINE_W2 - 1)/MAIN_W 0.0; }\r
@@ -130,6 +134,7 @@ group {
                        name: "guide_line2";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
                                rel1 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP + GUIDE_LINE_W2)/MAIN_W 0.0; }\r
@@ -141,8 +146,8 @@ group {
                        }\r
                        description {\r
                                state: "ver_default" 0.0;\r
-                               rel1 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_W2)/VER_MAIN_W 0.1; }\r
-                               rel2 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_W2 + GUIDE_LINE_GAP)/VER_MAIN_W 0.9; }\r
+                               rel1 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_W2)/VER_MAIN_W 0.125; }\r
+                               rel2 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_W2 + GUIDE_LINE_GAP)/VER_MAIN_W 0.875; }\r
                                image{\r
                                        normal: GUDIE_LINE_1_IMAGE ;\r
                                }\r
@@ -164,6 +169,7 @@ group {
                        name: "guide_line2_outline2_2";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
                                rel1 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP + GUIDE_LINE_W2 + GUIDE_LINE_GAP)/MAIN_W 0.0; }\r
@@ -179,6 +185,7 @@ group {
                        name: "guide_line3_outline3_1";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
                                rel1 { relative: (GUIDE_LINE_H1 - 1)/MAIN_W 0.0; }\r
@@ -194,10 +201,11 @@ group {
                        name: "guide_line3";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
-                               rel1 { relative: 0.1 GUIDE_LINE_H1/MAIN_H; }\r
-                               rel2 { relative: 0.9 (GUIDE_LINE_H1 + GUIDE_LINE_GAP)/MAIN_H; }\r
+                               rel1 { relative: 0.125 GUIDE_LINE_H1/MAIN_H; }\r
+                               rel2 { relative: 0.875 (GUIDE_LINE_H1 + GUIDE_LINE_GAP)/MAIN_H; }\r
                                image{\r
                                        normal: GUDIE_LINE_2_IMAGE ;\r
                                }\r
@@ -227,6 +235,7 @@ group {
                        name: "guide_line3_outline3_2";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
                                rel1 { relative: (GUIDE_LINE_H1 + GUIDE_LINE_GAP)/MAIN_W 0.0; }\r
@@ -243,6 +252,7 @@ group {
                        name: "guide_line4_outline4_1";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
                                rel1 { relative: (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2 - 1)/MAIN_W 0.0; }\r
@@ -258,10 +268,11 @@ group {
                        name: "guide_line4";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
-                               rel1 { relative: 0.1 (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2)/MAIN_H; }\r
-                               rel2 { relative: 0.9 (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2 + GUIDE_LINE_GAP)/MAIN_H; }\r
+                               rel1 { relative: 0.125 (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2)/MAIN_H; }\r
+                               rel2 { relative: 0.875 (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2 + GUIDE_LINE_GAP)/MAIN_H; }\r
                                image{\r
                                        normal: GUDIE_LINE_2_IMAGE ;\r
                                }\r
@@ -291,6 +302,7 @@ group {
                        name: "guide_line4_outline4_2";\r
                        type: IMAGE;\r
                        mouse_events: 0;\r
+                       scale: 1;\r
                        description {\r
                                state: "default" 0.0;\r
                                rel1 { relative: (VER_GUIDE_LINE_H1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_H2 + GUIDE_LINE_GAP)/MAIN_W 0.0; }\r
index 08f79af..da6c90d 100755 (executable)
@@ -346,8 +346,6 @@ struct appdata {
        GQueue *file_reg_queue;
 #endif
 
-       pthread_t camera_start_thread;
-
        ui_gadget_h imageviewer_ug;
        gboolean ug_is_deleting_process; /*note: now ug is deleting process, and run into camera preview process*/
        service_h imageviewer_service;
index 711c7a5..0a6fa42 100755 (executable)
@@ -242,7 +242,7 @@ int cam_appdata_init(void *data);
 int cam_appdata_fini(void *data);
 CamAppData *cam_handle_get(void);
 
-gboolean cam_app_start(void *data);
+Eina_Bool cam_app_start(void *data);
 Eina_Bool cam_app_stop(void *data);
 gboolean cam_app_resume(void *data);
 gboolean cam_app_pause(void *data);
@@ -420,7 +420,6 @@ void cam_app_update_quickview_icon(void *data);
 void cam_utils_remove_idler_all(void *data);
 gdouble _get_current_time(void);
 void cam_remove_tmp_file();
-Eina_Bool cam_continuous_af_start(void *data);
 
 Eina_Bool cam_elm_cache_flush();
 void cam_app_mdm_syspopup(void *data);
index 66bc921..3363e35 100644 (file)
@@ -4,7 +4,7 @@
 
 Name:       org.tizen.camera-app
 Summary:    camera application
-Version:    0.3.34
+Version:    0.3.35
 Release:    1
 Group:      misc
 License:    Flora
index 744987a..cd18b20 100755 (executable)
--- a/src/cam.c
+++ b/src/cam.c
@@ -322,19 +322,6 @@ static void cam_resume(void *data)
 
 }
 
-void *cam_start_thread_run(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       cam_retv_if(ad == NULL, NULL);
-
-       if (cam_app_start(ad) == FALSE)
-               cam_critical(LOG_CAM, "cam_app_start failed");
-
-       pthread_exit(NULL);
-
-       return NULL;
-}
-
 static void cam_service(service_h service, void *user_data)
 {
        CAM_TA_ACUM_ITEM_BEGIN("==cam_service==", 0);
@@ -434,21 +421,11 @@ static void cam_service(service_h service, void *user_data)
        if (ad->launch_type == CAM_LAUNCH_FIRST) {
                debug_fenter(LOG_CAM);
 
-               if (!cam_condition_check_to_start_camera(ad)) {
-                       cam_critical(LOG_CAM, "cannot start camera");
-                       return;
-               }
-
                if (!open_cam_handle((void*)ad)) {
                        cam_critical(LOG_CAM, "open_cam_handle failed");
                        return;
                }
 
-               if (pthread_create(&(ad->camera_start_thread), NULL, cam_start_thread_run, (void *)ad) < 0) {
-                       cam_critical(LOG_CAM, "Create camera start thread failed");
-                       return;
-               }
-
 #ifdef ENABLE_CAM_POWER_CONTROL
                power_lock_state(POWER_STATE_NORMAL, 0);
 #endif
@@ -468,6 +445,8 @@ static void cam_service(service_h service, void *user_data)
                        return;
                }
                CAM_TA_ACUM_ITEM_END("    cam_layout_init", 0);
+
+               ecore_idler_add(cam_app_start, ad);
        } else {
                /* RELUNCHING!! //in paused -> Camera process is called by External process  */
 
@@ -489,16 +468,6 @@ static void cam_service(service_h service, void *user_data)
                if (ad->exe_args == NULL)
                        return;
 
-               if (!cam_condition_check_to_start_camera(ad)) {
-                       cam_critical(LOG_CAM, "cannot start camera");
-                       return;
-               }
-
-               if (pthread_create(&(ad->camera_start_thread), NULL, cam_start_thread_run, (void *)ad) < 0) {
-                       cam_critical(LOG_CAM, "Create camera start thread failed");
-                       return;
-               }
-
                ResetCaps();
 
                CAM_TA_ACUM_ITEM_BEGIN("    cam_layout_init", 0);
@@ -509,6 +478,7 @@ static void cam_service(service_h service, void *user_data)
                CAM_TA_ACUM_ITEM_END("    cam_layout_init", 0);
 
                evas_object_raise(ad->win_main);
+               ecore_idler_add(cam_app_start, ad);
        }
 
        cam_debug(LOG_UI, "############## cam_service END##############");
index ddd9620..276afe9 100755 (executable)
@@ -688,7 +688,7 @@ gboolean cam_app_init(void *data)
        return TRUE;
 }
 
-gboolean cam_app_start(void *data)
+Eina_Bool cam_app_start(void *data)
 {
        CAM_TA_ACUM_ITEM_BEGIN("#########cam_app_start", 0);
 
@@ -698,9 +698,14 @@ gboolean cam_app_start(void *data)
 
        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
@@ -712,7 +717,7 @@ gboolean cam_app_start(void *data)
                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);
@@ -721,7 +726,7 @@ gboolean cam_app_start(void *data)
        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);
 
@@ -738,18 +743,17 @@ gboolean cam_app_start(void *data)
        *       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);
 
@@ -763,7 +767,7 @@ gboolean cam_app_start(void *data)
 #endif
        CAM_TA_ACUM_ITEM_END("#########cam_app_start", 0);
 
-       return TRUE;
+       return ECORE_CALLBACK_CANCEL;
 }
 
 gboolean cam_app_pause(void *data)
@@ -2032,7 +2036,6 @@ gboolean cam_mode_change(void *data, int to_mode)
 
        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;
@@ -2215,7 +2218,6 @@ gboolean cam_recording_mode_change(void *data, int rec_mode)
                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);
@@ -2299,8 +2301,6 @@ gboolean cam_shooting_mode_change(void *data)
                }
                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);
@@ -3056,50 +3056,6 @@ gboolean cam_camera_key_release(void *data)
        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;
@@ -4050,7 +4006,6 @@ static void __cam_focus_cb(camera_focus_state_e state, void *user_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;
@@ -4065,7 +4020,6 @@ static void __cam_focus_cb(camera_focus_state_e state, void *user_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_FAILED_TIME_OUT, cam_continuous_af_start, ad);
                        }
                }
                break;
index 5e49608..c3e3bbf 100755 (executable)
@@ -48,10 +48,10 @@ void cam_compose_setting_menu(cam_menu_composer* composer)
 
        unsigned int capacity = 0;
        GetCamDevFuncCaps(&capacity, NULL);
-
+#if 0
        if(capacity & CAM_CP_FUNC_EDIR_SHORTCUT)
                eina_array_push(composer->array, (void*)&setting[0]);
-
+#endif
        if(capacity & CAM_CP_FUNC_TIMER)
                eina_array_push(composer->array, (void*)&setting[1]);
 
index 225ba5d..856b71b 100755 (executable)
@@ -89,7 +89,6 @@ static gchar *__get_tmpfile_name()
        if (g_file_test(tmpfile_name, G_FILE_TEST_EXISTS)) {
                DEBUG_TRACE("Error : tmp file exist on the %s", file_path);
                cam_remove_tmp_file();
-               return NULL;
        }
 
        return g_strdup(tmpfile_name);
index 5f93afe..ccef60c 100755 (executable)
@@ -1288,7 +1288,6 @@ void cam_toolbar_update(struct appdata *ad)
                } else {
                        if (ad->is_recording) {
                                edje_object_signal_emit(_EDJ(ad->toolbar_edje), "toolbar_bg,hide", "program");
-                               __toolbar_recording_capture_button_create(ad);
                                __toolbar_menu_item_update(ad, TOOLBAR_ITEM_STATE_INVISIBLE);
                                __toolbar_mode_item_hide(ad);
                                __toolbar_shutter_button_hide(ad);
@@ -1300,7 +1299,6 @@ void cam_toolbar_update(struct appdata *ad)
                                }
                        } else {
                                edje_object_signal_emit(_EDJ(ad->toolbar_edje), "toolbar_bg,show", "program");
-                               __toolbar_recording_capture_button_destroy(ad);
                                __toolbar_menu_item_update(ad, TOOLBAR_ITEM_STATE_NORMAL);
                                __toolbar_mode_item_update(ad);
                                __toolbar_shutter_button_update(ad);
@@ -1602,17 +1600,46 @@ int cam_guideline_rotate(struct appdata *ad)
 
        if (wide_mode) {
                DEBUG_TRACE("hor,wide_mode");
-               edje_object_signal_emit(_EDJ(ad->guideline_edje),
-                               "guide_line,1,2,normal", "prog_guideline");
-               edje_object_signal_emit(_EDJ(ad->guideline_edje),
+               switch (ad->target_direction) {
+               case CAM_TARGET_DIRECTION_LANDSCAPE:
+               case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+                       DEBUG_TRACE("landscape");
+                       edje_object_signal_emit(_EDJ(ad->guideline_edje),
+                                                       "guide_line,1,2,normal", "prog_guideline");
+                       edje_object_signal_emit(_EDJ(ad->guideline_edje),
                                                        "guide_line,3,4,wide", "prog_guideline");
+                       break;
+               case CAM_TARGET_DIRECTION_PORTRAIT:
+               case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+                       DEBUG_TRACE("portrait");
+                       edje_object_signal_emit(_EDJ(ad->guideline_edje),
+                                               "guide_line,1,2,vertical,wide", "prog_guideline");
+                       edje_object_signal_emit(_EDJ(ad->guideline_edje),
+                                               "guide_line,3,4,vertical,normal", "prog_guideline");
+                       break;
+               }
 
        } else {
                DEBUG_TRACE("hor,normal mode");
-               edje_object_signal_emit(_EDJ(ad->guideline_edje),
-                               "guide_line,1,2,normal", "prog_guideline");
-               edje_object_signal_emit(_EDJ(ad->guideline_edje),
+               switch (ad->target_direction) {
+               case CAM_TARGET_DIRECTION_LANDSCAPE:
+               case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+                       DEBUG_TRACE("landscape");
+                       edje_object_signal_emit(_EDJ(ad->guideline_edje),
+                                                       "guide_line,1,2,normal", "prog_guideline");
+                       edje_object_signal_emit(_EDJ(ad->guideline_edje),
                                                        "guide_line,3,4,normal", "prog_guideline");
+                       break;
+               case CAM_TARGET_DIRECTION_PORTRAIT:
+               case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+                       DEBUG_TRACE("portrait");
+                       edje_object_signal_emit(_EDJ(ad->guideline_edje),
+                                               "guide_line,1,2,vertical,normal", "prog_guideline");
+                       edje_object_signal_emit(_EDJ(ad->guideline_edje),
+                                               "guide_line,3,4,vertical,normal", "prog_guideline");
+                       break;
+               }
+
        }
 
        /*evas_object_lower(ad->guideline_edje);*/