home > RTD2660 Source Code > Tv.c

  1. /*============================================================= 
  2.  * Copyright (c)      Realtek Semiconductor Corporation, 2005 * 
  3.  * All rights reserved.                                       * 
  4.  *============================================================*/  
  5.   
  6.   
  7. #define __TV__  
  8.   
  9. #define _TUNER_H_ //fjyang  
  10.   
  11. #include "Core\Header\Include.h"  
  12.   
  13. void  TV_Power_ON(void)  
  14. {  
  15.     //bTunerPower=1;//add by xyw 070827  
  16.     SET_TUNER_POWER();  
  17. }  
  18. void TV_Power_Down(void)  
  19. {  
  20.     //bTunerPower=0;//add by xyw 070827  
  21.     CLR_TUNER_POWER();  
  22. }  
  23. BYTE CTvSetChStatus(BYTE chn,bit status)  
  24. {  
  25.     BYTE mask,q,r;  
  26.   
  27.     //check chn range  
  28.     if(chn >= GET_TV_MAX_CH())  
  29.         return ((BYTE)_FALSE);  
  30.   
  31.     //get q ,r and mask  
  32.     q=(chn)/8;  
  33.     r=(chn)%8;  
  34.     mask = _BIT0 << r ;  
  35.   
  36.     //set correspoding bit  
  37.     if(status==_ENABLE)  
  38.         stTvChStatus.ChStatus[q] |= mask ;  
  39.     else  
  40.         stTvChStatus.ChStatus[q] &= ~mask ;  
  41.   
  42.     return ((BYTE)_TRUE);  
  43. }  
  44.   
  45.   
  46. BYTE CTvGetChStatus(BYTE chn)  
  47. {  
  48.     BYTE mask,q,r;  
  49.   
  50.     if(chn >= GET_TV_MAX_CH())  
  51.         return ((BYTE)_FALSE);  
  52.   
  53.     //get q ,r and mask  
  54.     q=(chn)/8;  
  55.     r=(chn)%8;  
  56.     mask = _BIT0 << r ;  
  57.   
  58.     //set correspoding bit  
  59.     if( stTvChStatus.ChStatus[q] & mask )  
  60.         return ((BYTE)_TRUE);  
  61.     else  
  62.         return ((BYTE)_FALSE);  
  63. }  
  64.   
  65.   
  66. void CTvTunerChangeChannelApplyNewData(void)  
  67. {  
  68.     //20070407, finetune update  
  69.     CEepromGetTvPdbData(stTvInfo.CurChn, &stTvPdb.chinfo);  
  70.   
  71.     //20080418, add start...  
  72. #if (_TV_SEL_CH_M3)  
  73.     TempTvNumbers = stTvInfo.CurChn;  
  74. #endif  //#if (_TV_SEL_CH_M3)  
  75.     //20080418, add end...  
  76.       
  77.     SET_TV_FINETUNE_PRE_DONE();  
  78. #if 1//(_TV_FINETUNE_SAVE_SUPPORT)  
  79.     //20070407, get finetune data  
  80.     CEepromGetTvFinetuneData(stTvInfo.CurChn, &ucTvFinetuneData);  
  81. #endif  
  82. #if (_TV_AFC_SUPPORT)  
  83.     //20070407, finetune update  
  84.     if (GET_TV_AFC_ENABLE())  
  85.         CTunerSetFreq(stTvPdb.pdb, stTvPdb.Afc);  
  86.     else  
  87.         CTunerSetFreq(stTvPdb.pdb + ucTvFinetuneData-50 , 0);         
  88.     //if (GET_CURR_AUDIO_SYS()!=_TV_AUDIO_SYS_AUTO)  
  89.     //CTunerSetSound(GET_CURR_AUDIO_SYS());  
  90. #else  
  91.     CTunerSetFreq(stTvPdb.pdb);  
  92. #endif  
  93.     //CTimerDelayXms(_TV_AUTOSCAN_RESPONSE_TIME);  
  94.     //CTimerDelayXms(_TV_AUTOSCAN_RESPONSE_TIME);  
  95.     //CTimerDelayXms(_TV_AUTOSCAN_RESPONSE_TIME);  
  96.   
  97. }  
  98.   
  99. //this will cause mode reset when change mode between signal and no signal  
  100. void CTvTunerChangeChannel(void)  
  101. {  
  102. #if 0  
  103.     BYTE lastAvMode;  
  104.   
  105.     bit isVRateChange = 0;  
  106. #endif  
  107.   
  108.     //czl 071205  
  109.             //volumetemp=stAudioData.Volume;  
  110.             //stAudioData.Volume=0;  
  111.             ///CPt2314WrVolumeGradual(stAudioData.Volume, 0);  
  112.             //CPt2314WrMute(_ENABLE);  
  113.             //CTimerDelayXms(5);  
  114.             if(ucVideoProcessState== _ACTIVE_STATE)  
  115.             {  
  116.                 //DebugPrintf("CTvTunerChangeChannel()\n", 0);  
  117.                 //"POP" and Blue background while channel is changed, update  
  118. //              CAudioSetVolume(0);  
  119. //              CTimerDelayXms(100);  
  120. //              SET_MUTE_PROCESS(_ENABLE);  
  121. #if  DINISHI_CHANGESOURCE_DVD_TV_MUTE  
  122.   //          MUTE_SW= stAudioData.Volume;  
  123.     //SET_MUTE_PROCESS(0);//JINSUO ADD 20100710  
  124.         CTimerDelayXms(150);  
  125.         CAudioChipWrVolumeGradual(stAudioData.Volume, 1);     
  126.                 CTimerDelayXms(200);  
  127.                 SET_MUTE_PROCESS(1);  
  128. #endif    
  129.   
  130.                 //CAdjustBackgroundColor(0,0,0x80);  
  131.   
  132. #if _CUSTOMER_SANSE  
  133.                 CAdjustBackgroundColor(0,0,0x80);  
  134. #else  
  135.                 CAdjustBackgroundColor(0,0,0);  
  136. #endif  
  137.                     CScalerSetBit(_VDISP_CTRL_28, 0xff, 0x20);  
  138.   
  139.                 //I2CSetBit(0x38,0x3f,0x40);  
  140.   
  141. //////////////////////////////////////////////////                
  142.                 CTvTunerChangeChannelApplyNewData();  
  143. //////////////////////////////////////////////////    
  144.   
  145.                 {  
  146.                     CModeResetMode();  
  147.                 }  
  148.                 //I2CSetBit(0x38,0x3f,0x00);  
  149.                   
  150.             }  
  151.             else  
  152.             {  
  153. #if _CUSTOMER_SANSE  
  154.                 CAdjustBackgroundColor(0,0,0x80);  
  155.                     CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT7 | _BIT5 | _BIT1 | _BIT0));  
  156. #else  
  157. #if _TV_BACKGROUND_OPTION_SUPPORT  
  158.                 //if (GET_TV_BACKGROUND())  
  159.                 {  
  160.                     CAdjustBackgroundColor(0,0,0);  
  161.                         CScalerSetBit(_VDISP_CTRL_28, 0xff, 0x20);  
  162.                 }  
  163. #else  
  164.                 CAdjustBackgroundColor(0,0,0);  
  165.                     CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT7 | _BIT5 | _BIT1 | _BIT0));  
  166. #endif  
  167. #endif  
  168. //////////////////////////////////////////////////                
  169.                 CTvTunerChangeChannelApplyNewData();  
  170. //////////////////////////////////////////////////                
  171.                 if(1/*CVdcIsLocked() == _TRUE*/)  
  172.                 {  
  173.                     CModeResetMode();  
  174.                 }  
  175.                 else  
  176.                 {  
  177. #if _TV_BACKGROUND_OPTION_SUPPORT  
  178. //20081018 ccy modify  
  179.                     if  (GET_TV_BACKGROUND()==0)  
  180. #else  
  181.                     if  (0)//(GET_TV_BACKGROUND()==0)  
  182. #endif  
  183.                     {  
  184.                         CScalerPageSelect(_PAGE8);  
  185.                         CScalerSetBit(_P8_OUTPUT_CTRL_A7, 0x4f, 0xB0);  
  186.                         //CVideoDisplaySet();  
  187.                          CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT7 |_BIT3 |_BIT1 | _BIT0));  
  188.                     //  if(Panel[0].PanelConfig&_BIT3 == 0)  
  189.                     //      CScalerSetBit(_VDISP_CTRL_28, ~( _BIT3), (0));  
  190.                     //  else  
  191.                     //      CScalerSetBit(_VDISP_CTRL_28, ~( _BIT3), (_BIT3));  
  192.                         CAdjustBackgroundColor(0,0,0x00);  
  193.   
  194.                     }  
  195.                                 //20070401  
  196.                 else  
  197.                     {  
  198.                         //20081027 CCY MODIFY  
  199.                         CScalerPageSelect(_PAGE8);  
  200.                         CScalerSetBit(_P8_OUTPUT_CTRL_A7, 0x4f, 0x20);  
  201.                         //CModeSetFreeRun();  
  202.                             CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT5 | _BIT1 | _BIT0));  
  203.                         //20070331  
  204.                         CAdjustBackgroundColor(0,0,0xff);  
  205.                     }  
  206.                 }  
  207.             }  
  208.   
  209. }  
  210.   
  211. #if _TUNER_TYPE!=_TUNER_NONE  
  212. void CTvScanSetBackground(BYTE display)  
  213. {  
  214.         display  = display;  
  215. #if 1//(_TV_BACKGROUND_OPTION_SUPPORT)  
  216.     //DebugPrintf("\nTVScan:bg=%d\n",GET_TV_BACKGROUND());  
  217. //20080829 ccy modify  
  218.         if ((GET_INPUTPORT_TYPE(stSystemData.InputSource) == _VIDEO_TV_PORT))  
  219.         {  
  220.   
  221.             if(0)// (GET_TV_BACKGROUND()==0)//20081013 ccy modify     //delect by dengyi 2010 01 07  
  222.             {  
  223.                 CScalerPageSelect(_PAGE8);  
  224.                 CScalerSetBit(_P8_OUTPUT_CTRL_A7, 0x4f, 0xB0);      //Enable snow noise. zhang_dc 2008.01.28  
  225.                   
  226.                 //CVideoDisplaySet();  
  227.                 //CScalerSetBit(_VDISP_CTRL_28, ~(_BIT5 | _BIT3 | _BIT1 | _BIT0),(_BIT1 | _BIT0));  
  228.   
  229.                 CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT7 |_BIT3 |_BIT1 | _BIT0));  
  230.                 //czl 080506  
  231.         //  if(Panel[0].PanelConfig&_BIT3 == 0)  
  232.         //      CScalerSetBit(_VDISP_CTRL_28, ~( _BIT3), (0));  
  233.         //      else  
  234.         //      CScalerSetBit(_VDISP_CTRL_28, ~( _BIT3), (_BIT3));  
  235.   
  236.   
  237.                 //20070401  
  238.                 CAdjustBackgroundColor(0,0,0x00);  
  239.             }  
  240.             else  
  241.             {  
  242.                 CScalerPageSelect(_PAGE8);  
  243.                 CScalerSetBit(_P8_OUTPUT_CTRL_A7, 0x4f, 0x20);      //Disable snow noise. zhang_dc 2008.01.28  
  244.                 //CTimerReactiveNosignal_Icon_Powersaving(1);       //dong disable 20091026  
  245.       
  246.                 //CModeSetFreeRun();  
  247.                 CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT5 | _BIT1 | _BIT0));  
  248.   
  249.                 CAdjustBackgroundColor(0x00, 0x00, 0xff);     
  250.             }  
  251.         }  
  252.           
  253. /* 
  254.     { 
  255.          
  256.             CVideoDisplaySet(); 
  257.         CScalerSetBit(_VDISP_CTRL_28, ~(_BIT5 | _BIT3 | _BIT1 | _BIT0),(_BIT1 | _BIT0)); 
  258.         CAdjustBackgroundColor(0x00, 0x00, 0x00); 
  259.     } 
  260.     else 
  261.     { 
  262.         CModeSetFreeRun(); 
  263.         CAdjustBackgroundColor(0x00, 0x00, 0xff);//20080901 ccy modify 
  264.         CScalerSetBit(_VDISP_CTRL_28, ~_BIT3, _BIT5);   // display output background & free running mode 
  265.     } 
  266.     */  
  267. #else  
  268.     CModeSetFreeRun();  
  269.     CAdjustBackgroundColor(_TV_SCAN_BG_RED,_TV_SCAN_BG_GREEN,_TV_SCAN_BG_BLUE);  
  270.     CScalerSetBit(_VDISP_CTRL_28, ~_BIT3, _BIT5);   // display output background & free running mode  
  271. #endif  
  272. }  
  273. #endif  //#if _TUNER_TYPE!=_TUNER_NONE  
  274.   
  275. //added by czl 100118  
  276. void CTvVideoColorStandardsetting(BYTE usvideocolorsys)  
  277. {  
  278.     UINT8 uctemp;  
  279.       
  280.     CTunerSetColor(usvideocolorsys);  
  281.     CScalerPageSelect(_PAGE8);  
  282.     switch(usvideocolorsys)  
  283.     {  
  284.         case _TV_VIDEO_SYS_NTSC:  
  285.             uctemp = 0x00;  
  286.             break;  
  287.         case _TV_VIDEO_SYS_PAL:  
  288.             if(GET_CURR_AUDIO_SYS() == _TV_AUDIO_SYS_M)  
  289.                 uctemp = 0x01;  
  290.             else if(GET_CURR_AUDIO_SYS() == _TV_AUDIO_SYS_N)  
  291.                 uctemp = 0x03;  
  292.             else   
  293.                 uctemp = 0x06;  
  294.             break;  
  295.         case _TV_VIDEO_SYS_SECAM:  
  296.                 uctemp = 0x07;  
  297.             break;  
  298.         case _TV_VIDEO_SYS_AUTO:  
  299.         default:  
  300.                 uctemp = 0x80;  
  301.             break;  
  302.     }  
  303.       
  304.     if(uctemp == 0x80){  
  305.         CScalerSetByte(_P8_MANUAL_MODE_D2,0x00);  
  306.         CTimerDelayXms(200);  
  307.         CScalerSetByte(_P8_MANUAL_MODE_D2,uctemp);  
  308.         }  
  309.     CScalerPageSelect(_PAGE9);  
  310.     CScalerSetByte(_P9_CKILL_B5,0x87);  
  311. }