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

📄 osdmenu.c

📁 MST720-DEMO程序
💻 C
📖 第 1 页 / 共 4 页
字号:

	}

}

void osdOSDEnterFactoryAdjustCTRL(void)
{
	switch(g_ucOSDSelectIndex)
	{
		case OES_GAIN_OFFSET:
			if ((g_ucFactorySelectIndex == FMVGOS_EXIT) || (g_ucFactorySelectIndex == FMYGOS_EXIT))
			{
				g_ucFactorySelectIndex = 0;
				osdOSDReturnMenuSelect();
			}
			else
			{
				osdOSDSetFactoryAdjustValue();
				g_bOSDAdjustFlag = 1;
			}
			break;

		case OES_VCOM_ADJUST:
			if ((g_ucFactorySelectIndex == FMVS_EXIT))
			{
				g_ucFactorySelectIndex = 0;
				osdOSDReturnMenuSelect();
			}
			else
			{
				osdOSDSetFactoryAdjustValue();
				g_bOSDAdjustFlag = 1;
			}
			break;

#if USE_SSC_OSD
		case OES_SSC_ADJUST:
			if ((g_ucFactorySelectIndex == FMSS_EXIT))
			{
				g_ucFactorySelectIndex = 0;
				osdOSDReturnMenuSelect();
			}
			else if ((g_ucFactorySelectIndex == FMSS_OnOFF))
			{
				mstWriteByte(BK0_23_OPL_CTL0, (mstReadByte(BK0_23_OPL_CTL0)^SSC_EN_B));
				if(mstReadByte(BK0_23_OPL_CTL0)&SSC_EN_B)
					osdOSDPrintString(4, 4, 0, tEnableSTR, _GREEN, _DARKBLUE);
				else
					osdOSDPrintString(4, 4, 0, tDisableSTR, _GREEN, _DARKBLUE);
			}
			else
			{
				osdOSDSetFactoryAdjustValue();
				g_bOSDAdjustFlag = 1;
			}
			break;
#endif
	}
			


}

void osdOSDEnterAdjustCTRL(void)
{
	switch (g_ucOSDPageIndex)
	{
		case SOURCE_SELECT_PAGE:
			if (g_ucOSDSelectIndex != SMS_EXIT)
			{
				osdOSDClearBlock(3, Display.ucSourceSEL+2, 1, 1);
				Display.ucSourceSEL = g_ucOSDSelectIndex-SMS_SOURCE1;
				// TO Source switch function for Maria IC 2005/1/25 Antony
				mstSyncSourceSwitch();
				// Then turn off display and exit OSD 
				osdOSDPrintIcon(3, (Display.ucSourceSEL+2), _CHECK, _CYAN, _DARKBLUE);
				//osdOSDSaveAdjustCTRL();
			}
			osdOSDReturnPageSelect();
			break;
		case PICTURE_ADJUST_PAGE:
			if (g_ucOSDSelectIndex == PMS_EXIT)
			{
				osdOSDReturnPageSelect();
			}
			else
			{
	#if SCALING_OSD_EN
				if (g_ucOSDSelectIndex == PMS_SCALING)
					osdOSDDrawAdjustLable();
				else
	#endif	//SCALING_OSD_EN
					osdOSDDrawAdjustBar();
				g_bOSDAdjustFlag = 1;
			}
			break;
		case MACE_PAGE:
			if (g_ucOSDSelectIndex == MMS_EXIT)
			{
				osdOSDReturnPageSelect();
			}
			else
			{
			#if USE_ALLMACEOSD
				osdOSDDrawAdjustBar();
				g_bOSDAdjustFlag = 1;
			#else
				if (g_ucOSDSelectIndex == MMS_ENABLE)
				{
					Display.ucMACE = 1;
					osdOSDClearBlock(3, 3, 1, 1);
					osdOSDPrintIcon(3, 2, _CHECK, _CYAN, _DARKBLUE);
				}	
				else
				{
					Display.ucMACE = 0;
					osdOSDClearBlock(3, 2, 1, 1);
					osdOSDPrintIcon(3, 3, _CHECK, _CYAN, _DARKBLUE);
				}
				if (tOSDSourcSELSequence[Display.ucSourceSEL] != VGA)
					mstSetMACE(Display.ucMACE);
				osdOSDReturnPageSelect();
			#endif	//USE_ALLMACEOSD
			}
			break;
		case OSD_PAGE:
			if (g_ucOSDSelectIndex == OMS_EXIT)
			{
				osdOSDReturnPageSelect();
			}
			else
			{
				if (g_ucOSDSelectIndex == OMS_LANGUAGE || g_ucOSDSelectIndex == OMS_INFORMATION)
				{
					osdOSDDrawAdjustLable();
				}
				else if (g_ucOSDSelectIndex == OMS_DEFAULTRESET)
				{
					mstRecallDefaultSetting();
				}
				else
				{
					osdOSDDrawAdjustBar();
					g_bOSDAdjustFlag = 1;
				}
			}
			break;
		case EXIT_PAGE:
			if (g_ucOSDSelectIndex == OES_EXIT)
			{
				g_ucOSDPageIndex = 0;
				g_ucOSDSelectIndex = 0;
				g_ucFactorySelectIndex = 0;
				g_bOSDStatus = 0;
				osdOSDDisable();
				g_ucKeypadButton=BTN_NOTHING;
				miscDelay1ms(100);
			}
			else
			{
				osdOSDFactoryMode();
				
			}
			break;
			
	}

}

void osdOSDEnableOSDTimer(void)
{
	WORD Temp_OSDTimer;
	
	Temp_OSDTimer = Display.ucOSDTimer * 1000;
	sysTimer0Set (g_ucOSDTimerHandle, Temp_OSDTimer);
}

void osdOSDDisableOSDTimer(void)
{
	sysTimer0Set (g_ucOSDTimerHandle, 0);
}

void osdOSDControl(void)
{
	if ((g_ucKeypadButton == BTN_POWER) && (g_ucKeypadButton != BTN_REPEAT))
	{
		if ((Display.ucSystemStauts & POWER_STATUS_FLAG) == 0)
		{
			mstPowerManagement(PM_POWER_ON);
			//miscDelay1ms(20);
			mstLoadUserSetting();
			//miscTurnOnPanel();
			SET_LED_ON();
			Display.ucSystemStauts |= POWER_STATUS_FLAG;
			g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
			g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
			//osdOSDDrawSourceLable();
			mstSyncSourceSwitch();
			g_ucSystemFlag |= SAVE_SETTING_FLAG;
			return;
			
		}
		else
		{
			osdOSDDisable();
			g_ucOSDPageIndex = 0;
			g_ucOSDSelectIndex = 0;
			g_ucFactorySelectIndex = 0;
			g_bOSDAdjustFlag = 0;
			g_bOSDStatus = 0;
			g_bSourceOSDFlag = 0;
			osdOSDDisableOSDTimer();
			SET_LED_OFF();
			Display.ucSystemStauts &= ~POWER_STATUS_FLAG;
			miscTurnOffPanel();
			mstSaveDisplayData();
			mstPowerManagement(PM_POWER_OFF);
		#if MCU_POWERDOWN
			EX0 = 1;
			PCON |= 0x02;
			g_ucKeypadButton = BTN_NOTHING;
		#endif
			return;
		}
		
	}

	// If power off then exit this routine
	if ((Display.ucSystemStauts & POWER_STATUS_FLAG) == 0)
		return;

	if ((g_bOSDStatus == 0) && (g_ucKeypadButton != BTN_NOTHING) && (g_ucKeypadButton != BTN_REPEAT))
	{
		mstPowerManagement(PM_OSD_TURN_ON);
		if (g_ucKeypadButton == BTN_EXIT)	// direction source switch when OSD off
		{
			Display.ucSourceSEL++;
			if(Display.ucSourceSEL > (MAX_SOURCE_NUM-1))
				Display.ucSourceSEL = 0;
			
			osdOSDDrawSourceLable();
			mstSyncSourceSwitch();
			
			g_ucSystemFlag |= SAVE_SETTING_FLAG;
			g_ucKeypadButton=BTN_REPEAT;
			return;

		}
	#if USE_VGA
		else if (g_ucKeypadButton == BTN_AUTO)			// direction Auto Adjust when OSD off
		{
			if ((tOSDSourcSELSequence[Display.ucSourceSEL] == VGA) && ((g_ucSyncStatus & SYNC_LOSS_MASK) == 0))
			{
				osdOSDSetFrame(50, 50, OSD_AUTO_ADJUDT_WIDTH, OSD_AUTO_ADJUDT_HEIGHT);
				osdOSDClearBlock(0, 0, OSD_AUTO_ADJUDT_WIDTH, OSD_AUTO_ADJUDT_HEIGHT);
				osdOSDSetBlockColor(0, 0, OSD_AUTO_ADJUDT_WIDTH, OSD_AUTO_ADJUDT_HEIGHT, _WHITE, _DARKBLUE);
				osdOSDPrintString(1, 0, 0, tAdjustingSTR, _WHITE, _DARKBLUE);
				osdOSDEnable();
				mstAutoTune();
				osdOSDDisable();
				g_ucKeypadButton=BTN_REPEAT;
			}
			return;

		}
	#endif	//USE_VGA
		else
		{
			if (g_bSourceOSDFlag)
			{
				g_bSourceOSDFlag = 0;
				osdOSDDisable();
			}
			mstPowerManagement(PM_OSD_TURN_ON);
			osdOSDSetFrame(OSD_WIN_POS_HStart, OSD_WIN_POS_VStart, OSD_MAINMENU_WIDTH, OSD_MAINMENU_HEIGHT);
			osdOSDSetBlockColor(0, 2, 25, 7, _GREEN, _DARKBLUE);
			osdOSDPrintString(0, 0, 0, tTitleSTR, _GRAY, _BLUE);
			osdOSDPrintString(0, 9, 0, tPageLastLineSTR, _BLUE, _WHITE);//20050908 kevin
			osdOSDDrawSourceMenu();
			g_ucOSDPageIndex = SOURCE_SELECT_PAGE;
			osdOSDPageMoveCTRL(0);
			g_ucOSDSelectIndex = 0;
			g_ucFactorySelectIndex = 0;
			g_bOSDStatus = 1;
			osdOSDEnable();
			osdOSDEnableOSDTimer();
			miscDelay1ms(100);
			g_ucKeypadButton=BTN_REPEAT;
			return;
		}
	}
	else if ((g_bOSDStatus != 0) && (g_ucKeypadButton == BTN_MENU)&& (g_ucKeypadButton != BTN_REPEAT))
	{
		if (g_ucOSDSelectIndex==0)
		{
			switch (g_ucOSDPageIndex)
			{
				case SOURCE_SELECT_PAGE:
					g_ucOSDSelectIndex = Display.ucSourceSEL+SMS_SOURCE1;
					break;
				case PICTURE_ADJUST_PAGE:
					g_ucOSDSelectIndex = PMS_CONTRAST;
					break;
				case MACE_PAGE:
#if USE_ALLMACEOSD
					g_ucOSDSelectIndex = MMS_DLTI;
#else
					g_ucOSDSelectIndex = Display.ucMACE+MMS_ENABLE;
#endif	//USE_ALLMACEOSD
					break;
				case OSD_PAGE:
					g_ucOSDSelectIndex = OMS_LANGUAGE;
					break;
				case EXIT_PAGE:
					g_ucOSDSelectIndex = OES_EXIT;
					break;
			}
			osdOSDClearBlock(0, 9, 25, 1);
			if(g_ucOSDPageIndex == SOURCE_SELECT_PAGE)
				osdOSDPrintString(1, 9, 0, tLableAdjustLastLineSTR, _BLUE, _WHITE);
			else
				osdOSDPrintString(1, 9, 0, tMenuLastLineSTR, _BLUE, _WHITE);
			osdOSDMenuMoveCTRL(0);
		}
		else
		{
			if (g_bOSDAdjustFlag !=0)
			{
				if (g_ucFactorySelectIndex == 0)
				{
					osdOSDSaveAdjustCTRL();
					osdOSDReturnMenuSelect();
				}
				else
				{
					osdOSDSaveFactoryAdjustCTRL();
					osdOSDReturnFactoryMenuSelect();
				}
			}
			else
			{
				if (g_ucFactorySelectIndex == 0)
					osdOSDEnterAdjustCTRL();
				else
					osdOSDEnterFactoryAdjustCTRL();
			}
		}
		osdOSDEnableOSDTimer();
		return;
	}
	else if ((g_bOSDStatus != 0) && (g_ucKeypadButton == BTN_EXIT)&& (g_ucKeypadButton != BTN_REPEAT))
	{
		if (g_ucOSDSelectIndex != 0)
		{
			if (g_bOSDAdjustFlag !=0)
			{
				osdOSDRestoreOldSetting();
				osdOSDReturnMenuSelect();
			}
			else
			{
				osdOSDReturnPageSelect();
			}
			osdOSDEnableOSDTimer();
		}
		else
		{
			g_ucOSDPageIndex = 0;
			g_ucOSDSelectIndex = 0;
			g_ucFactorySelectIndex = 0;
			g_bOSDStatus = 0;
			osdOSDDisable();
			osdOSDDisableOSDTimer();
			miscDelay1ms(100);
		}
		return;

	}
	else if ((g_bOSDStatus != 0) && ((g_ucKeypadButton == BTN_PLUS) || (g_ucKeypadButton == BTN_MINUS)))
	{
		if (g_ucKeypadButton == BTN_PLUS)
		{
			if (g_ucOSDSelectIndex != 0)
			{
				if (g_bOSDAdjustFlag !=0)
				{
					if (g_ucFactorySelectIndex == 0)
						osdOSDAdjustCTRL(1);
					else
						osdOSDFactoryAdjustCTRL(1);
				}
				else
				{
					if (g_ucFactorySelectIndex == 0)
						osdOSDMenuMoveCTRL(1);
					else
						osdOSDFactoryMenuMoveCTRL(1);
				}
			}
			else
				osdOSDPageMoveCTRL(1);
		}
		else if (g_ucKeypadButton == BTN_MINUS)
		{
			if (g_ucOSDSelectIndex != 0)
			{
				if (g_bOSDAdjustFlag !=0)
				{
					if (g_ucFactorySelectIndex == 0)
						osdOSDAdjustCTRL(-1);
					else
						osdOSDFactoryAdjustCTRL(-1);
				}
				else
				{
					if (g_ucFactorySelectIndex == 0)
						osdOSDMenuMoveCTRL(-1);
					else
						osdOSDFactoryMenuMoveCTRL(-1);
				}
			}
			else
				osdOSDPageMoveCTRL(-1);
				
		}
		osdOSDEnableOSDTimer();
		miscDelay1ms(150);
		g_ucKeypadButton=BTN_NOTHING;
		return;
	}
	

}


void osdMenuHandler(void)
{

	if(g_bOSDStatus || g_bSourceOSDFlag)
	{
		if(sysTimer0Expired(g_ucOSDTimerHandle) == TIMER_EXPIRED)
		{
			g_ucOSDPageIndex = 0;
			g_ucOSDSelectIndex = 0;
			g_ucFactorySelectIndex = 0;
			g_bOSDAdjustFlag = 0;
			g_bOSDStatus = 0;
			g_bSourceOSDFlag = 0;
			osdOSDDisable();
		}
	}

	osdKeyScanKeypad();

	osdOSDControl();
	
}



⌨️ 快捷键说明

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