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

📄 osdmenu.c

📁 MST720-DEMO程序
💻 C
📖 第 1 页 / 共 4 页
字号:
			
		case OMS_DURATION:
			osdOSDBarAdjustCTRL(Delta*5);
			// To do set register of Maria for functios
			break;
		case OMS_TRANSPARENCY:
			osdOSDBarAdjustCTRL(Delta);
			osdSetTransparency(g_ucOSDItemValue);
			break;
	
	#if SCALING_OSD_EN
		case PMS_SCALING:
			osdOSDScalingMoveCTRL(Delta);
			if(g_ucOSDItemValue != SCALING_END)
				mstSetScalingMode(g_ucOSDItemValue);
			break;

	#endif	//SCALING_OSD_EN
		case OMS_LANGUAGE:
			osdOSDLanguageMoveCTRL(Delta);
			break;

		default:
			break;

	}

}

void osdOSDFactoryValueAdjustCTRL( SCHAR Delta)
{
		g_ucOSDItemValue += Delta;
		osdOSDPrintValue(15, (g_ucFactorySelectIndex&0x0F)+2, (SINT)g_ucOSDItemValue, _WHITE, _DARKBLUE);
}


void osdOSDFactoryAdjustCTRL(SCHAR Delta)
{
	
	osdOSDFactoryValueAdjustCTRL(Delta);
	
	switch(g_ucFactorySelectIndex)
	{
		case FMVGOS_RGAIN:
		case FMYGOS_PrGAIN:
			mstSetAdcRedGain(g_ucOSDItemValue);
			break;
			
		case FMVGOS_ROFFSET:
		case FMYGOS_PrOFFSET:
			mstSetAdcRedOffset(g_ucOSDItemValue);
			break;
			
		case FMVGOS_GGAIN:
		case FMYGOS_YGAIN:
			mstSetAdcGreenGain(g_ucOSDItemValue);
			break;
			
		case FMVGOS_GOFFSET:
		case FMYGOS_YOFFSET:
			mstSetAdcGreenOffset(g_ucOSDItemValue);
			break;
			
		case FMVGOS_BGSIN:
		case FMYGOS_PbGSIN:
			mstSetAdcBlueGain(g_ucOSDItemValue);
			break;
			
		case FMVGOS_BOFFSET:
		case FMYGOS_PbOFFSET:
			mstSetAdcBlueOffset(g_ucOSDItemValue);
			break;
			

		
		case FMVS_VCOMDC:
			mstSetVcomDC(g_ucOSDItemValue);
			break;
			
		case FMVS_VCOMAC:
			mstSetVcomAC(g_ucOSDItemValue);
			break;
#if USE_SSC_OSD
		case FMSS_STEP:
			mstSetSSCStep(g_ucOSDItemValue);
			break;

		case FMSS_SPAN:
			mstSetSSCSpan(g_ucOSDItemValue);
			break;
#endif		
	}


}
void osdOSDDrawAdjustLable(void)
{
	osdOSDClearBlock(0, 2, 25, 8);
	osdOSDPrintString(1, 9, 0, tLableAdjustLastLineSTR, _BLUE, _WHITE);
	
	switch (g_ucOSDSelectIndex)
	{
	#if SCALING_OSD_EN
		case PMS_SCALING:
			g_ucOSDItemValue = Display.ucScalingMode;
			osdOSDDrawScalingMenu();
			osdOSDScalingMoveCTRL(0);
			g_bOSDAdjustFlag = 1;
			break;
	#endif	//SCALING_OSD_EN
		case OMS_LANGUAGE:
			g_ucOSDItemValue = Display.ucLanguage;
			osdOSDDrawLanguageMenu();
			osdOSDLanguageMoveCTRL(0);
			g_bOSDAdjustFlag = 1;
			break;
			
		case OMS_INFORMATION:
			osdOSDDrawInformationMenu();
			g_bOSDAdjustFlag = 1;
			break;
			
	}

}

void osdOSDDrawFMGainOffsetMenu(void)
{
	osdOSDClearBlock(0, 2, 25, 7);

	if(tOSDSourcSELSequence[Display.ucSourceSEL] == VGA)
	{
		osdOSDPrintString(4, 2, 0, tRGainSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(6, 3, 0, tOffsetSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(4, 4, 0, tGGainSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(6, 5, 0, tOffsetSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(4, 6, 0, tBGainSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(6, 7, 0, tOffsetSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(4, 8, 0, tReturnSTR, _GREEN, _DARKBLUE);
		
		osdOSDPrintValue(15, 2, (SINT)Display.ucVgaRedGain, _PURPLE, _DARKBLUE);
		osdOSDPrintValue(15, 3, (SINT)Display.ucVgaRedOffset, _PURPLE, _DARKBLUE);
		osdOSDPrintValue(15, 4, (SINT)Display.ucVgaGreenGain, _PURPLE, _DARKBLUE);
		osdOSDPrintValue(15, 5, (SINT)Display.ucVgaGreenOffset, _PURPLE, _DARKBLUE);
		osdOSDPrintValue(15, 6, (SINT)Display.ucVgaBlueGain, _PURPLE, _DARKBLUE);
		osdOSDPrintValue(15, 7, (SINT)Display.ucVgaBlueOffset, _PURPLE, _DARKBLUE);
	}
	else
	{
		osdOSDPrintString(4, 2, 0, tPrGainSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(7, 3, 0, tOffsetSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(4, 4, 0, tYGainSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(7, 5, 0, tOffsetSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(4, 6, 0, tPbGainSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(7, 7, 0, tOffsetSTR, _GREEN, _DARKBLUE);
		osdOSDPrintString(4, 8, 0, tReturnSTR, _GREEN, _DARKBLUE);
		
		osdOSDPrintValue(15, 2, (SINT)Display.ucYPbPrPrGain, _PURPLE, _DARKBLUE);
		osdOSDPrintValue(15, 3, (SINT)Display.ucYPbPrPrOffset, _PURPLE, _DARKBLUE);
		osdOSDPrintValue(15, 4, (SINT)Display.ucYPbPrYGain, _PURPLE, _DARKBLUE);
		osdOSDPrintValue(15, 5, (SINT)Display.ucYPbPrYOffset, _PURPLE, _DARKBLUE);
		osdOSDPrintValue(15, 6, (SINT)Display.ucYPbPrPbGain, _PURPLE, _DARKBLUE);
		osdOSDPrintValue(15, 7, (SINT)Display.ucYPbPrPbOffset, _PURPLE, _DARKBLUE);
	}
	

}

void osdOSDDrawFMVCOMMenu(void)
{
	osdOSDClearBlock(0, 2, 25, 7);
	osdOSDPrintString(4, 2, 0, tVCOMdcSTR, _GREEN, _DARKBLUE);
	osdOSDPrintString(4, 3, 0, tVCOMacSTR, _GREEN, _DARKBLUE);
	osdOSDPrintString(4, 4, 0, tReturnSTR, _GREEN, _DARKBLUE);
	osdOSDPrintValue(15, 2, (SINT)Display.ucVCOMdc, _PURPLE, _DARKBLUE);
	osdOSDPrintValue(15, 3, (SINT)Display.ucVCOMac, _PURPLE, _DARKBLUE);
}

#if USE_SSC_OSD
void osdOSDDrawFMSSCMenu(void)
{
	osdOSDClearBlock(0, 2, 25, 7);
	osdOSDPrintString(4, 2, 0, tSSCStepSTR, _GREEN, _DARKBLUE);
	osdOSDPrintString(4, 3, 0, tSSCSpanSTR, _GREEN, _DARKBLUE);
	if(mstReadByte(BK0_23_OPL_CTL0)&SSC_EN_B)
		osdOSDPrintString(4, 4, 0, tEnableSTR, _GREEN, _DARKBLUE);
	else
		osdOSDPrintString(4, 4, 0, tDisableSTR, _GREEN, _DARKBLUE);
	osdOSDPrintString(4, 5, 0, tReturnSTR, _GREEN, _DARKBLUE);
	osdOSDPrintValue(15, 2, (SINT)Display.ucSSCStep, _PURPLE, _DARKBLUE);
	osdOSDPrintValue(15, 3, (SINT)Display.ucSSCSpan, _PURPLE, _DARKBLUE);
}
#endif

void osdOSDReturnFactoryMenuSelect(void)
{
	g_bOSDAdjustFlag = 0;
	osdOSDMarkFactoryAdjustValue(0);
	osdOSDFactoryMenuMoveCTRL(0);

}

void osdOSDFactoryMode(void)
{
	switch(g_ucOSDSelectIndex)
	{
		case OES_AUTO_ADJUST:
			if((tOSDSourcSELSequence[Display.ucSourceSEL] == VGA) && ((g_ucSyncStatus & SYNC_LOSS_MASK) == 0))
			{
				osdOSDClearBlock(0, 2, 25, 8);
				osdOSDPrintString(1, 9, 0, tLableAdjustLastLineSTR, _BLUE, _WHITE);
				osdOSDPrintString(6, 5, 0, tAdjustingSTR, _GREEN, _DARKBLUE);
				//Do Auto Adjust Function
				//Return to up menu when finish
				#if USE_VGA
				mstAutoTune();
				#endif	//USE_VGA
				osdOSDReturnMenuSelect();
			}
			break;

		case OES_WHITE_BALANCE:
			if((tOSDSourcSELSequence[Display.ucSourceSEL] == VGA) || (tOSDSourcSELSequence[Display.ucSourceSEL] == YPBPR))
			{
				osdOSDClearBlock(0, 2, 25, 8);
				osdOSDPrintString(1, 9, 0, tLableAdjustLastLineSTR, _BLUE, _WHITE);
				osdOSDPrintString(6, 5, 0, tAdjustingSTR, _GREEN, _DARKBLUE);
				//Do White Balance Function by VGA or YPbPr
				//Return to up menu when finish
				#if USE_VGA
				mstAutoColor();
				#endif	//USE_VGA
				osdOSDReturnMenuSelect();
			}
			break;

		case OES_GAIN_OFFSET:
			if((tOSDSourcSELSequence[Display.ucSourceSEL] == VGA) || (tOSDSourcSELSequence[Display.ucSourceSEL] == YPBPR))
			{
				osdOSDDrawFMGainOffsetMenu();
				if(tOSDSourcSELSequence[Display.ucSourceSEL] == VGA)
					g_ucFactorySelectIndex = FMVGOS_RGAIN;
				else if(tOSDSourcSELSequence[Display.ucSourceSEL] == YPBPR)
					g_ucFactorySelectIndex = FMYGOS_PrGAIN;
				osdOSDFactoryMenuMoveCTRL(0);
			}
			break;

		case OES_VCOM_ADJUST:
			osdOSDDrawFMVCOMMenu();
			g_ucFactorySelectIndex = FMVS_VCOMDC;
			osdOSDFactoryMenuMoveCTRL(0);
			break;
#if USE_SSC_OSD
		case OES_SSC_ADJUST:
			osdOSDDrawFMSSCMenu();
			g_ucFactorySelectIndex = FMSS_STEP;
			osdOSDFactoryMenuMoveCTRL(0);
			break;
#endif
#if USE_ROTATE_OSD
		case OES_DISPLAY_MODE:
			Display.ucSystemStauts ^= ROTATE_STATUS_FLAG;
			if((Display.ucSystemStauts & ROTATE_STATUS_FLAG) == 0)
			{
				osdOSDPrintString(17, (OES_DISPLAY_MODE-OES_EXIT+2), 0, tNormalSTR, _GREEN, _DARKBLUE);
				mstSetDisplayRotate(0);
			}
			else
			{
				osdOSDPrintString(17, (OES_DISPLAY_MODE-OES_EXIT+2), 0, tRotateSTR, _GREEN, _DARKBLUE);
				mstSetDisplayRotate(1);
			}
			g_ucFactorySelectIndex = 0;
			break;
#endif


	}

}

void osdOSDSaveAdjustCTRL(void)
{
	switch (g_ucOSDSelectIndex)
	{
		/*case SMS_CVBS1:
		case SMS_CVBS2:
		case SMS_SVIDEO:
		case SMS_VGA:
		case SMS_YPbPr:
		case SMS_CCIR656:
			osdOSDClearBlock(3, Display.ucSourceSEL+2, 1, 1);
			Display.ucSourceSEL = g_ucOSDSelectIndex-SMS_CVBS1;
			// TO do Source switch function for Maria IC 2005/1/25 Antony
			// To do save data to EEPROM
			// Then turn off display and exit OSD 
			osdOSDPrintIcon(3, (Display.ucSourceSEL+2), _CHECK, _CYAN, _DARKBLUE);
			break;*/

		case PMS_CONTRAST:
			if(tOSDSourcSELSequence[Display.ucSourceSEL] == VGA)
				Display.ucPcContrast = g_ucOSDItemValue;
			else
				Display.ucVedioContrast = g_ucOSDItemValue;
			// To do save data to EEPROM
			break;

		case PMS_BRIGHTNESS:
			Display.ucBrightness= g_ucOSDItemValue;
			// To do save data to EEPROM
			break;

		case PMS_HUE:
			Display.ucHue = g_ucOSDItemValue;
			// To do save data to EEPROM
			break;

		case PMS_SATURATION:
			Display.ucSaturation= g_ucOSDItemValue;
			// To do save data to EEPROM
			break;

		case PMS_GAMMA:
			Display.ucGamma = g_ucOSDItemValue;
			// To do save data to EEPROM
			break;
	#if SCALING_OSD_EN
		case PMS_SCALING:
			if(g_ucOSDItemValue != Scaling_TypeNumbers)
				Display.ucScalingMode= g_ucOSDItemValue;
			mstSetScalingMode(Display.ucScalingMode);
			// To do save data to EEPROM
			break;
	#endif	//SCALING_OSD_EN

#if USE_ALLMACEOSD
		case MMS_DLTI:
			Display.ucDLTI = g_ucOSDItemValue;
			// To do save data to EEPROM
			break;

		case MMS_DCTI:
			Display.ucDCTI = g_ucOSDItemValue;
			// To do save data to EEPROM
			break;

		case MMS_BLACKEXT:
			Display.ucBlackExtension = g_ucOSDItemValue;
			// To do save data to EEPROM
			break;

		case MMS_WHITEEXT:
			Display.ucWhiteExtension = g_ucOSDItemValue;
			// To do save data to EEPROM
			break;

		case MMS_FACORCOLOR:
			Display.ucFavorColor = g_ucOSDItemValue;
			// To do save data to EEPROM
			break;
			
		case MMS_SHARPNESS:
			Display.ucSharpness= g_ucOSDItemValue;
			// To do save data to EEPROM
			break;
#endif	//USE_ALLMACEOSD
		case OMS_LANGUAGE:
			if (g_ucOSDItemValue != OSD_LANGUAGE_NUM)
				Display.ucLanguage = g_ucOSDItemValue;
			 // To do save data to EEPROM
			break;

		case OMS_DURATION:
			Display.ucOSDTimer= g_ucOSDItemValue;
			// To do save data to EEPROM
			break;

		case OMS_TRANSPARENCY:
			Display.ucTransparency= g_ucOSDItemValue;
			// To do save data to EEPROM
			break;

		case OMS_DEFAULTRESET:
			// To do recall all setting and save data to EEPROM
			break;

		default:
			break;
	}
}

void osdOSDSaveFactoryAdjustCTRL(void)
{
	switch(g_ucFactorySelectIndex)
	{
		case FMVGOS_RGAIN:
			Display.ucVgaRedGain = g_ucOSDItemValue;
			break;
			
		case FMVGOS_ROFFSET:
			Display.ucVgaRedOffset = g_ucOSDItemValue;
			break;
			
		case FMVGOS_GGAIN:
			Display.ucVgaGreenGain= g_ucOSDItemValue;
			break;
			
		case FMVGOS_GOFFSET:
			Display.ucVgaGreenOffset= g_ucOSDItemValue;
			break;
			
		case FMVGOS_BGSIN:
			Display.ucVgaBlueGain= g_ucOSDItemValue;
			break;
			
		case FMVGOS_BOFFSET:
			Display.ucVgaBlueOffset= g_ucOSDItemValue;
			break;
			

		case FMYGOS_PrGAIN:
			Display.ucYPbPrPrGain= g_ucOSDItemValue;
			break;
			
		case FMYGOS_PrOFFSET:
			Display.ucYPbPrPrOffset= g_ucOSDItemValue;
			break;
			
		case FMYGOS_YGAIN:
			Display.ucYPbPrYGain= g_ucOSDItemValue;
			break;
			
		case FMYGOS_YOFFSET:
			Display.ucYPbPrYOffset= g_ucOSDItemValue;
			break;
			
		case FMYGOS_PbGSIN:
			Display.ucYPbPrPbGain= g_ucOSDItemValue;
			break;
			
		case FMYGOS_PbOFFSET:
			Display.ucYPbPrPbOffset= g_ucOSDItemValue;
			break;
			
		case FMVS_VCOMDC:
			Display.ucVCOMdc= g_ucOSDItemValue;
			break;
			
		case FMVS_VCOMAC:
			Display.ucVCOMac= g_ucOSDItemValue;
			break;
#if USE_SSC_OSD
		case FMSS_STEP:
			Display.ucSSCStep = g_ucOSDItemValue;
			break;

		case FMSS_SPAN:
			Display.ucSSCSpan = g_ucOSDItemValue;
			break;
#endif			

⌨️ 快捷键说明

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