📄 osdmenufunc003.c
字号:
case _ST_NORMAL:
tIcon = tIcon_Normal[ucItem - _MI_COLOR];
break;
case _ST_SELECT:
tIcon = tIcon_Select[ucItem - _MI_COLOR];
break;
case _ST_DISABLE:
tIcon = tIcon_Disable[ucItem - _MI_COLOR];
break;
}
Draw2bit3x2Icon(tIcon,1,y);
}
//---------------------------------------------------------------------------
// ucItem : MainMenu\_MI_COLOR,_MI_ADJUST,_MI_OSD,_MI_TV,_MI_FUNCTION,_MI_SOUND,
void DrawMainItemTitle(BYTE ucItem)
{
BYTE i;
BYTE n;
BYTE x;
BYTE Width;
BYTE code *tFont;
tFont = tMainTitle[ucItem - _MI_COLOR][GET_LANGUAGE()].Font;
Width = tMainTitle[ucItem - _MI_COLOR][GET_LANGUAGE()].Width;
CScalerLoadHardwareVLCFont(tFont, 0xE8);
// 39 : OSD Width
x = (39 - Width)/2;
n = 0xE8;
Gotoxy(x,1,BYTE_DISPLAY);
CScalerSendAddr(_OSD_DATA_PORT_92 , _NON_AUTOINC);
for(i=0;i<Width;i++)
{
*(&MCU_SCA_INF_DATA_FFF5) = n++;
}
Gotoxy(x,2,BYTE_DISPLAY);
CScalerSendAddr(_OSD_DATA_PORT_92 , _NON_AUTOINC);
for(i=0;i<Width;i++)
{
*(&MCU_SCA_INF_DATA_FFF5) = n++;
}
}
//---------------------------------------------------------------------------
void DrawMainMenu(void)
{
BYTE i;
BYTE ucMode;
InitMainOsd();
LoadCHIFont(_LF_COLOR_PAGE);
for(i=_MI_COLOR;i<=_MI_SOUND;i++)
{
if(i == ucOsdState)
{
ucMode = _ST_SELECT;
DrawMainItemTitle(i);
}
else
{
ucMode = _ST_NORMAL;
}
DrawMainMenuItem(i, ucMode);
}
DrawSubMenu(ucOsdState);
}
//---------------------------------------------------------------------------
void SubMenuTextOut(BYTE *str,BYTE y,BYTE ucColor,BYTE State)
{
// set color
SUBMENU_LINECOLOR(y,ucColor);
// draw menu item
SUBMENU_TEXTOUT(str,y);
// draw select line
if(State == _ST_SELECT || State == _ST_ADJUST)
{
DRAW_SUBMENU_SELLINE(y + 1);
}
else
{
CLEAR_SUBMENU_SELLINE(y + 1);
}
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE
void DrawBright(BYTE State)
{
BYTE y;
BYTE ucColor,ucColor1;
// get display line
y = GetShowIndex(_MI_BRIGHTNESS,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
if(y == _NOT_SHOW)
return;
// get display color
ucColor = StateColor(State);
if(State == _ST_ADJUST)
{
ucColor1 = StateColor(_ST_SELECT);
}
else
{
ucColor1 = ucColor;
}
y = SHOWINDEX_TO_LINE(y);
SubMenuTextOut(sBrightness[GET_LANGUAGE()],y,ucColor1,State);
// draw slider
OSD_SLIDER(y,stConBriData.Brightness,ucColor);
}
//---------------------------------------------------------------------------
void BrightAdjust(BYTE ucMode)
{
BYTE y;
// ucMode : _INC or _DEC
SET_KEYREPEATENABLE();
stConBriData.Brightness = ValueInRangeChange(0, 100, stConBriData.Brightness, _NON_LOOP | ucMode);
CAdjustBrightness();
ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG;
// get display line
y = GetShowIndex(_MI_BRIGHTNESS,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
if(y == _NOT_SHOW)
return;
y = SHOWINDEX_TO_LINE(y);
#if(_KEY_TYPE == _KT_PCB2660_003)
OSD_SLIDER(y,stConBriData.Brightness,_MENU_SECECT_COLOR);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
OSD_SLIDER(y,stConBriData.Brightness,_MENU_ADJUST_COLOR);
#endif
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE
void DrawContrast(BYTE State)
{
BYTE y;
BYTE ucColor;
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
BYTE ucColor1;
#endif
// get display line
y = GetShowIndex(_MI_CONTRAST,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
if(y == _NOT_SHOW)
return;
// get display color
ucColor = StateColor(State);
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
if(State == _ST_ADJUST)
{
ucColor1 = StateColor(_ST_SELECT);
}
else
{
ucColor1 = ucColor;
}
#endif
y = SHOWINDEX_TO_LINE(y);
#if(_KEY_TYPE == _KT_PCB2660_003)
SubMenuTextOut(sContrast[GET_LANGUAGE()],y,ucColor,State);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
SubMenuTextOut(sContrast[GET_LANGUAGE()],y,ucColor1,State);
#endif
// draw slider
OSD_SLIDER(y,stConBriData.Contrast,ucColor);
}
//---------------------------------------------------------------------------
void ContrastAdjust(BYTE ucMode)
{
// ucMode : _INC or _DEC
BYTE y;
SET_KEYREPEATENABLE();
stConBriData.Contrast = ValueInRangeChange(0, 100, stConBriData.Contrast, _NON_LOOP | ucMode);
CAdjustContrast();
ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG;
// get display line
y = GetShowIndex(_MI_CONTRAST,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
if(y == _NOT_SHOW)
return;
y = SHOWINDEX_TO_LINE(y);
#if(_KEY_TYPE == _KT_PCB2660_003)
OSD_SLIDER(y,stConBriData.Contrast,_MENU_SECECT_COLOR);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
OSD_SLIDER(y,stConBriData.Contrast,_MENU_ADJUST_COLOR);
#endif
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE
void DrawHue(BYTE State)
{
BYTE y;
BYTE ucColor;
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
BYTE ucColor1;
#endif
// get display line
y = GetShowIndex(_MI_HUE,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
if(y == _NOT_SHOW)
return;
// get display color
ucColor = StateColor(State);
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
if(State == _ST_ADJUST)
{
ucColor1 = StateColor(_ST_SELECT);
}
else
{
ucColor1 = ucColor;
}
#endif
y = SHOWINDEX_TO_LINE(y);
#if(_KEY_TYPE == _KT_PCB2660_003)
SubMenuTextOut(sHue[GET_LANGUAGE()],y,ucColor,State);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
SubMenuTextOut(sHue[GET_LANGUAGE()],y,ucColor1,State);
#endif
// draw slider
OSD_SLIDER(y,GET_HUE(),ucColor);
}
//---------------------------------------------------------------------------
void HueAdjust(BYTE ucMode)
{
// ucMode : _INC or _DEC
BYTE y;
SET_KEYREPEATENABLE();
stHueSatData.Hue = ValueInRangeChange(0, 100, stHueSatData.Hue, _NON_LOOP | ucMode);
if(bSourceVideo())
gmi_CAdjustVDCHue(GET_HUE());
else
CAdjustYpbprhue(GET_HUE());
ucOsdEventMsg = _SAVE_EE_HUE_SAT_DATA_MSG;
// get display line
y = GetShowIndex(_MI_HUE,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
if(y == _NOT_SHOW)
return;
y = SHOWINDEX_TO_LINE(y);
#if(_KEY_TYPE == _KT_PCB2660_003)
OSD_SLIDER(y,GET_HUE(),_MENU_SECECT_COLOR);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
OSD_SLIDER(y,GET_HUE(),_MENU_ADJUST_COLOR);
#endif
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE
void DrawSaturation(BYTE State)
{
BYTE y;
BYTE ucColor;
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
BYTE ucColor1;
#endif
// get display line
y = GetShowIndex(_MI_SATURATION,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
if(y == _NOT_SHOW)
return;
// get display color
ucColor = StateColor(State);
y = SHOWINDEX_TO_LINE(y);
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
if(State == _ST_ADJUST)
{
ucColor1 = StateColor(_ST_SELECT);
}
else
{
ucColor1 = ucColor;
}
#endif
#if(_KEY_TYPE == _KT_PCB2660_003)
SubMenuTextOut(sSaturation[GET_LANGUAGE()],y,ucColor,State);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
SubMenuTextOut(sSaturation[GET_LANGUAGE()],y,ucColor1,State);
#endif
// draw slider
OSD_SLIDER(y,GET_SATURATION(),ucColor);
}
//---------------------------------------------------------------------------
void SaturationAdjust(BYTE ucMode)
{
// ucMode : _INC or _DEC
BYTE y;
SET_KEYREPEATENABLE();
stHueSatData.Saturation = ValueInRangeChange(0, 100, stHueSatData.Saturation, _NON_LOOP | ucMode);
if(bSourceVideo())
CVideoSetSaturation(GET_SATURATION());
else
CAdjustYpbprSaturation(GET_SATURATION());
ucOsdEventMsg = _SAVE_EE_HUE_SAT_DATA_MSG;
// get display line
y = GetShowIndex(_MI_SATURATION,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
if(y == _NOT_SHOW)
return;
y = SHOWINDEX_TO_LINE(y);
#if(_KEY_TYPE == _KT_PCB2660_003)
OSD_SLIDER(y,GET_SATURATION(),_MENU_SECECT_COLOR);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
OSD_SLIDER(y,GET_SATURATION(),_MENU_ADJUST_COLOR);
#endif
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE
void DrawColorTemp(BYTE State)
{
BYTE y;
BYTE ucColor;
char *pStr;
// get display line
y = GetShowIndex(_MI_COLORTEMP,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
if(y == _NOT_SHOW)
return;
// get display color
ucColor = StateColor(State);
y = SHOWINDEX_TO_LINE(y);
SubMenuTextOut(sColorTemp[GET_LANGUAGE()],y,ucColor,State);
switch(GET_COLOR_TEMP_TYPE())
{
case _CT_9300: pStr = s9300[GET_LANGUAGE()]; break;
case _CT_6500: pStr = s6500[GET_LANGUAGE()]; break;
case _CT_USER:
default: pStr = sUser[GET_LANGUAGE()]; break;
}
SUBMENU_RIGHT_TEXTOUT(pStr, y);
}
//---------------------------------------------------------------------------
/*
void ColorTempAdjust(BYTE ucMode)
{
// ucMode : _INC or _DEC
BYTE y;
char *pStr;
BYTE ucColorTemp = GET_COLOR_TEMP_TYPE();
if(ucMode == _INC)
{
switch(GET_COLOR_TEMP_TYPE())
{
case _CT_9300: SET_COLOR_TEMP_TYPE(_CT_6500); break;
case _CT_6500: SET_COLOR_TEMP_TYPE(_CT_USER); break;
case _CT_USER: SET_COLOR_TEMP_TYPE(_CT_9300); break;
default: SET_COLOR_TEMP_TYPE(_CT_USER); break;
}
}
else
{
switch(GET_COLOR_TEMP_TYPE())
{
case _CT_9300: SET_COLOR_TEMP_TYPE(_CT_USER); break;
case _CT_6500: SET_COLOR_TEMP_TYPE(_CT_9300); break;
case _CT_USER: SET_COLOR_TEMP_TYPE(_CT_6500); break;
default: SET_COLOR_TEMP_TYPE(_CT_USER); break;
}
}
// get display line
y = GetShowIndex(_MI_COLORTEMP,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
if(y == _NOT_SHOW)
return;
y = SHOWINDEX_TO_LINE(y);
switch(GET_COLOR_TEMP_TYPE())
{
case _CT_9300: pStr = s9300[GET_LANGUAGE()]; break;
case _CT_6500: pStr = s6500[GET_LANGUAGE()]; break;
case _CT_USER:
default: pStr = sUser[GET_LANGUAGE()]; break;
}
SUBMENU_RIGHT_TEXTOUT(pStr, y);
}
*/
//---------------------------------------------------------------------------
// ucItem : MainMenu\Color\_MI_BRIGHTNESS,_MI_CONTRAST,_MI_HUE,_MI_SATURATION,_MI_COLORTEMP,
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE
void DrawColorPageMenuItem(BYTE ucItem,BYTE ucState)
{
if(!g_tMenuItem[ucItem].Enable())
{
ucState = _ST_DISABLE;
}
switch(ucItem)
{
case _MI_BRIGHTNESS: DrawBright(ucState); break;
case _MI_CONTRAST: DrawContrast(ucState); break;
case _MI_HUE: DrawHue(ucState); break;
case _MI_SATURATION: DrawSaturation(ucState); break;
case _MI_COLORTEMP: DrawColorTemp(ucState); break;
}
}
//---------------------------------------------------------------------------
// SUBMENU_TEXTOUT(sSpace,Row);
void DrawPageNullLine(BYTE MenuBegin,BYTE MenuEnd)
{
BYTE ucCount = GetShowCount(MenuBegin,MenuEnd);
for(;ucCount<6;ucCount++)
{
SUBMENU_TEXTOUT(sSpace,SHOWINDEX_TO_LINE(ucCount));
}
}
//---------------------------------------------------------------------------
// MainMenu\Color\_MI_BRIGHTNESS,_MI_CONTRAST,_MI_HUE,_MI_SATURATION,_MI_COLORTEMP,
void DrawColorPage(void)
{
BYTE i;
BYTE ucState;
for(i=_MI_BRIGHTNESS;i<=_MI_COLORTEMP;i++)
{
if(i == ucOsdState)
{
ucState = _ST_SELECT;
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -