📄 osdpub900.c
字号:
case _SOURCE_DVI:
Textout(sLCDDVI);
break;
#endif
#if(_VIDEO_SUPPORT)
case _SOURCE_VIDEO8_AV:
Textout(sLCDAV);
break;
case _SOURCE_VIDEO8_SV:
Textout(sLCDSV);
break;
#endif
#if(_TV_CHIP != _TV_NONE)
case _SOURCE_VIDEO8_TV:
Textout(sLCDTV);
break;
#endif
}
/*
// Realtek Logo
DispIcon(3,1,0xa4);
Gotoxy(7,2,BYTE_DISPLAY);
pData[0] = 0xaa;
pData[1] = 0xab;
pData[2] = 0xac;
pData[3] = 0xad;
pData[4] = 0xae;
pData[5] = 0xaf;
CScalerWrite(_OSD_DATA_PORT_92,6,pData,_NON_AUTOINC);
*/
}
//---------------------------------------------------------------------------
void DrawMainPage()
{
switch(stSystemData.InputSource)
{
#if(_VGA_SUPPORT)
case _SOURCE_VGA:
case _SOURCE_DVI:
DrawVGAMainPage();
break;
#endif
#if(_VIDEO_SUPPORT)
case _SOURCE_VIDEO8_AV:
case _SOURCE_VIDEO8_SV:
case _SOURCE_VIDEO8_YUV:
DrawAVMainPage();
break;
#endif
#if(_TV_CHIP != _TV_NONE)
case _SOURCE_VIDEO8_TV:
DrawTVMainPage();
break;
#endif
}
}
//---------------------------------------------------------------------------
void DrawColorPage()
{
switch(stSystemData.InputSource)
{
#if(_VGA_SUPPORT)
case _SOURCE_VGA:
case _SOURCE_DVI:
DrawVGAColorPage();
break;
#endif
#if(_VIDEO_SUPPORT)
case _SOURCE_VIDEO8_AV:
case _SOURCE_VIDEO8_SV:
case _SOURCE_VIDEO8_YUV:
case _SOURCE_VIDEO8_TV:
DrawAVColorPage();
break;
#endif
}
}
//---------------------------------------------------------------------------
void DrawImagePage()
{
switch(stSystemData.InputSource)
{
#if(_VGA_SUPPORT)
case _SOURCE_VGA:
case _SOURCE_DVI:
DrawVGAImagePage();
break;
#endif
#if(_VIDEO_SUPPORT)
case _SOURCE_VIDEO8_AV:
case _SOURCE_VIDEO8_SV:
case _SOURCE_VIDEO8_YUV:
case _SOURCE_VIDEO8_TV:
DrawAVImagePage();
break;
#endif
}
}
//---------------------------------------------------------------------------
void DrawPositionPage()
{
switch(stSystemData.InputSource)
{
#if(_VGA_SUPPORT)
case _SOURCE_VGA:
case _SOURCE_DVI:
DrawVGAPositionPage();
break;
#endif
#if(_VIDEO_SUPPORT)
case _SOURCE_VIDEO8_AV:
case _SOURCE_VIDEO8_SV:
case _SOURCE_VIDEO8_YUV:
break;
#endif
#if(_TV_CHIP != _TV_NONE)
case _SOURCE_VIDEO8_TV:
break;
#endif
}
}
//---------------------------------------------------------------------------
void DrawOSDPage()
{
// Load font
CScalerLoadFont(Fnt_OSD_Ico,0x7a*2,18*2,_COMPRESS_FONT);
CScalerLoadFont(Fnt_Back_Ico,0x8c*2,6*2,_COMPRESS_FONT);
CScalerLoadFont(Osd_Color,0x92*2,6*2,_COMPRESS_FONT);
CLEAR_OSD_ADJUST();
SetIconCntAtb(5); //Set Icon Count : 7
// Out Icon & Out Text
DispIcon(3,4, 0x7a); //H POSITION Icon
DispIcon(3,7, 0x80); //V POSITION Icon
DispIcon(3,10,0x86); //OSD Timer Icon
DispIcon(3,13,0x92); //OSD Timer Icon
DispIcon(3,16,0x8c); //Back Icon
Gotoxy(7,5,BYTE_DISPLAY);
Textout((unsigned char code *)sOSDHPos[GET_LANGUAGE]);
Gotoxy(7,8,BYTE_DISPLAY);
Textout((unsigned char code *)sOSDVPos[GET_LANGUAGE]);
Gotoxy(7,11,BYTE_DISPLAY);
Textout((unsigned char code *)sOSDTime[GET_LANGUAGE]);
Gotoxy(7,14,BYTE_DISPLAY);
Textout((unsigned char code *)sOSDColor[GET_LANGUAGE]);
Gotoxy(7,17,BYTE_DISPLAY);
Textout((unsigned char code *)sBack[GET_LANGUAGE]);
COsdFxDrawWindow(XSTART(40), YSTART(355), XEND(250), YEND(445), tOSD_WINDOW2_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);
DrawPen(1,(ucOsdState - _MENU_OSD_HPOS) * 3 + 5);
}
//---------------------------------------------------------------------------
void DrawLanguagePage()
{
//load language
unsigned char i,ucCount,ucLanguage;
unsigned char ucLine = 0;
CScalerLoadFont(Fnt_Language, 0x5c,30,_COMPRESS_FONT);
SetIconCntAtb(7); //Set Icon Count : 7
ucLanguage = FirstLanguage();
DrawALanguage(ucLanguage,ucLine);
ucLine++;
ucCount = GetLanguegeCount();
for(i=1;i<ucCount;i++)
{
ucLanguage = GetNextLanguage(ucLanguage);
DrawALanguage(ucLanguage,ucLine);
ucLine++;
}
i = GetCurrLanguagePos();
DrawPen(1,i * 3 + 5);
//SET_LANGUAGE(i); //进入 Language Page 后stOsdUserData.Language 作为临时变量使用
}
//---------------------------------------------------------------------------
void DrawALanguage(unsigned char ucLnguage,unsigned char ucItem)
{
unsigned char ucFontAddress = 0x7A + (ucItem * 6);
switch(ucLnguage)
{
case LNG_ENG:
CScalerLoadFont(LNG_ENG_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
break;
case LNG_FRA:
CScalerLoadFont(LNG_FRA_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
break;
case LNG_DEU:
CScalerLoadFont(LNG_DEU_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
break;
case LNG_ESP:
CScalerLoadFont(LNG_ESP_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
break;
case LNG_CHI_S:
CScalerLoadFont(LNG_CHI_S_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
break;
case LNG_CHI_T:
CScalerLoadFont(LNG_CHI_T_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
break;
case LNG_JAP:
CScalerLoadFont(LNG_JAP_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
break;
case LNG_RUS:
CScalerLoadFont(LNG_RUS_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
Set2BitColor(3,ucItem,3,2,sLNG_RUSKOR_LOGO);
break;
case LNG_KOR:
CScalerLoadFont(LNG_KOR_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
Set2BitColor(3,ucItem,3,2,sLNG_RUSKOR_LOGO);
break;
}
ucItem = ucItem * 3 + 4;
DispIcon(3,ucItem,ucFontAddress);
ucItem = ucItem + 1;
Gotoxy(7,ucItem,BYTE_DISPLAY);
Textout((unsigned char code *)sLangName[ucLnguage]);
}
//---------------------------------------------------------------------------
void DrawMiscPage()
{
// Load font
CScalerLoadFont(Fnt_Misc_Ico,0x7a*2,18*2,_COMPRESS_FONT);
CScalerLoadFont(Fnt_Back_Ico,0x8c*2,6*2,_COMPRESS_FONT);
CLEAR_OSD_ADJUST();
SetIconCntAtb(4); //Set Icon Count : 7
// Out Icon & Out Text
DispIcon(3,4, 0x7a); //H POSITION Icon
DispIcon(3,7, 0x80); //V POSITION Icon
DispIcon(3,10,0x86); //OSD Timer Icon
DispIcon(3,13,0x8c); //Back Icon
Gotoxy(7,5,BYTE_DISPLAY);
Textout((unsigned char code *)sReset[GET_LANGUAGE]);
Gotoxy(7,8,BYTE_DISPLAY);
Textout((unsigned char code *)sVolume[GET_LANGUAGE]);
Gotoxy(7,11,BYTE_DISPLAY);
Textout((unsigned char code *)sMute[GET_LANGUAGE]);
Gotoxy(7,14,BYTE_DISPLAY);
Textout((unsigned char code *)sBack[GET_LANGUAGE]);
COsdFxDrawWindow(XSTART(40), YSTART(355), XEND(250), YEND(445), tOSD_WINDOW2_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);
DrawPen(1,(ucOsdState - _MENU_RESET) * 3 + 5);
}
//---------------------------------------------------------------------------
void InitOsd()
{
COsdFxDisableOsd();
if(fOsdDouble) SetOSDDouble(OSD_DOUBLE_WIDTH_ENABLE);
else SetOSDDouble(0);
SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS); // 1
SetRowCmds(ROW_COUNT,COL_WIDTH); // 2
COsdFxCodeWrite(ucCloseAllWindow); // Close all windows
// Init Char Cmd
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB); //Byte 0
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY); //Byte 1
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x10, BYTE_COLOR); //Byte 2
LoadPalette();
}
//---------------------------------------------------------------------------
void InitOSDFrame()
{
InitOsd();
COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(280), YEND(490), tOSD_WINDOW0_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW0_STYLE);
COsdFxDrawWindow(XSTART(10), YSTART(15), XEND(260), YEND(65), tOSD_WINDOW5_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW5_STYLE);
//Set2BitColor(3, 1, 11, 2,sStyle2BitLogo); //Set Logo Attrib
MenuShowLogo(); //Display Logo
DrawMainPage();
if(fOsdDouble)
OSDPosition(MAIN_OSD_WIDTH * 2 ,MAIN_OSD_HEIGHT,stOsdUserData.OsdHPos/2,stOsdUserData.OsdVPos,0x01);
else OSDPosition(MAIN_OSD_WIDTH ,MAIN_OSD_HEIGHT,stOsdUserData.OsdHPos,stOsdUserData.OsdVPos,0x01);
ShowMode();
}
//---------------------------------------------------------------------------
void InitDialog()
{
InitOsd();
COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(DIALOG_OSD_WIDTH), YEND(DIALOG_OSD_HEIGHT), tOSD_WINDOW2_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_DARKBLUE), tOSD_WINDOW2_STYLE);
COsdFxDrawWindow(XSTART(10), YSTART(20), XEND(DIALOG_OSD_WIDTH - 10), YEND(DIALOG_OSD_HEIGHT - 20), tOSD_WINDOW6_STYLE);
COsdFxChangeWindowColor(COLOR00(_CP_LIGHTBLUE), tOSD_WINDOW6_STYLE);
}
//---------------------------------------------------------------------------
void DrawPen(unsigned char ucState,unsigned char y) // State 0 : Clear Pen 1: Draw Pen
{
Gotoxy(1,y,BYTE_DISPLAY);
if(ucState)
{
OutputChar(0x78);
OutputChar(0x79);
}
else
{
OutputChar(0x00);
OutputChar(0x00);
}
}
//------------------------------------------------------------
void ShowNote()
{
unsigned char w;
CPowerPanelOn();
#if(_TV_CHIP != _TV_NONE)
if(stSystemData.InputSource == _SOURCE_VIDEO8_TV)
{
CShowTVNumber(stVDCColor.CurrentChannel,SHOW_CH_TV_NUMBER | SHOW_CH_TV_TYPE | SHOW_CH_SOUND_TYPE);
return;
}
#endif
LoadPalette();
COsdFxDisableOsd();
SetOSDDouble(0);
SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);
SetRowCmds(ROW_COUNT,COL_WIDTH);
COsdFxCodeWrite(ucCloseAllWindow);
OSDClear(0, ROW_COUNT, 0, COL_WIDTH, 0x8C, THE_BYTE0);
OSDClear(0, ROW_COUNT, 0, COL_WIDTH, 0x00, THE_BYTE1);
OSDClear(0, ROW_COUNT, 0, COL_WIDTH, 0x20, THE_BYTE2);
OSDPosition(30,30,1,0,0x01);
Gotoxy(1,1,BYTE_DISPLAY);
switch(stSystemData.InputSource)
{
case _SOURCE_VGA:
Textout(sVGA);
w = 3;
break;
case _SOURCE_DVI:
w = 3;
Textout(sDVI);
break;
case _SOURCE_VIDEO8_AV:
w = 5;
Textout(sVIDEO);
break;
case _SOURCE_VIDEO8_SV:
Textout(sSVIDEO);
w = 6;
break;
case _SOURCE_VIDEO8_YUV:
Textout(sYUV);
w = 3;
break;
case _SOURCE_YPBPR:
Textout(sYPBPR);
w = 5;
break;
}
w = 40 + w * 12;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -