亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tdq6f6.c

?? RTD2662板卡源代碼
?? C
字號:
#include "Core\Header\Include.h"

#if (_TV_CHIP == _TV_TDQ_6F6)


 
//==========================================================================
//                            gmi_CI2CWriteIfPllDM
//==========================================================================
void gmi_CI2CWriteIfPllDM(BYTE ucTvType, const bit bTunerMute, const BYTE ucAFTMode)
{
 //   CSetTVSystem(ucTvType);
    
    if (bTunerMute)
        CMuteOn();
    
    switch(ucTvType)
    {
    case _TV_PAL_M     :    // Sound 4.5M  PAL M
    case _TV_NTSC_M    :    // Sound 4.5M  NTSC M
    case _TV_PAL_N     :    // Sound 4.5M  PAL N 
#if(_IF_PLL_DE_CHIP == _IF_PLL_DE_1338)
        CSetPifFreq(ucAFTMode, _OTHER_MODE, _PIF_FREQ, _CARRIER_SELECT);
        CSetSoundFreq(_SIF_4_5_MHZ);
#endif
        break;

    case _TV_NTSC_4_BG :    // Sound 5.5M  NTSC 4/BG
    case _TV_PAL_BG    :    // Sound 5.5M  PAL B/G
    case _TV_SECAM_BG  :    // Sound 5.5M  SECAM B/G
#if(_IF_PLL_DE_CHIP == _IF_PLL_DE_1338)
        CSetPifFreq(ucAFTMode, _OTHER_MODE, _PIF_FREQ, _CARRIER_SELECT);
        CSetSoundFreq(_SIF_5_5_MHZ);
#endif
        break;

    default:                // Normal sound
    case _TV_NTSC_4_I  :    // Sound 6.0M  NTSC 4/I
    case _TV_PAL_I     :    // Sound 6.0M  PAL I
#if(_IF_PLL_DE_CHIP == _IF_PLL_DE_1338)
        CSetPifFreq(ucAFTMode, _OTHER_MODE, _PIF_FREQ, _CARRIER_SELECT);
        CSetSoundFreq(_SIF_6_0_MHZ);
#endif
        break;

    case _TV_NTSC_4_DK :    // Sound 6.5M  NTSC 4/DK
    case _TV_PAL_DK    :    // Sound 6.5M  PAL D/K
    case _TV_SECAM_DK  :    // Sound 6.5M  SECAM D/K
#if(_IF_PLL_DE_CHIP == _IF_PLL_DE_1338)
        CSetPifFreq(ucAFTMode, _OTHER_MODE, _PIF_FREQ, _CARRIER_SELECT);
        CSetSoundFreq(_SIF_6_5_MHZ);
#endif
        break;

    case _TV_SECAM_L   :    // Sound 6.5M  SECAM L
    case _TV_SECAM_LL  :    // Sound 6.5M  Secam L'
#if(_IF_PLL_DE_CHIP == _IF_PLL_DE_1338)
        CSetPifFreq(ucAFTMode, _SECAML_MODE, _PIF_FREQ, _CARRIER_SELECT);
        CSetSoundFreq(_SIF_6_5_MHZ);
#endif
        break;

    } // end switch
}

//==========================================================================
//                         gmi_CSetTuner
//==========================================================================
void gmi_CSetTuner(BYTE ucTunerAddress, WORD Freq)
{	
   pData[0] = 6;
   pData[1] = ucTunerAddress;
   ((WORD *)pData)[1] = Freq;
   pData[4] = (bFM) ? 0xCA : 0xC8; // 0xCE 
   
   if((Freq < _VHF_LOW_BAND) || (bFM == 1))  
      pData[5]=0x01;   // VHFLOW   
   else if(Freq < _VHF_HIGH_BAND)   
      pData[5]=0x02;  // VHFHIGH 
   else 
      pData[5]=0x04;  //Band select//UHF 
   
   gmi_CI2CWriteTuner(pData);
}

//==========================================================================
//                         CTvAutoSearch
//==========================================================================
void CTvAutoSearch(void) small
{
    BYTE ucSound = 0;
    BYTE ucPRG        = 0;
    BYTE ucmaxchannel = CloadMaxChannelNumber();
    WORD iFreq        = _MIN_FREQ;
         
    if (bFM) 
    {
       stTvInfo.ucFMCurrCh = 0;
       CFMInit();
       iFreq = _FM_MIN_FREQ;
    }

    // Read color and sound type
    if (0 == ucmaxchannel)
    {
        ucSound  = 0;
        ucTVType = CLoadChannelColorType(0); 
    }
    else
    {
        ucSound  = 0;
        ucTVType = CLoadChannelColorType(stTvInfo.CurChn); 
    }

    // Reset search max tv channel number
    pData[0] = 0; 
    CI2cWrite(_TV_MAX_CHANNEL_EEPROM_ADDR, _MAX_CHANNEL_ADDR, 1, pData);

    stTvInfo.CurChn = 0;
	ucPrevChannel = 0;
    // Save current channel
    CEepromSaveTvData();
//    CEepromSaveVedioColor();    

    gmi_CI2CWriteIfPllDM(ucTVType, _TUNER_MUTE_ON, _TUNNING_MODE);
    CTimerDelayXms(8);
    CShowAutoSerachTotal(ucPRG);   // Show search tv channel number
                    
    CScalerSetBit(_VDISP_CTRL_28, ~_BIT5, 0x00); 

	CScalerPageSelect(_PAGE9);		
    CScalerSetByte(_P9_C_LOCK_CONF_B6, 0x6B);

    while(1)
    {
        if (bFM)
           iFreq = CLockChannel(iFreq, 1);
        else
           iFreq = CLockChannel(iFreq+40, 1);

        if(iFreq < 2)
        {
            ucPRG = (ucPRG == 0) ? 0 : (ucPRG - 1);
            break;
        }
        
        CSaveChannelData(iFreq,ucSound,ucPRG);
        
        ucPRG++;
        if(ucPRG > _MAX_CHANNEL_COUNT)
        {
           ucPRG -= 1;
           break;
        }

        CShowAutoSerachTotal(ucPRG);  // Show search tv channel number

    }  // End while

#if(_FM_DEVICE)
    if (1 == bFM)
    {
        BYTE ucChannelCount = 0;

        ucPRG++;

        for(ucChannelCount = ucPRG; ucChannelCount < _FM_MAX_CHANNEL; ucChannelCount++)
        {
            CSaveChannelFreq((WORD)_FM_MIN_FREQ | 0x8000, ucChannelCount);
        }
    }
    else
#endif
    {
    #if(_CHANGE_CHANNEL_MTD == _CHANGE_CHANNEL_M2)
        {
            BYTE ucChannelCount = 0;
    
            ucPRG++;
    
            for(ucChannelCount = ucPRG; ucChannelCount < _MAX_CHANNEL_COUNT; ucChannelCount++)
            {
                CSaveChannelData((WORD)_MIN_FREQ | 0x8000, ucSound, ucChannelCount);
            }
    
        }
    #endif
    
        // Save search channel number
        pData[0] = ucPRG;
        CI2cWrite(_TV_MAX_CHANNEL_EEPROM_ADDR, _MAX_CHANNEL_ADDR, 1, pData);
    }
    CSetTVChannel(0);


#if(_IF_PLL_DE_CHIP == _IF_PLL_DE_1338)
    gmi_CI2CWriteIfPllDM(ucTVType, _TUNER_MUTE_OFF, _NORMAL_MODE); // set tv system
#endif
   // CModeResetTVMode();
#if(_FM_DEVICE)
    if (1 == bFM)
        CSetVolume();
    else
#endif
    ucCurrState = _SEARCH_STATE;
}

//==========================================================================
//bSearchAction:   0 --> Search down
//                 1 --> Search up
//==========================================================================
void CManualSearch(const bit bSearchAction, const BYTE ucCurrentChannel) small
{
    BYTE ucSound           = 0;
    WORD iFreq             = 0;
    WORD ucSatrtSearchFreq = 0;  
   
	CScalerPageSelect(_PAGE9);		
    CScalerSetByte(_P9_C_LOCK_CONF_B6, 0x6B);
    ucSatrtSearchFreq = CLoadChannelFreq(ucCurrentChannel);

#if(_IF_PLL_DE_CHIP == _IF_PLL_DE_1338)
    gmi_CI2CWriteIfPllDM(ucTVType, _TUNER_MUTE_ON, _TUNNING_MODE);
    CTimerDelayXms(100);
#endif

    if (ucSatrtSearchFreq > _MAX_FREQ)
        ucSatrtSearchFreq = _MAX_FREQ;
    else if(ucSatrtSearchFreq < _MIN_FREQ)
        ucSatrtSearchFreq = _MIN_FREQ;


    if (bSearchAction)
        iFreq = CLockChannel(ucSatrtSearchFreq + 40, 1);
    else
        iFreq = CLockChannel(ucSatrtSearchFreq - 40, 0);

    if (iFreq > 100)
        CSaveChannelData(iFreq,CLoadChannelSoundType(ucCurrentChannel),ucCurrentChannel);
    CSetTVChannel(ucCurrentChannel);

    CShowAutoSearchSliderInOSD(CLoadChannelFreq(stTvInfo.CurChn));                         

    CTimerDelayXms(50);
    if (gmi_CModeLocked())
        CScalerSetBit(_VDISP_CTRL_28, ~_BIT5, 0x00); 

//	CTimerReactiveTimerEvent(SEC(GET_OSDTIMEOUT()), COsdFxExitEvent);

#if(_IF_PLL_DE_CHIP == _IF_PLL_DE_1338)
    gmi_CI2CWriteIfPllDM(ucTVType, _TUNER_MUTE_OFF, _NORMAL_MODE);
#endif
   // CModeResetTVMode();
    ucCurrState = _SEARCH_STATE;
}

//==========================================================================
//  bCLockMode --> 1: lock up         0 : lock down
//==========================================================================
WORD CLockChannel(WORD iStartFreq, const bit bCLockMode) small
{
    BYTE f            = 0;
    BYTE rData        = 0;
    BYTE LowLevel_CH  = 0;
    BYTE count        = 0;
    WORD freq         = 0;
    WORD iStartFreqBase = iStartFreq;
    BYTE ucPattCount  = 0;

    while(1)
    {
        gmi_CSetTuner(_ADDR_TUNER, iStartFreq);

#if(_OSD_TYPE == _OSD002)
        ucPattCount++;
        if (ucPattCount > 50)
        {
            ucPattCount = 0;
            CChangePalette();
        } 
#endif

        if (bCLockMode) // Search up
        {
            if (iStartFreq > (iStartFreqBase + 300))
            {
                if(CKeyStopAutoSearch())
                   return 0;
            }
        }
        else
        {
            if (iStartFreq < (iStartFreqBase - 300))
            {
                if(CKeyStopAutoSearch())
                   return 0;
            }
        } 
                          
        // Show search channel state 
        CShowAutoSearchSliderInOSD((iStartFreq)); 
        if (1 == bFM)
           CTimerDelayXms(50);
        rData = gmi_CReadIfPllDM();

            
        switch(rData & 0x0f)
        {
        case 7:
            if (bCLockMode) // Search up
            {
                f = 1;
                if (!bFM)
                   iStartFreq++;
            }
            else            // Search down
            {
                count++;
                f |= 0x02;
            }
            break;

        case 8:
            if (bCLockMode) // Search up
            {
                count++;
                f |= 0x02;
            }
            else            // Search down
            {
                f = 1;
                if (!bFM)
                    iStartFreq--;
            }
            break; 

        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
            f |= 0x0a;
            break; 
        case 9:
        case 10:
        case 11:
        case 12:
        case 13:
        case 14:
            f |= 0x10;
            break; 
        case 0:
        case 15:
            f |= 0x04;
            freq = iStartFreq;
            break;
        } 
            
        if (1 == bFM)
        {  
            if(f == 0x0f)  // FM locked
               return freq;
        }
        else
        {
    		if (0x1b==f || 0x1a==f) 
    		{
    			LowLevel_CH++;
                if (0 == freq)
        			freq = iStartFreq;
    		}
    		else
                LowLevel_CH = 0;
    
            if((rData & 0x50) != 0x50)
            {
                f     = 0;
       	        count = 0;
          	  //  i    += 4;    
            }
            else if((f==0x1f || LowLevel_CH>4) && ((count > 3 && bCLockMode) || (count > 0 && !bCLockMode)) )
            {
                gmi_CSetTuner(_ADDR_TUNER, freq);
    			CTimerDelayXms(200);
                CVideoSoftReset();
                CTimerDelayXms(10);
    
                switch(CDetectTVSignalType())
                {
                case 0:  // MODE_NOSIGNAL
                    LowLevel_CH = 0;  // eric add
                    f = 0;
                    count = 0;
                    break;
    
                case 1:  // 
                    return freq;
                }

                freq = 0;
            }      
        }   

        if (bCLockMode) // Search up
        {
            iStartFreq++;
            if (((iStartFreq > _MAX_FREQ) && (0 == bFM)) ||
                ((iStartFreq > _FM_MAX_FREQ) && (1 == bFM)))
                return 1;
        }
        else            // Search down
        {
            iStartFreq--;
            if (((iStartFreq < _MIN_FREQ) && (0 == bFM)) ||
                ((iStartFreq < _FM_MIN_FREQ) && (1 == bFM)))
                return 1;
        }
    }
    return 1;  //Not Find Channel
}

//==========================================================================
//                        CSetTVChannel
//==========================================================================
void CSetTVChannel(const BYTE ucCurrentChannel)
{  
    ucTVType = CLoadChannelColorType(ucCurrentChannel); // set tv system
        
#if(_IF_PLL_DE_CHIP == _IF_PLL_DE_1338)
    gmi_CI2CWriteIfPllDM(ucTVType, _TUNER_MUTE_ON, _TUNNING_MODE); // set tv system
#endif
    gmi_CSetTuner(_ADDR_TUNER, CLoadChannelFreq(ucCurrentChannel));
#if(_IF_PLL_DE_CHIP == _IF_PLL_DE_1338)
    gmi_CI2CWriteIfPllDM(ucTVType, _TUNER_MUTE_OFF, _NORMAL_MODE); // set tv system
#endif
    CTimerDelayXms(20);
    ucAudioState = 1;
}

#endif  // #if (_TV_CHIP == _TV_TDQ_6F6)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合九色综合97婷婷女人| 亚洲高清久久久| 一区二区理论电影在线观看| 日韩av中文字幕一区二区三区 | 欧美色大人视频| 56国语精品自产拍在线观看| 久久精品人人爽人人爽| 亚洲精品免费在线播放| 高清在线观看日韩| 欧美一区二区在线看| 亚洲男人的天堂av| 成人午夜视频网站| 国产欧美一区视频| 裸体一区二区三区| 91精品国产综合久久久久久久 | 久久久久国产精品免费免费搜索| 亚洲成a人v欧美综合天堂| 91丨porny丨蝌蚪视频| 国产三区在线成人av| 蜜臂av日日欢夜夜爽一区| 欧美日韩精品一区二区天天拍小说| 亚洲欧洲三级电影| 99精品视频一区二区| 国产午夜精品久久久久久免费视 | 欧美日本韩国一区二区三区视频| 亚洲精品成人精品456| 一本到一区二区三区| 亚洲精品视频在线| 91国产丝袜在线播放| 亚洲欧美另类小说视频| 色婷婷综合久久久中文字幕| |精品福利一区二区三区| 成人18视频在线播放| 国产精品美女久久久久久久| 国产资源精品在线观看| 日韩免费观看高清完整版在线观看| 日本欧美一区二区| 精品国产乱码久久久久久老虎| 麻豆精品视频在线观看视频| 久久影院午夜片一区| 国产九色精品成人porny| 国产欧美日韩在线| 色成人在线视频| 午夜精品久久久久久久久久久| 欧美高清激情brazzers| 日韩**一区毛片| 精品国产污污免费网站入口| 国产成人亚洲精品青草天美| 国产精品拍天天在线| 91成人网在线| 美女网站视频久久| 欧美激情一二三区| 欧美三级乱人伦电影| 免费成人美女在线观看.| 国产日产欧美精品一区二区三区| 成人动漫视频在线| 亚洲成在线观看| 久久综合色之久久综合| av成人免费在线| 日本亚洲天堂网| 亚洲国产精品二十页| 欧美三级视频在线播放| 国产一区亚洲一区| 一区二区三区中文字幕在线观看| 欧美一卡二卡三卡| 成人app网站| 日一区二区三区| 亚洲国产高清在线| 欧美精品久久99| 高清beeg欧美| 日韩极品在线观看| 中文字幕 久热精品 视频在线 | 亚洲国产日韩a在线播放性色| 日韩色视频在线观看| 99视频在线观看一区三区| 亚洲成人一区二区在线观看| 国产色一区二区| 欧美肥妇毛茸茸| 成人国产视频在线观看| 蜜桃一区二区三区在线| 亚洲同性同志一二三专区| 日韩免费看网站| 欧美自拍偷拍午夜视频| 成人性生交大片免费| 美腿丝袜亚洲色图| 亚洲国产综合91精品麻豆| 欧美国产激情一区二区三区蜜月 | 青草av.久久免费一区| 中文字幕av在线一区二区三区| 欧美精品 日韩| 在线观看三级视频欧美| eeuss鲁片一区二区三区| 日本不卡一区二区三区高清视频| 日韩一区中文字幕| 国产视频一区不卡| 亚洲男女毛片无遮挡| 26uuu欧美| 91精品免费观看| 欧美色综合网站| 91视频.com| 成人理论电影网| 顶级嫩模精品视频在线看| 狠狠网亚洲精品| 捆绑调教一区二区三区| 五月开心婷婷久久| 午夜一区二区三区视频| 亚洲另类春色国产| 日韩理论片在线| 亚洲欧美在线aaa| 亚洲国产精品ⅴa在线观看| 欧美大白屁股肥臀xxxxxx| 91精品国产欧美一区二区18| 欧美乱熟臀69xxxxxx| 91精品国产色综合久久ai换脸 | 丝袜亚洲精品中文字幕一区| 亚洲国产日韩精品| 午夜欧美2019年伦理| 亚洲成人激情自拍| 视频一区视频二区在线观看| 午夜久久久久久久久| 石原莉奈在线亚洲三区| 丝袜亚洲另类丝袜在线| 免费人成黄页网站在线一区二区| 视频一区二区三区中文字幕| 男女男精品网站| 狠狠色伊人亚洲综合成人| 丁香婷婷综合色啪| bt欧美亚洲午夜电影天堂| 成人免费毛片片v| 在线精品视频免费观看| 欧美久久免费观看| 日韩一级高清毛片| 国产女主播视频一区二区| 中文久久乱码一区二区| 日韩一区中文字幕| 婷婷综合久久一区二区三区| 精品一区二区三区在线播放视频 | 欧洲精品一区二区| 在线91免费看| 久久久久国产成人精品亚洲午夜| 中文字幕乱码亚洲精品一区| 一区二区三区影院| 美脚の诱脚舐め脚责91 | 久久国产精品区| 成人激情小说网站| 欧美日韩激情在线| 国产区在线观看成人精品| 亚洲免费在线视频一区 二区| 日本不卡一区二区| www.久久久久久久久| 欧美日韩中文字幕一区二区| 欧美mv和日韩mv的网站| 亚洲色图欧洲色图| 麻豆久久久久久| 99精品视频在线观看免费| 欧美高清精品3d| 欧美经典三级视频一区二区三区| 亚洲影视在线播放| 丰满亚洲少妇av| 欧美日韩二区三区| 中文字幕av一区二区三区高 | 99精品欧美一区二区三区综合在线| 欧美巨大另类极品videosbest | 国产日韩欧美制服另类| 亚洲成av人**亚洲成av**| 国产超碰在线一区| 在线成人高清不卡| 中文字幕在线观看一区| 九色综合狠狠综合久久| 欧美视频一区在线观看| 国产精品久久影院| 蜜臀av性久久久久蜜臀aⅴ四虎| 不卡的av电影| 日韩精品一区二区三区中文精品| 亚洲精品v日韩精品| 国产99久久久精品| 欧美精品一区二区三区在线播放| 亚洲一区二区视频在线观看| 成人avav影音| 欧美国产日本视频| 国产一区二区三区观看| 欧美日韩一级黄| 亚洲成人第一页| 91电影在线观看| 国产精品久久久久一区二区三区 | 欧美国产日韩一二三区| 韩国女主播成人在线| 日韩欧美国产电影| 日韩精品一级中文字幕精品视频免费观看| 99久久婷婷国产综合精品电影 | 亚洲电影一级黄| 欧美日韩激情一区| 亚洲国产aⅴ成人精品无吗| 色婷婷国产精品| 亚洲精品videosex极品| 色天天综合色天天久久| 国产精品久久久久久久第一福利| 成人动漫精品一区二区| 国产精品视频yy9299一区| eeuss鲁一区二区三区|