📄 osdtv003.c
字号:
{
case VK_MENU: MAutoSearchAdjMenu(); break;
case VK_LEFT: MAutoSearchAdjLR(1); break;
case VK_RIGHT: MAutoSearchAdjLR(0); break;
case VK_ENTER: MAutoSearchAdjEnter(); break;
}
}
//----------------------------------------------------------------------------------------------------
void MAutoSearchAdjMenu()
{
ucOsdState = MENU_AUTO_SEARCH;
SelectState();
}
//----------------------------------------------------------------------------------------------------
void MAutoSearchAdjLR(unsigned char LR)
{
// : Insert Adjust Code & Redraw
LR = 0;
}
//----------------------------------------------------------------------------------------------------
void MAutoSearchAdjEnter()
{
// : Not Process
}
//----------------------------------------------------------------------------------------------------
void CShowAutoSearchSlider(BYTE ucCurrentValue)
{
OSDSlider(4, 5, 16, ucCurrentValue, 100, 0x10);
}
//----------------------------------------------------------------------------------------------------
void CShowAutoSerachTotal(BYTE ucSearchTotal)
{
Gotoxy(12,6,BYTE_DISPLAY);
PrintfDec(ucSearchTotal);
}
//----------------------------------------------------------------------------------------------------
bit CStopAutoSearch(void)
{
#if(KEY_TYPE == KEY_ADC)
if (_MENU_KEY_MASK == CKeyScan())
{
CTimerDelayXms(100);
if (_MENU_KEY_MASK == CKeyScan())
return 1; // Stop auto search
}
#endif
return 0; // Continue auto search
}
//----------------------------------------------------------------------------------------------------
//--------- Manual Search PROC ----------------------------------
void MManualSearchAdjProc()
{
switch(ucKeyMessage)
{
case VK_MENU: MManualSearchAdjMenu(); break;
case VK_LEFT: MManualSearchAdjLR(1); break;
case VK_RIGHT: MManualSearchAdjLR(0); break;
case VK_ENTER: MManualSearchAdjEnter(); break;
}
}
//----------------------------------------------------------------------------------------------------
void MManualSearchAdjMenu()
{
ucOsdState = MENU_MANUAL_SEARCH;
SelectState();
// : Insert Send Save To EEPROM Msg
}
//----------------------------------------------------------------------------------------------------
void MManualSearchAdjLR(unsigned char LR)
{
// For test eric 0512
CManualSearch((bit)LR,stVDCColor.CurrentChannel);
CTimerDelayXms(200);
}
//----------------------------------------------------------------------------------------------------
void MManualSearchAdjEnter()
{
// : Not Process
}
//----------------------------------------------------------------------------------------------------
//--------- Tuning PROC ----------------------------------
void MTuningAdjProc()
{
switch(ucKeyMessage)
{
case VK_MENU: MTuningAdjMenu(); break;
case VK_LEFT: MTuningAdjLR(1); break;
case VK_RIGHT: MTuningAdjLR(0); break;
case VK_ENTER: MTuningAdjEnter(); break;
}
}
//----------------------------------------------------------------------------------------------------
void MTuningAdjMenu()
{
ucOsdState = MENU_TUNING;
SelectState();
CLR_KEYREPEATENABLE();
// : Insert Send Save To EEPROM Msg
}
//----------------------------------------------------------------------------------------------------
void MTuningAdjLR(unsigned char LR)
{
SET_KEYREPEATENABLE();
// : Insert Adjust Code & Redraw
CTuningCurrentChannel((bit)LR,stVDCColor.CurrentChannel);
}
//----------------------------------------------------------------------------------------------------
void MTuningAdjEnter()
{
// : Not Process
}
//----------------------------------------------------------------------------------------------------
#if(_AUTO_POWER_DOWN)
void CShowTimer(void)
{
BYTE ucCurrentMin = ucAutoPowerDownTime - 1;
BYTE ucCurrentSec = 59 - (BYTE)(ucMinuteCount/1000);
if (!bTimerOnScreen)
{
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();
bTimerOnScreen = 1;
}
Gotoxy(3,0,BYTE_DISPLAY);
CShowFiveNumber(ucAutoPowerDownTime - 1, 2);
OutputChar(0x3a); // Show ":"
CShowFiveNumber(59 - (BYTE)(ucMinuteCount/1000), 2);
CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
}
#endif
//--------- Channel PROC ----------------------------------
void MChannelAdjProc()
{
switch(ucKeyMessage)
{
case VK_MENU: MChannelAdjMenu(); break;
case VK_LEFT: MChannelAdjLR(1); break;
case VK_RIGHT: MChannelAdjLR(0); break;
case VK_ENTER: MChannelAdjEnter(); break;
}
}
//----------------------------------------------------------------------------------------------------
void MChannelAdjMenu()
{
ucOsdState = MENU_CHANNEL;
SelectState();
// : Insert Send Save To EEPROM Msg
}
//----------------------------------------------------------------------------------------------------
void MChannelAdjLR(unsigned char LR)
{
stVDCColor.CurrentChannel = ValueInRangeChange(0,CloadMaxChannelNumber(),stVDCColor.CurrentChannel,LR,1);
CSetTVChannel(stVDCColor.CurrentChannel);
Gotoxy(12,5,BYTE_DISPLAY);
PrintfDec(stVDCColor.CurrentChannel);
// Save current channel
CEepromSaveVedioColor();
}
//----------------------------------------------------------------------------------------------------
void MChannelAdjEnter()
{
// : Not Process
}
//----------------------------------------------------------------------------------------------------
//--------- Swap PROC ----------------------------------
void MSwapAdjProc()
{
switch(ucKeyMessage)
{
case VK_MENU: MSwapAdjMenu(); break;
case VK_LEFT: MSwapAdjLR(1); break;
case VK_RIGHT: MSwapAdjLR(0); break;
case VK_ENTER: MSwapAdjEnter(); break;
}
}
//----------------------------------------------------------------------------------------------------
void MSwapAdjMenu()
{
WORD ucSwapFreq = CLoadChannelFreq(stVDCColor.CurrentChannel);
BYTE ucSwapColorSystem = CLoadChannelColorType(stVDCColor.CurrentChannel);
BYTE ucSwapSoundSystem = CLoadChannelSoundType(stVDCColor.CurrentChannel);
CSaveChannelFreq(CLoadChannelFreq(ucPrevChannel), stVDCColor.CurrentChannel);
CSaveChannelColorType(CLoadChannelColorType(ucPrevChannel), stVDCColor.CurrentChannel);
CSaveChannelSoundType(CLoadChannelSoundType(ucPrevChannel), stVDCColor.CurrentChannel);
CSaveChannelFreq(ucSwapFreq, ucPrevChannel);
CSaveChannelColorType(ucSwapColorSystem, ucPrevChannel);
CSaveChannelSoundType(ucSwapSoundSystem, ucPrevChannel);
CSetTVChannel(stVDCColor.CurrentChannel);
ucOsdState = MENU_SWAP;
SelectState();
}
//----------------------------------------------------------------------------------------------------
void MSwapAdjLR(unsigned char LR)
{
stVDCColor.CurrentChannel = ValueInRangeChange(0,CloadMaxChannelNumber(),stVDCColor.CurrentChannel,LR,1);
CSetTVChannel(stVDCColor.CurrentChannel);
Gotoxy(12,5,BYTE_DISPLAY);
PrintfDec(stVDCColor.CurrentChannel);
}
//----------------------------------------------------------------------------------------------------
void MSwapAdjEnter()
{
}
//----------------------------------------------------------------------------------------------------
//--------- Skip PROC ----------------------------------
void MSkipAdjProc()
{
switch(ucKeyMessage)
{
case VK_MENU: MSkipAdjMenu(); break;
case VK_LEFT: MSkipAdjLR(1); break;
case VK_RIGHT: MSkipAdjLR(0); break;
case VK_ENTER: MSkipAdjEnter(); break;
}
}
//----------------------------------------------------------------------------------------------------
void MSkipAdjMenu()
{
ucOsdState = MENU_SKIP;
SelectState();
}
//----------------------------------------------------------------------------------------------------
void MSkipAdjLR(unsigned char LR)
{
LR = CLoadChannelSkip(stVDCColor.CurrentChannel);
LR = 1 - LR;
// Save current channel skip state
CSaveChannelSkip((bit)LR, stVDCColor.CurrentChannel);
OSDClear(5,1,10,10,0x00,BYTE_DISPLAY);
CenterTextout((BYTE *)sSkipFunc[LR][GET_LANGUAGE],13,5);
LR = 0;
}
//----------------------------------------------------------------------------------------------------
void MSkipAdjEnter()
{
// : Not Process
}
//----------------------------------------------------------------------------------------------------
//--------- Blue PROC ----------------------------------
void MBlueAdjProc()
{
switch(ucKeyMessage)
{
case VK_MENU: MBlueAdjMenu(); break;
case VK_LEFT: MBlueAdjLR(1); break;
case VK_RIGHT: MBlueAdjLR(0); break;
case VK_ENTER: MBlueAdjEnter(); break;
}
}
//----------------------------------------------------------------------------------------------------
void MBlueAdjMenu()
{
ucOsdState = MENU_BLUE;
SelectState();
// : Insert Send Save To EEPROM Msg
}
//----------------------------------------------------------------------------------------------------
void MBlueAdjLR(unsigned char LR)
{
LR = _GET_BLUE_BACKGROUND();
LR = 1 - LR;
_SET_BLUE_BACKGROUND(LR);
CEepromSaveSystemData(); // Save Adjust result
OSDClear(5,1,13,3,0x00,BYTE_DISPLAY);
CenterTextout((BYTE *)sOn_Off[LR][GET_LANGUAGE],13,5);
}
//----------------------------------------------------------------------------------------------------
void MBlueAdjEnter()
{
// : Not Process
}
//----------------------------------------------------------------------------------------------------
//--------- AutoPowerDown PROC ----------------------------------
void MAutoPowerDownAdjProc()
{
switch(ucKeyMessage)
{
case VK_MENU: MAutoPowerDownAdjMenu(); break;
case VK_LEFT: MAutoPowerDownAdjLR(1); break;
case VK_RIGHT: MAutoPowerDownAdjLR(0); break;
case VK_ENTER: MAutoPowerDownAdjEnter(); break;
}
}
//----------------------------------------------------------------------------------------------------
void MAutoPowerDownAdjMenu()
{
ucOsdState = MENU_AUTO_POWER_DOWN;
SelectState();
}
//----------------------------------------------------------------------------------------------------
void MAutoPowerDownAdjLR(unsigned char LR)
{
#if(_AUTO_POWER_DOWN)
BYTE ucTemp = _GET_POWER_DOWN_TIME();
ucTemp = ValueInRangeChange(0,4,ucTemp,LR,1);
_SET_POWER_DOWN_TIME(ucTemp);
CEepromSaveSystemData(); // Save Adjust result
ucAutoPowerDownTime = ucTemp * 15;
if (0 == ucAutoPowerDownTime) // Auto power down time off
{
ucAutoPowerDownTime = 0xff;
}
ucMinuteCount = 0; // Reset count
OSDClear(5,1,12,3,0x00,BYTE_DISPLAY);
Gotoxy(12,5,BYTE_DISPLAY);
PrintfDec(ucTemp * 15);
#else
LR = 0;
#endif
}
//----------------------------------------------------------------------------------------------------
void MAutoPowerDownAdjEnter()
{
// : Not Process
}
//----------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------
//
// 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(const BYTE ucTvNumber, const 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,28,1,0x01);
COsdFxEnableOsd();
CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
#if(_AUTO_POWER_DOWN)
bTimerOnScreen = 0;
ucOsdState = MENU_SHOW_CHANNEL_SATAE;
#endif
y = 0;
if(ucOption & _SHOW_CH_TV_NUMBER)
{
Gotoxy(5,y,BYTE_DISPLAY);
PrintfDec(ucTvNumber);
y++;
}
if(ucOption & _SHOW_CH_TV_TYPE)
{
RightAlignTextOut((unsigned char code *)sTVType[ucTVType],8,y);
y++;
}
/* if(ucOption & _SHOW_CH_SOUND_TYPE)
{
RightAlignTextOut((unsigned char code *)sTVSoundType[CLoadChannelSoundType(stVDCColor.CurrentChannel)], 8, y);
y++;
}*/
}
//-------------------------------------------------------------------------
#endif //#if(_VIDEO_TV_SUPPORT)
#endif //#if(OSD_TYPE == OSD003)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -