📄 osdtv501.c
字号:
case VK_UP: MenuItemUD(tInstallItem,1); break;
case VK_DOWN: MenuItemUD(tInstallItem,0); break;
//FENIXEND
}
}
//---------------------------------------------------------------------------
void MSkipMenu()
{
ucOsdState = _M_SKIP;
CLR_SLIDER();
}
//---------------------------------------------------------------------------
void MSkipLR(unsigned char LR)
{
OSDLine(15,10,15,0x00,BYTE_DISPLAY);
LR = CLoadChannelSkip(stVDCColor.CurrentChannel);
LR = 1 - LR;
// Save current channel skip state
CSaveChannelSkip(LR, stVDCColor.CurrentChannel);
CDrawSkip();
}
//---------------------------------------------------------------------------
void CDrawSkip(void)
{
Gotoxy(5,15,BYTE_DISPLAY);
OutputChar(0x3b);
Gotoxy(27,15,BYTE_DISPLAY);
OutputChar(0x3c);
CenterTextout((BYTE code *)sOnOff[CLoadChannelSkip(stVDCColor.CurrentChannel)][GET_LANGUAGE],16,15);
}
//---------------------------------------------------------------------------
void MAFCProc()
{
CDrawAfc();
switch(ucKeyMessage)
{
case VK_MENU: MAFCMenu(); break;
case VK_LEFT: MAFCLR(1); break;
case VK_RIGHT: MAFCLR(0); break;
//FENIXADD
case VK_UP: MenuItemUD(tInstallItem,1); break;
case VK_DOWN: MenuItemUD(tInstallItem,0); break;
//FENIXEND
}
}
//---------------------------------------------------------------------------
void MAFCMenu() //gg
{
ucOsdState = _M_AFC;
CLR_SLIDER();
}
//---------------------------------------------------------------------------
void MAFCLR(unsigned char LR)
{
OSDLine(15,10,15,0x00,BYTE_DISPLAY);
LR = CLoadChannelAFC(stVDCColor.CurrentChannel);
LR = 1 - LR;
CSaveChannelAFC(LR, stVDCColor.CurrentChannel);
CDrawAfc();
}
//---------------------------------------------------------------------------
void CDrawAfc(void)
{
Gotoxy(5,15,BYTE_DISPLAY);
OutputChar(0x3b);
Gotoxy(27,15,BYTE_DISPLAY);
OutputChar(0x3c);
CenterTextout((BYTE code *)sOnOff[CLoadChannelAFC(stVDCColor.CurrentChannel)][GET_LANGUAGE],16,15);
}
//---------------------------------------------------------------------------
void MFineTuneProc()
{
SLIDER(_FINETUNE_GUAGE); //FENIX ADD FINE TUNE
switch(ucKeyMessage)
{
case VK_MENU: break;//MFineTuneMenu(); break;
case VK_LEFT: MFineTuneLR(1); break;
case VK_RIGHT: MFineTuneLR(0); break;
//FENIXADD
case VK_UP: MenuItemUD(tInstallItem,1); break;
case VK_DOWN: MenuItemUD(tInstallItem,0); break;
//FENIXEND
}
}
//---------------------------------------------------------------------------
void MFineTuneLR(unsigned char LR)
{
AdjustFineTune(LR);
}
//---------------------------------------------------------------------------
void AdjustFineTune(unsigned char LR)
{
CTimerDelayXms(80);
CTimerDelayXms(80);
LR = 1 - LR;
if((_FINE_TUNE_RANGE_MAX / _TUNER_FREQ_STEP) > _ABS(FineTuneBaseFreq,CLoadChannelFreq(stVDCColor.CurrentChannel)))
CTuningCurrentChannel((bit)LR,stVDCColor.CurrentChannel);
//WHEN FineTuneBaseFreq == CLoadChannelFreq(stVDCColor.CurrentChannel)
if((_FINE_TUNE_RANGE_MAX / _TUNER_FREQ_STEP) == _ABS(FineTuneBaseFreq,CLoadChannelFreq(stVDCColor.CurrentChannel)))
{
if(FineTuneBaseFreq > CLoadChannelFreq(stVDCColor.CurrentChannel))
{
if(LR)
{
CTuningCurrentChannel((bit)LR,stVDCColor.CurrentChannel);
}
else
{
LR = LR; //DO NOTHING
}
}
else
{
if(LR)
{
LR = LR; //DO NOTHING
}
else
{
CTuningCurrentChannel((bit)LR,stVDCColor.CurrentChannel);
}
}
}
}
//---------------------------------------------------------------------------
void MTVSystemProc()
{
CDrawSystem(ucTVType);
switch(ucKeyMessage)
{
case VK_MENU: break;//MTVSystemMenu(); break;
case VK_LEFT: MTVSystemLR(1); break;
case VK_RIGHT: MTVSystemLR(0); break;
case VK_UP: MenuItemUD(tInstallItem,1); break;
case VK_DOWN: MenuItemUD(tInstallItem,0); break;
}
}
//---------------------------------------------------------------------------
bit bSearchedTVType(BYTE ucTvType)
{
switch(ucTvType)
{
case _TV_NTSC_M : // 60Hz Sound 4.5M NTSC M
#if(_TV_NTSC_M_SUPPORT)
return 1;
#endif
break;
case _TV_NTSC_4_BG : // 60Hz Sound 5.5M NTSC 4/BG
#if(_TV_NTSC_4_BG_SUPPORT)
return 1;
#endif
break;
case _TV_NTSC_4_DK : // 60Hz Sound 6.5M NTSC 4/DK
#if(_TV_NTSC_4_DK_SUPPORT)
return 1;
#endif
break;
case _TV_NTSC_4_I : // 60Hz Sound 6.0M NTSC 4/I
#if(_TV_NTSC_4_I_SUPPORT)
return 1;
#endif
break;
case _TV_PAL_M : // 60Hz Sound 4.5M PAL M
#if(_TV_PAL_M_SUPPORT)
return 1;
#endif
break;
case _TV_PAL_BG : // 50Hz Sound 5.5M PAL B/G
#if(_TV_PAL_BG_SUPPORT)
return 1;
#endif
break;
case _TV_PAL_I : // 50Hz Sound 6.0M PAL I
#if(_TV_PAL_I_SUPPORT)
return 1;
#endif
break;
case _TV_PAL_DK : // 50Hz Sound 6.5M PAL D/K
#if(_TV_PAL_DK_SUPPORT)
return 1;
#endif
break;
case _TV_PAL_N : // 50Hz Sound 4.5M PAL N
#if(_TV_PAL_N_SUPPORT)
return 1;
#endif
break;
case _TV_SECAM_BG : // 50Hz Sound 5.5M SECAM B/G
#if(_TV_SECAM_BG_SUPPORT)
return 1;
#endif
break;
case _TV_SECAM_DK : // 50Hz Sound 6.5M SECAM D/K
#if(_TV_SECAM_DK_SUPPORT)
return 1;
#endif
break;
case _TV_SECAM_L : // 50Hz Sound 6.5M SECAM L
#if(_TV_SECAM_L_SUPPORT)
return 1;
#endif
break;
case _TV_SECAM_LL : // 50Hz Sound 6.5M Secam L'
#if(_TV_SECAM_LL_SUPPORT)
return 1;
#endif
break;
} // end switch
return 0;
}
//---------------------------------------------------------------------------
BYTE MatchUCSoundType(BYTE ucTVType)
{
BYTE ucSoundType;
switch(ucTVType)
{
case _TV_PAL_M : // 60Hz Sound 4.5M PAL M // Not support
case _TV_NTSC_M : // 60Hz Sound 4.5M NTSC M
case _TV_PAL_N : // 50Hz Sound 4.5M PAL N // Not support
ucSoundType = 0x00;
break;
case _TV_NTSC_4_BG : // 60Hz Sound 5.5M NTSC 4/BG // Not support
case _TV_PAL_BG : // 50Hz Sound 5.5M PAL B/G
case _TV_SECAM_BG : // 50Hz Sound 5.5M SECAM B/G // Not support
ucSoundType = 0x01;
break;
default: // Normal sound
case _TV_NTSC_4_I : // 60Hz Sound 6.0M NTSC 4/I // Not support
case _TV_PAL_I : // 50Hz Sound 6.0M PAL I
ucSoundType = 0x02;
break;
case _TV_NTSC_4_DK : // 60Hz Sound 6.5M NTSC 4/DK // Not support
case _TV_PAL_DK : // 50Hz Sound 6.5M PAL D/K
case _TV_SECAM_DK : // 50Hz Sound 6.5M SECAM D/K // Not support
case _TV_SECAM_L : // 50Hz Sound 6.5M SECAM L // Not support
case _TV_SECAM_LL : // 50Hz Sound 6.5M Secam L' // Not support
ucSoundType = 0x03;
break;
}
return ucSoundType;
}
//---------------------------------------------------------------------------
void MTVSystemLR(unsigned char LR)
{
BYTE ucSoundType = 0;
// for(pData[15] = _TV_SYSTEM_SELECT_START; pData[15] < (_TV_SYSTEM_SELECT_END + 1); pData[15]++)
for(pData[15] = 0; pData[15] < (_MAX_TV_TYPE + 1); pData[15]++)
{
ucTVType = ValueInRangeChange(0, _MAX_TV_TYPE, ucTVType, LR, 1);
if (bSearchedTVType(ucTVType))
break;
}
ucSoundType = MatchUCSoundType(ucTVType);
OSDLine(15,10,15,0x00,BYTE_DISPLAY);
CDrawSystem(ucTVType);
CSaveChannelColorType(stVDCColor.CurrentChannel, ucTVType);
CSaveChannelSoundType(stVDCColor.CurrentChannel, ucSoundType);
rp_CI2CWrite9886(ucTVType); // set 9886
}
//------------------------
void CDrawSystem(BYTE ucTVType)
{
Gotoxy(5,15,BYTE_DISPLAY);
OutputChar(0x3b);
Gotoxy(27,15,BYTE_DISPLAY);
OutputChar(0x3c);
CenterTextout((BYTE *)sTVType[ucTVType],16,15);
}
//---------------------------------------------------------------
void tvChannelSwapProc()
{
switch(ucKeyMessage)
{
case VK_MENU: _SET_INPUTCH_STATE(_GET_ONE_NUM);
tvChannelSwap(); break;
case VK_UP: ucOsdState = _MENU_NONE;
MChannelLR(0); break;
case VK_DOWN: ucOsdState = _MENU_NONE;
MChannelLR(1); break;
#if(IR_ENABLE)
case _IR_NUM0_KEY_MESSAGE:
case _IR_NUM1_KEY_MESSAGE:
case _IR_NUM2_KEY_MESSAGE:
case _IR_NUM3_KEY_MESSAGE:
case _IR_NUM4_KEY_MESSAGE:
case _IR_NUM5_KEY_MESSAGE:
case _IR_NUM6_KEY_MESSAGE:
case _IR_NUM7_KEY_MESSAGE:
case _IR_NUM8_KEY_MESSAGE:
case _IR_NUM9_KEY_MESSAGE:
irGetMultiNumber();
tvChannelSwap(); break;
}
//fenix do swap;
#endif
}
//fenix add afc function-------------------------------------------------------
void TVAfcAdjust()
{
//################### fenix add afc
BYTE afcOnOff = 0;
BYTE rData = 0;
BYTE offsetFreq = 0;
BYTE bSearchAction = 0;
afcOnOff = CLoadChannelAFC(stVDCColor.CurrentChannel);
if(afcOnOff)
{
rData = rp_CRead9886();
switch ((rData >> 1) & 0x0f)
{
case 0: afcOnOff = 0; break;
case 1: afcOnOff = 0; break;
case 2: offsetFreq = 1;
bSearchAction = 1 - bSearchAction; break;
case 3: offsetFreq = 2;
bSearchAction = 1 - bSearchAction; break;
case 4: offsetFreq = 2;
bSearchAction = 1 - bSearchAction; break;
case 5: offsetFreq = 3;
bSearchAction = 1 - bSearchAction; break;
case 6: offsetFreq = 3;
bSearchAction = 1 - bSearchAction; break;
case 7: offsetFreq = 4;
bSearchAction = 1 - bSearchAction; break;
case 8: offsetFreq = 4; break;
case 9: offsetFreq = 3; break;
case 10: offsetFreq = 3; break;
case 11: offsetFreq = 2; break;
case 12: offsetFreq = 2; break;
case 13: offsetFreq = 1; break;
case 14: offsetFreq = 1; break;
case 15: afcOnOff = 0; break;
default: afcOnOff = 0; break;
}
}
else
offsetFreq = 0;
//################
// ucTVType = CLoadChannelColorType(ucCurrentChannel); // set tv system
// rp_CI2CWrite9886(ucTVType); // set tv system
//############################################# fenix add afc
if(afcOnOff)
{
//----------------- VIF 38.9----------------------
#if(_TV_VIF_FREQ == _VIF_38DOT9)//gg
do
{
CTuningCurrentChannel(bSearchAction,stVDCColor.CurrentChannel);
}while(offsetFreq --);
//------------------ VIF 38 ------------------------
#elif(_TV_VIF_FREQ == _VIF_38)
do
{
CTuningCurrentChannel(bSearchAction,stVDCColor.CurrentChannel);
}while(offsetFreq --);
#endif
}
}
//###################### fenix add manual adjust ###################
void MTVManualAdjustProc()
{
CDrawManualAdjust();
switch(ucKeyMessage)
{
case VK_MENU: break;//MTVSystemMenu(); break;
case VK_LEFT: MTVManualAdjustLR(1); break;
case VK_RIGHT: MTVManualAdjustLR(0); break;
case VK_UP: MenuItemUD(tInstallItem,1); break;
case VK_DOWN: MenuItemUD(tInstallItem,0); break;
}
}
//---------------
void MTVManualAdjustLR(unsigned char LR)
{
CTuningCurrentChannel(LR,stVDCColor.CurrentChannel);//CTVChannelManualAdjust(0);
// printMsg("TV MANUL ADJUST+");//FENIX TV MANUL ADJUST-
Gotoxy(24,15,BYTE_DISPLAY);
if(LR)
{
OutputChar('-');
}
else
{
OutputChar(0x2c);
}
}
//--------------------------
void CDrawManualAdjust()
{
Gotoxy(5,15,BYTE_DISPLAY);
OutputChar(0x3b);
Gotoxy(27,15,BYTE_DISPLAY);
OutputChar(0x3c);
CenterTextout((BYTE *)sManualAdjust[GET_LANGUAGE],16,15);
}
//-----------------------------------------------------------------------------
#endif //#if(_VIDEO_TV_SUPPORT)
#endif //#if(OSD_TYPE == OSD501)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -