📄 rtd2533b_osd.c
字号:
//----------------------------------------------------------------------------------------------------
// ID Code : Osd.c No.0000
// Update Note :
//
//----------------------------------------------------------------------------------------------------
#define __RTD2533B_OSD__
#include "Common\Header\Include.h"
#if((_SCALER_TYPE == _RTD2533B) || (_SCALER_TYPE == _RTD2023L) || (_SCALER_TYPE == _RTD2023S) || (_SCALER_TYPE == _RTD2023L_VB) || (_SCALER_TYPE == _RTD2023S_VB))
//--------------------------------------------------
// Description :
// Input Value :
// Output Value :
//--------------------------------------------------
void COsdHandler(void)
{
COsdSystemFlowProc();
COsdEventMsgProc();
if (ucCurrState == _ACTIVE_STATE)
{
if(ucKeyMessage < _KEY_AMOUNT)
{
(*OperationTable[ucOsdState][ucKeyMessage])();
CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
}
}
}
void COsdSystemFlowProc(void)
{
switch(ucCurrState)
{
case _PWOFF_STATE:
break;
case _INITIAL_STATE:
break;
case _SEARCH_STATE:
break;
case _ACTIVE_STATE:
if(GET_OSD_READYFORDISPLAY() == _TRUE)
{
CLR_OSD_READYFORDISPLAY();
CAdjustBackgroundColor(0x00, 0x00, 0x00);
if(GET_FIRST_LOADFONT() == _TRUE)
{
CLR_FIRST_LOADFONT();
COsdDispFirstTimeLoadFont();
}
}
break;
case _NOSUPPORT_STATE:
if(GET_OSD_READYFORDISPLAY() == _TRUE)
{
CLR_OSD_READYFORDISPLAY();
CAdjustBackgroundColor(0xff, 0x00, 0x00);
CTimerReactiveTimerEvent(SEC(1), CModeNoSupportEvent);
}
break;
case _NOSIGNAL_STATE:
if(GET_OSD_READYFORDISPLAY() == _TRUE)
{
CLR_OSD_READYFORDISPLAY();
CAdjustBackgroundColor(0x00, 0x00, 0x00);
#if(_TMDS_SUPPORT == _ON)
if(bVGACONNECT && bDVICONNECT)
#else
if(bVGACONNECT)
#endif
{
CTimerReactiveTimerEvent(SEC(1), CModeNoCableEvent);
}
else
{
CTimerReactiveTimerEvent(SEC(1), CModeNoSignalEvent);
CTimerActiveTimerEvent(SEC(6), CModePowerSavingEvent);
}
}
break;
case _SLEEP_STATE:
break;
default:
break;
}
}
//--------------------------------------------------
// Description :
// Input Value :
// Output Value :
//--------------------------------------------------
void COsdEventMsgProc(void)
{
switch(ucOsdEventMsg)
{
case _SHOW_NOSIGNAL_MSG:
COsdDispNoSignalProc();
break;
case _SHOW_NOCABLE_MSG:
COsdDispNoCableProc();
break;
case _SHOW_NOSUPPORT_MSG:
COsdDispNoSupportProc();
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 _ENTER_FACTORY_MODE_MSG:
stOsdUserData.OsdSettingFlag |= _BIT7;
break;
case _CHANGE_SOURCE_MSG:
CLR_SOURCE_AUTOCHANGE();
CEepromSaveSystemData();
CModeResetMode();
break;
case _DO_AUTO_CONFIG:
COsdDispAutoProc();
break;
default:
break;
}
ucOsdEventMsg = _NONE_MSG;
}
//----------------------------------------------------------------------------------------------------
// OSD "None" Operation
//----------------------------------------------------------------------------------------------------
void COsdMenuNone(void)
{
stOsdUserData.OsdSettingFlag = 0x80;
CScalerLoadFont(tFONT_GLOBAL2ND, 0x54, 0x0a, _NORMAL_FONT);
switch(stOsdUserData.Language)
{
case _CHINESE_T:
case _CHINESE_S:
CScalerLoadFont(tFONT_CHI, 0x60, 0x3a, _COMPRESS_FONT);
break;
case _JAPAN:
CScalerLoadFont(tFONT_JAP, 0x60, 0x40, _COMPRESS_FONT);
break;
}
COsdFxApplyMapSetting(_OSD_MAP0);
COsdFxChange1bitColor(ROW(5), COL(5), WIDTH(17), HEIGHT(22), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
COsdFxChange2bitColor(ROW(5), COL(0), WIDTH(2), HEIGHT(20), COLOR00(_CP_BLACK),COLOR01(_CP_WHITE),COLOR10(_CP_RED),COLOR11(_CP_YELLOW));
COsdFxChange2bitColor(ROW(0), COL(0), WIDTH(25), HEIGHT(5), COLOR00(_CP_BLACK),COLOR01(_CP_WHITE),COLOR10(_CP_WHITE),COLOR11(_CP_BLUE));
COsdDispClearIcon(ROW(0), COL(0), 25, 5);
COsdFxLoadIcon(ROW(1), COL(2), tOSD_RT_MARK_ICO1);
COsdDispDrawInitWindow();
COsdDispClearIcon(ROW(9), COL(0), 2, 15);
COsdFxCloseWindow(WINNO(1));
COsdFxCloseWindow(WINNO(2));
COsdFxCloseWindow(WINNO(3));
COsdFxCloseWindow(WINNO(4));
COsdFxCloseWindow(WINNO(6));
COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(280), YEND(490), tOSD_WINDOW0_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW0_STYLE);
COsdFxDrawWindow(XSTART(10), YSTART(15), XEND(260), YEND(65), tOSD_WINDOW5_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW5_STYLE);
COsdFxShowNumber(ROW(26), COL(10), stModeInfo.IHWidth, (_ALIGN_RIGHT | _FORCE_SHOW_NUMBER_OFF | _SHOW_4));
COsdFxHLine(ROW(26), COL(11), LENGTH(1), 0x0e, _WRITE_BYTE1);
COsdFxShowNumber(ROW(26), COL(12), stModeInfo.IVHeight, (_ALIGN_LEFT | _FORCE_SHOW_NUMBER_OFF | _SHOW_3));
COsdFxShowNumber(ROW(26), COL(17), stModeInfo.IVFreq/10, (_ALIGN_LEFT | _FORCE_SHOW_NUMBER_OFF | _SHOW_2));
COsdFxHLine(ROW(26), COL(19), LENGTH(1), _H_, _WRITE_BYTE1);
COsdFxHLine(ROW(26), COL(20), LENGTH(1), _z_, _WRITE_BYTE1);
COsdDispPenPoint(24, 0, 6, 0, _MENU_COLOR_SETTING);
COsdFxSetPosition(WIDTH(280), WIDTH(490), stOsdUserData.OsdHPos, stOsdUserData.OsdVPos, 0x01);
COsdFxEnableOsd();
}
void COsdLeftNone(void)
{
COsdDispAutoProc();
}
void COsdRightNone(void)
{
COsdDispAutoColorProc();
/*
if(GET_DVI_I_SOURCE_SWITCH())
{
CLR_DVI_I_VGA_SWITCH();
}
else
{
SET_DVI_I_DVI_SWITCH();
}
ucOsdEventMsg = _CHANGE_SOURCE_MSG;
*/
}
void COsdExitNone(void)
{
}
//----------------------------------------------------------------------------------------------------
// OSD "ColorSetting" Operation
//----------------------------------------------------------------------------------------------------
void COsdMenuColorSetting(void)
{
BYTE temp;
COsdDispClearIcon(ROW(5) ,COL(0) ,5 ,20);
COsdDispClearText(ROW(5) ,COL(5) ,18 ,20);
CScalerLoadFont(tFONT_COLOR2, 0xb8, 0x18, _COMPRESS_FONT);
for(temp = 0; temp < 4; temp++)
{
COsdFxLoadIcon(ROW(5 + temp*3), COL(2), tICONPOS_TABLE[temp]);
COsdFxLoadText(ROW(6 + temp*3), COL(7), stOsdUserData.Language, tCOLOR_TABLE[temp]);
}
COsdFxLoadIcon(ROW(5 + 4*3), COL(2), tOSD_BACK_ICO);
COsdFxLoadText(ROW(6 + 4*3), COL(7), stOsdUserData.Language, tCOLOR_TABLE[temp]);
COsdDispPenPoint(ROW(6), COL(0), ROW(6), COL(0), _MENU_CONTRAST);
COsdFxDrawWindow(XSTART(40), YSTART(355), XEND(250), YEND(445), tOSD_WINDOW2_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);
}
void COsdLeftColorSetting(void)
{
COsdDispPenPoint(ROW(6), COL(0), ROW(9), COL(0), _MENU_IMAGE_SETTING);
}
void COsdRightColorSetting(void)
{
COsdDispPenPoint(ROW(6), COL(0), ROW(24), COL(0), _MENU_EXIT);
}
void COsdExitColorSetting(void)
{
}
//----------------------------------------------------------------------------------------------------
// OSD "ImageSetting" Operation
//----------------------------------------------------------------------------------------------------
void COsdMenuImageSetting(void)
{
BYTE temp;
COsdDispClearIcon(ROW(5) ,COL(0) ,5 ,20);
COsdDispClearText(ROW(5) ,COL(5) ,18 ,20);
CScalerLoadFont(tFONT_IMAGE1, 0xa0, 0x18, _COMPRESS_FONT);
for(temp = 0; temp < 4; temp++)
{
COsdFxLoadIcon(ROW(5 + temp*3), COL(2), tICONPOS_TABLE[temp]);
COsdFxLoadText(ROW(6 + temp*3), COL(7), stOsdUserData.Language, tIMG_TABLE[temp]);
}
COsdFxLoadIcon(ROW(5 + 4*3), COL(2), tOSD_BACK_ICO);
COsdFxLoadText(ROW(6 + 4*3), COL(7), stOsdUserData.Language, tIMG_TABLE[temp]);
COsdDispPenPoint(ROW(9), COL(0), ROW(6), COL(0), _MENU_CLOCK);
COsdFxDrawWindow(XSTART(40), YSTART(355), XEND(250), YEND(445), tOSD_WINDOW2_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);
}
void COsdLeftImageSetting(void)
{
COsdDispPenPoint(ROW(9), COL(0), ROW(12), COL(0), _MENU_POSITION);
}
void COsdRightImageSetting(void)
{
COsdDispPenPoint(ROW(9), COL(0), ROW(6), COL(0), _MENU_COLOR_SETTING);
}
void COsdExitImageSetting(void)
{
}
//----------------------------------------------------------------------------------------------------
// OSD "Position" Operation
//----------------------------------------------------------------------------------------------------
void COsdMenuPosition(void)
{
BYTE temp;
COsdDispClearIcon(ROW(5) ,COL(0) ,5 ,20);
COsdDispClearText(ROW(5) ,COL(5) ,18 ,20);
CScalerLoadFont(tFONT_POS, 0xa0, 0x18, _COMPRESS_FONT);
for(temp = 0; temp < 2; temp++)
{
COsdFxLoadIcon(ROW(5 + temp*3), COL(2), tICONPOS_TABLE[temp]);
COsdFxLoadText(ROW(6 + temp*3), COL(7), stOsdUserData.Language, tPOSITION_TABLE[temp]);
}
COsdFxLoadIcon(ROW(5 + 2*3), COL(2), tOSD_BACK_ICO);
COsdFxLoadText(ROW(6 + 2*3), COL(7), stOsdUserData.Language, tPOSITION_TABLE[temp]);
COsdDispPenPoint(ROW(12), COL(0), ROW(6), COL(0), _MENU_HPOSITION);
COsdFxDrawWindow(XSTART(40), YSTART(355), XEND(250), YEND(445), tOSD_WINDOW2_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);
}
void COsdLeftPosition(void)
{
COsdDispPenPoint(ROW(12), COL(0), ROW(15), COL(0), _MENU_OSD_SETTING);
}
void COsdRightPosition(void)
{
COsdDispPenPoint(ROW(12), COL(0), ROW(9), COL(0), _MENU_IMAGE_SETTING);
}
void COsdExitPosition(void)
{
}
//----------------------------------------------------------------------------------------------------
// OSD "OsdSetting" Operation
//----------------------------------------------------------------------------------------------------
void COsdMenuOsdSetting(void)
{
BYTE temp;
COsdDispClearIcon(ROW(5) ,COL(0) ,5 ,20);
COsdDispClearText(ROW(5) ,COL(5) ,18 ,20);
CScalerLoadFont(tFONT_OSD, 0xa0, 0x24, _COMPRESS_FONT);
for(temp = 0; temp < 3; temp++)
{
COsdFxLoadIcon(ROW(5 + temp*3), COL(2), tICONPOS_TABLE[temp]);
COsdFxLoadText(ROW(6 + temp*3), COL(7), stOsdUserData.Language, tOSD_TABLE[temp]);
}
COsdFxLoadIcon(ROW(5 + 3*3), COL(2), tOSD_BACK_ICO);
COsdFxLoadText(ROW(6 + 3*3), COL(7), stOsdUserData.Language, tOSD_TABLE[temp]);
COsdDispPenPoint(ROW(15), COL(0), ROW(6), COL(0), _MENU_OSD_H_POS);
COsdFxDrawWindow(XSTART(40), YSTART(355), XEND(250), YEND(445), tOSD_WINDOW2_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);
}
void COsdLeftOsdSetting(void)
{
COsdDispPenPoint(ROW(15), COL(0), ROW(18), COL(0), _MENU_LANGUAGE);
}
void COsdRightOsdSetting(void)
{
COsdDispPenPoint(ROW(15), COL(0), ROW(12), COL(0), _MENU_POSITION);
}
void COsdExitOsdSetting(void)
{
}
//----------------------------------------------------------------------------------------------------
// OSD "Language" Operation
//----------------------------------------------------------------------------------------------------
void COsdMenuLanguage(void)
{
BYTE temp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -