📄 osdtv900.c
字号:
#define __OSDTV900___
#include "Header\Include.h"
#if(_OSD_TYPE == _OSD900)
#if(_VIDEO_TV_SUPPORT && _TV_CHIP != _TV_NONE)
//------------------------------------------------------------
void OSDTVProc()
{
switch(ucOsdState)
{
case _MENU_NONE: MTVNoneProc(); break;
case _MENU_COLOR:
case _MENU_IMAGE_SETTING:
case _MENU_TV:
case _MENU_OSD_MENU:
case _MENU_LANGUAGE:
case _MENU_MISC:
case _MENU_EXIT: MTVMainProc(); break;
case _MENU_CONTRAST:
case _MENU_BRIGHTNESS:
case _MENU_HUE:
case _MENU_SATURATION:
case _MENU_COLOR_BACK: MAVColorPageProc(); break;
case _MENU_GAMMA:
case _MENU_SHARPNESS:
case _MENU_IMAGE_BACK: MAVImagePageProc(); break;
case _MENU_OSD_HPOS:
case _MENU_OSD_VPOS:
case _MENU_OSD_TIMER:
case _MENU_OSD_BACK: MOsdPageProc(); break;
case _MENU_RESET:
case _MENU_VOLUME:
case _MENU_MUTE:
case _MENU_MISC_BACK: MMiscPageProc(); break;
case _MENU_LANGUAGE_ADJ: MLanguageProc(); break;
case _MENU_CONTRAST_ADJ: MContrastProc(); break;
case _MENU_BRIGHTNESS_ADJ: MBrightnessProc(); break;
case _MENU_GAMMA_ADJ: MGammaProc(); break;
case _MENU_SHARPNESS_ADJ: MSharpnessProc(); break;
case _MENU_OSD_HPOS_ADJ: MOsdHPosProc(); break;
case _MENU_OSD_VPOS_ADJ: MOsdVPosProc(); break;
case _MENU_OSD_TIMER_ADJ: MOsdTimerProc(); break;
case _MENU_VOLUME_ADJ : MVolumeProc(); break;
case _MENU_HUE_ADJ: MAVHueAdjProc(); break;
case _MENU_SATURATION_ADJ: MAVSaturationAdjProc();break;
//---- TV Item Proc----
case _MENU_CHANNEL:
case _MENU_SYSTEM:
case _MENU_TUNING:
case _MENU_SWAP:
case _MENU_AUTO_SEARCH:
case _MENU_MANUAL_SEARCH:
case _MENU_TV_BACK: MTVSubMenuProc(); break;
case _MENU_CHANNEL_ADJ: MChannelProc(); break;
case _MENU_SYSTEM_ADJ: MSystemProc(); break;
case _MENU_TUNING_ADJ: MTuningProc(); break;
case _MENU_SWAP_ADJ: MSwapProc(); break;
case _MENU_MANUAL_SEARCH_ADJ: MManualSearchProc(); break;
default:
break;
}
}
//-------------------------------------------------------------------------
//
// ucOption: 0x01: Only show ucTvNumber SHOW_CH_TV_NUMBER
// 0x02: Show tv type SHOW_CH_TV_TYPE
// 0x04: Show sound type SHOW_CH_SOUND_TYPE
//
//-------------------------------------------------------------------------
void CShowTVNumber(BYTE ucTvNumber, BYTE ucOption)
{
unsigned char y;
COsdFxDisableOsd();
SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);
SetOSDDouble(OSD_DOUBLE_HEIGHT_ENABLE | OSD_DOUBLE_WIDTH_ENABLE);
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,38,1,0x01);
COsdFxEnableOsd();
CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
y = 0;
if(ucOption & SHOW_CH_TV_NUMBER)
{
ucTvNumber = ucTvNumber; //test
Gotoxy(5,y,BYTE_DISPLAY);
PrintfDec(ucTvNumber);
y++;
}
if(ucOption & SHOW_CH_TV_TYPE)
{
if(ucTVType < 4)
{
RightAlignTextOut((unsigned char code *)sTVType[ucTVType],8,y);
y++;
}
}
if(ucOption & SHOW_CH_SOUND_TYPE)
{
CI2cRead(_TV_MAX_CHANNEL_EEPROM_ADDR, stVDCColor.CurrentChannel, 1, pData); // Read current channel sound and tv system
RightAlignTextOut((unsigned char code *)sTVSoundType[pData[0] & 0x03], 8, y);
y++;
}
}
//-------------------------------------------------------------------------
void CShowAutoSearchSlider(BYTE ucCurrentValue)
{
SLIDER(ucCurrentValue);
}
//----------------------------------------------------------------------------------------------------
bit CStopAutoSearch(void)
{
//return 1;//while stop auto search
return 0; // Continue auto search
}
//----------------------------------------------------------------------------------------------------
void CShowAutoSerachTotal(BYTE ucSearchTotal)
{
Gotoxy(9,21,BYTE_DISPLAY);
PrintfDec(ucSearchTotal);
}
//----------------------------------------------------------------------------------------------------
void DrawTVMainPage()
{
// Close Window2
COsdFxCloseWindow(2);
// Load font
CScalerLoadFont(Fnt_MainPage_Ico,0x7a * 2,42 * 2,_COMPRESS_FONT);
CScalerLoadFont(Fnt_TV_Ico, 0x86 * 2,6 * 2, _COMPRESS_FONT);
CScalerLoadFont(Fnt_Jap2, 0x03,10, _COMPRESS_FONT);
SetIconCntAtb(7); //Set Icon Count : 7
// Out Icon & Out Text
DispIcon(3,4,0x7a); //Color Icon
DispIcon(3,7,0x80); //Image setting Icon
DispIcon(3,10,0x86); //TV Icon
DispIcon(3,13,0x8c); //Osd Menu Icon
DispIcon(3,16,0x92); //Languege Icon
DispIcon(3,19,0x98); //Misc Icon
DispIcon(3,22,0x9e); //Exit Icon
Gotoxy(7,5,BYTE_DISPLAY);
Textout((unsigned char code *)sColor[GET_LANGUAGE]);
Gotoxy(7,8,BYTE_DISPLAY);
Textout((unsigned char code *)sImageSetting[GET_LANGUAGE]);
Gotoxy(7,11,BYTE_DISPLAY);
Textout((unsigned char code *)sMenuTV[GET_LANGUAGE]);
Gotoxy(7,14,BYTE_DISPLAY);
Textout((unsigned char code *)sOsdMenu[GET_LANGUAGE]);
Gotoxy(7,17,BYTE_DISPLAY);
Textout((unsigned char code *)sLanguage[GET_LANGUAGE]);
Gotoxy(7,20,BYTE_DISPLAY);
Textout((unsigned char code *)sMisc[GET_LANGUAGE]);
Gotoxy(7,23,BYTE_DISPLAY);
Textout((unsigned char code *)sExit[GET_LANGUAGE]);
DrawTVPen(1);
}
//---------------------------------------------------------------------------
void DrawTVPen(unsigned char ucState)
{
unsigned char y;
switch(ucOsdState)
{
case _MENU_COLOR: y = 5; break;
case _MENU_IMAGE_SETTING: y = 8; break;
case _MENU_TV: y = 11; break;
case _MENU_OSD_MENU: y = 14; break;
case _MENU_LANGUAGE: y = 17; break;
case _MENU_MISC: y = 20; break;
case _MENU_EXIT: y = 23; break;
}
DrawPen(ucState,y);
}
//---------------------------------------------------------------------------
void DrawTVPage()
{
// Load font
CScalerLoadFont(Fnt_TVPage_Ico, 0x7a * 2,30 * 2,_COMPRESS_FONT);
CScalerLoadFont(Fnt_Back_Ico,0x98 * 2,6 * 2,_COMPRESS_FONT);
CLEAR_OSD_ADJUST();
Set2BitColor(1,4,5,14,sStyle2BitPen);
// Out Icon & Out Text
DispIcon(3,4,0x7A); // Channel Icon
DispIcon(3,6,0x80); // System Icon
DispIcon(3,8,0x86); // Tuning Icon
DispIcon(3,10,0x8C); // Swap Icon
DispIcon(3,12,0x92); // AutoSearch Icon
DispIcon(3,14,0x92); // ManualSearch Icon
DispIcon(3,16,0x98); // Back Icon
Gotoxy(7,5,BYTE_DISPLAY);
Textout((unsigned char code *)sChannel[GET_LANGUAGE]);
Gotoxy(7,7,BYTE_DISPLAY);
Textout((unsigned char code *)sSystem[GET_LANGUAGE]);
Gotoxy(7,9,BYTE_DISPLAY);
Textout((unsigned char code *)sTuning[GET_LANGUAGE]);
Gotoxy(7,11,BYTE_DISPLAY);
Textout((unsigned char code *)sSwap[GET_LANGUAGE]);
Gotoxy(7,13,BYTE_DISPLAY);
Textout((unsigned char code *)sAutoSearch[GET_LANGUAGE]);
Gotoxy(7,15,BYTE_DISPLAY);
Textout((unsigned char code *)sManualSearch[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_CHANNEL) * 2 + 5);
}
//---------------------------------------------------------------------------
void DrawChannel()
{
Gotoxy(7,22,BYTE_DISPLAY);
Textout("- ");
PrintfDec(stVDCColor.CurrentChannel);
Textout(" \x2c");
}
//---------------------------------------------------------------------------
void DrawTVSystem()
{
CenterTextout((BYTE code *)sTVType[ucTVType],11,21);
}
//---------------------------------------------------------------------------
void DrawTuning()
{
WORD iFreq = CLoadChannelFreq(stVDCColor.CurrentChannel);
CShowAutoSearchSlider(FreqGuage(iFreq));
}
//---------------------------------------------------------------------------
void DrawSwap()
{
Gotoxy(8,21,BYTE_DISPLAY);
PrintfDec(stVDCColor.CurrentChannel);
}
//---------------------------------------------------------------------------
void DrawManualSearch()
{
DrawTuning();
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void MTVNoneProc()
{
switch(ucKeyMessage)
{
case VK_MENU_OUT: break;
case VK_MENU_IN: MTVNoneMenuIn(); break;
case VK_PREV_MENU: MTVNoneLR(0); break;
case VK_NEXT_MENU: MTVNoneLR(1); break;
case VK_ADJ_DEC: break;
case VK_ADJ_INC: break;
case VK_DO: break;
case VK_ENTER: MTVNoneMenuIn(); break;
case VK_LEFT: MTVNoneLR(0); break;
case VK_RIGHT: MTVNoneLR(1); break;
}
}
//------------------------------------------------------------
void MTVNoneMenuIn()
{
ucOsdState = _MENU_COLOR;
LoadLanguageFont();
InitOSDFrame();
DrawMainPage();
COsdFxEnableOsd();
}
//------------------------------------------------------------
void MTVNoneLR(unsigned char LR)
{
LR = LR;
}
//------------------------------------------------------------
//---------------------------------------------------------------------------
void MTVMainProc()
{
switch(ucKeyMessage)
{
case VK_MENU_OUT: MTVMainMenuOut(); break;
case VK_MENU_IN: MTVMainMenuIn(); break;
case VK_PREV_MENU: MTVMainLR(0); break;
case VK_NEXT_MENU: MTVMainLR(1); break;
case VK_ADJ_DEC: break;
case VK_ADJ_INC: break;
case VK_DO: break;
case VK_ENTER: MTVMainMenuIn(); break;
case VK_LEFT: MTVMainLR(0); break;
case VK_RIGHT: MTVMainLR(1); break;
}
}
//------------------------------------------------------------
void MTVMainMenuIn()
{
CLEAR_OSD_CLIENT();
switch(ucOsdState)
{
case _MENU_COLOR:
ucOsdState = _MENU_CONTRAST;
DrawAVColorPage();
break;
case _MENU_IMAGE_SETTING:
ucOsdState = _MENU_GAMMA;
DrawAVImagePage();
break;
case _MENU_TV:
ucOsdState = _MENU_CHANNEL;
DrawTVPage();
break;
case _MENU_OSD_MENU:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -