⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmidc_preview_wintab.c

📁 手机Camera部分上层软件代码
💻 C
📖 第 1 页 / 共 5 页
字号:
                            case OSD_MENU_VIDEO_FOMAT:
                                Dc_OpenVideoFormatSettingWin();
                                break;

#ifdef MMI_ENABLE_AUTO_FOCUS				
                            case OSD_MENU_DC_AF:
                                Dc_OpenDCAFSettingWin();
                                break;
#endif

                            default:
                                DC_ASSERT_LOW(0);
                                break;
                        }
                        break;

                    case PREVIEW_WIN_PARTSCREEN_CIRCLE_OSD://预览主屏半屏、像框
                        //弹出像框设置菜单
                        Dc_OpenCircleSettingWin();
                        break;

                    case PREVIEW_WIN_SUBLCD_NO_OSD://预览副屏
                        DC_ASSERT_LOW(0);
                        break;

                    default:
                        DC_ASSERT_LOW(0);
                        break;
                }
            }
            break;

    case MSG_APP_CANCEL: 
		e_preview_win_mode = DCSetting_GetPreviewWinMode();
		switch(e_preview_win_mode)
		{
		case PREVIEW_WIN_FULLSCREEN_CHAR_OSDMENU://预览主屏全屏、文字OSD MENU
			//close this win
			MMK_CloseWin(win_id);
			break;

		case PREVIEW_WIN_FULLSCREEN_IMAGE_OSDMENU://预览主屏全屏、图片OSD MENU
			//stop preview
			DCAdap_StopPreview();
			//draw character osd menu
			is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);
			DrawPreviewCharacterOSDMenu(is_from_dc);

			//退出设置栏注册软键行
			Handle_TP_Button_Register(win_id);

			//start preview
			DCAdap_StartPreview();

			//save the status
			DCSetting_SetPreviewWinMode(PREVIEW_WIN_FULLSCREEN_CHAR_OSDMENU);
			break;
			
		case PREVIEW_WIN_PARTSCREEN_CIRCLE_OSD://预览主屏半屏、像框
			//close this win
			MMK_CloseWin(win_id);
			break;
		
		case PREVIEW_WIN_SUBLCD_NO_OSD://预览副屏
			//close this win
			MMK_CloseWin(win_id);
			break;

		default:
			DC_ASSERT_LOW(0);
			break;
		}
        break;
	
	case MSG_APP_LEFT:
#ifdef _MMI_OCR
		if(!MMIOCR_Is_From_OCR())
#endif
              {
			e_preview_win_mode = DCSetting_GetPreviewWinMode();
			switch(e_preview_win_mode)
			{
			case PREVIEW_WIN_FULLSCREEN_IMAGE_OSDMENU:
				DCSetting_GetPreviewImgOSDMenuIndex(&img_osd_menu_cur_index, &img_osd_menu_left_index); 
				
				// move osd menu left
				if (0 == img_osd_menu_cur_index)
				{
					//do not to move
				}
				else
				{
					img_osd_menu_cur_index--;
					
					if (img_osd_menu_cur_index < img_osd_menu_left_index)
					{
						img_osd_menu_left_index = img_osd_menu_cur_index;
					}
					
					// Update OSD Menu
					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);
				break;
				
			case PREVIEW_WIN_PARTSCREEN_CIRCLE_OSD:
			case PREVIEW_WIN_FULLSCREEN_CHAR_OSDMENU:
				//decrease brightness
				DC_DecreaseBrightness();
				break;
				
			default:
				break;
			}
		}
		break;

	case MSG_APP_RIGHT:
#ifdef _MMI_OCR
        if(!MMIOCR_Is_From_OCR())
#endif
        {
		e_preview_win_mode = DCSetting_GetPreviewWinMode();
		switch(e_preview_win_mode)
		{
		case PREVIEW_WIN_FULLSCREEN_IMAGE_OSDMENU:
			is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);

			DCSetting_GetTrimRect(&trim_rect, &disp_rect, MMIDC_GetSettingInfo(), MMIDC_PREVIEW_NO_AF);

			osd_num_in1screen = (disp_rect.w_width - 2 * OSD_MENU_CHAR_LEFT_MARGIN + OSD_MENU_IMG_INTERVAL) / (OSD_IMG_WIDTH + OSD_MENU_IMG_INTERVAL);

			DCSetting_GetPreviewImgOSDMenuIndex(&img_osd_menu_cur_index, &img_osd_menu_left_index); 
			is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);
			// move osd menu to the right
			if (is_from_dc)
			{
				i_osd_max_num = DC_OSD_MENU_NUM;
			}
			else
			{
				i_osd_max_num = DV_OSD_MENU_NUM;
			}

			if (img_osd_menu_cur_index == (i_osd_max_num - 1))
			{
				//need not to move
			}
			else
			{
				img_osd_menu_cur_index++;

				if ((img_osd_menu_cur_index - img_osd_menu_left_index) >= osd_num_in1screen)
				{
					img_osd_menu_left_index = img_osd_menu_cur_index - osd_num_in1screen + 1;
				}

				// Update OSD Menu
				is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);
				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);
			break;

		case PREVIEW_WIN_PARTSCREEN_CIRCLE_OSD:
		case PREVIEW_WIN_FULLSCREEN_CHAR_OSDMENU:
			//decrease brightness
			DC_IncreaseBrightness();
			break;

		default:
			break;
		}
	}	break;

	case MSG_APP_UP:
#ifdef _MMI_OCR
		if(!MMIOCR_Is_From_OCR())
#endif
		{
		e_preview_win_mode = DCSetting_GetPreviewWinMode();
		switch(e_preview_win_mode)
		{

			
		case PREVIEW_WIN_FULLSCREEN_IMAGE_OSDMENU://预览主屏全屏、图片OSD MENU
			//根据相应的OSD MENU,做出相应的调节
			osd_menu_type = OSD_GetCurOSDMenuID();
			switch(osd_menu_type)
			{
			case OSD_MENU_CONTRAST:
				DC_IncreaseContrast();
				break;

			case OSD_MENU_BRIGHTNESS:
				DC_IncreaseBrightness();
				break;

			default:
				break;
			}
			break;
#ifdef MMIDC_ZOOM_SUPPORT
		case PREVIEW_WIN_FULLSCREEN_CHAR_OSDMENU://预览主屏全屏、文字OSD MENU
		case PREVIEW_WIN_PARTSCREEN_CIRCLE_OSD://预览主屏半屏、像框
		case PREVIEW_WIN_SUBLCD_NO_OSD://预览副屏
		{
            uint32 e_preview_photo_size = DCSetting_GetPhotoSize();
            is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);

            SCI_TRACE_LOW("e_preview_photo_size: %d", e_preview_photo_size);
            if (e_preview_photo_size > MMIDC_PHOTO_SIZE_640X480 || !is_from_dc)
            {
                break;
            }
            DCAdap_StopPreview();
			SCI_ASSERT(zoom_level <= MMIDC_MAX_ZOOM_NUM );
			zoom_level = zoom_level < MMIDC_MAX_ZOOM_NUM ? (++zoom_level) : MMIDC_MAX_ZOOM_NUM;
			DCAdap_SetZoomLevel(zoom_level);

            SCI_Sleep(MMIDC_PREVIEW_OSD_PROTECT_TIME);

            //set preivew all parameters
            if (!DCAdap_SetAllPreviewParam())
            {
                SCI_TRACE_LOW("mmidc_preview_wintab.c:HandlePreviewWinMsg_openwin, DCAdap_SetAllPreviewParam error");
                AlertDCStartPreviewWrong();
                MMK_CloseWin(win_id);
                break;
            }

            //init global
            DCSetting_SetPreviewImgOSDMenuIndex(0, 0);
            s_timer_id = 0;
            s_lose_focus_reason = 0;

            //start preview
            if (!DCAdap_StartPreview())
            {
                SCI_TRACE_LOW("mmidc_preview_wintab.c:HandlePreviewWinMsg_openwin, DCAdap_StartPreview error");
                AlertDCStartPreviewWrong();
                MMK_CloseWin(win_id);
                break;
            }

            //avoid that user press the capture key too quickly
            SCI_Sleep(MMIDC_PREVIEW_TO_CAP_PROTECT_TIME);
        }
		break;
#else
		case PREVIEW_WIN_FULLSCREEN_CHAR_OSDMENU://预览主屏全屏、文字OSD MENU
		case PREVIEW_WIN_PARTSCREEN_CIRCLE_OSD://预览主屏半屏、像框
		case PREVIEW_WIN_SUBLCD_NO_OSD://预览副屏
		DC_IncreaseContrast();
		break;
#endif			
		default:
			DC_ASSERT_LOW(0);
			break;
		}
		}
		break;

	case MSG_APP_DOWN:
#ifdef _MMI_OCR
		if(!MMIOCR_Is_From_OCR())
#endif
		{
		e_preview_win_mode = DCSetting_GetPreviewWinMode();
		switch(e_preview_win_mode)
		{

			
		case PREVIEW_WIN_FULLSCREEN_IMAGE_OSDMENU://预览主屏全屏、图片OSD MENU
			//根据相应的OSD MENU,做出相应的调节
			osd_menu_type = OSD_GetCurOSDMenuID();
			switch(osd_menu_type)
			{
			case OSD_MENU_CONTRAST:
				DC_DecreaseContrast();
				break;

			case OSD_MENU_BRIGHTNESS:
				DC_DecreaseBrightness();
				break;

			default:
				break;
			}
			break;
#ifdef MMIDC_ZOOM_SUPPORT
		case PREVIEW_WIN_FULLSCREEN_CHAR_OSDMENU://预览主屏全屏、文字OSD MENU						
		case PREVIEW_WIN_PARTSCREEN_CIRCLE_OSD://预览主屏半屏、像框
		case PREVIEW_WIN_SUBLCD_NO_OSD://预览副屏
		{
            uint32 e_preview_photo_size = DCSetting_GetPhotoSize();
            is_from_dc = (int)MMK_GetWinAddDataPtr(win_id);

            SCI_TRACE_LOW("e_preview_photo_size: %d is_from_dc = %d", e_preview_photo_size,is_from_dc);
            if (e_preview_photo_size > MMIDC_PHOTO_SIZE_640X480 || !is_from_dc)
            {
                break;
            }

			DCAdap_StopPreview();
			
			SCI_ASSERT(zoom_level >= 0 );
			zoom_level = zoom_level > 0 ? (--zoom_level) : 0;
			DCAdap_SetZoomLevel(zoom_level);
			
            SCI_Sleep(MMIDC_PREVIEW_OSD_PROTECT_TIME);

            //set preivew all parameters
            if (!DCAdap_SetAllPreviewParam())
            {
                SCI_TRACE_LOW("mmidc_preview_wintab.c:HandlePreviewWinMsg_openwin, DCAdap_SetAllPreviewParam error");
                AlertDCStartPreviewWrong();
                MMK_CloseWin(win_id);
                break;
            }

            //init global
            DCSetting_SetPreviewImgOSDMenuIndex(0, 0);
            s_timer_id = 0;
            s_lose_focus_reason = 0;

            //start preview
            if (!DCAdap_StartPreview())
            {
                SCI_TRACE_LOW("mmidc_preview_wintab.c:HandlePreviewWinMsg_openwin, DCAdap_StartPreview error");
                AlertDCStartPreviewWrong();
                MMK_CloseWin(win_id);
                break;
            }

            //avoid that user press the capture key too quickly
            SCI_Sleep(MMIDC_PREVIEW_TO_CAP_PROTECT_TIME);
        }
        break;
#else
		case PREVIEW_WIN_FULLSCREEN_CHAR_OSDMENU://预览主屏全屏、文字OSD MENU						
		case PREVIEW_WIN_PARTSCREEN_CIRCLE_OSD://预览主屏半屏、像框
		case PREVIEW_WIN_SUBLCD_NO_OSD://预览副屏
			DC_DecreaseContrast();
			break;
#endif
		default:
			DC_ASSERT_LOW(0);
			break;
		}
		}
		break;
	
	case MSG_APP_UPSIDE:
#ifdef _MMI_OCR
		if(!MMIOCR_Is_From_OCR())
#endif
		{
		e_preview_win_mode = DCSetting_GetPreviewWinMode();
		switch(e_preview_win_mode)
		{
		case PREVIEW_WIN_PARTSCREEN_CIRCLE_OSD:
			//change the osd circle
			e_dc_circle = DCSetting_GetOSDCircle();
			e_dc_circle++;
			if (e_dc_circle >= MMIDC_CIRCLE_MAX)
			{
				e_dc_circle = MMIDC_CIRCLE_NONE + 1;
			}
			DCSetting_SetOSDCircle(e_dc_circle);

			//stop preview, change preview param, restart preview
			if (!DCAdap_StopPreview())
			{
				SCI_TRACE_LOW("mmidc_preview_wintab.c:HandlePreviewWinMsg_keyflip, DCAdap_StopPreview error");
				break;
			}
			if (!DCAdap_SetAllPreviewParam())
			{
				SCI_TRACE_LOW("mmidc_preview_wintab.c:HandlePreviewWinMsg_keyflip, DCAdap_SetAllPreviewParam error");
				break;
			}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -