📄 osdpub902.c
字号:
#define __OSD902_LCD_OSD__
#include "Header\Include.h"
#if(_OSD_TYPE == _OSD902)
//-----------------------------------------------------------
void COsdHandler()
{
COsdEventMsgProc();
KeyMsgToOsdMsg();
COsdEventMsgProc();
if (ucCurrState == _ACTIVE_STATE)
{
COsdProc();
if(ucKeyMessage != VK_NONE)
{
CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
}
}
#if(_BURNIN_EN)
else if(ucCurrState == _NOSIGNAL_STATE || ucCurrState == _NOSUPPORT_STATE )
{
if(GET_BURNIN_STATE() == BURNIN_ON)
{
BurnInRun();
}
}
#endif
if(ucOsdState == 255)
NotUseFunc(); //mask
}
//-----------------------------------------------------------
void COsdEventMsgProc(void)
{
switch(ucOsdEventMsg)
{
case _SHOW_NOSIGNAL_MSG:
case _SHOW_NOCABLE_MSG:
case _SHOW_NOSUPPORT_MSG:
#if(_BURNIN_EN)
if(GET_BURNIN_STATE() == BURNIN_ON)
{
InitBurnIn();
}
#endif
ShowHint();
break;
case _SAVE_EE_MODEUSERDATA_MSG:
CEepromSaveModeData(stModeInfo.ModeCurr);
break;
case _SAVE_EE_SYSTEMDATA_MSG:
CEepromSaveSystemData();
break;
case _SAVE_EE_OSDUSERDATA_MSG:
CEepromSaveOsdUserData();
break;
case _SAVE_EE_ADCDATA_MSG:
CEepromSaveAdcData();
break;
case _SAVE_EE_COLORPROC0_MSG:
CEepromSaveBriConData();
break;
case _SAVE_EE_COLORPROC1_MSG:
CEepromSaveColorTempData();
break;
case _SAVE_EE_VEDIOCOLOR_MSG:
#if(_VIDEO_SUPPORT)
CEepromSaveVedioColor();
#endif
break;
case _ENTER_FACTORY_MODE_MSG:
//stOsdUserData.OsdSettingFlag |= _BIT7;
EnterFactoryMenu();
break;
case _CHANGE_SOURCE_MSG:
CLR_SOURCE_AUTOCHANGE();
CEepromSaveSystemData();
CModeResetMode();
break;
case _DO_AUTO_CONFIG:
DoAuto();
case _DO_SHOW_NOTE:
ShowNote();
break;
case OE_ENTER_MENU: //0x80 //进入下一级菜单 (VK_MENU_IN)
ucKeyMessage = VK_MENU_IN;
COsdProc();
break;
// 只有在有菜单时 (ucOsdState != _MENU_NONE) 时才会发出以下消息
case OE_MENU_OUT: //0x81 //回到上一级菜单 (VK_MENU_OUT)
ucKeyMessage = VK_MENU_OUT;
COsdProc();
break;
case OE_MENU_ENTER_NEXT_MENU:// 0x82 //进入上级菜单的下一级菜单 (VK_MENU_OUT + VK_PREV_MENU + VK_MENU_IN)
ucKeyMessage = VK_NEXT_MENU;
COsdProc();
break;
case OE_MENU_ENTER_PREV_MENU:// 0x83 //进入上级菜单的上一级菜单 (VK_MENU_OUT + VK_NEXT_MENU + VK_MENU_IN)
ucKeyMessage = VK_PREV_MENU;
COsdProc();
break;
// 任何时候都可以发出以下的消息
case OE_DO_AUTO: //0x84 //Auto
DoAuto();
break;
case OE_DO_CHANGE_SOURCE: //0x85 //改变模式
if(ChangeSource())
{
CLR_SOURCE_AUTOCHANGE();
CEepromSaveSystemData();
CModeResetMode();
if(stSystemData.InputSource == _SOURCE_VIDEO8_TV) fOsdDouble = 1;
else fOsdDouble = 0;
}
break;
case OE_GOTO_VGA: //0x86 //切项到VGA
break;
case OE_SWITCH_TV_AV: //0x87 //AV/TV/SV 切换
break;
// 只有在没有菜单时 (ucOsdState = _MENU_NONE) 时才会发出以下消息
case OE_GO_VOLUME_ADJUST: //0x88 //进入音量调节
case OE_GO_BRIGHT_ADJUST: //0x89 //进入亮度调节
break;
case OE_CH_INC: //0x8a //频道 +
//CNextChannel();
//ucOsdEventMsg = _SAVE_EE_VEDIOCOLOR_MSG;
break;
case OE_CH_DEC: //0x8b //频道 -
//CPrevChannel();
//ucOsdEventMsg = _SAVE_EE_VEDIOCOLOR_MSG;
break;
default:
break;
}
ucOsdEventMsg = _NONE_MSG;
}
//-----------------------------------------------------------
void ShowHint()
{
}
//----------------------------------------------------------------------------------------------------
void ShowNote()
{
}
//----------------------------------------------------------------------------------------------------
void KeyMsgToOsdMsg(void)
{
switch(ucKeyMessage)
{
case _MENU_KEY_MESSAGE: //2.Menu Enter
ucKeyMessage = VK_ENTER;
break;
case _LEFT_RIGHT_KEY_MESSAGE:
if(ucOsdState == _MENU_NONE)
{
EnterFactoryMenu();
}
break;
case _RIGHT_KEY_MESSAGE: //3.Up Increase
ucKeyMessage = VK_RIGHT;
break;
case _LEFT_KEY_MESSAGE: //4.Down Decrease
ucKeyMessage = VK_LEFT;
break;
case _EXIT_KEY_MESSAGE:
EnterKeyProc();
break;
case _ENTER_KEY_MESSAGE: //5.Menu Exit
ucKeyMessage = VK_MENU_OUT;
break;
default:
ucKeyMessage = VK_NONE;
break;
}
}
//----------------------------------------------------------------------------------------------------
void EnterKeyProc(void)
{
if(ucOsdState == _MENU_NONE)
{
DoAuto();
ucKeyMessage = VK_NONE;
}
else
{
ucKeyMessage = VK_MENU_OUT;
}
}
//----------------------------------------------------------------------------------------------------
void NotUseFunc()
{
//SetOSDRamAddress(0,0,0);
//DirectWOSDRam(0,0,0,0);
//SetRowCmds(0,0);
//Gotoxy(0,0,0);
//OutputChar(0);
//Textout(0);
//PrintfDec(0);
PrintfHex(0);
//OSDPosition(0,0,0,0,0);
//OSDLine(0,0,0,0,0);
//OSDClear(0,0,0, 0,0,0);
OutputDisplaySize(); //在当前的位置输出显示尺寸
OutputRefrushRate(); //在当前的位置输出刷新频率
OutputHSync(); //在当前的位置输出HSync
//COsdFxCodeWrite(0);
//COsdFxDisableOsd();
COsdFxDrawWindow(0,0,0,0,0);
COsdFxChangeWindowColor(0,0);
//StrLen(0);
//ValueInRangeChange(0,0,0,0,0);
SetRTDPWM(0,0);
//CAutoDoAutoConfig();
//CAutoDoWhiteBalance();
//CEepromSaveOsdUserData();
//CEepromSaveBriConData();
//CEepromSaveColorTempData();
//CScalerLoadFont(0, 0, 0, 0);
ShowMode();
OSDSlider(0, 0, 0, 0, 0,0);
GetLanguegeCount();
GetNextLanguage(0);
GetPrevLanguage(0);
//CheckLanguage();
//FirstLanguage();
LastLanguage();
PrintfInt(0);
//COsdFxEnableOsd();
//DoReset();
VPosGuage();
HPosGuage();
ClockGuage();
CenterTextout(0,0,0);
RightAlignTextOut(0,0,0);
COsdFxCloseWindow(0);
//ChangeSource();
//SetOSDDouble(0);
Set2BitColor(3, 2, 5, 2,0);
GetCurrLanguagePos();
IndexofLanuguage(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -