📄 mmidc_preview_wintab.c
字号:
e_preview_win_mode = DCSetting_GetPreviewWinMode();
break;
case MSG_TP_PRESS_DOWN:
{
uint16 pos_x = MMK_GET_TP_X(param);
uint16 pos_y = MMK_GET_TP_Y(param);
uint16 i = 0;
MMI_POINT_T point = {0};
GUI_RECT_T rect = {0};
point.x = pos_x;
point.y = pos_y;
e_preview_win_mode = DCSetting_GetPreviewWinMode();
DCSetting_GetTrimRect(&trim_rect, &disp_rect, &s_mmidc_setting_info, MMIDC_PREVIEW_NO_AF);
switch(e_preview_win_mode)
{
case PREVIEW_WIN_FULLSCREEN_IMAGE_OSDMENU:
{
DCSetting_GetPreviewImgOSDMenuIndex(&img_osd_menu_cur_index, &img_osd_menu_left_index);
while (i < MAX_TOOLBAR_NUM)
{
uint16 osd_menu_left = disp_rect.w_start_x + OSD_MENU_CHAR_LEFT_MARGIN + i * (OSD_IMG_WIDTH + OSD_MENU_IMG_INTERVAL);
uint16 osd_menu_top = (disp_rect.w_start_y + disp_rect.w_height) - OSD_IMG_HEIGHT;
uint16 osd_menu_right = osd_menu_left + OSD_IMG_WIDTH - 1;
uint16 osd_menu_bottom = (disp_rect.w_start_y + disp_rect.w_height - 1);
uint16 osd_menu_max_right = disp_rect.w_start_x + disp_rect.w_width - 1;
GUI_RECT_T osd_image_rect = {0};
osd_image_rect.left = osd_menu_left;
osd_image_rect.top = osd_menu_top;
osd_image_rect.right = osd_menu_right;
osd_image_rect.bottom = osd_menu_bottom;
if (GUI_PointIsInRect(point, osd_image_rect) && (osd_menu_right < osd_menu_max_right))
{
img_osd_menu_cur_index = i + img_osd_menu_left_index;
is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);
DCSetting_GetTrimRect(&trim_rect, &disp_rect, MMIDC_GetSettingInfo(), MMIDC_PREVIEW_NO_AF);
DCAdap_StopPreview();
DrawImgOSDMenu(is_from_dc, img_osd_menu_cur_index, img_osd_menu_left_index, &disp_rect);
SCI_Sleep(MMIDC_PREVIEW_OSD_PROTECT_TIME);
DCAdap_StartPreview();
DCSetting_SetPreviewImgOSDMenuIndex(img_osd_menu_cur_index, img_osd_menu_left_index);
MMK_SendMessage(NULL, MSG_APP_OK, param);
break;
}
i++;
}
break;
}
case PREVIEW_WIN_PARTSCREEN_CIRCLE_OSD:
case PREVIEW_WIN_FULLSCREEN_CHAR_OSDMENU:
//decrease brightness
DC_DecreaseBrightness();
break;
default:
break;
}
rect.left = disp_rect.w_start_x;
rect.top = disp_rect.w_start_y;
rect.right = disp_rect.w_start_x + disp_rect.w_width - 1;
rect.bottom = disp_rect.w_start_y + disp_rect.w_height - 1 - OSD_IMG_WIDTH;
SCI_TRACE_LOW("[mmi dc]: msg_tp_press_down rect.bottom = %d, rect.left = %d", rect.bottom, rect.left);
SCI_TRACE_LOW("[mmi dc]: msg_tp_press_down rect.right = %d, rect.top = %d", rect.right, rect.top);
if (GUI_PointIsInRect(point, rect))
{
MMK_SendMessage(NULL, MSG_APP_WEB, param);
}
}
break;
#ifdef _MMI_OCR
case MSG_OCR_AF_OVER: //receive the af_over msg after ocr lib process @annie
SCI_TRACE_LOW("DC window have received MSG_OCR_AF_OVER Msg");
//MMIDC_SetAFTaskStatus(TRUE);
//DC_CloseSingleModeAF();
//DCAdap_StopPreview();
//OCR_SetOsdEnableMode(0x00);
s_lose_focus_reason |= LOSE_FOCUS_APP_CAMERA;
MMIOCR_OpenCaptureWin();
//MMK_CloseWin(win_id);
break;
#endif
case MSG_APP_CAMERA:
case MSG_APP_WEB:
#ifdef WIN32
case MSG_APP_GREEN:
#endif
//if dc is not opend
if (!s_has_dc_opened)
{
SCI_TRACE_LOW("MMIDC_HandlePreviewWinMsg, MSG_APP_CAMERA dc has not opend");
break;
}
#ifdef _MMI_OCR
if(MMIOCR_Is_From_OCR()) //confirm if come from ocr @annie.
{
if (s_timer_id == 0)
{
i_overtime_cnt = DCSetting_GetOverTimeCount();
if (i_overtime_cnt == 0)
{
// begin to do focus and wait for the focus ready signal
if(OCR_NONE_ERROR != OCR_DoFocus())
{
SCI_TRACE_LOW("mmiocr_dofocus fail");
MMIOCR_AlertDCAFWrong();
MMIOCR_OpenPreviewWin(TRUE);
}
else
{ SCI_TRACE_LOW("LOSE_FOCUS_APP_CAMERA:%d",s_lose_focus_reason);
//s_lose_focus_reason |= LOSE_FOCUS_APP_CAMERA;
SCI_TRACE_LOW("MMIOCR_DoFocus:waiting for the focus finish msg");
}
}
}
break;
}
else
#endif
{
if (s_timer_id == 0)
{
i_overtime_cnt = DCSetting_GetOverTimeCount();
if (i_overtime_cnt == 0)
{
//stop preview
DCAdap_StopPreview();
//set flash
// is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);
if (DCSetting_IsFlashEnable())
{
SetFlash(TRUE);
}
//set shutter voice
if (DCSetting_IsShutterVoiceEnable())
{
if(MMI_GetUdiskStatus()||MMI_GetSDStatus())
{
PlayShutterVoice(TRUE);
}
}
//save lose focus reason
s_lose_focus_reason |= LOSE_FOCUS_APP_CAMERA;
//open capture window
MMITHEME_SetUpdateDelayCount(1);
is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);
if (is_from_dc)
{
if(!MMI_GetUdiskStatus()&&!MMI_GetSDStatus())
{
PUBWIN_OpenPromptAlertWin(PUBWIN_SOFTKEY_ONE, TXT_SDCARD_NO_EXIST, IMAGE_PROMPT_ICON_WRONG, MMI_3SECONDS, PNULL);
}
else
{
MMIDC_OpenCaptureWin();
}
}
else
{
if(!MMI_GetUdiskStatus()&&!MMI_GetSDStatus())
{
PUBWIN_OpenPromptAlertWin(PUBWIN_SOFTKEY_ONE, TXT_SDCARD_NO_EXIST, IMAGE_PROMPT_ICON_WRONG, MMI_3SECONDS, PNULL);
}
else
{
MMIDV_OpenRecordWin();
}
}
//stop flash
if (DCSetting_IsFlashEnable())
{
SetFlash(FALSE);
}
}
else
{
s_timer_id = MMK_CreateWinTimer(win_id, i_overtime_cnt, FALSE);
}
}
else
{
//timer has started, wait for timer event.
}
}
break;
#ifdef MMI_ENABLE_AUTO_FOCUS
case MSG_APP_HASH:
DCAdap_StopPreview();
DCAdap_SetAFSinglePreviewParam(MMIDC_GetSettingInfo());
//SCI_TRACE_LOW("LW TRACE:MMIDC_HandlePreviewWinMsg1__BBBBBBBBBBBBBBBBBBBB");
DCAdap_SetAllPreviewParam();
DCAdap_StartPreview();
break;
#endif
case MSG_TIMER:
if (s_timer_id == *((uint8 *) param))
{
//stop preview
DCAdap_StopPreview();
//set flash
if (DCSetting_IsFlashEnable())
{
SetFlash(TRUE);
}
//set shutter voice
if (DCSetting_IsShutterVoiceEnable())
{
PlayShutterVoice(TRUE);
}
//save lose focus reason
s_lose_focus_reason |= LOSE_FOCUS_APP_CAMERA;
//open capture window
MMITHEME_SetUpdateDelayCount(1);
is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);
if (is_from_dc)
{
#ifdef _MMI_OCR
if (MMIOCR_Is_From_OCR())
{
MMIOCR_OpenCaptureWin();
}
else
#endif
{
MMIDC_OpenCaptureWin();
}
}
else
{
MMIDV_OpenRecordWin();
}
//stop flash
if (DCSetting_IsFlashEnable())
{
SetFlash(FALSE);
}
s_timer_id = 0;
}
break;
case MSG_APP_OK:
#ifdef _MMI_OCR
if(MMIOCR_Is_From_OCR())
{
if (!s_has_dc_opened)
{
SCI_TRACE_LOW("MMIDC_HandlePreviewWinMsg, MSG_APP_CAMERA dc has not opend");
break;
}
if (s_timer_id == 0)
{
i_overtime_cnt = DCSetting_GetOverTimeCount();
if (i_overtime_cnt == 0)
{
// begin to do focus and wait for the focus ready signal
if(OCR_NONE_ERROR != OCR_DoFocus())
{
SCI_TRACE_LOW("mmiocr_dofocus fail");
MMIOCR_AlertDCAFWrong();
MMIOCR_OpenPreviewWin(TRUE);
}
else
{
// s_lose_focus_reason |= LOSE_FOCUS_APP_CAMERA;
SCI_TRACE_LOW("MMIOCR_DoFocus:waiting for the focus finish msg");
}
}
}
break;
}
else
#endif
{
e_preview_win_mode = DCSetting_GetPreviewWinMode();
switch(e_preview_win_mode)
{
case PREVIEW_WIN_FULLSCREEN_CHAR_OSDMENU://预览主屏全屏、文字OSD MENU
//去掉OSD文字菜单,改为OSD图片菜单
//save the status
DCSetting_SetPreviewWinMode(PREVIEW_WIN_FULLSCREEN_IMAGE_OSDMENU);
//draw the osd menu. stop preview -> draw osd menu -> start preview
DCSetting_GetPreviewImgOSDMenuIndex(&img_osd_menu_cur_index, &img_osd_menu_left_index);
is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);
DCAdap_StopPreview();
//释放左右软键行的注册,切换到设置栏
MMK_FreeSpecialButtonAction(win_id);
DCSetting_GetTrimRect(&trim_rect, &disp_rect, MMIDC_GetSettingInfo(), MMIDC_PREVIEW_NO_AF);
DrawImgOSDMenu(is_from_dc, img_osd_menu_cur_index, img_osd_menu_left_index, &disp_rect);
SCI_Sleep(MMIDC_PREVIEW_OSD_PROTECT_TIME);
DCAdap_StartPreview();
break;
case PREVIEW_WIN_FULLSCREEN_IMAGE_OSDMENU://预览主屏全屏、图片OSD MENU
osd_menu_type = OSD_GetCurOSDMenuID();
switch(osd_menu_type)
{
case OSD_MENU_CONTRAST:
//do nothing
break;
case OSD_MENU_EFFECT:
Dc_OpenEffectSettingWin();
break;
case OSD_MENU_BRIGHTNESS:
//do nothing
break;
case OSD_MENU_MODE:
Dc_OpenModeSettingWin();
break;
case OSD_MENU_QUALITY:
Dc_OpenQualitySettingWin();
break;
case OSD_MENU_PHOTO_SIZE:
Dc_OpenSizeSettingWin();
break;
case OSD_MENU_VIDEO_SIZE:
Dc_OpenVideoSizeSettingWin();
break;
case OSD_MENU_SHUTTER_VOICE:
Dc_OpenShutterVoiceSettingWin();
break;
case OSD_MENU_OVERTIME:
Dc_OpenOverTimeSettingWin();
break;
case OSD_MENU_CIRCLE:
Dc_OpenCircleSettingWin();
break;
case OSD_MENU_FOCUS:
break;
case OSD_MENU_FLASH_ENABLED:
Dc_OpenFlashSettingWin();
break;
case OSD_MENU_CHARACTER:
Dc_OpenCaptureOSDSettingWin();
break;
case OSD_MENU_REC_SPEED:
Dc_OpenRecordSpeedSettingWin();
break;
case OSD_MENU_VOICE_REC_EN:
Dc_OpenVoiceRecSettingWin();
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -