?? vid_ctrl.c
字號(hào):
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 07/06/08 4:39p $ ****************/
/*************** $Revision:: 12 $ ****************/
/*************** ****************/
/*************** Description : ****************/
/*************** ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : ****************/
/**********************************************************************/
#define _VID_CTRL_C_
#pragma NOAREGS
#include "general.h"
#include "..\..\servopin.h"
extern void vMTKTvInit(void) large;
extern void vTvScartAspect(BYTE bEnable) large;
extern void vTvRGBSel(BYTE bEnable) large;
extern void vTvScartTvSel(BYTE bEnable) large;
#ifdef SUPPORT_HDMI
extern BYTE bSetCompOut(WORD wEEPos, BYTE bValue) large;
#endif //#ifdef SUPPORT_HDMI
// *********************************************************************
// Function :
// Description : Video Control Share Memory Initial Routine,
// called from vUserInit()
// Parameter :
// Return :
// *********************************************************************
// extern void DRS232LogB(BYTE bV1, BYTE bV2, BYTE bV3, BYTE bV4);
// extern void DRS232LogS(char *pcStr);
#if defined(MT1389_REV_L) && (PCBA_SY_MT1389L_TW_V2 == 1)
#define CVBS_LOW_IMP
#endif
#if defined(MT1389_REV_K) && (PCBA_SY_MT1389K_TW_V2 == 1)
#define CVBS_LOW_IMP
#endif
void vInitVideoShareInfo(void) large
{
WORD wOption;
BYTE bTmp;
vVfdSymbol(VFD_SYM_TV_NTSC);
vSetSharedInfo(SI_TV_SYSTEM_30, SV_NTSC_M);
vSetSharedInfo(SI_TV_SYSTEM_25, SV_PAL_B);
vSetSharedInfo(SI_SHARPNESS, SV_MID);
vSetSharedInfo(SI_EDGE_EN, SV_LOW);
vSetSharedInfo(SI_GAMMA, SV_GAMMA_NONE);
#ifdef NO_PEDESTAL_OFFSET
vSetSharedInfo(SI_BLK_LVL, 0);
#else
vSetSharedInfo(SI_BLK_LVL, SV_SETUP);
#endif
vSetSharedInfo(SI_V_BRIGHTNESS, 0);
vSetSharedInfo(SI_V_CONTRAST, 0);
#ifdef MTK_TVE
vSetSharedInfo(SI_V_SATURATION, 0);
#else
vSetSharedInfo(SI_V_SATURATION, 16);
#endif
vSetSharedInfo(SI_HUE, 0);
vSetSharedInfo(SI_LUMINANCE, SV_LUMINANCE_DELAY_1);
vSetSharedInfo(SI_PIC_MODE, SV_NONFLICKER);
#ifdef VIDEO_PAUSE_SHOW_1FLD
vSetSharedInfo(SI_V2_PAUSE_SHOW_1FLD, SV_ON);
#else
vSetSharedInfo(SI_V2_PAUSE_SHOW_1FLD, SV_OFF);
#endif
#ifdef VIDEO_PN_NO_FRM_YC
vSetSharedInfo(SI_V2_PN_NO_FRM_YC, SV_ON);
#else
vSetSharedInfo(SI_V2_PN_NO_FRM_YC, SV_OFF);
#endif
#ifdef VIDEO_SHOW_DYNAMIC_BITRATE
vSetSharedInfo(SI_V2_DYNAMIC_BITRATE, SV_ON);
#else
vSetSharedInfo(SI_V2_DYNAMIC_BITRATE, SV_OFF);
#endif
#ifdef VIDEO_LOGO_KEEP_TVSYS
vSetSharedInfo(SI_LOGO_KEEP_TVSYS, SV_ON);
#else
vSetSharedInfo(SI_LOGO_KEEP_TVSYS, SV_OFF);
#endif
#ifdef VIDEO_SPEED_CONTROL
vSetSharedInfo(SI_V2_SPEED_CONTROL, SV_ON);
#else
vSetSharedInfo(SI_V2_SPEED_CONTROL, SV_OFF);
#endif
vSetSharedInfo(SI_V2_ERR_CRITERION, 0x14);
#ifdef PLAYER_NUI
vSetSharedInfo(SI_V2_OSD_RELATED_LOGO, 0x04); //[runma] add line for nui.
#else
vSetSharedInfo(SI_V2_OSD_RELATED_LOGO, 0x0);
#endif
vSetSharedInfo(SI_NTSC_ADJUST_H, (BYTE)((char)NTSC_ADJUST_H));
vSetSharedInfo(SI_NTSC_ADJUST_V, (BYTE)((char)NTSC_ADJUST_V));
vSetSharedInfo(SI_PAL_ADJUST_H, (BYTE)((char)PAL_ADJUST_H));
vSetSharedInfo(SI_PAL_ADJUST_V, (BYTE)((char)PAL_ADJUST_V));
#ifdef MT1379
vSetSharedInfo(SI_OSD_NTSC_ADJUST_H, (BYTE)(((char)(OSD_NTSC_ADJUST_H - 6))));
#else
vSetSharedInfo(SI_OSD_NTSC_ADJUST_H, (BYTE)(((char)OSD_NTSC_ADJUST_H)));
#endif
vSetSharedInfo(SI_OSD_NTSC_ADJUST_V, (BYTE)((char)OSD_NTSC_ADJUST_V));
vSetSharedInfo(SI_OSD_PAL_ADJUST_H, (BYTE)(((char)OSD_PAL_ADJUST_H)));
vSetSharedInfo(SI_OSD_PAL_ADJUST_V, (BYTE)((char)OSD_PAL_ADJUST_V));
// Initial Close Caption
vSetSharedInfo(SI_CC_RP, 0);
vSetSharedInfo(SI_CC_WP, 0);
// Initial zoom scale factor
vSetSharedInfo(SI_ZOOM_USR_H_BASE, ZOOM_USR_H_BASE);
vSetSharedInfo(SI_ZOOM_USR_V_BASE, ZOOM_USR_V_BASE);
// for PSCAN
#ifdef MT1379
vSetSharedInfo(SI_TVE_OUT_MODE, SV_TVE_DIRECT);
vSetSharedInfo(SI_PSCAN_EN, SV_OFF);
vSetSharedInfo(SI_PSCAN_MODE, SV_PSCAN_AUTO);
vSetSharedInfo(SI_PSCAN_VIDEO, PSCAN_DEFAULT_VIDEO_MODE);
// 030220
vSetSharedInfo(SI_PSCAN_MOTION_THD_LOW, PSCAN_MOTION_THD_LOW);
vSetSharedInfo(SI_PSCAN_MOTION_THD_MID, PSCAN_MOTION_THD_MID);
vSetSharedInfo(SI_PSCAN_MOTION_THD_HIGH, PSCAN_MOTION_THD_HIGH);
vSetSharedInfo(SI_PSCAN_SWITCH_THD, PSCAN_MODE_SWITCH_THD);
vSetSharedInfo(SI_PSCAN_M_PXL_THD_LOW, PSCAN_M_PXL_THD_LOW);
vSetSharedInfo(SI_PSCAN_M_PXL_THD_MID, PSCAN_M_PXL_THD_MID);
vSetSharedInfo(SI_PSCAN_M_PXL_THD_HIGH, PSCAN_M_PXL_THD_HIGH);
vSetSharedInfo(SI_PSCAN_M_PXL_THD_STILL, PSCAN_M_PXL_THD_STILL);
vSetSharedInfo(SI_PSCAN_STILL_SCENE_THD, PSCAN_STILL_SCENE_THD);
vSetSharedInfo(SI_PSCAN_NTSC, PSCAN_NTSC_MODE);
vSetSharedInfo(SI_PSCAN_PAL, PSCAN_PAL_MODE);
vSetSharedInfo(SI_PSCAN_TRICK_MODE, PSCAN_TRICK_MODE);
vSetSharedInfo(SI_PSCAN_EDGE, SV_ON);
vSetSharedInfo(SI_PSCAN_SQUEEZE, SV_OFF);
#endif
vSetSharedInfo(SI_WARMTH_FLT, SV_WARNTH_OFF);
vSetSharedInfo(SI_WARMTH_LEVEL, 0);
vSetSharedInfo(SI_POST_PROCESS_EN, SV_OFF);
vSetSharedInfo(SI_ZOOM_IN_X_FILTER, ZOOM_IN_X_FILTER);
// for capture logo
vSetSharedInfo(SI_FLASH_LOGO_IDX, 0);
vSetSharedInfo(SI_DEFAULT_LOGO, SV_LOGO_FLASH);
wOption = LOGO_BLUE;
bTmp = (wOption & 0x000f) << 4;
vSetSharedInfo(SI_LOGO_CLR_Y, bTmp);
wOption >>= 4;
bTmp = (wOption & 0x000f) << 4;
vSetSharedInfo(SI_LOGO_CLR_CB, bTmp);
wOption >>= 4;
bTmp = (wOption & 0x000f) << 4;
vSetSharedInfo(SI_LOGO_CLR_CR, bTmp);
vSetSharedInfo(SI_G_SYNC, SV_ON);
vSetSharedInfo(SI_VDO_CFG_SET, VDO_CFG_NO);
vSetSharedInfo(SI_VDAC_OFF, SV_OFF);
#ifdef MTK_TVE
vMTKTvInit();
#endif
#if (defined (MT1389_PTCON) && defined (MT1389_REV_L)) //shareinfo initialization
vSetSharedInfo(SI_PANEL_GAMMA, SV_PQ_GAMMA_HIGH);
vSetSharedInfo(SI_PANEL_SATURATION, 0); //temp. mark due to some un-known issue.
vSetSharedInfo(SI_PANEL_BRIGHTNESS, 0);
vSetSharedInfo(SI_PANEL_HUE , 0);
vSetSharedInfo(SI_PANEL_CONTRAST , 0);
// VCOM setting
vSetSharedInfo(SI_TCON_VCOM_GAIN, 0x2);
vSetSharedInfo(SI_TCON_VCOM_LOW, 0x37);
vSetSharedInfo(SI_TCON_VCOM_HIGH,0xC4);
// display position setting
vSetSharedInfo(SI_TCON_HST_NTSC, 0x54);
vSetSharedInfo(SI_TCON_VST_NTSC, 0x12);
vSetSharedInfo(SI_TCON_HST_PAL, 0x55);
vSetSharedInfo(SI_TCON_VST_PAL, 0x16 );
//signals' attribute setting
vSetSharedInfo(SI_TCON_HCK_DELAY, 0 &0x3F); // 6 bit
vSetSharedInfo(SI_TCON_HCK_DRV, 1 &0x03); // 2 bit
vSetSharedInfo(SI_TCON_TCO_DRV, 1 &0x03); // 2 bit
vSetSharedInfo(SI_TCON_LR_DIR, FALSE);
vSetSharedInfo(SI_TCON_UD_DIR, FALSE);
vSetSharedInfo(SI_TCON_LR, TRUE);
vSetSharedInfo(SI_TCON_UD, FALSE);
//vSetSharedInfo(SI_TCON_PIN_CTRL0, HSTLEN | VSTUEN);
//vSetSharedInfo(SI_TCON_PIN_CTRL1,LREN |UDEN);
#endif
#ifdef CVBS_LOW_IMP
vSetSharedInfo(SI_CVBS_LOW_IMP , 1);
#else
vSetSharedInfo(SI_CVBS_LOW_IMP , 0);
#endif
#ifdef MT1389_PSCALER
vSetSharedInfo(SI_PANEL_COEFF_SEL, SHARP_TEST);//Default sharpness mode
vSetSharedInfo(SI_PANEL_PHASETYPE, SV_16_ODD);//Default 16 phase odd type
vSetSharedInfo(SI_PANEL_PRGS, 1);//Default panel progressive out
vSetSharedInfo(SI_PANEL_SHARPNESS_H, 0);//Normal Horizontal Coefficient
vSetSharedInfo(SI_PANEL_SHARPNESS_V, 0);//Normal Vertical Coefficient
vSetSharedInfo(SI_PANEL_SL_TP, 1); //Panel subline set to zero
vSetSharedInfo(SI_PANEL_VPLL, VPLL_090); //Default 9MHz Panel
#endif
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vVideoTvSystem(BYTE bSystem) large
{
#ifdef PSCAN_EN
#ifdef PSCAN_FORCE_TV_AUTO
if ((bSystem != SV_AUTO) && (bSharedInfo(SI_PSCAN_EN) == SV_ON))
{
bSystem = SV_AUTO;
}
#endif /* PSCAN_FORCE_TV_AUTO */
#endif /* PSCAN_EN */
if (bSystem != bSharedInfo(SI_TV_SYSTEM))
{
vSetSharedInfo(SI_TV_SYSTEM, bSystem);
vNotifySharedInfo(SI_TV_SYSTEM, 0, 0);
switch (bSystem)
{
case SV_NTSC:
vVfdSymbol(VFD_SYM_TV_NTSC);
break;
case SV_PAL:
vVfdSymbol(VFD_SYM_TV_PAL);
break;
default:
vVfdSymbol(VFD_SYM_TV_MULTI);
break;
}
}
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vVideoGammaLevel(BYTE bLevel) large
{
if (bLevel > VID_GAMMA_LEVEL_MAX)
{
bLevel = VID_GAMMA_LEVEL_MAX;
}
else if (bLevel < VID_GAMMA_LEVEL_MIN)
{
bLevel = VID_GAMMA_LEVEL_MIN;
}
vSetSharedInfo(SI_GAMMA, bLevel);
vNotifySharedInfo(SI_GAMMA, 0, 0);
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
char cVideoGammaBright(char cLevel) large
{
if (cLevel > VID_BRIGHTNESS_MAX)
{
cLevel = VID_BRIGHTNESS_MAX;
}
else if (cLevel < VID_BRIGHTNESS_MIN)
{
cLevel = VID_BRIGHTNESS_MIN;
}
vSetSharedInfo(SI_V_BRIGHTNESS, cLevel);
vNotifySharedInfo(SI_V_BRIGHTNESS, 0, 0);
#ifdef SUPPORT_HDMI
if(bSharedInfo(SI_HDCP_SERVICE_ROUTINE) == 1)
{
vSendPeriCmd(HDMI_CMD_GAMMA_CONTROL, 0, 0);
}
#endif //#ifdef SUPPORT_HDMI
return cLevel;
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
char cVideoGammaContrast(char cLevel) large
{
if (cLevel > VID_CONTRAST_MAX)
{
cLevel = VID_CONTRAST_MAX;
}
else if (cLevel < VID_CONTRAST_MIN)
{
cLevel = VID_CONTRAST_MIN;
}
vSetSharedInfo(SI_V_CONTRAST, cLevel);
vNotifySharedInfo(SI_V_CONTRAST, 0, 0);
#ifdef SUPPORT_HDMI
if(bSharedInfo(SI_HDCP_SERVICE_ROUTINE) == 1)
{
vSendPeriCmd(HDMI_CMD_GAMMA_CONTROL, 0, 0);
}
#endif //#ifdef SUPPORT_HDMI
return cLevel;
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vVideoHueDegree(char cDegree) large
{
if (cDegree > VID_HUE_DEGREE_MAX)
{
cDegree = VID_HUE_DEGREE_MAX;
}
else if (cDegree < VID_HUE_DEGREE_MIN)
{
cDegree = VID_HUE_DEGREE_MIN;
}
vSetSharedInfo(SI_HUE, cDegree);
vNotifySharedInfo(SI_HUE, 0, 0);
if(bSharedInfo(SI_HDCP_SERVICE_ROUTINE) == 1)
{
vSendPeriCmd(HDMI_CMD_HUE_CONTROL, 0, 0);
}
#endif //#ifdef SUPPORT_HDMI
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
#ifdef MT1379
void vVideoHueSaturation(char cLevel) large
{
if (cLevel > VID_SATURATION_MAX)
{
cLevel = VID_SATURATION_MAX;
}
else if (cLevel < VID_SATURATION_MIN)
{
cLevel = VID_SATURATION_MIN;
}
vSetSharedInfo(SI_V_SATURATION, cLevel);
vNotifySharedInfo(SI_V_SATURATION, 0, 0);
#ifdef SUPPORT_HDMI
if(bSharedInfo(SI_HDCP_SERVICE_ROUTINE) == 1)
{
vSendPeriCmd(HDMI_CMD_HUE_CONTROL, 0, 0);
}
#endif //#ifdef SUPPORT_HDMI
}
#else // for MT1369
void vVideoHueSaturation(BYTE bLevel) large
{
if (bLevel > VID_SATURATION_MAX)
{
bLevel = VID_SATURATION_MAX;
}
else if (bLevel < VID_SATURATION_MIN)
{
bLevel = VID_SATURATION_MIN;
}
vSetSharedInfo(SI_V_SATURATION, bLevel);
vNotifySharedInfo(SI_V_SATURATION, 0, 0);
}
#endif // for MT1369
#ifdef MT1389_PTCON
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vVideoPQHueDegree(char cDegree) large
{
if (cDegree > VID_HUE_DEGREE_MAX)
{
cDegree = VID_HUE_DEGREE_MAX;
}
else if (cDegree < VID_HUE_DEGREE_MIN)
{
cDegree = VID_HUE_DEGREE_MIN;
}
vSetSharedInfo(SI_PANEL_HUE, cDegree);
vNotifySharedInfo(SI_PANEL_HUE, 0, 0);
}
void vVideoPQHueSaturation(char cLevel) large
{
if (cLevel > VID_SATURATION_MAX)
{
cLevel = VID_SATURATION_MAX;
}
else if (cLevel < VID_SATURATION_MIN)
{
cLevel = VID_SATURATION_MIN;
}
vSetSharedInfo(SI_PANEL_SATURATION, cLevel);
vNotifySharedInfo(SI_PANEL_SATURATION, 0, 0);
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
char cVideoPQGammaContrast(char cLevel) large
{
if (cLevel > VID_CONTRAST_MAX)
{
cLevel = VID_CONTRAST_MAX;
}
else if (cLevel < VID_CONTRAST_MIN)
{
cLevel = VID_CONTRAST_MIN;
}
vSetSharedInfo(SI_PANEL_CONTRAST, cLevel);
vNotifySharedInfo(SI_PANEL_CONTRAST, 0, 0);
return cLevel;
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
void vVideoPQSharpness(BYTE bLevel) large
{
if (bLevel > VID_SHARPNESS_MAX)
{
bLevel = VID_SHARPNESS_MAX;
}
else if (bLevel < VID_SHARPNESS_MIN)
{
bLevel = VID_SHARPNESS_MIN;
}
if(bLevel == 2)
bLevel = 0;
else if(bLevel == 1)
bLevel = 3;
else if(bLevel == 0)
bLevel = 5;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -