⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keypad.c

📁 这是T118和T103的通用程序
💻 C
📖 第 1 页 / 共 2 页
字号:
                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 + -