📄 tft.c
字号:
#include "internal.h"#include "customer.h"#include "winav.h"#ifdef CT950_STYLE//#include "rtcdrv.h"//#define TFT_SHOW_TIME#endif#ifdef SUPPORT_TFT//#define VIPOR_CT675#ifdef CT909P_IC_SYSTEM #define VP_API_CT909P#else #define VP_API_CT909#endif//#define TFT_SUPPORT_AVIN// LLY3.07, porting CZ-YHTang code to use define for AV In feature.#ifdef TFT_SUPPORT_AVIN#define USE_CVBS_TABLE#endif // #ifdef TFT_SUPPORT_AVIN#ifdef SUPPORT_CCIR656#define USE_CCIR656_TABLE//#define SUPPORT_BATTERY_DETECTION#else // #ifdef SUPPORT_CCIR656#define USE_SVIDEO_TABLE#endif // #ifdef SUPPORT_CCIR656#ifdef SUPPORT_TFT_DIGITAL_MODE #define Digital_PANEL #define PScan_mode#endif #ifndef REGTABLE#define REGTABLE "VD\Regtable_CT950.H" //Set TFT include register table . Jeff VD 1.23 Add#endif#include REGTABLE/*#ifdef VP_API_CT909P#if (DECODER_SYSTEM == DMP952A_EVAL) #include "VD\Regtable_CT952.H" #elif (DECODER_SYSTEM == DVD909P_A_EVAL) #include "VD\Regtable_CT909P_A.H"#elif (DECODER_SYSTEM == DVD909P_EVAL_P3) #include "VD\Regtable_CT909P.H" #elif (DECODER_SYSTEM == DMP955A_EVAL) #include "VD\Regtable_CT955.H"#elif ((DECODER_SYSTEM == DMP956A_EVAL)||(DECODER_SYSTEM == DVD956A_DEV)) //#ifdef SUPPORT_TFT_DIGITAL_MODE #define Digital_PANEL #define PScan_mode #include "VD\Regtable_CT956.H" //#else //#define PScan_mode //#include "VD\Regtable_CT955.H" //#endif#endif #else #include "VD\Regtable_CT950.H"#endif //VP_API_CT909P*/#include "CC.h"#include "setup.h"#include "tft.h"#include "input.h"#include "utl.h"#include "HAL.h"#include "SERVO.h"#include "navigate.h"//#define SetPicture_ALL#define MUSTEK_RING_BRIGHT#include "VD\viporfunc.c"#include "VD\ViporOSD.C"#include "tftsetup.c" //#define TFT_DEBUG//#define Light_detect#ifdef CT951_PLATFORM //CoCo2.38 //Jeff check 20070320#define PIN_SDAT 20#define PIN_SCLK 21#endif // #ifndef CT951_PLATFORMI2C_CONFIG I2C_Config;BYTE _sbAVInSW = FALSE;BYTE __bTft_TVModePrev = 0;extern BIT _btAVIN; //Jeff 20060705 Add for AV inDWORD __dwTft_BackLight_Timer = 0xffffffff;#ifdef SUPPORT_BATTERY_DETECTIONDWORD __dwTtfLowBattTime = 0xffffffff;BYTE __bBatterty_POWER=0;#endifTFTSTATUS __TFTStatusInfo = {#ifdef SUPPORT_BATTERY_DETECTION TFT_BATTERY_STATUS_HIGH, TFT_BATTERY_STATUS_HIGH,#endif TFT_TVTYPE_STATUS_NORMAL,#ifdef SUPPORT_FLIP EN_PANEL_FLIP_NORMAL,#endif TFT_BACKLIGHT_STATUS_ON, TFT_AV_STATUS_DVD, TFT_AV_STATUS_DVD, FALSE, TFT_SIGNAL_STATUS_UNLOCK, TFT_SIGNAL_STATUS_NoSignal, 0, 0};TFTOSDSTATUS __TFTOSDStatusInfo;TFTSYSTEMATTRIBUTE __TFTSystemAttr;TFTPICATTRIBUTE __TFTPicAttr;void _TFT_Init_I2C(void);BYTE _TFT_ReadAvPIN(void);#ifdef SUPPORT_BATTERY_DETECTIONvoid TFT_BatteryAction(void);#endif#ifdef TFT_SUPPORT_AVINvoid TFTOSD_ShowAvStatus(BYTE bShow);//***********************************************************************************************BYTE code TFTOSD_AV_String[] ={ _VIPOR_A, _VIPOR_V, _VIPOR_EOF};//--------------------------------------------------------------------------// Function : TFTOSD_ShowAvStatus// Description : show osd ''AV" or clear it// Input :TRUE:show osd, false: clear osd//--------------------------------------------------------------------------void TFTOSD_ShowAvStatus(BYTE bShow){ if(bShow) { Vipor_PrintString(0, 0, VIPOR_OSD_GREEN, (BYTE*) &TFTOSD_AV_String); } else { Vipor_OsdClearRow( 0, 0, VIPOR_OSD_BLACK); }}#endif // #ifdef TFT_SUPPORT_AVIN#ifdef SUPPORT_BATTERY_DETECTIONBYTE code TFTOSD_Battery_String[] ={ _VIPOR_L, _VIPOR_O, _VIPOR_W, _VIPOR__, _VIPOR_B, _VIPOR_A, _VIPOR_T, _VIPOR_T, _VIPOR_E, _VIPOR_R, _VIPOR_Y, _VIPOR_EOF};//--------------------------------------------------------------------------// Function : TFTOSD_ShowBattery// Description : show osd ''LOW BATTERY" or clear it// Input :TRUE:show osd, false: clear osd//--------------------------------------------------------------------------void TFTOSD_ShowBattery(BYTE bShow){ BYTE i; BYTE code *dptr = TFTOSD_Battery_String; BYTE __bBatterty_POWER = Vipor_BATTERY_State(); __bBatterty_POWER = __bBatterty_POWER * 127 /1000; for(i=0; i<12; i++) gbTrmBuf[i]=*dptr++; //gbTrmBuf[8]=__bBatterty_POWER/100; //__bBatterty_POWER -= (gbTrmBuf[8]*100); /* gbTrmBuf[8]=(__bBatterty_POWER)/10; __bBatterty_POWER -= (gbTrmBuf[8]*10); gbTrmBuf[9] = _VIPOR_V; gbTrmBuf[10]=__bBatterty_POWER; gbTrmBuf[8]++; //gbTrmBuf[9]++; gbTrmBuf[10]++; gbTrmBuf[11]=_VIPOR_EOF; bShow = 1; */ if (bShow && !__bBatterty_POWER) { Vipor_PrintString(12, 0, VIPOR_OSD_RED, (BYTE*) &gbTrmBuf[0]); } else { Vipor_OsdClearRow( 12, 12, VIPOR_OSD_BLACK); }}#endif // #ifdef SUPPORT_BATTERY_DETECTION//--------------------------------------------------------------------------// Function : TFT_BackLight// Description : control backlight on or off// Input :TRUE:turn on backlight, false: turn off backlight//--------------------------------------------------------------------------void TFT_IO_BackLight(BYTE flag){ // Add code to turn off back light #if 0 if (flag==TRUE) { HAL_WriteGPIO(TFT_BACKLIGHT_GRP, PIN_TFT_BACKLIGHT, 1); printf("BackLight_On\n"); } else { HAL_WriteGPIO(TFT_BACKLIGHT_GRP, PIN_TFT_BACKLIGHT, 0); printf("BackLight_Off\n"); } #else if (flag==TRUE) { HAL_WriteGPIO(TFT_BACKLIGHT_GRP, PIN_TFT_BACKLIGHT, 0); printf("BackLight_On\n"); } else { HAL_WriteGPIO(TFT_BACKLIGHT_GRP, PIN_TFT_BACKLIGHT, 1); printf("BackLight_Off\n"); } #endif}void TFT_BackLight(BYTE flag){ if (flag) Vipor_SetBlackLight_ON(); else Vipor_SetBlackLight_OFF(); TFT_IO_BackLight(flag); // Add code to turn off back light}void TFT_FreeRun(BIT flag){ if (flag) {// printf("SetBlackScreen\n"); Vipor_SetBlackScreen(); } else {// printf("SetNormalOutput\n"); Vipor_SetNormalOutput(); }} //--------------------------------------------------------------------------// Function : TFT_Adjust_VideoAttr// Description :according input signal attribute to set VP77 register// Input :bSource:CVBS or SVIDEO; bSystem:NTSC or PAL//--------------------------------------------------------------------------void TFT_Adjust_VideoAttr(BYTE bSource, BYTE bSystem) // because the regtable default subsystem is 0, so we don't need to add bSubSystem param{ TFT_BackLight(0); if (bSource == EN_LCD_VID_FORMAT_CVBS) { if(bSystem==EN_VID_MODE_NTSC) Vipor_SetVideo_CVBS_NTSC(); else if(bSystem==EN_VID_MODE_PAL) Vipor_SetVideo_CVBS_PAL(); } else if(bSource==EN_LCD_VID_FORMAT_SVIDEO) { if(bSystem==EN_VID_MODE_NTSC) Vipor_SetVideo_SVIDEO_NTSC(); else if(bSystem==EN_VID_MODE_PAL) Vipor_SetVideo_SVIDEO_PAL(); } else if(bSource==EN_LCD_VID_FORMAT_CCIR656) //Jeff 20060517 ADD here when USE CCIR656 { if(bSystem==EN_VID_MODE_NTSC) Vipor_CCIR656_NTSC(); else if(bSystem==EN_VID_MODE_PAL) Vipor_CCIR656_PAL(); #ifdef PScan_mode//Digital_PANEL else if(bSystem==EN_VID_MODE_TFT_DIGITAL) Vipor_CCIR656_NTSC_P();#endif //Digital_PANEL /* else if(bSystem==EN_VID_MODE_TFT_ANALOG) ; */ } TFTSetup_SetPicAttr(); Vipor_OsdInit();// TFT_BackLight(1);}//--------------------------------------------------------------------------// Function : TFT_Adjust_TvType// Description :set vp77 register to Adjust TFT PANEL display size// Input :bTvType: 16:9 or 4:3//--------------------------------------------------------------------------void TFT_Adjust_TvType(BYTE bTvType){#ifdef MUSTEK_PF_A700_OLD #ifndef SUPPORT_6X4 { extern BYTE __bMMMenuID, __bThumbnailMode; extern IMAGE_FRAME_SETUPINFO __ImageFrameSetupInfo; if(__ImageFrameSetupInfo.bDisplayType == SETUP_DISPLAY_TYPE_4_3) //if(__SetupInfo.bAspectRatio == SETUP_SCREEN_TV_TYPE_LB) { if((__bAttrPlay==ATTR_JPG) && (__bMMMenuID==0) && !__bThumbnailMode) // MM_MENU_NONE = 0 { if(bTvType != TFT_TVTYPE_STATUS_43LB) { bTvType=TFT_TVTYPE_STATUS_43LB; } } else { if(bTvType != TFT_TVTYPE_STATUS_NORMAL) { bTvType=TFT_TVTYPE_STATUS_NORMAL; } } } } #endif#endif if (__TFTStatusInfo.bAv==TFT_AV_STATUS_AV) { if(bTvType==TFT_TVTYPE_STATUS_NORMAL) { Vipor_SetAspect_16_9_CVBS(); } else { Vipor_SetAspect_4_3_CVBS(); } } else { if(bTvType==TFT_TVTYPE_STATUS_NORMAL) { Vipor_SetAspect_16_9(); } else { Vipor_SetAspect_4_3(); }}}//--------------------------------------------------------------------------// Function : TFT_AdjustTVMode// Description :set VP77 register to match video format. It is Called by hal.c when video format is changed // Input :bMode:NTSC OR PAL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -