📄 osd.c
字号:
COsdFxLoadText(ROW(1), COL(0), stOsdUserData.Language, tOSD_VOLUMESHORT_STR);
COsdFxChange1bitColor(ROW(0), COL(0), WIDTH(18), HEIGHT(4), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
COsdDispFullSlider3(ROW(2), COL(1), LENGTH(16), stOsdUserData.Volume, _VOLUME_MAX-_VOLUME_MIN, _VOLUME_MIN,_CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
COsdFxSetPosition(WIDTH(_OSD_AUTO_DH_END), HEIGHT(_OSD_AUTO_DV_END), (_OSD_HPOSITION_RANGE>>1), (_OSD_VPOSITION_RANGE>>1), 0x01);
COsdFxEnableOsd();
SETOSDSTATE(_VGA_MENU_SHORTCUT); //change to color temp page
}
break;
case _SOURCE_VIDEO8 :
if(ucOsdState== _MENU_NONE)
{
COsdFxDisableOsd();
COsdDispPrevWork(_OSD_MAP2);
COsdFxCodeWrite(tOSD_SHORTV_ATB);
COsdFxLoadText(ROW(1), COL(0), stOsdUserData.Language, tOSD_VOLUMESHORT_STR);
COsdFxChange1bitColor(ROW(0), COL(0), WIDTH(18), HEIGHT(4), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
COsdDispFullSlider3(ROW(2), COL(1), LENGTH(16), stOsdUserData.Volume, _VOLUME_MAX-_VOLUME_MIN, _VOLUME_MIN,_CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
COsdFxSetPosition(WIDTH(_OSD_AUTO_DH_END), HEIGHT(_OSD_AUTO_DV_END), (_OSD_HPOSITION_RANGE>>1), (_OSD_VPOSITION_RANGE>>1), 0x01);
COsdFxEnableOsd();
SETOSDSTATE(_AV_MENU_VOLUME); //change to color temp page
}
//SETOSDSTATE(_VGA_MENU_SHORTCUT); //change to color temp page
break;
default:
break;
}
}
void COsdPage0ItemAdjMessage(void)
{
if (GET_INPUTPORT_TYPE(stSystemData.InputSource) == _DSUB_A0_PORT || \
GET_INPUTPORT_TYPE(stSystemData.InputSource) == _DSUB_A1_PORT)
{
if(ucOsdState == _MENU_NONE)
{
if(_ITEM_UP_MESSAGE == ucKeyMessage)
{
COsdDispAutoColorProc();
}
else if(_ITEM_DOWN_MESSAGE == ucKeyMessage)
{
COsdDispAutoProc();
}
}
}
}
void COsdPage0ExitMessage(void)
{
}
void COsdPage0SwitchMessage(void)
{
}
void COsdPage0IRMessage(void)
{
}
void COsdPageExit(void)
{
//bValueAdj = _FALSE;
COsdFxDisableOsd();
//SETOSDSTATE(_MENU_NONE);
//SETOSDITEM0(_ITEM_NONE);
//SETOSDITEM1(_ITEM_NONE);
//SETOSDITEM2(_ITEM_NONE);
CLR_KEYREPEATENABLE(); //disable key repeat
}
void COsdMainPageExit(void)
{
if(ucOsd_Item_Index0 == 0)
{
COsdPageExit();
}
else
{
if(ucOsd_Item_Index1 == _ITEM_NONE)
{
COsdClearItemSelect();
SETOSDITEM0(_ITEM_NONE);
}
else
{
bValueAdj = _FALSE;
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1)); //Clear Bar
SETOSDITEM1(_ITEM_NONE);
}
CLR_KEYREPEATENABLE(); //disable key repeat
}
}
//----------------------------------------
// VGA Color page process
//----------------------------------------
void COsdVGAColorPageSelectMessage(void)
{
//x.hu, add for prevent from operating while no signal mode
if (ucCurrState != _ACTIVE_STATE)
{
return;
}
if(ucOsd_Item_Index0 == _ITEM_NONE)
{
ucOsd_Item_Index0 = _ITEM_1;
//Show pointing arrow
COsdDispItemSelect();
}
else
{
switch(ucOsd_Item_Index0)
{
case _VGA_COLOR_EXIT: //Close main page
//COsdPageExit();
COsdClearItemSelect();
SETOSDITEM0(_ITEM_NONE);
break;
case _VGA_COLOR_AUTO:
//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);
//do auto color function
CAutoDoWhiteBalance();
//clear information
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1));
break;
case _VGA_COLOR_CONTRAST:
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), stConBriData.Contrast, _CONTRAST_MAX - _CONTRAST_MIN, _CONTRAST_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;
case _VGA_COLOR_BRIGHT:
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), stConBriData.Brightness, _BRIGHT_MAX - _BRIGHT_MIN, _BRIGHT_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;
case _VGA_COLOR_SHARPNESS:
if(ucOsd_Item_Index1 == _ITEM_NONE)
{
SETOSDITEM1((stSystemData.Sharpness & 0x0f)+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_ROW0);
COsdFxChange1bitColor(ROW(12), COL((ucOsd_Item_Index1-1)*4+5), 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;
case _VGA_COLOR_TEMP:
switch(GET_INPUTSOURCE_TYPE())
{
case _SOURCE_VGA:
SETOSDSTATE(_VGA_MENU_COLOR_TEMP); //change to color temp page
break;
default:
break;
}
CEepromLoadSystemData(); //get color temp
SETOSDITEM0((stSystemData.ColorTemp & 0x0f)+1);
SETOSDITEM1(_ITEM_NONE);
//SETOSDITEM2(_ITEM_NONE);
//show color temp sub-page
//COsdFxCodeWrite(tOSD_COLOR_TEMP_ENG);
COsdFxCodeWrite((BYTE code *)tCOLOR_TEMP_TABLE[stOsdUserData.Language]);
//COsdFxChange1bitColor(ROW(8), COL(0), WIDTH(8), HEIGHT(1), FGCOLOR(_CP_GRAY), BGCOLOR(_CP_BLACK));
//show item select
COsdDispItemSelect();
break;
default:
break;
}
}
}
void COsdVGAColorPageValueAdjMessage(void)
{
switch(ucOsd_Item_Index0)
{
case _VGA_COLOR_CONTRAST:
COsdByteValueAdj(&stConBriData.Contrast, _CONTRAST_MAX, _CONTRAST_MIN, ucKeyMessage, CAdjustContrast);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stConBriData.Contrast, _CONTRAST_MAX - _CONTRAST_MIN, _CONTRAST_MIN, _CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG; //enable save.
break;
case _VGA_COLOR_BRIGHT:
COsdByteValueAdj(&stConBriData.Brightness, _BRIGHT_MAX, _BRIGHT_MIN, ucKeyMessage, CAdjustBrightness);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stConBriData.Brightness, _BRIGHT_MAX - _BRIGHT_MIN, _BRIGHT_MIN, _CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG; //enable save.
break;
case _VGA_COLOR_SHARPNESS:
if(_VALUE_UP_MESSAGE == ucKeyMessage)
{
ucOsd_Item_Index1 = (ucOsd_Item_Index1+1 > _SHARPNESS_NUM) ? _ITEM_1 : ucOsd_Item_Index1+1;
}
else if(_VALUE_DOWN_MESSAGE == ucKeyMessage)
{
ucOsd_Item_Index1 = (ucOsd_Item_Index1-1 < _ITEM_1) ? _SHARPNESS_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-1)*4+5), WIDTH(1), HEIGHT(1), FGCOLOR(_CP_RED), BGCOLOR(_CP_BLACK));
stSystemData.Sharpness = ucOsd_Item_Index1-1;
CAdjustSharpness();
ucOsdEventMsg = _SAVE_EE_SYSTEMDATA_MSG;
break;
}
}
void COsdVGAColorPageItemAdjMessage(void)
{
if(ucOsd_Item_Index0 == _ITEM_NONE)
{
COsdIconItemSelection(&ucOsdState, ucKeyMessage, _VGA_MENU_NUM+1, _VGA_MENU_NUM, _MENU_1, COsdDispIconSelect);
}
else
{
COsdIconItemSelection(&ucOsd_Item_Index0, ucKeyMessage, _VGA_COLOR_NUM+1, _VGA_COLOR_NUM, _ITEM_1, COsdDispItemSelect);
}
}
void COsdVGAColorPageExitMessage(void)
{
COsdMainPageExit();
}
void COsdVGAColorPageSwitchMessage(void)
{
}
void COsdVGAColorPageIRMessage(void)
{
}
//----------------------------------------
//Image Page Process
//----------------------------------------
void COsdImagePageSelectMessage(void)
{
//x.hu, add for prevent from operating while no signal mode
if (ucCurrState != _ACTIVE_STATE)
{
return;
}
if(ucOsd_Item_Index0 == _ITEM_NONE)
{
ucOsd_Item_Index0 = _ITEM_1;
//Show pointing arrow
COsdDispItemSelect();
}
else
{
switch(ucOsd_Item_Index0)
{
case _IMAGE_EXIT:
//COsdPageExit();
COsdClearItemSelect();
SETOSDITEM0(_ITEM_NONE);
break;
case _IMAGE_AUTO:
//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);
//do auto color function
CAutoDoAutoConfig();
//clear information
COsdFxCloseWindow(WINNO(4));
COsdDispClearText(ROW(12), COL(0), WIDTH(_OSD_MAIN_COL), HEIGHT(1));
break;
case _IMAGE_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), stModeUserData.HPosition, _HPOSITION_BIAS * 2, stModeUserCenterData.CenterHPos - _HPOSITION_BIAS, _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 _IMAGE_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), stModeUserData.VPosition, _VPOSITION_BIAS * 2, stModeUserCenterData.CenterVPos - _VPOSITION_BIAS, _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 _IMAGE_PHASE:
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), stModeUserData.Phase, 63, 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 _IMAGE_CLOCK:
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), stModeUserData.Clock, _CLOCK_BIAS * 2, stModeUserCenterData.CenterClock - _CLOCK_BIAS, _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;
default:
break;
}
}
}
void COsdImagePageItemAdjMessage(void)
{
if(ucOsd_Item_Index0 == _ITEM_NONE)
{
COsdIconItemSelection(&ucOsdState, ucKeyMessage, _VGA_MENU_NUM+1, _VGA_MENU_NUM, _MENU_1, COsdDispIconSelect);
}
else
{
COsdIconItemSelection(&ucOsd_Item_Index0, ucKeyMessage, _IMAGE_NUM+1, _IMAGE_NUM, _ITEM_1, COsdDispItemSelect);
}
}
void COsdImagePageValueAdjMessage(void)
{
switch(ucOsd_Item_Index0)
{
case _IMAGE_HPOS:
COsdWordValueAdj(&stModeUserData.HPosition, COsdFxGetHPositionRange(_GET_HPOSITIONRANGE_MAX), COsdFxGetHPositionRange(_GET_HPOSITIONRANGE_MIN), ucKeyMessage, CAdjustHPosition);
COsdDispFullSlider(ROW(12), COL(4), LENGTH(16), stModeUserData.HPosition, _HPOSITION_BIAS * 2, stModeUserCenterData.CenterHPos - _HPOSITION_BIAS, _CP_WHITE, _CP_WHITE, _SHOW_PERCENT);
ucOsdEventMsg = _SAVE_EE_MODEUSERDATA_MSG;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -