📄 keypad.c
字号:
OSDMoveCursor();
Timer0Start();
}
return 1;
}
bit IRDownKeyCtrl(void)
{
//Thomas
#ifdef TV
if (uiaSrcMux1[EepPublic.cSource].VideoType==itypeTV && m_cOSDMenu == idNULLMENU){
SearchVaildCahnnel(0); //Filter out the skipped channel
ChannelSel();
OSDTVShowChannel(EepTV.cChannelNum);
}else
#endif
if(m_cOSDMenu != idNULLMENU){
OSDClearCursor();
if(m_bOSDEnable)
m_cItem++;
if(m_cItem>=ALL_MENU[m_cOSDMenu]->Item_Num)
m_cItem=0;
#ifdef TV
if(m_cOSDMenu == idTVFAVOMENU){
OSDCleanLine(19,0,0,32);
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_ChanelIndex,0x00);
twdDelay(5);
}
#endif
OSDMoveCursor();
Timer0Start();
}
return 1;
}
bit IRSourceSelKeyCtrl(void)
{
EepPublic.cSource++;
if(uiaSrcMux1[EepPublic.cSource].VideoType==itypeEND)
EepPublic.cSource = 1;
SourceSelect();
OSDShowSource();
I2CWriteByte(EEPGLOBAL_BLOCK, EEPPUBLIC_OFFSET+2,EepPublic.cSource); //write the language idex to eeprom
twdDelay(NVRDELAY);
return 1;
}
#ifdef TV
//Thomas
void IRNumKeyCtrl(uCHAR cNum)
{
uCHAR iChannel[4];
uCHAR cTemp,m_cTV_Num;
BITS bFavoriteSet;
if (uiaSrcMux1[EepPublic.cSource].VideoType !=itypeTV){
return;
}
if(m_cOSDMenu==idTVFAVOMENU && m_cItem == 0){
return;
}else if(m_cOSDMenu==idTVFAVOMENU){
bFavoriteSet = 1;
}else{
bFavoriteSet = 0;
}
cTemp=I2CReadByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_ChanelIndex)&0x03;
twdDelay(5);
if(!cTemp){ //first key number
if(bFavoriteSet){
OSDCleanLine(19,0,0,32);
}else{
OSDClearPage();
OSDPosition(RIGHT_TOP);
OSDEnable();
}
if(cNum == 10){ // have three key no.
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_ChanelIndex,0x02);
twdDelay(5);
iChannel[0] = '1';
iChannel[1] = 'X';
iChannel[2] = 'X';
iChannel[3] = EOL;
if(bFavoriteSet)
OSDShowLine(iChannel ,19,0,COL_GAUGE,OSD_LENGTH);
else
OSDShowLine(iChannel ,19,2,COL_GAUGE,OSD_LENGTH);
}else{
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_ChanelIndex,0x01);
twdDelay(5);
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_Tenth,cNum);
twdDelay(5);
iChannel[0] = 'X';
iChannel[1] = 'X';
iChannel[2] = EOL;
if(bFavoriteSet){
OSDShowLine(iChannel ,19,0,COL_GAUGE,OSD_LENGTH);
OSDDrawNum(cNum, 0, 19, 0, COL_TITLE, LBLUE_RED|0x03);
}else{
OSDShowLine(iChannel ,19,2,COL_GAUGE,OSD_LENGTH);
OSDDrawNum(cNum, 0, 19, 2, COL_TITLE, LBLUE_RED|0x03);
}
}
}else if (cNum < 10){
if(cTemp == 0x03){ // second and third key number.
if(bFavoriteSet){
m_cTV_Num = 100 + 10*I2CReadByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_Tenth) + cNum;
twdDelay(5);
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_Oneth,cNum);
twdDelay(5);
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_ChanelIndex,0x30);
twdDelay(5);
OSDDrawNum(m_cTV_Num, 0, 19, 0, COL_TITLE, LBLUE_RED|0x03);
}else{
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_ChanelIndex,0x00);
twdDelay(5);
m_cTV_Num = 100 + 10*I2CReadByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_Tenth) + cNum;
twdDelay(5);
EepTV.cChannelNum = m_cTV_Num;
ChannelSel();
OSDTVShowChannel(EepTV.cChannelNum);
}
}else if(cTemp == 0x02){
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_ChanelIndex,0x03);
twdDelay(5);
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_Tenth,cNum);
twdDelay(5);
if(bFavoriteSet)
OSDDrawNum(cNum, 0, 19+1, 0, COL_TITLE, LBLUE_RED|0x03);
else
OSDDrawNum(cNum, 0, 19+1, 2, COL_TITLE, LBLUE_RED|0x03);
}else{
if(bFavoriteSet){
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_Oneth,cNum);
twdDelay(5);
m_cTV_Num = 10*I2CReadByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_Tenth) + cNum;
twdDelay(5);
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_ChanelIndex,0x10);
twdDelay(5);
if(m_cTV_Num < 10){
OSDDrawNum(0, 0, 19, 0, COL_TITLE, LBLUE_RED|0x03);
OSDDrawNum(m_cTV_Num, 0, 19+1, 0, COL_TITLE, LBLUE_RED|0x03);
}else{
OSDDrawNum(m_cTV_Num, 0, 19, 0, COL_TITLE, LBLUE_RED|0x03);
}
}else{
I2CWriteByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_ChanelIndex,0x00);
twdDelay(5);
m_cTV_Num = 10*I2CReadByte(EEPGLOBAL_BLOCK , EEPTV_OFFSET+TV_Tenth) + cNum;
twdDelay(5);
EepTV.cChannelNum = m_cTV_Num;
ChannelSel();
OSDTVShowChannel(EepTV.cChannelNum);
}
}
}
}
#endif
bit IRNTSC_PALCtrl(void)
{
////////////////////////////////////////////
if (uiaSrcMux1[EepPublic.cSource].SourceRoute!=isrcVIDEO)
return 1;
////////////////////////////////////////////
//~~~~~~~ set Chroma ~~~~~~~~~~~~~~~~~~~//
do{
m_cChroma++;
if(m_cChroma>=S_END)
m_cChroma=S_NTSC;
}while(((1<<m_cChroma)&SignalDefine)==0x00);
//~~~~~~~ set OPTiming ~~~~~~~~~~~~~~~~~~~// // add by Sherman 06'02'23
if(m_cChroma<=S_PAL_M)
m_cStandard=S_NTSC;
else
m_cStandard=S_PAL;
SetOPTiming();
SetSignalStd();
OSDShowNTSC_PAL();
return 1;
}
#ifdef TV
//Thomas
void SearchVaildCahnnel(BITS bUp){
uCHAR cTmp;
uCHAR cOrgChanl;
if (EepTV.cGroup){ //favorite mode
cOrgChanl = EepFav.cFav_cFavoriteChanel;
if(bUp){
EepFav.cFav_cFavoriteChanel++;
if (EepFav.cFav_cFavoriteChanel >= FAVORITE_NO )
EepFav.cFav_cFavoriteChanel = 0;
}else{
if (!EepFav.cFav_cFavoriteChanel)
EepFav.cFav_cFavoriteChanel = FAVORITE_NO-1;
else
EepFav.cFav_cFavoriteChanel--;
}
while(1){ //Filter out the un-assign channel
if(EepFav.cFav_list[EepFav.cFav_cFavoriteChanel]){
I2CWriteByte(EEPGLOBAL_BLOCK , EEPFAV_OFFSET , EepFav.cFav_cFavoriteChanel); //thomas
twdDelay(5);
EepTV.cChannelNum = EepFav.cFav_list[EepFav.cFav_cFavoriteChanel];
break;
}
if (EepFav.cFav_cFavoriteChanel ==cOrgChanl) break; //search one cycle
if(bUp){
EepFav.cFav_cFavoriteChanel++;
if (EepFav.cFav_cFavoriteChanel >= FAVORITE_NO )
EepFav.cFav_cFavoriteChanel = 0;
}else{
if (!EepFav.cFav_cFavoriteChanel)
EepFav.cFav_cFavoriteChanel = FAVORITE_NO-1;
else
EepFav.cFav_cFavoriteChanel--;
}
}
}else{ // normal mode
cOrgChanl = EepTV.cChannelNum;
if (bUp)
EepTV.cChannelNum++;
else
EepTV.cChannelNum--;
while(1){ //Filter out the skipped channel
if(bUp && EepTV.cChannelNum > 125){
EepTV.cChannelNum = 1;
}else if(!bUp && EepTV.cChannelNum == 1){
EepTV.cChannelNum = 125;
}
if(EepTV.cMode){
cTmp = I2CReadByte(EEPTVCABLE_BLOCK, 2*EepTV.cChannelNum+1);
twdDelay(NVRDELAY);
if(cTmp & 0x80){
if (bUp)
EepTV.cChannelNum++;
else
EepTV.cChannelNum--;
}else
break;
}else{
cTmp = I2CReadByte(EEPTVAIR_BLOCK, 2*EepTV.cChannelNum+1);
twdDelay(NVRDELAY);
if(cTmp & 0x80){
if (bUp)
EepTV.cChannelNum++;
else
EepTV.cChannelNum--;
}else
break;
}
if (EepTV.cChannelNum ==cOrgChanl) break; //search one cycle
}
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -