📄 osd.c
字号:
break;
case _IMAGE_VPOS:
COsdWordValueAdj(&stModeUserData.VPosition, COsdFxGetVPositionRange(_GET_VPOSITIONRANGE_MAX), COsdFxGetVPositionRange(_GET_VPOSITIONRANGE_MIN), ucKeyMessage, CAdjustVPosition);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stModeUserData.VPosition, _VPOSITION_BIAS * 2, stModeUserCenterData.CenterVPos - _VPOSITION_BIAS, _CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
ucOsdEventMsg = _SAVE_EE_MODEUSERDATA_MSG;
break;
case _IMAGE_PHASE:
COsdByteValueAdj(&stModeUserData.Phase, 63, 0, ucKeyMessage, NullFunction);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stModeUserData.Phase, 63, 0, _CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
CAdjustPhase(stModeUserData.Phase);
ucOsdEventMsg = _SAVE_EE_MODEUSERDATA_MSG;
break;
case _IMAGE_CLOCK:
COsdWordValueAdj(&stModeUserData.Clock, COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MAX), COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MIN), ucKeyMessage, NullFunction);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stModeUserData.Clock, _CLOCK_BIAS * 2, stModeUserCenterData.CenterClock - _CLOCK_BIAS, _CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
CAdjustAdcClock(stModeUserData.Clock);
ucOsdEventMsg = _SAVE_EE_MODEUSERDATA_MSG;
break;
default:
break;
}
}
void COsdImagePageExitMessage(void)
{
COsdMainPageExit();
}
void COsdImagePageSwitchMessage(void)
{
}
void COsdImagePageIRMessage(void)
{
}
//-----------------------------------
// OSD Page Process
//-----------------------------------
void COsdOsdpageSelectMessage(void)
{
if(ucOsd_Item_Index0 == _ITEM_NONE)
{
ucOsd_Item_Index0 = _ITEM_1;
COsdDispItemSelect();
}
else
{
switch(ucOsd_Item_Index0)
{
case _OSD_EXIT:
COsdClearItemSelect();
SETOSDITEM0(_ITEM_NONE);
break;
case _OSD_LANGUAGE:
/*
switch(GET_INPUTSOURCE_TYPE())
{
case _SOURCE_VGA:
SETOSDSTATE(_VGA_MENU_LANGUAGE);
break;
#if(_VIDEO_SUPPORT == _ON)
case _SOURCE_VIDEO8:
SETOSDSTATE(_AV_MENU_LANGUAGE);
break;
#endif
default:
break;
}
*/
//x.hu, for No signal osd show
switch (GET_INPUTPORT_TYPE(stSystemData.InputSource))
{
case _DSUB_A0_PORT:
SETOSDSTATE(_VGA_MENU_LANGUAGE);
break;
#if(_VIDEO_SUPPORT == _ON)
case _VIDEO_AV_PORT:
case _VIDEO_AV2_PORT:
SETOSDSTATE(_AV_MENU_LANGUAGE);
break;
#endif
default:
break;
}
SETOSDITEM0(stOsdUserData.Language+1);
//show language selection page
COsdFxCodeWrite(tOSD_LANGUAGE_PAGE);
//show current selection
COsdDispItemSelect();
break;
case _OSD_HPOS:
if(ucOsd_Item_Index1 == _ITEM_NONE)
{
//if enter contrast adjust,
SETOSDITEM1(1);
bValueAdj = _TRUE;
//show window
COsdFxDrawWindow(WXSTART(0x9C, 0x40), WYSTART(0x40, 0x20), WXEND(0x30, 0x05), WYEND(0x05, 0x24), tOSD_WINDOW4_STYLE);
//show bar
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stOsdUserData.OsdHPos, _OSD_HPOSITION_RANGE, 0,_CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
}
else
{
bValueAdj = _FALSE;
CLR_KEYREPEATENABLE();
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1)); //Clear Bar
SETOSDITEM1(0);
}
break;
case _OSD_VPOS:
if(ucOsd_Item_Index1 == _ITEM_NONE)
{
//if enter contrast adjust,
SETOSDITEM1(1);
bValueAdj = _TRUE;
//show window
COsdFxDrawWindow(WXSTART(0x9C, 0x40), WYSTART(0x40, 0x20), WXEND(0x30, 0x05), WYEND(0x05, 0x24), tOSD_WINDOW4_STYLE);
//show bar
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stOsdUserData.OsdVPos, _OSD_VPOSITION_RANGE, 0,_CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
}
else
{
bValueAdj = _FALSE;
CLR_KEYREPEATENABLE();
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1)); //Clear Bar
SETOSDITEM1(0);
}
break;
case _OSD_TIMER:
if(ucOsd_Item_Index1 == _ITEM_NONE)
{
//if enter contrast adjust,
SETOSDITEM1(1);
bValueAdj = _TRUE;
//show window
COsdFxDrawWindow(WXSTART(0x9C, 0x40), WYSTART(0x40, 0x20), WXEND(0x30, 0x05), WYEND(0x05, 0x24), tOSD_WINDOW4_STYLE);
//show bar
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stOsdUserData.OsdTimeout, _OSD_TIMER_MAX-_OSD_TIMER_MIN, _OSD_TIMER_MIN,_CP_WHITE, _CP_WHITE,_SHOW_RAW);
}
else
{
bValueAdj = _FALSE;
CLR_KEYREPEATENABLE();
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1)); //Clear Bar
SETOSDITEM1(0);
}
break;
case _OSD_TRANS:
//show select item
if(ucOsd_Item_Index1 == _ITEM_NONE)
{
SETOSDITEM1((stOsdUserData.OsdSettingFlag & 0x07)+1);
bValueAdj = _TRUE;
//show window
COsdFxDrawWindow(WXSTART(0x9C, 0x40), WYSTART(0x40, 0x20), WXEND(0x30, 0x05), WYEND(0x05, 0x24), tOSD_WINDOW4_STYLE);
//show current select(0, 1, 2, 3, 4)
COsdFxCodeWrite(tOSD_NUM_ROW1);
COsdFxChange1bitColor(ROW(12), COL(ucOsd_Item_Index1*3), WIDTH(1), HEIGHT(1), FGCOLOR(_CP_RED), BGCOLOR(_CP_BLACK));
}
else
{
bValueAdj = _FALSE;
CLR_KEYREPEATENABLE();
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1)); //Clear Bar
SETOSDITEM1(0);
}
break;
default:
break;
}
}
}
void COsdOsdPageItemAdjMessage(void)
{
if(ucOsd_Item_Index0 == 0) //icon selection
{
BYTE temp;
/*
switch(GET_INPUTSOURCE_TYPE())
{
case _SOURCE_VGA:
temp = _VGA_MENU_NUM;
break;
#if(_VIDEO_SUPPORT == _ON)
case _SOURCE_VIDEO8:
temp = _AV_MENU_NUM;
break;
#endif
default:
break;
}
*/
//x.hu, for No signal osd show
switch (GET_INPUTPORT_TYPE(stSystemData.InputSource))
{
case _DSUB_A0_PORT:
temp = _VGA_MENU_NUM;
break;
#if(_VIDEO_SUPPORT == _ON)
case _VIDEO_AV_PORT:
case _VIDEO_AV2_PORT:
temp = _AV_MENU_NUM;
break;
#endif
default:
break;
}
COsdIconItemSelection(&ucOsdState, ucKeyMessage, temp+1, temp, _MENU_1, COsdDispIconSelect);
}
else //item selection
{
COsdIconItemSelection(&ucOsd_Item_Index0, ucKeyMessage, _OSD_NUM+1, _OSD_NUM, _ITEM_1, COsdDispItemSelect);
}
}
void COsdOsdPageValueAdjMessage(void)
{
switch(ucOsd_Item_Index0)
{
case _OSD_HPOS:
//When double size enabled, disable position adjustment.
if(((stOsdUserData.OsdSettingFlag & 0x08) >> 3)+1 == _MISC_ZOOM_X2)
return;
COsdByteValueAdj(&stOsdUserData.OsdHPos, _OSD_HPOSITION_RANGE, 0, ucKeyMessage, NullFunction);
COsdFxSetPosition(WIDTH(_OSD_MAIN_DH_END), HEIGHT(_OSD_MAIN_DV_END), stOsdUserData.OsdHPos, stOsdUserData.OsdVPos, 0x01);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stOsdUserData.OsdHPos, _OSD_HPOSITION_RANGE, 0,_CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
ucOsdEventMsg = _SAVE_EE_OSDUSERDATA_MSG;
break;
case _OSD_VPOS:
//When double size enabled, disable position adjustment.
if(((stOsdUserData.OsdSettingFlag & 0x08) >> 3)+1 == _MISC_ZOOM_X2)
return;
COsdByteValueAdj(&stOsdUserData.OsdVPos, _OSD_VPOSITION_RANGE, 0, ucKeyMessage, NullFunction);
COsdFxSetPosition(WIDTH(_OSD_MAIN_DH_END), HEIGHT(_OSD_MAIN_DV_END), stOsdUserData.OsdHPos, stOsdUserData.OsdVPos, 0x01);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stOsdUserData.OsdVPos, _OSD_VPOSITION_RANGE, 0,_CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
ucOsdEventMsg = _SAVE_EE_OSDUSERDATA_MSG;
break;
case _OSD_TIMER:
COsdByteValueAdj(&stOsdUserData.OsdTimeout, _OSD_TIMER_MAX, _OSD_TIMER_MIN, ucKeyMessage, NullFunction);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stOsdUserData.OsdTimeout, _OSD_TIMER_MAX-_OSD_TIMER_MIN, _OSD_TIMER_MIN,_CP_WHITE, _CP_WHITE, _SHOW_RAW);
ucOsdEventMsg = _SAVE_EE_OSDUSERDATA_MSG;
break;
case _OSD_TRANS:
if(_VALUE_UP_MESSAGE == ucKeyMessage)
{
ucOsd_Item_Index1 = (ucOsd_Item_Index1+1 > _OSD_TRANS_NUM) ? _ITEM_1 : ucOsd_Item_Index1+1;
}
else if(_VALUE_DOWN_MESSAGE == ucKeyMessage)
{
ucOsd_Item_Index1 = (ucOsd_Item_Index1-1 < _ITEM_1) ? _OSD_TRANS_NUM : ucOsd_Item_Index1-1;
}
COsdFxChange1bitColor(ROW(12), COL(0), WIDTH(28), HEIGHT(1), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
COsdFxChange1bitColor(ROW(12), COL(ucOsd_Item_Index1*3), WIDTH(1), HEIGHT(1), FGCOLOR(_CP_RED), BGCOLOR(_CP_BLACK));
stOsdUserData.OsdSettingFlag &= 0xf8;
stOsdUserData.OsdSettingFlag |= ucOsd_Item_Index1 - 1;
COsdFxAlphaBlendingLevel(stOsdUserData.OsdSettingFlag & 0x07);
ucOsdEventMsg = _SAVE_EE_OSDUSERDATA_MSG;
break;
default:
break;
}
}
void COsdOsdpageExitMessage(void)
{
COsdMainPageExit();
}
void COsdOsdPageSwitchMessage(void)
{
}
void COsdOsdPageIRMessage(void)
{
}
//--------------------------------------------
// Misc page process
//--------------------------------------------
void COsdMiscPageSelectMessage(void)
{
if(ucOsd_Item_Index0 == _ITEM_NONE)
{
if(GET_INPUTSOURCE_TYPE()==_SOURCE_VGA)
//SETOSDITEM0(_ITEM_2);//xyw
SETOSDITEM0(_ITEM_1);//xyw
else
SETOSDITEM0(_ITEM_1);//xyw
COsdDispItemSelect();
}
else
{
switch(ucOsd_Item_Index0)
{
case _MISC_EXIT:
COsdClearItemSelect();
SETOSDITEM0(_ITEM_NONE);
break;
//x.hu, update for audio select
#if (_MISC_VOLUME_USED)
case _MISC_VOLUME:
//x.hu, add for prevent from operating while no signal mode
if (ucCurrState != _ACTIVE_STATE)
{
return;
}
if(ucOsd_Item_Index1 == _ITEM_NONE)
{
//if enter contrast adjust,
SETOSDITEM1(1);
bValueAdj = _TRUE;
//show window
COsdFxDrawWindow(WXSTART(0x9C, 0x40), WYSTART(0x40, 0x20), WXEND(0x30, 0x05), WYEND(0x05, 0x24), tOSD_WINDOW4_STYLE);
//show bar
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stOsdUserData.Volume, _VOLUME_MAX-_VOLUME_MIN, _VOLUME_MIN,_CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
}
else
{
bValueAdj = _FALSE;
CLR_KEYREPEATENABLE();
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1)); //Clear Bar
SETOSDITEM1(0);
}
break;
#endif
#if (_MISC_RECALL_USED)
case _MISC_RECALL:
//show 'waiting' information
COsdFxDrawWindow(WXSTART(0x9C, 0x40), WYSTART(0x40, 0x20), WXEND(0x30, 0x05), WYEND(0x05, 0x24), tOSD_WINDOW4_STYLE);
//COsdFxCodeWrite((BYTE code *)tOSD_WAIT_TABLE[0]);
COsdFxCodeWrite(tOSD_BUSY_STR);
COsdReset();
//clear information
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1));
break;
#endif
#if (_MISC_SOURCE_USED)
case _MISC_SOURCE:
COsdFxChange1bitColor(ROW(5), COL(1), WIDTH(10), HEIGHT(1), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));//xyw
//x.hu, update for source switch
if (GET_INPUTPORT_TYPE(stSystemData.InputSource) == _DSUB_A0_PORT) {
SETOSDSTATE(_VGA_MENU_SOURCE);
}
else if (GET_INPUTPORT_TYPE(stSystemData.InputSource) == _VIDEO_AV_PORT || \
GET_INPUTPORT_TYPE(stSystemData.InputSource) == _VIDEO_AV2_PORT) {
SETOSDSTATE(_AV_MENU_SOURCE);
}
SETOSDITEM0(stSystemData.InputSource+1); // point to source item
SETOSDITEM1(0);
COsdFxCodeWrite(tOSD_SOURCE_PAGE);
COsdDispItemSelect();
break;
#endif
#if (_MISC_TIMER_ENABLE == _TRUE)
case _MISC_TIMER:
//x.hu, add for prevent from operating while no signal mode
//if (ucCurrState != _ACTIVE_STATE)
//{
// return;
//}
switch(GET_INPUTSOURCE_TYPE())
{
case _SOURCE_VGA:
SETOSDSTATE(_VGA_MENU_USER_TIMER);
break;
#if(_VIDEO_SUPPORT == _ON)
case _SOURCE_VIDEO8:
SETOSDSTATE(_AV_MENU_USER_TIMER);
break;
#endif
default:
break;
}
SETOSDITEM0(_ITEM_1);
COsdFxCodeWrite((BYTE code *)tSYSTEM_TIMER_TABLE[stOsdUserData.Language]);
COsdDispItemSelect();
//show time
COsdDispSystemTimer(ROW(_TIMER_POWERUP+4), COL(21), stUserTimerData.Hour[_TIMER_POWERUP-1]); //hour
COsdDispSystemTimer(ROW(_TIMER_POWERUP+4), COL(24), stUserTimerData.Minute[_TIMER_POWERUP-1]); //minute
COsdDispSystemTimer(ROW(_TIMER_POWERDOWN+4), COL(21), stUserTimerData.Hour[_TIMER_POWERDOWN-1]); //hour
COsdDispSystemTimer(ROW(_TIMER_POWERDOWN+4), COL(24), stUserTimerData.Minute[_TIMER_POWERDOWN-1]); //minute
COsdDispSystemTimer(ROW(_TIMER_REMIND+4), COL(21), stUserTimerData.Hour[_TIMER_REMIND-1]); //hour
COsdDispSystemTimer(ROW(_TIMER_REMIND+4), COL(24), stUserTimerData.Minute[_TIMER_REMIND-1]); //minute
break;
#endif
#if (_MISC_ZOOM_USED)
case _MISC_ZOOM:
if(ucOsd_Item_Index1 == _ITEM_NONE)
{
bValueAdj = _TRUE;
ucOsd_Item_Index1 = ((stOsdUserData.OsdSettingFlag & 0x08) >> 3) + 1;
COsdFxDrawWindow(WXSTART(0x9C, 0x40), WYSTART(0x40, 0x20), WXEND(0x30, 0x05), WYEND(0x05, 0x24), tOSD_WINDOW4_STYLE);
COsdFxCodeWrite(tOSD_NUM_ROW2);
COsdFxChange1bitColor(ROW(12), COL((ucOsd_Item_Index1-1)*7+9), WIDTH(2), HEIGHT(1), FGCOLOR(_CP_RED), BGCOLOR(_CP_BLACK));
}
else
{
bValueAdj = _FALSE;
CLR_KEYREPEATENABLE();
stOsdUserData.OsdSettingFlag &= 0xf7;
stOsdUserData.OsdSettingFlag |= (ucOsd_Item_Index1-1) << 3;
COsdFxSetOsdSizeDouble(ucOsd_Item_Index1);
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1));
COsdFxChange1bitColor(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
SETOSDITEM1(_ITEM_NONE);
}
break;
#endif
default:
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -