📄 osd.c
字号:
void COsdMiscPageItemAdjMessage(void)
{
BYTE temp;
if(ucOsd_Item_Index0 == 0)
{
//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
{
if(GET_INPUTSOURCE_TYPE()==_SOURCE_VGA)
{
//COsdIconItemSelection(&ucOsd_Item_Index0, ucKeyMessage, _MISC_NUM+1, _MISC_NUM, _ITEM_2, COsdDispItemSelect2);
COsdIconItemSelection(&ucOsd_Item_Index0, ucKeyMessage, _MISC_NUM+1, _MISC_NUM, _ITEM_1, COsdDispItemSelect);
}
else
{
COsdIconItemSelection(&ucOsd_Item_Index0, ucKeyMessage, _MISC_NUM+1, _MISC_NUM, _ITEM_1, COsdDispItemSelect);
}
}
}
void COsdMiscPageValueAdjMessage(void)
{
switch(ucOsd_Item_Index0)
{
//x.hu, update for audio select
#if (_AUDIO_DEVICE != _AUDIO_NONE)
case _MISC_VOLUME:
COsdByteValueAdj(&stOsdUserData.Volume, _VOLUME_MAX, _VOLUME_MIN, ucKeyMessage, CAdjustVolume);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stOsdUserData.Volume, _VOLUME_MAX-_VOLUME_MIN, _VOLUME_MIN,_CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
ucOsdEventMsg = _SAVE_EE_OSDUSERDATA_MSG;
break;
#endif
case _MISC_ZOOM:
COsdFxChange1bitColor(ROW(12), COL((ucOsd_Item_Index1-1)*7+9), WIDTH(2), HEIGHT(1), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
if(_VALUE_UP_MESSAGE == ucKeyMessage)
{
ucOsd_Item_Index1 = (ucOsd_Item_Index1+1 > _MISC_ZOOM_NUM) ? _ITEM_1 : ucOsd_Item_Index1+1;
}
else if(_VALUE_DOWN_MESSAGE == ucKeyMessage)
{
ucOsd_Item_Index1 = (ucOsd_Item_Index1-1 < _ITEM_1) ? _MISC_ZOOM_NUM : ucOsd_Item_Index1-1;
}
COsdFxChange1bitColor(ROW(12), COL((ucOsd_Item_Index1-1)*7+9), WIDTH(2), HEIGHT(1), FGCOLOR(_CP_RED), BGCOLOR(_CP_BLACK));
break;
}
}
void COsdMiscPageExitMessage(void)
{
COsdMainPageExit();
}
void COsdMiscPageSwitchMessage(void)
{
}
void COsdMiscPageIRMessage(void)
{
}
//--------------------------------------------
// Main Exit page process
//--------------------------------------------
void COsdExitPageSelectMessage(void)
{
COsdPageExit();
}
void COsdExitPageItemAdjMessage(void)
{
if(ucOsd_Item_Index0 == 0)
{
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
{
COsdIconItemSelection(&ucOsd_Item_Index0, ucKeyMessage, _IMAGE_NUM+1, _IMAGE_NUM, _ITEM_1, COsdDispItemSelect);
}
}
void COsdExitPageValueAdjMessage(void)
{
}
void COsdExitPageExitMessage(void)
{
COsdPageExit();
}
void COsdExitPageSwitchMessage(void)
{
}
void COsdExitPageIRMessage(void)
{
}
//-----------------------------------------
// Color Temp Page process
//-----------------------------------------
void COsdColorTempPageExit(void)
{
bValueAdj = _FALSE;
switch(GET_INPUTSOURCE_TYPE())
{
case _SOURCE_VGA:
SETOSDSTATE(_VGA_MENU_COLOR);
break;
default:
break;
}
SETOSDITEM0(_VGA_COLOR_TEMP);
SETOSDITEM1(_ITEM_NONE);
//SETOSDITEM2(_ITEM_NONE);
//COsdClearItemSelect();
COsdFxChange1bitColor(ROW(8), COL(0), WIDTH(28), HEIGHT(1), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
COsdFxCodeWrite((BYTE code *)tVGA_ITEM_TABLE[ucOsdState-1][stOsdUserData.Language]);
COsdDispItemSelect();
}
void COsdColorTempPageSelectMessage(void)
{
switch(ucOsd_Item_Index0)
{
case _TEMP_EXIT:
COsdColorTempPageExit();
return;
//break;
case _TEMP_9300:
case _TEMP_6500:
case _TEMP_5800:
case _TEMP_SRGB: //no use
case _TEMP_USER:
//set to selected color temp
SET_COLOR_TEMP_TYPE(ucOsd_Item_Index0 -1);
CEepromLoadColorTempData();
CAdjustContrast();
ucOsdEventMsg = _SAVE_EE_SYSTEMDATA_MSG;
break;
default:
break;
}
if(_TEMP_USER == ucOsd_Item_Index0)
{
//show R,G,B adjust
SETOSDSTATE(_VGA_MENU_COLOR_USER);
SETOSDITEM0(_ITEM_1);
SETOSDITEM1(_ITEM_NONE);
//SETOSDITEM2(_ITEM_NONE);
//COsdFxDrawWindow(WXSTART(0xA8, 0x21), WYSTART(0x21, 0x15), WXEND(0x2C, 0x85), WYEND(0x85, 0x20), tOSD_WINDOW4_STYLE);
COsdFxCodeWrite((BYTE code *)tCOLOR_USER_TABLE[stOsdUserData.Language]);
COsdFxChange1bitColor(ROW(8), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
COsdDispItemSelect();
}
}
void COsdColorTempPageItemAdjMessage(void)
{
if(ucOsd_Item_Index1 == _ITEM_NONE)
{
COsdIconItemSelection(&ucOsd_Item_Index0, ucKeyMessage, _TEMP_SRGB, _COLOR_TEMP_NUM, _ITEM_1, COsdDispItemSelect);
/*if(ucOsd_Item_Index0 == _TEMP_SRGB)
{
if(ucKeyMessage == _ITEM_UP_MESSAGE)
ucOsd_Item_Index0++;
else if(ucKeyMessage == _ITEM_DOWN_MESSAGE)
ucOsd_Item_Index0--;
}
COsdDispItemSelect();*/
//9300--0, 6500--1, 5800--2, SRGB--3, USER--4 & in Premierme type OSD, I do not use SRGB
if(ucOsd_Item_Index0 < _TEMP_EXIT)
{
SET_COLOR_TEMP_TYPE(ucOsd_Item_Index0 -1);
}
else //exit, load default color
{
CEepromLoadSystemData();
}
CEepromLoadColorTempData();
CAdjustContrast();
}
}
void COsdColorTempPageValueAdjMessage(void)
{
}
void COsdColorTempPageExitMessage(void)
{
//if(ucOsd_Item_Index1 == _ITEM_NONE)
//{
COsdColorTempPageExit();
//}
}
void COsdColorTempPageSwitchMessage(void)
{
}
void COsdColorTempPageIRMessage(void)
{
}
//-----------------------------------------
// Color User Process
//-----------------------------------------
void COsdColorUserPageExit(void)
{
bValueAdj = _FALSE;
switch(GET_INPUTSOURCE_TYPE())
{
case _SOURCE_VGA:
SETOSDSTATE(_VGA_MENU_COLOR_TEMP);
break;
default:
break;
}
//SETOSDSTATE(_VGA_MENU_COLOR_TEMP);
SETOSDITEM1(_ITEM_NONE);
//SETOSDITEM2(_ITEM_NONE);
SETOSDITEM0(_TEMP_USER);
//COsdFxCloseWindow(WINNO(4));
//COsdFxCodeWrite(tOSD_COLOR_TEMP_ENG);
COsdFxCodeWrite((BYTE code *)tCOLOR_TEMP_TABLE[stOsdUserData.Language]);
COsdFxChange1bitColor(ROW(8), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1), FGCOLOR(_CP_GRAY), BGCOLOR(_CP_BLACK));
COsdDispItemSelect();
}
void COsdColorUserPageSelectMessage(void)
{
switch(ucOsd_Item_Index0)
{
case _USER_R:
case _USER_G:
case _USER_B:
if(ucOsd_Item_Index1 > _ITEM_NONE)
{
bValueAdj = _FALSE;
CLR_KEYREPEATENABLE();
SETOSDITEM1(_ITEM_NONE);
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1));
}
else
{
bValueAdj = _TRUE;
SETOSDITEM1(1);
COsdFxDrawWindow(WXSTART(0x9C, 0x40), WYSTART(0x40, 0x20), WXEND(0x30, 0x05), WYEND(0x05, 0x24), tOSD_WINDOW4_STYLE);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stColorTempData.ColorTemp[ucOsd_Item_Index0-1], 255, 0,_CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
}
break;
case _USER_EXIT:
COsdColorUserPageExit();
break;
}
}
void COsdColorUserPageItemAdjMessage(void)
{
COsdIconItemSelection(&ucOsd_Item_Index0, ucKeyMessage, _COLOR_USER_NUM+1, _COLOR_USER_NUM, _ITEM_1, COsdDispItemSelect);
}
void COsdColorUserPageValueAdjMessage(void)
{
COsdByteValueAdj(&stColorTempData.ColorTemp[ucOsd_Item_Index0-1], 255, 0, ucKeyMessage, CAdjustContrast);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stColorTempData.ColorTemp[ucOsd_Item_Index0-1], 255, 0,_CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
ucOsdEventMsg = _SAVE_EE_COLORPROC1_MSG;
}
void COsdColorUserPageExitMessage(void)
{
if(ucOsd_Item_Index1 == _ITEM_NONE)
{
COsdColorUserPageExit();
}
else
{
bValueAdj = _FALSE;
SETOSDITEM1(_ITEM_NONE);
COsdFxCloseWindow(WINNO(4));
//clear bar
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1));
}
}
void COsdColorUserPageSwitchMessage(void)
{
}
void COsdColorUserPageIRMessage(void)
{
}
//-----------------------------------------
// Language Process
//-------------------------------------------
void COsdLanguagePageExit(void)
{
/*
switch(GET_INPUTSOURCE_TYPE())
{
case _SOURCE_VGA:
SETOSDSTATE(_VGA_MENU_OSD);
COsdFxCodeWrite((BYTE code *)tVGA_MENU_TABLE[ucOsdState-1][stOsdUserData.Language]);
COsdFxCodeWrite((BYTE code *)tVGA_ITEM_TABLE[ucOsdState-1][stOsdUserData.Language]);
break;
#if(_VIDEO_SUPPORT == _ON)
case _SOURCE_VIDEO8:
SETOSDSTATE(_AV_MENU_OSD);
COsdFxCodeWrite((BYTE code *)tAV_MENU_TABLE[ucOsdState-1][stOsdUserData.Language]);
COsdFxCodeWrite((BYTE code *)tAV_ITEM_TABLE[ucOsdState-1][stOsdUserData.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_OSD);
COsdFxCodeWrite((BYTE code *)tVGA_MENU_TABLE[ucOsdState-1][stOsdUserData.Language]);
COsdFxCodeWrite((BYTE code *)tVGA_ITEM_TABLE[ucOsdState-1][stOsdUserData.Language]);
//x.hu, for no signal osd show when language is changed (VGA MODE)
// refresh signal mode line
COsdDispCurrVGAMode(FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
break;
#if(_VIDEO_SUPPORT == _ON)
case _VIDEO_AV_PORT:
case _VIDEO_AV2_PORT:
SETOSDSTATE(_AV_MENU_OSD);
COsdFxCodeWrite((BYTE code *)tAV_MENU_TABLE[ucOsdState-1][stOsdUserData.Language]);
COsdFxCodeWrite((BYTE code *)tAV_ITEM_TABLE[ucOsdState-1][stOsdUserData.Language]);
//x.hu, for no signal osd show when language is changed (VIDEO MODE)
// refresh signal mode line
COsdDispCurrAVMode(FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
break;
#endif
default:
break;
}
SETOSDITEM0(_OSD_LANGUAGE);
COsdDispItemSelect();
}
void COsdLanguagePageSelectMessage(void)
{
//fist, set to selected language
stOsdUserData.Language = ucOsd_Item_Index0-1;
if(stOsdUserData.Language == _CHINESE_S)
{
CScalerLoadFont(tFONT_SCHINESE, ADDRESS(_GLOBAL_CHAR_NUM+1), LENGTH(_SCHINESE_CHAR_NUM), _COMPRESS_FONT); //load 1-bit Simple Chinese font.
}
else
{
CScalerLoadFont(tFONT_EUROPE, ADDRESS(_GLOBAL_CHAR_NUM+1), LENGTH(_EUROPE_CHAR_NUM), _COMPRESS_FONT); //load 1-bit Europe font.
}
//second, return to main page
COsdLanguagePageExit();
//save language
ucOsdEventMsg = _SAVE_EE_OSDUSERDATA_MSG;
}
void COsdLanguagePageItemAdjMessage(void)
{
COsdIconItemSelection(&ucOsd_Item_Index0, ucKeyMessage, _LANGUAGE_NUM+1, _LANGUAGE_NUM, _ITEM_1, COsdDispItemSelect);
}
void COsdLanguagePageValueAdjMessage(void)
{
}
void COsdLanguagePageExitMessage(void)
{
COsdLanguagePageExit();
}
void COsdLanguagePageSwitchMessage(void)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -