📄 osdmenufunc003.c
字号:
#define __OSDDRAW003__
#include "Core\Header\Include.h"
#if(_OSD_TYPE == _OSD003)
//-------------------------------------------------------------------
bit CEnable(void)
{
return 1;
}
//----------------------------------------------------------------------------------------------------
bit CDisable(void)
{
return 0;
}
//----------------------------------------------------------------------------------------------------
bit CVideoEnable(void)
{
if(bSourceVideo() || _SOURCE_YPBPR == _GET_INPUT_SOURCE())
return 1;
else return 0;
}
//------------------------------------------------------------------------
bit CVideoNTSCEnable(void)
{
if((bSourceVideo() && ucVideoType < ZPAL_N) || (_SOURCE_YPBPR == _GET_INPUT_SOURCE()))
return 1;
else return 0;
}
//------------------------------------------------------------------------
bit CVgaEnable(void)
{
if(stSystemData.InputSource == _SOURCE_VGA)
return 1;
else return 0;
}
//---------------------------------------------------------------------------
bit CHDMIEnable(void)
{
if(stSystemData.InputSource == _SOURCE_HDMI)
return 1;
else return 0;
}
//---------------------------------------------------------------------------
bit CDviEnable(void)
{
if(stSystemData.InputSource == _SOURCE_DVI)
return 1;
else return 0;
}
//---------------------------------------------------------------------------
bit CTVEnable(void)
{
if(stSystemData.InputSource == _SOURCE_VIDEO_TV)
return 1;
else return 0;
}
//---------------------------------------------------------------------------
bit MDisplayRatioEnable(void)
{
if(CCalcRatio() >= 75)
return _FAIL;
return _TRUE;
}
//---------------------------------------------------------------------------
bit MSoundEnable(void)
{
#if (_SOUND_PROCESSOR)
return _TRUE;
#else
return _FALSE;
#endif
}
//---------------------------------------------------------------------------
bit MNJW1144Enable(void)
{
#if(AUDIO_TYPE == _AUDIO_NJW1144)
return 1;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CMIVgaEnable(void)
{
return 0;//_VGA_SUPPORT;
}
//---------------------------------------------------------------------------
bit CMIDVIEnable(void)
{
return 0;//_TMDS_SUPPORT;
}
//---------------------------------------------------------------------------
bit CMIHDMIEnable(void)
{
return 0;//_HDMI_SUPPORT;
}
//---------------------------------------------------------------------------
bit CMIYPBPREnable(void)
{
return 0;//_YPBPR_SUPPORT;
}
//---------------------------------------------------------------------------
bit CMISVEnable(void)
{
return _VIDEO_SV_SUPPORT;
}
//---------------------------------------------------------------------------
bit CMIAVEnable(void)
{
return _VIDEO_AV_SUPPORT;
}
//---------------------------------------------------------------------------
bit CMITVEnable(void)
{
return 0;//_VIDEO_TV_SUPPORT;
}
//---------------------------------------------------------------------------
bit CEngEnable(void)
{
return ENGLISH_EN;
}
//---------------------------------------------------------------------------
bit CCHI_S_Enable(void)
{
return LNG_CHI_S_EN;
}
//---------------------------------------------------------------------------
bit CFRA_Enable(void)
{
return LNG_FRA_EN;
}
//---------------------------------------------------------------------------
bit CITA_Enable(void)
{
return LNG_ITA_EN;
}
//---------------------------------------------------------------------------
bit CDEU_Enable(void)
{
return LNG_DEU_EN;
}
//---------------------------------------------------------------------------
bit CESP_Enable(void)
{
return LNG_ESP_EN;
}
//---------------------------------------------------------------------------
bit CCHI_T_Enable(void)
{
return LNG_CHI_T_EN;
}
//---------------------------------------------------------------------------
bit CJAP_Enable(void)
{
return LNG_JAP_EN;
}
//---------------------------------------------------------------------------
bit CKOR_Enable(void)
{
return LNG_KOR_EN;
}
//---------------------------------------------------------------------------
bit CRUS_Enable(void)
{
return LNG_RUS_EN;
}
//---------------------------------------------------------------------------
bit CEnNtsc_M(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_NTSC_M_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnNtsc_BG(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_NTSC_4_BG_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnNtsc_DK(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_NTSC_4_DK_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnNtsc_I(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_NTSC_4_I_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnPal_M(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_PAL_M_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnPal_BG(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_PAL_BG_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnPal_DK(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_PAL_DK_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnPal_I(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_PAL_I_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnPal_N(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_PAL_N_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnSecam_BG(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_SECAM_BG_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnSecam_DK(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_SECAM_DK_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnSecam_L(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_SECAM_L_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit CEnSecam_LL(void)
{
#if(_VIDEO_TV_SUPPORT)
return _TV_SECAM_LL_SUPPORT;
#else
return 0;
#endif
}
//---------------------------------------------------------------------------
bit COSDDoubleEN(void)
{
if(Panel[ucPanelSelect]->DHWidth < 1280 || Panel[ucPanelSelect]->DVHeight < 1024)
return _FALSE;
return _TRUE;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
BYTE StateColor(BYTE State)
{
switch(State)
{
case _ST_NORMAL: return _MENU_NORMAL_COLOR;
case _ST_SELECT: return _MENU_SECECT_COLOR;
case _ST_ADJUST: return _MENU_ADJUST_COLOR;
case _ST_DISABLE:
default: return _MENU_DISABLE_COLOR;
}
}
//---------------------------------------------------------------------------
void CreatePopupMenu(BYTE ucRow,BYTE ucHeight)
{
WORD usWindowLeft;
WORD usWindowTop;
WORD usWindowRight;
WORD usWindowBottom;
BYTE i;
BYTE x;
BYTE iCurrRow;
for(i=0;i<ucHeight;i++)
{
iCurrRow = ucRow + i;
if(iCurrRow % 2)
x = 20;
else
x = 27;
OSDLine(iCurrRow, COL(x), WIDTH(19), 0x00, BYTE_DISPLAY);
OSDLine(iCurrRow, COL(x), WIDTH(19), 0x8C, BYTE_ATTRIB);
}
usWindowLeft = 21 * 12;
usWindowRight = (21 + 18) * 12;
usWindowTop = (WORD)ucRow * 18;
usWindowBottom = (WORD)(ucRow + ucHeight) * 18;
COsdFxDrawWindow(usWindowLeft, usWindowTop, usWindowRight, usWindowBottom, tPopupMenuWindowStyle);
}
//---------------------------------------------------------------------------
void ClearPopupMenu(BYTE ucRow,BYTE ucHeight)
{
BYTE i;
BYTE x;
BYTE iCurrRow;
for(i=0;i<ucHeight;i++)
{
iCurrRow = ucRow + i;
if(iCurrRow % 2)
{
x = 20;
SETCOLOR_SUBMENU_SELLINE(iCurrRow);
}
else
{
x = 27;
}
OSDLine(iCurrRow, COL(x), WIDTH(19), 0x00, BYTE_DISPLAY);
OSDLine(iCurrRow, COL(x), WIDTH(19), 0x8C, BYTE_ATTRIB);
}
COsdFxCloseWindow(4);
}
//---------------------------------------------------------------------------
void DrawAPopupMenuItem(BYTE *str,BYTE ItemIndex,BYTE ucRowStart,BYTE ucColStart,BYTE State)
{
BYTE c;
//BYTE x;
BYTE ucColor = StateColor(State);
ItemIndex = ItemIndex + ucRowStart + 1;
if(State == _ST_SELECT)
c = 0x57; // Select Icon
else
c = 0x01; // Clear Select Icon
if(ItemIndex % 2)
ucColStart += 21;
else
ucColStart += 27;
OSDLine(ROW(ItemIndex), COL(ucColStart), LENGTH(19), ucColor, BYTE_COLOR);
Gotoxy(COL(ucColStart + 1),ROW(ItemIndex),BYTE_DISPLAY);
OutputChar(c);
CTextOutEx(str, COL(ucColStart + 3), ROW(ItemIndex));
}
//---------------------------------------------------------------------------
void InitMainOsd(void)
{
BYTE i;
InitOsdFrame();
SetOSDDouble((GET_OSD_SIZE() ? 0x03 : 0x00) | OSD_WINDOWCHAR_BLENDING);
// Draw Top Line
OSDLine(ROW(3), COL(1), LENGTH(37), 0xA6, THE_BYTE0);
OSDLine(ROW(3), COL(1), LENGTH(37), 0xA4, THE_BYTE1);
OSDLine(ROW(3), COL(1), LENGTH(37), 0x11, THE_BYTE2);
// Draw Bottom Line
OSDLine(ROW(16), COL(1), LENGTH(37), 0xA6, THE_BYTE0);
OSDLine(ROW(16), COL(1), LENGTH(37), 0xA4, THE_BYTE1);
OSDLine(ROW(16), COL(1), LENGTH(37), 0x11, THE_BYTE2);
// Draw Left Line
for(i=0;i<12;i++)
{
Gotoxy(5 , 4 + i , ALL_BYTE);
CScalerSendAddr(_OSD_DATA_PORT_92 , _NON_AUTOINC);
*(&MCU_SCA_INF_DATA_FFF5) = 0xA6;
*(&MCU_SCA_INF_DATA_FFF5) = 0xA5;
*(&MCU_SCA_INF_DATA_FFF5) = 0x11;
}
// set submenu selet line color
for(i=0;i<6;i++)
{
SETCOLOR_SUBMENU_SELLINE(SHOWINDEX_TO_LINE(i) + 1);
}
// Draw Window
COsdFxDrawWindow(0,0, //WORD usXStart,WORD usYStart,
_MAINMENU_WIDTH + 20,_MAINMENU_HEIGHT, //WORD usXEnd,WORD usYEnd,
tMainWindowStyle); //BYTE *pStyle)
// set osd position
if (GET_OSD_SIZE())
{
SetOSDDouble(0x03 | OSD_WINDOWCHAR_BLENDING);
OSDPosition(_OSD_DOUBLE_WIDTH(_MAINMENU_WIDTH), _OSD_DOUBLE_HEIGHT(_MAINMENU_HEIGHT), stOsdUserData.OsdHPos, stOsdUserData.OsdVPos, 0x03);
}
else
{
SetOSDDouble(OSD_WINDOWCHAR_BLENDING);
OSDPosition(_MAINMENU_WIDTH, _MAINMENU_HEIGHT, stOsdUserData.OsdHPos, stOsdUserData.OsdVPos, 0x03);
}
COsdFxEnableOsd();
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE
void DrawMainMenuItem(BYTE ucItem,BYTE ucState)
{
BYTE y;
BYTE *tIcon;
y = GetShowIndex(ucItem,_MI_COLOR,_MI_SOUND);
if(y == _NOT_SHOW)
return;
y = SHOWINDEX_TO_LINE(y);
if(!g_tMenuItem[ucItem].Enable())
{
ucState = _ST_DISABLE;
}
switch(ucState)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -