📄 osdpub902.c
字号:
#if(_VIDEO_TV_SUPPORT)
CEepromSaveVedioColor();
#endif
#if(_VIDEO_TV_SUPPORT && _TV_CHIP != _TV_NONE)
CSaveChannelFreq(0,0);
CSaveChannelColorType(0,0);
CSaveChannelSkip(0,0);
CSaveChannelSoundType(0, 0);
CPrevChannel();
CNextChannel();
CTvAutoSearch();
CManualSearch(0,0);
CTuningCurrentChannel(0, 0);
MChannelProc();
MSystemProc();
MTuningProc();
MSwapProc();
MManualSearchProc();
#endif
}
//----------------------------------------------------------------------------------------------------
void COsdProc()
{
switch(stSystemData.InputSource)
{
case _SOURCE_VGA:
case _SOURCE_DVI:
OSDVGAProc();
break;
case _SOURCE_VIDEO8_AV:
case _SOURCE_VIDEO8_SV:
case _SOURCE_VIDEO8_YUV:
//OSDAVProc();
break;
case _SOURCE_VIDEO8_TV:
//OSDTVProc();
break;
}
#if(_FACTORY_MENU_EN)
COsdFacHandler();
#endif
}
//----------------------------------------------------------------------------------------------------
void COsdDispFirstTimeLoadFont(void)
{
COsdFxDisableOsd();
SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);
CScalerLoadFont(FntGlobal,0x00,127,_COMPRESS_FONT);
}
//----------------------------------------------------------------------------------------------------
void COsdDispOsdTimerEvent(void)
{
COsdFxDisableOsd();
ucOsdState = _MENU_NONE;
}
//---------------------------------------------------------------------------
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
LoadPalette();
}
//---------------------------------------------------------------------------
void InitOSDFrame()
{
InitOsd();
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);
}
//---------------------------------------------------------------------------
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 DispIcon(unsigned char x,unsigned char y,unsigned char ucIconBaseAddr)
{
Gotoxy(x,y,BYTE_DISPLAY);
pData[0] = ucIconBaseAddr;
pData[1] = ucIconBaseAddr + 1;
CScalerWrite(_OSD_DATA_PORT_92,2,pData,_NON_AUTOINC);
}
//---------------------------------------------------------------------------
void Set2BitColor(unsigned char x,unsigned char y,
unsigned char Width,unsigned char Height,
unsigned char code *Style)
{
OSDClear(y,Height,x,Width,Style[0],THE_BYTE0);
OSDClear(y,Height,x,Width,Style[1],THE_BYTE2);
}
//---------------------------------------------------------------------------
void OSDSlider_Base(unsigned char row, unsigned char col, unsigned char length, unsigned char value, unsigned char range,unsigned char color)
{
unsigned int bound;
unsigned char i,c;
OSDLine(row, col + 1, length, color, BYTE_COLOR); // Set Slider Attribute. 4 extra columns for space/numbers/space
bound = length * value;
Gotoxy(col,row,THE_BYTE1);
OutputChar(0x21); // Left Border
for (i = 1; i <= length; i++)
{
if (bound)
{
if(bound >= range)
{
c = 0x28;
bound = bound - range;
}
else
{
color = (bound << 4) / range;
bound = 0;
if (4 > color) c = 0x23;
else if (7 > color) c = 0x24;
else if (10 > color) c = 0x25;
else if (13 > color) c = 0x26;
else c = 0x27;
}
}
else
{
c = 0x22;
}
OutputChar(c);
}
OutputChar(0x29); // Right Border
//Gotoxy(length+col-2,row-1,BYTE_DISPLAY);
//PrintfDec(value); //值显示在右边
}
//---------------------------------------------------------------------------
void OSDSlider(unsigned char row, unsigned char col, unsigned char length, unsigned char value, unsigned char range,unsigned char color)
{
OSDSlider_Base(row, col, length, value, range,color);
Gotoxy(length+col-2,row-1,BYTE_DISPLAY);
PrintfDec(value); //值显示在右边
}
//---------------------------------------------------------------------------
void OSDSliderTime(unsigned char row, unsigned char col, unsigned char length, unsigned char value, unsigned char range,unsigned char color)
{
OSDSlider_Base(row, col, length, value, range,color);
Gotoxy(length+col-2,row-1,BYTE_DISPLAY);
PrintfDec(value + MIN_TIMEOUT); //值显示在右边
}
//---------------------------------------------------------------------------
void LoadLanguageFont()
{
switch(GET_LANGUAGE)
{
case _LNG_CHINESE_S:
CScalerLoadFont(FntCHI_S, 0x80,52,_COMPRESS_FONT);
break;
case _LNG_CHINESE_T:
CScalerLoadFont(FntCHI_T, 0x80,52,_COMPRESS_FONT);
break;
case _LNG_JAPANESE:
CScalerLoadFont(FntJapanese, 0x80,71, _COMPRESS_FONT);
break;
}
}
//----------------------------------------------------------------------------------------------------
void LoadPalette()
{
switch(GET_OSDCOLOR())
{
case 0:
CAdjustColorPalette(tPALETTE_0);
break;
default:
break;
}
}
//---------------------------------------------------------------------------------------------------------------------
void CenterLineTextout(unsigned char code *Text,unsigned char row,unsigned char length)
{
unsigned char Len = StrLen(Text);
if(length < Len)
length = 0;
else
length = (length - Len) / 2;
Gotoxy(length,row,THE_BYTE1);
Textout(Text);
}
//---------------------------------------------------------------------------------------------------------------------
void RightAlignLineTextOut(unsigned char code *Text,unsigned char row,unsigned char length)
{
unsigned char Len = StrLen(Text);
if(length>Len)
length =length-Len;
else
length =0;
Gotoxy(length,row,THE_BYTE1);
Textout(Text);
}
//---------------------------------------------------------------------------------------------------------------------
void ShowMode()
{
OutputDisplaySize();
OutputChar(' ');OutputChar('@');OutputChar(' ');
OutputRefrushRate();
}
//----------------------------------------------------------------------------------------------------
void CFirstInitOsd(void)
{
}
//----------------------------------------------------------------------------------------------------
#endif //#if(_OSD_TYPE == _OSD902)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -