/*============================================================= * Copyright (c) Realtek Semiconductor Corporation, 2005 * * All rights reserved. * *============================================================*/ #define __TV__ #define _TUNER_H_ //fjyang #include "Core\Header\Include.h" void TV_Power_ON(void) { //bTunerPower=1;//add by xyw 070827 SET_TUNER_POWER(); } void TV_Power_Down(void) { //bTunerPower=0;//add by xyw 070827 CLR_TUNER_POWER(); } BYTE CTvSetChStatus(BYTE chn,bit status) { BYTE mask,q,r; //check chn range if(chn >= GET_TV_MAX_CH()) return ((BYTE)_FALSE); //get q ,r and mask q=(chn)/8; r=(chn)%8; mask = _BIT0 << r ; //set correspoding bit if(status==_ENABLE) stTvChStatus.ChStatus[q] |= mask ; else stTvChStatus.ChStatus[q] &= ~mask ; return ((BYTE)_TRUE); } BYTE CTvGetChStatus(BYTE chn) { BYTE mask,q,r; if(chn >= GET_TV_MAX_CH()) return ((BYTE)_FALSE); //get q ,r and mask q=(chn)/8; r=(chn)%8; mask = _BIT0 << r ; //set correspoding bit if( stTvChStatus.ChStatus[q] & mask ) return ((BYTE)_TRUE); else return ((BYTE)_FALSE); } void CTvTunerChangeChannelApplyNewData(void) { //20070407, finetune update CEepromGetTvPdbData(stTvInfo.CurChn, &stTvPdb.chinfo); //20080418, add start... #if (_TV_SEL_CH_M3) TempTvNumbers = stTvInfo.CurChn; #endif //#if (_TV_SEL_CH_M3) //20080418, add end... SET_TV_FINETUNE_PRE_DONE(); #if 1//(_TV_FINETUNE_SAVE_SUPPORT) //20070407, get finetune data CEepromGetTvFinetuneData(stTvInfo.CurChn, &ucTvFinetuneData); #endif #if (_TV_AFC_SUPPORT) //20070407, finetune update if (GET_TV_AFC_ENABLE()) CTunerSetFreq(stTvPdb.pdb, stTvPdb.Afc); else CTunerSetFreq(stTvPdb.pdb + ucTvFinetuneData-50 , 0); //if (GET_CURR_AUDIO_SYS()!=_TV_AUDIO_SYS_AUTO) //CTunerSetSound(GET_CURR_AUDIO_SYS()); #else CTunerSetFreq(stTvPdb.pdb); #endif //CTimerDelayXms(_TV_AUTOSCAN_RESPONSE_TIME); //CTimerDelayXms(_TV_AUTOSCAN_RESPONSE_TIME); //CTimerDelayXms(_TV_AUTOSCAN_RESPONSE_TIME); } //this will cause mode reset when change mode between signal and no signal void CTvTunerChangeChannel(void) { #if 0 BYTE lastAvMode; bit isVRateChange = 0; #endif //czl 071205 //volumetemp=stAudioData.Volume; //stAudioData.Volume=0; ///CPt2314WrVolumeGradual(stAudioData.Volume, 0); //CPt2314WrMute(_ENABLE); //CTimerDelayXms(5); if(ucVideoProcessState== _ACTIVE_STATE) { //DebugPrintf("CTvTunerChangeChannel()\n", 0); //"POP" and Blue background while channel is changed, update // CAudioSetVolume(0); // CTimerDelayXms(100); // SET_MUTE_PROCESS(_ENABLE); #if DINISHI_CHANGESOURCE_DVD_TV_MUTE // MUTE_SW= stAudioData.Volume; //SET_MUTE_PROCESS(0);//JINSUO ADD 20100710 CTimerDelayXms(150); CAudioChipWrVolumeGradual(stAudioData.Volume, 1); CTimerDelayXms(200); SET_MUTE_PROCESS(1); #endif //CAdjustBackgroundColor(0,0,0x80); #if _CUSTOMER_SANSE CAdjustBackgroundColor(0,0,0x80); #else CAdjustBackgroundColor(0,0,0); #endif CScalerSetBit(_VDISP_CTRL_28, 0xff, 0x20); //I2CSetBit(0x38,0x3f,0x40); ////////////////////////////////////////////////// CTvTunerChangeChannelApplyNewData(); ////////////////////////////////////////////////// { CModeResetMode(); } //I2CSetBit(0x38,0x3f,0x00); } else { #if _CUSTOMER_SANSE CAdjustBackgroundColor(0,0,0x80); CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT7 | _BIT5 | _BIT1 | _BIT0)); #else #if _TV_BACKGROUND_OPTION_SUPPORT //if (GET_TV_BACKGROUND()) { CAdjustBackgroundColor(0,0,0); CScalerSetBit(_VDISP_CTRL_28, 0xff, 0x20); } #else CAdjustBackgroundColor(0,0,0); CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT7 | _BIT5 | _BIT1 | _BIT0)); #endif #endif ////////////////////////////////////////////////// CTvTunerChangeChannelApplyNewData(); ////////////////////////////////////////////////// if(1/*CVdcIsLocked() == _TRUE*/) { CModeResetMode(); } else { #if _TV_BACKGROUND_OPTION_SUPPORT //20081018 ccy modify if (GET_TV_BACKGROUND()==0) #else if (0)//(GET_TV_BACKGROUND()==0) #endif { CScalerPageSelect(_PAGE8); CScalerSetBit(_P8_OUTPUT_CTRL_A7, 0x4f, 0xB0); //CVideoDisplaySet(); CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT7 |_BIT3 |_BIT1 | _BIT0)); // if(Panel[0].PanelConfig&_BIT3 == 0) // CScalerSetBit(_VDISP_CTRL_28, ~( _BIT3), (0)); // else // CScalerSetBit(_VDISP_CTRL_28, ~( _BIT3), (_BIT3)); CAdjustBackgroundColor(0,0,0x00); } //20070401 else { //20081027 CCY MODIFY CScalerPageSelect(_PAGE8); CScalerSetBit(_P8_OUTPUT_CTRL_A7, 0x4f, 0x20); //CModeSetFreeRun(); CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT5 | _BIT1 | _BIT0)); //20070331 CAdjustBackgroundColor(0,0,0xff); } } } } #if _TUNER_TYPE!=_TUNER_NONE void CTvScanSetBackground(BYTE display) { display = display; #if 1//(_TV_BACKGROUND_OPTION_SUPPORT) //DebugPrintf("\nTVScan:bg=%d\n",GET_TV_BACKGROUND()); //20080829 ccy modify if ((GET_INPUTPORT_TYPE(stSystemData.InputSource) == _VIDEO_TV_PORT)) { if(0)// (GET_TV_BACKGROUND()==0)//20081013 ccy modify //delect by dengyi 2010 01 07 { CScalerPageSelect(_PAGE8); CScalerSetBit(_P8_OUTPUT_CTRL_A7, 0x4f, 0xB0); //Enable snow noise. zhang_dc 2008.01.28 //CVideoDisplaySet(); //CScalerSetBit(_VDISP_CTRL_28, ~(_BIT5 | _BIT3 | _BIT1 | _BIT0),(_BIT1 | _BIT0)); CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT7 |_BIT3 |_BIT1 | _BIT0)); //czl 080506 // if(Panel[0].PanelConfig&_BIT3 == 0) // CScalerSetBit(_VDISP_CTRL_28, ~( _BIT3), (0)); // else // CScalerSetBit(_VDISP_CTRL_28, ~( _BIT3), (_BIT3)); //20070401 CAdjustBackgroundColor(0,0,0x00); } else { CScalerPageSelect(_PAGE8); CScalerSetBit(_P8_OUTPUT_CTRL_A7, 0x4f, 0x20); //Disable snow noise. zhang_dc 2008.01.28 //CTimerReactiveNosignal_Icon_Powersaving(1); //dong disable 20091026 //CModeSetFreeRun(); CScalerSetBit(_VDISP_CTRL_28, ~(_BIT7 | _BIT5 | _BIT3 | _BIT1 | _BIT0), (_BIT5 | _BIT1 | _BIT0)); CAdjustBackgroundColor(0x00, 0x00, 0xff); } } /* { CVideoDisplaySet(); CScalerSetBit(_VDISP_CTRL_28, ~(_BIT5 | _BIT3 | _BIT1 | _BIT0),(_BIT1 | _BIT0)); CAdjustBackgroundColor(0x00, 0x00, 0x00); } else { CModeSetFreeRun(); CAdjustBackgroundColor(0x00, 0x00, 0xff);//20080901 ccy modify CScalerSetBit(_VDISP_CTRL_28, ~_BIT3, _BIT5); // display output background & free running mode } */ #else CModeSetFreeRun(); CAdjustBackgroundColor(_TV_SCAN_BG_RED,_TV_SCAN_BG_GREEN,_TV_SCAN_BG_BLUE); CScalerSetBit(_VDISP_CTRL_28, ~_BIT3, _BIT5); // display output background & free running mode #endif } #endif //#if _TUNER_TYPE!=_TUNER_NONE //added by czl 100118 void CTvVideoColorStandardsetting(BYTE usvideocolorsys) { UINT8 uctemp; CTunerSetColor(usvideocolorsys); CScalerPageSelect(_PAGE8); switch(usvideocolorsys) { case _TV_VIDEO_SYS_NTSC: uctemp = 0x00; break; case _TV_VIDEO_SYS_PAL: if(GET_CURR_AUDIO_SYS() == _TV_AUDIO_SYS_M) uctemp = 0x01; else if(GET_CURR_AUDIO_SYS() == _TV_AUDIO_SYS_N) uctemp = 0x03; else uctemp = 0x06; break; case _TV_VIDEO_SYS_SECAM: uctemp = 0x07; break; case _TV_VIDEO_SYS_AUTO: default: uctemp = 0x80; break; } if(uctemp == 0x80){ CScalerSetByte(_P8_MANUAL_MODE_D2,0x00); CTimerDelayXms(200); CScalerSetByte(_P8_MANUAL_MODE_D2,uctemp); } CScalerPageSelect(_PAGE9); CScalerSetByte(_P9_CKILL_B5,0x87); }