📄 osdpub003.c
字号:
#define __OSD003_LCD_OSD__
#include "Header\Include.h"
#if(OSD_TYPE == OSD003)
//-----------------------------------------------------------
void COsdHandler()
{
COsdEventMsgProc();
if(ucKeyMessage == VK_ENTER && ucOsdState == _MENU_NONE)
{
ChangeSource();
ucOsdEventMsg = _CHANGE_SOURCE_MSG;
CEepromWrite(_SYSTEM_DATA_ADDRESS+1, LENGTH(1), &stSystemData.InputSource); // Save current input source
return;
}
#if(BURNIN_EN) //fenix
if(ucKeyMessage == VK_MENU)
{
bBurningMode = 1;
//ResetDialog();
}
#endif
COsdEventMsgProc();
#if(_TV_CHIP != _TV_NONE)
if (stSystemData.InputSource == _SOURCE_VIDEO8_TV || ucCurrState == _ACTIVE_STATE)
#else
if (ucCurrState == _ACTIVE_STATE)
#endif
{
COsdProc();
if(ucKeyMessage != _NONE_KEY_MESSAGE)
CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
}
if(ucOsdState == 255)
{
NotUseFunc();
}
}
//-----------------------------------------------------------
void COsdProc()
{
switch(stSystemData.InputSource)
{
#if(_VGA_SUPPORT)
case _SOURCE_VGA:
case _SOURCE_DVI:
OSDVGAProc();
break;
#endif
#if(_VIDEO_SUPPORT)
case _SOURCE_VIDEO8_AV:
case _SOURCE_VIDEO8_SV:
case _SOURCE_VIDEO8_YUV:
OSDAVProc();
break;
#endif
#if(_TV_CHIP != _TV_NONE)
case _SOURCE_VIDEO8_TV:
OSDTVProc();
break;
#endif
}
#if(FACTORY_MENU_EN)
COsdFacHandler();
#endif
}
//-----------------------------------------------------------
void COsdDispFirstTimeLoadFont(void)
{
//Andy Before First Time Load Font Disable OSD
COsdFxDisableOsd();
//Load Public Fonts
SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);
CScalerLoadFont(FntGlobal,0x00,0x5d,_COMPRESS_FONT);
//Load Languege Font
LoadLanguageFont();
}
//-----------------------------------------------------------
void LoadLanguageFont()
{
switch(GET_LANGUAGE)
{
case LNG_CHI_S:
#if(LNG_CHI_S_EN == 1)
CScalerLoadFont(FntCHI_ST,0x80,68,_COMPRESS_FONT);
CScalerLoadFont(FntCHI_S, 0xd0,32,_COMPRESS_FONT);
#endif
break;
case LNG_CHI_T:
#if(LNG_CHI_T_EN == 1)
CScalerLoadFont(FntCHI_ST,0x80,68,_COMPRESS_FONT);
CScalerLoadFont(FntCHI_T, 0xd0,32,_COMPRESS_FONT);
#endif
break;
}
}
//-----------------------------------------------------------
void COsdDispOsdTimerEvent(void)
{
COsdFxDisableOsd();
ucOsdState = _MENU_NONE;
#if(_AUTO_POWER_DOWN && _TV_CHIP != _TV_NONE)
bTimerOnScreen = 0;
#endif
}
//-----------------------------------------------------------
void COsdEventMsgProc(void)
{
switch(ucOsdEventMsg)
{
case _SHOW_NOSIGNAL_MSG:
case _SHOW_NOCABLE_MSG:
case _SHOW_NOSUPPORT_MSG:
HintDialog();
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;
#if(_VIDEO_SUPPORT)
case _SAVE_EE_VEDIOCOLOR_MSG:
CEepromSaveVedioColor();
break;
#endif
case _ENTER_FACTORY_MODE_MSG:
//stOsdUserData.OsdSettingFlag |= _BIT7;
break;
case _CHANGE_SOURCE_MSG:
CLR_SOURCE_AUTOCHANGE();
CEepromSaveSystemData();
CModeResetMode();
break;
case _DO_AUTO_CONFIG:
#if(_VGA_SUPPORT)
// DoAuto();
#endif
// break; //andy mask
case _DO_SHOW_NOTE:
ShowNote();
break;
default:
break;
}
ucOsdEventMsg = _NONE_MSG;
}
//----------------------------------------------------------------------------------------------------
void ShowMode(void)
{
if(ucCurrState == _NOSIGNAL_STATE) return;
switch(stSystemData.InputSource)
{
case _SOURCE_VGA:
case _SOURCE_DVI:
//display display size
Gotoxy(5,8,0x50);
OutputDisplaySize();
//display refresh
Gotoxy(17,8,0x50);
OutputChar('@');
OutputChar(0x00);
OutputRefrushRate();
break;
#if(_VIDEO_SUPPORT)
case _SOURCE_VIDEO8_AV:
case _SOURCE_VIDEO8_SV:
case _SOURCE_VIDEO8_YUV:
case _SOURCE_VIDEO8_TV:
if(CHECK60HZ())
CenterTextout(sNTSC,14,8);
else
CenterTextout(sPAL,14,8);
break;
#endif
}
}
//---------------------------------------------------------------------------------------------------------------------
void OSDSlider(unsigned char row, unsigned char col, unsigned char length, unsigned char value, unsigned char range,
unsigned char color)
{
unsigned int bound;
unsigned char i,c;
OSDLine(row, col, length + 6, color, THE_BYTE2); // Set Slider Attribute. 4 extra columns for space/numbers/space
bound = length * value;
Gotoxy(col,row,THE_BYTE1);
OutputChar(0x21); // Left Border
for (i = 1; i <= length; i++)
{
if (bound)
{
if(bound >= range)
{
c = 0x28;
bound = bound - range;
}
else
{
color = (bound << 4) / range;
bound = 0;
if (4 > color) c = 0x23;
else if (7 > color) c = 0x24;
else if (10 > color) c = 0x25;
else if (13 > color) c = 0x26;
else c = 0x27;
}
}
else
{
c = 0x22;
}
OutputChar(c);
}
OutputChar(0x29); // Right Border
PrintfDec(value); //值显示在右边
OutputChar(0x2a);
}
//---------------------------------------------------------------------------
void DispIcon(unsigned char x,unsigned char y,unsigned char ucIconBaseAddr)
{
Gotoxy(x,y,BYTE_DISPLAY);
pData[0] = ucIconBaseAddr;
pData[1] = ucIconBaseAddr + 1;
pData[2] = ucIconBaseAddr + 2;
CScalerWrite(_OSD_DATA_PORT_92,3,pData,_NON_AUTOINC);
Gotoxy(x,y + 1,BYTE_DISPLAY);
pData[0] = ucIconBaseAddr + 3;
pData[1] = ucIconBaseAddr + 4;
pData[2] = ucIconBaseAddr + 5;
CScalerWrite(_OSD_DATA_PORT_92,3,pData,_NON_AUTOINC);
}
//---------------------------------------------------------------------------
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);
OutputDisplaySize();
OutputRefrushRate();
OutputHSync();
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();
GetCurrLanguagePos();
IndexofLanuguage(1);
InitVolume();
MuteVolume();
CAdjustBrightness_RTDPWM();
CheckSum(); //fenix
DrawHex(); //fenix
// Check_IR(); //fenix
MTVNoneLR(0); //fenix
MTVMainMenu(); //fenix
MTVMainLR(0); //fenix
// COsdFxCloseWindow(0);
}
//----------------------------------------------------------------------------------------------------
void InitOSDFrame()
{
COsdFxDisableOsd();
SetOSDDouble(0);
SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);
SetRowCmds(ROW_COUNT,COL_WIDTH);
COsdFxCodeWrite(ucCloseAllWindow);
COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(348), YEND(180), tOSD_WINDOW0_STYLE);
COsdFxChangeWindowColor(COLOR00(4), tOSD_WINDOW0_STYLE);
// Init Char Cmd
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);
//SelectState();
OSDClear(8,7,0,COL_WIDTH,0x10,BYTE_COLOR);
OSDLine(3, 1, 25, 0x1f, BYTE_DISPLAY);
OSDLine(7, 1, 25, 0x1f, BYTE_DISPLAY);
OSDPosition(336,144,50,50,0x01);
ShowMode();
}
//----------------------------------------------------------------------------------------------------
void SelectState()
{
OSDClear(0, 3, 0 , COL_WIDTH, 0x10, BYTE_COLOR);
OSDClear(3, 5, 0 , COL_WIDTH, 0xA0, BYTE_COLOR);
Gotoxy(1,1,BYTE_DISPLAY);
OutputChar(0x3b);
OutputChar(0x3c);
}
//----------------------------------------------------------------------------------------------------
void AdjustState()
{
OSDClear(0, 3, 0 , COL_WIDTH, 0xA0, BYTE_COLOR);
OSDClear(3, 5, 0 , COL_WIDTH, 0x10, BYTE_COLOR);
Gotoxy(1,1,BYTE_DISPLAY);
OutputChar(0x3e);
OutputChar(0x00);
}
//----------------------------------------------------------------------------------------------------
void ShowPageIndex(unsigned char ucIndex,unsigned char ucMaxPage)
{
Gotoxy(22,1,BYTE_DISPLAY);
pData[0] = (ucIndex / 10) + '0';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -