📄 cameraapp.c
字号:
static void mmi_camera_iconbar_right_arrow_release(void);
static void mmi_camera_iconbar_left_arrow_press(void);
static void mmi_camera_iconbar_left_arrow_releas(void);
static void mmi_camera_iconbar_up_arrow_press(void);
static void mmi_camera_iconbar_up_arrow_release(void);
static void mmi_camera_iconbar_down_arrow_press(void);
static void mmi_camera_iconbar_down_arrow_release(void);
#endif /* __CAMERA_FEATURE_ICONBAR_PANEL__ */
#ifdef __CAMERA_AUTOFOCUS_MODE_MANUAL__
static void mmi_camera_mf_forward(void);
static void mmi_camera_mf_backward(void);
static void mmi_camera_mf_stop(void);
static void mmi_camera_mf_forward_continue(void);
static void mmi_camera_mf_backward_continue(void);
#endif /* __CAMERA_AUTOFOCUS_MODE_MANUAL__ */
static void mmi_camera_init_function_key(void);
/* static void mmi_camera_exec_function_key(camera_key_map2_function_enum key); */
#ifdef __CAMERA_AUTOFOCUS_MODE_MANUAL__
static void mmi_camera_toggle_updown_key(void);
#endif
#ifdef __CAMERA_FEATURE_ZOOM__
static void mmi_camera_preview_zoom_in(void);
static void mmi_camera_preview_zoom_out(void);
#ifndef __CAMERA_FEATURE_ICONBAR_PANEL__
static void mmi_camera_preview_up_arrow_press(void);
static void mmi_camera_preview_up_arrow_release(void);
static void mmi_camera_preview_down_arrow_press(void);
static void mmi_camera_preview_down_arrow_release(void);
#endif /* __CAMERA_FEATURE_ICONBAR_PANEL__ */
#endif /* __CAMERA_FEATURE_ZOOM__ */
/* hotkeys */
#ifndef __CAMERA_FEATURE_ICONBAR_PANEL__
#ifdef __CAMERA_FEATURE_EFFECT__
static void mmi_camera_preview_effect_hotkey_press(void);
#endif
#ifdef __CAMERA_FEATURE_WB__
static void mmi_camera_preview_wb_hotkey_press(void);
#endif
#ifdef __CAMERA_FEATURE_LED_HIGHLIGHT__
static void mmi_camera_preview_led_highlight_hotkey_press(void);
#endif
#ifdef __CAMERA_FEATURE_FLASH__
static void mmi_camera_preview_flash_hotkey_press(void);
#endif
#ifdef __CAMERA_FEATURE_NIGHT__
static void mmi_camera_preview_night_hotkey_press(void);
#endif
#ifdef __CAMERA_FEATURE_CONT_SHOT__
static void mmi_camera_preview_cont_shot_hotkey_press(void);
#endif
#ifdef __CAMERA_FEATURE_DELAY_TIMER__
static void mmi_camera_preview_delay_timer_hotkey_press(void);
#endif
static void mmi_camera_preview_image_qty_hotkey_press(void);
static void mmi_camera_preview_image_size_hotkey_press(void);
#ifdef __CAMERA_FEATURE_STORAGE__
static void mmi_camera_preview_storage_hotkey_press(void);
#endif
#ifdef __CAMERA_AUTOFOCUS_MODE__
static void mmi_camera_preview_af_mode_hotkey_press(void);
#endif
#ifdef __CAMERA_AUTOFOCUS_METERING__
static void mmi_camera_preview_af_meter_hotkey_press(void);
#endif
#ifdef __CAMERA_DSC_MODE__
static void mmi_camera_preview_dsc_mode_hotkey_press(void);
#endif
#ifdef __CAMERA_DSC_MODE_ISO__
static void mmi_camera_preview_iso_hotkey_press(void);
#endif
#ifdef __CAMERA_FEATURE_AE_METER__
static void mmi_camera_preview_ae_meter_hotkey_press(void);
#endif
#endif /* __CAMERA_FEATURE_ICONBAR_PANEL__ */
#ifdef __MMI_CAMERA_AF_TEST__
static void mmi_camera_af_test(void);
static void mmi_camera_af_test_start(void);
static void mmi_camera_af_and_capture(void);
#endif /* __MMI_CAMERA_AF_TEST__ */
#ifdef __CAMERA_AUTOFOCUS_MODE__
static void mmi_camera_preview_af_mode_change(BOOL is_next);
#endif
#ifdef __CAMERA_AUTOFOCUS_METERING__
static void mmi_camera_preview_af_meter_change(BOOL is_next);
#endif
#ifdef __CAMERA_DSC_MODE__
static void mmi_camera_preview_dsc_mode_change(BOOL is_next);
static void mmi_camera_init_dsc_mode(void);
#endif /* __CAMERA_DSC_MODE__ */
#ifdef __CAMERA_FEATURE_EFFECT__
static void mmi_camera_preview_effect_change(BOOL is_next);
#endif
#ifdef __CAMERA_FEATURE_WB__
static void mmi_camera_preview_wb_change(BOOL is_next);
#endif
#ifdef __CAMERA_FEATURE_LED_HIGHLIGHT__
static void mmi_camera_preview_led_highlight_change(BOOL is_next);
#endif
#ifdef __CAMERA_FEATURE_FLASH__
static void mmi_camera_preview_flash_change(BOOL is_next);
#endif
#ifdef __CAMERA_FEATURE_NIGHT__
static void mmi_camera_preview_night_change(BOOL is_next);
#endif
#ifdef __CAMERA_FEATURE_CONT_SHOT__
static void mmi_camera_preview_cont_shot_change(BOOL is_next);
#endif
#ifdef __CAMERA_FEATURE_DELAY_TIMER__
static void mmi_camera_preview_delay_timer_change(BOOL is_next);
#endif
static void mmi_camera_preview_image_size_change(BOOL is_next);
static void mmi_camera_preview_image_qty_change(BOOL is_next);
#ifdef __CAMERA_FEATURE_STORAGE__
static void mmi_camera_preview_storage_change(BOOL is_next);
#endif
#ifdef __CAMERA_DSC_MODE_ISO__
static void mmi_camera_preview_iso_change(BOOL is_next);
#endif
#ifdef __CAMERA_FEATURE_AE_METER__
static void mmi_camera_preview_ae_meter_change(BOOL is_next);
#endif
#ifdef __CAMERA_FEATURE_ADD_FRAME__
static void mmi_camera_draw_add_frame(void);
static void mmi_camera_preview_change_frame_up(void);
static void mmi_camera_preview_change_frame_down(void);
#endif /* __CAMERA_FEATURE_ADD_FRAME__ */
#ifdef __CAMERA_FEATURE_ADD_FRAME_COLOR_IDX__
static void mmi_camera_draw_add_frame_color_idx(void);
static camera_overlay_frame_kind mmi_camera_get_overlay_frame_kind(void);
#endif /* __CAMERA_FEATURE_ADD_FRAME_COLOR_IDX__ */
static void mmi_camera_preview_lsk_press(void);
static void mmi_camera_preview_lsk_release(void);
static void mmi_camera_preview_rsk_press(void);
static void mmi_camera_preview_rsk_release(void);
/* countdown state */
static void mmi_camera_entry_countdown_state(void);
static void mmi_camera_exit_countdown_state(void);
static void mmi_camera_countdown_cyclic(void);
static void mmi_camera_countdown_stop_LED(void);
#ifdef __COUNTDOWN_USING_MMA__
static void mmi_camera_init_countdown_mma(void);
static void mmi_camera_deinit_countdown_mma(void);
#endif
/* contshot state */
static void mmi_camera_entry_contshot_state(void);
static void mmi_camera_exit_contshot_state(void);
static void mmi_camera_contshot_cyclic(void);
#ifdef __CAMERA_FEATURE_CONT_SHOT_BURST__
/* burstshot state */
static void mmi_camera_entry_burstshot_capture_state(void);
static void mmi_camera_exit_burstshot_capture_state(void);
#if defined(__CAMERA_FEATURE_CONT_SHOT_BURST__) && defined(__CAMERA_FEATURE_CONT_SHOT_BURST_NON_BLOCK__)
static void mmi_camera_burstshot_capture_result_hdlr(MDI_RESULT ret, U16 captured_count);
static void mmi_camera_burstshot_close_multi_sound(void);
#endif /* defined(__CAMERA_FEATURE_CONT_SHOT_BURST__) && defined(__CAMERA_FEATURE_CONT_SHOT_BURST_NON_BLOCK__) */
/* burstshot save confirm state */
static void mmi_camera_entry_burstshot_save_confirm_state(void);
static void mmi_camera_exit_burstshot_save_confirm_state(void);
static void mmi_camera_burstshot_save_confirm_lsk_press(void);
static void mmi_camera_burstshot_save_confirm_lsk_release(void);
static void mmi_camera_burstshot_save_confirm_rsk_press(void);
static void mmi_camera_burstshot_save_confirm_rsk_release(void);
/* burstshot saving state */
static void mmi_camera_entry_burstshot_saving_state(void);
static void mmi_camera_exit_burstshot_saving_state(void);
static void mmi_camera_burstshot_saving_cyclic(void);
#endif /* __CAMERA_FEATURE_CONT_SHOT_BURST__ */
/* save confirm state */
static void mmi_camera_entry_save_confirm_state(void);
static void mmi_camera_exit_save_confirm_state(void);
static void mmi_camera_save_confirm_lsk_press(void);
static void mmi_camera_save_confirm_lsk_release(void);
static void mmi_camera_save_confirm_rsk_press(void);
static void mmi_camera_save_confirm_rsk_release(void);
static void mmi_camera_save_confirm_cancel_file(void);
static void mmi_camera_save_confirm_save_file(void);
#ifdef __MMI_CAMERA_MMS_SUPPORT__
static void mmi_camera_save_confirm_send_to_mms_press(void);
static void mmi_camera_save_confirm_send_to_mms_release(void);
static void mmi_camera_save_and_send_to_mms(void);
#endif /* __MMI_CAMERA_MMS_SUPPORT__ */
#if defined(__CAMERA_OSD_HORIZONTAL__)
static void mmi_camera_update_osd_touch_icon(void);
#endif
/* capture */
static void mmi_camera_capture(void);
static void mmi_camera_capture_button_press(void);
static void mmi_camera_capture_button_release(void);
#ifdef __CAMERA_AUTOFOCUS__
static void mmi_camera_capture_button_autofocus_pressed(void);
static void mmi_camera_capture_button_autofocus_released(void);
static void mmi_camera_autofocus_callback(mdi_result pMsg);
static void mmi_camera_play_af_succeed_finished(void);
static void mmi_camera_draw_autofocus_process(void);
static void mmi_camera_preview_draw_osd_timer(void);
static void mmi_camera_draw_bolder_rect(S32 x1, S32 y1, S32 x2, S32 y2, S32 bolder_width, gdi_color frame_color);
#endif /* __CAMERA_AUTOFOCUS__ */
#if defined(__CAMERA_FEATURE_CONT_SHOT_BURST_NON_BLOCK__)
static void mmi_camera_capture_play_multi_channel_sound(void);
#endif
/* save done */
static void mmi_camera_entry_save_done_state(void);
static void mmi_camera_exit_save_done_state(void);
static void mmi_camera_save_done_timeout(void);
#ifdef __MMI_SUBLCD__
/* sub screen */
void mmi_camera_entry_sublcd_screen(void);
void mmi_camera_exit_sublcd_screen(void);
static void mmi_camera_sublcd_capture(void);
#endif /* __MMI_SUBLCD__ */
#ifdef __CAMERA_FEATURE_SELF_CAPTURE__
/* toggle to sub state */
static void mmi_camera_entry_toggle_to_sub_state(void);
static void mmi_camera_exit_toggle_to_sub_state(void);
static void mmi_camera_toggle_to_sub_timeout(void);
/* toggle to main state */
static void mmi_camera_entry_toggle_to_main_state(void);
static void mmi_camera_exit_toggle_to_main_state(void);
static void mmi_camera_toggle_to_main_timeout(void);
/* sublcd preview state */
static void mmi_camera_entry_sublcd_preview_state(void);
static void mmi_camera_exit_sublcd_preview_state(void);
static void mmi_camera_sublcd_preview_set_key_hdlr(void);
static void mmi_camera_sublcd_preview_start(void);
static void mmi_camera_sublcd_preview_stop(void);
static void mmi_camera_sublcd_preview_set_blt_layer(BOOL is_previewing);
static void mmi_camera_sublcd_preview_lsk_press(void);
static void mmi_camera_sublcd_preview_rsk_press(void);
static void mmi_camera_sublcd_preview_lsk_release(void);
static void mmi_camera_sublcd_preview_rsk_release(void);
/* sublcd countdown state */
static void mmi_camera_entry_sublcd_countdown_state(void);
static void mmi_camera_exit_sublcd_countdown_state(void);
static void mmi_camera_sublcd_countdown_cyclic(void);
static void mmi_camera_sublcd_countdown_stop_LED(void);
/* sublcd contshot state */
static void mmi_camera_entry_sublcd_contshot_state(void);
static void mmi_camera_exit_sublcd_contshot_state(void);
static void mmi_camera_sublcd_contshot_cyclic(void);
#ifdef __CAMERA_FEATURE_CONT_SHOT_BURST__
/* sublcd burstshot state */
static void mmi_camera_entry_sublcd_burstshot_state(void);
static void mmi_camera_exit_sublcd_burstshot_state(void);
#ifdef __CAMERA_FEATURE_CONT_SHOT_BURST_NON_BLOCK__
static void mmi_camera_sublcd_burstshot_capture_result_hdlr(MDI_RESULT ret, U16 captured_count);
#endif
#endif /* __CAMERA_FEATURE_CONT_SHOT_BURST__ */
/* sublcd burstshot saving state */
#ifdef __CAMERA_FEATURE_CONT_SHOT_BURST__
static void mmi_camera_entry_sublcd_burstshot_saving_state(void);
static void mmi_camera_exit_sublcd_burstshot_saving_state(void);
static void mmi_camera_sublcd_burstshot_saving_cyclic(void);
#endif /* __CAMERA_FEATURE_CONT_SHOT_BURST__ */
/* sublcd capture */
static void mmi_camera_sublcd_capture_button_press(void);
static void mmi_camera_sublcd_capture(void);
#ifdef __CAMERA_FEATURE_CONT_SHOT_TILE__
static void mmi_camera_tileshot_capture(void);
#ifdef __CAMERA_FEATURE_SELF_CAPTURE__
static void mmi_camera_sublcd_tileshot_capture(void);
#endif
#endif /* __CAMERA_FEATURE_CONT_SHOT_TILE__ */
#endif /* __CAMERA_FEATURE_SELF_CAPTURE__ */
/* util draw */
static void mmi_camera_draw_style_text(PS8 str, S32 offset_x, S32 offset_y, camera_style_text_struct *style_txt);
static void mmi_camera_initilize_zoom_factor(void);
#if defined(__CAMERA_FEATURE_TOUCH_SCREEN__) && defined(__MMI_TOUCH_SCREEN__)
static void mmi_camera_touch_scr_pen_down_hdlr(mmi_pen_point_struct pos);
static void mmi_camera_touch_scr_pen_up_hdlr(mmi_pen_point_struct pos);
static void mmi_camera_touch_scr_pen_move_hdlr(mmi_pen_point_struct pos);
static BOOL mmi_camera_touch_scr_hit_test(S32 pos_x, S32 pos_y, camera_ui_touch_struct *touch_obj);
#endif /* defined(__CAMERA_FEATURE_TOUCH_SCREEN__) && defined(__MMI_TOUCH_SCREEN__) */
/* screen snapshot */
#ifdef __MMI_SCREEN_SNAPSHOT__
static void mmi_camera_entry_scr_snapshot_screen(void);
static void mmi_camera_exit_scr_snapshot_screen(void);
#endif /* __MMI_SCREEN_SNAPSHOT__ */
#ifdef __MMI_SUBLCD_CAMERA__
static void mmi_sublcd_camera_exit_option_screen(void);
static void mmi_sublcd_camera_entry_preview_screen(void);
static void mmi_sublcd_camera_entry_flash_screen(void);
static void mmi_sublcd_camera_flash_highlight_hdlr(S32 idx);
static void mmi_sublcd_camera_exit_flash_screen(void);
static void mmi_sublcd_camera_exit(void);
static void mmi_sublcd_camera_set_flash(void);
static void mmi_sublcd_camera_hilight_preview(void);
static void mmi_sublcd_camera_hilight_flash(void);
static void mmi_sublcd_camera_hilight_flash_option(void);
static void mmi_sublcd_camera_hilight_exit(void);
U8 mmi_sublcd_camera_clam_close_event_hdlr(void *ptr);
static void mmi_sublicd_camera_display_error_screen(void);
static void mmi_sublcd_camera_capture(void);
static void mmi_sublcd_camera_preview_start(void);
static void mmi_sublcd_camera_entry_flash_screen_ex(void);
static void mmi_sublcd_camera_entry_preview_screen_ex(void);
static void mmi_sublcd_camera_entry_option_screen_ex(void);
static void mmi_sublcd_camera_capture(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S8 buf_filename[FMGR_PATH_BUFFER_SIZE];
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* this function has nvram access */
mmi_camera_get_next_filename(buf_filename);
mmi_camera_turn_on_capture_led_highlight();
g_camera_cntx.is_continue_capture = FALSE;
g_camera_cntx.last_error = mdi_camera_capture_to_file(buf_filename, g_camera_cntx.is_continue_capture);
/* play capture sound after capture */
mmi_camera_capture_play_sound();
/* restore black background */
#ifdef CAMERA_MODULE_WITH_LCD
gdi_lcd_set_active(GDI_LCD_SUB_LCD_HANDLE);
gdi_layer_clear(GDI_COLOR_BLACK);
gdi_lcd_set_active(GDI_LCD_MAIN_LCD_HANDLE);
#endif /* CAMERA_MODULE_WITH_LCD */
mmi_camera_turn_off_led_highlight();
/* captured, previwing is stopped, change blt layer */
mmi_camera_sublcd_preview_set_blt_layer(FALSE);
ClearKeyEvents();
if (g_camera_cntx.last_error != MDI_RES_CAMERA_SUCCEED)
{
FS_Delete((U16*) buf_filename);
DisplaySubLcdPopup(IMG_GLOBAL_WARNING);
DeleteSubLCDScreen(SCR_ID_CAMERA_SUBLCD_APP);
ClearInputEventHandler(MMI_DEVICE_KEY);
return;
}
mmi_sublcd_camera_preview_start();
}
static void mmi_sublcd_camera_preview_start(void)
{
mdi_camera_setting_struct camera_setting_data;
S32 sublcd_width;
S32 sublcd_height;
#if defined(ISP_SUPPORT)
/* set correct lcm rotate && config rotate of preview layer, only ISP_SUPPORT need */
gdi_layer_push_and_set_active(g_camera_cntx.sublcd_base_layer_handle);
gdi_layer_set_rotate(CAMERA_LCM_SUBLCD_CLAM_CLOSE_ROTATE);
gdi_layer_pop_and_restore_active();
#endif /* defined(ISP_SUPPORT) */
gdi_lcd_set_active(GDI_LCD_SUB_LCD_HANDLE);
gdi_layer_get_dimension(&sublcd_width, &sublcd_height);
gdi_layer_set_blt_layer(g_camera_cntx.sublcd_base_layer_handle, 0, 0, 0);
#ifdef CAMERA_MODULE_WITH_LCD
gdi_layer_clear(CAMEAR_BG_TRASN_COLOR);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -