⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vid_ctrl.c

📁 MTK 1389e版 MINI组合音响代码
💻 C
📖 第 1 页 / 共 2 页
字号:
// 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);
}
#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

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vVideoEdgeEnhance(BYTE bLevel) large
{
  if (bLevel > VID_EDGE_ENHANCE_MAX)
  {
    bLevel = VID_EDGE_ENHANCE_MAX;
  }
  else if (bLevel < VID_EDGE_ENHANCE_MIN)
  {
    bLevel = VID_EDGE_ENHANCE_MIN;
  }

  vSetSharedInfo(SI_EDGE_EN, bLevel);
  vNotifySharedInfo(SI_EDGE_EN, 0, 0);
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vVideoPedestal(BYTE bType,BOOL fgOnOff) large
{
  /* TODO: check NTSC/PAL system */
  BYTE bOriValue;
  bOriValue = bSharedInfo(SI_BLK_LVL);
  /* pedestal on will make black level lighter */
  if(fgOnOff) //on  
    vSetSharedInfo(SI_BLK_LVL, bOriValue|bType);
  else //off
    vSetSharedInfo(SI_BLK_LVL, bOriValue&(~bType));
  
//r   vSetSharedInfo(SI_BLK_LVL, fgOnOff);
  vNotifySharedInfo(SI_BLK_LVL, 0, 0);
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vVideoSharpness(BYTE bLevel) large
{
  if (bLevel > VID_SHARPNESS_MAX)
  {
    bLevel = VID_SHARPNESS_MAX;
  }
  else if (bLevel < VID_SHARPNESS_MIN)
  {
    bLevel = VID_SHARPNESS_MIN;
  }
#ifdef SHARPNESS_USE_YLPF
  switch(bLevel)
  {
    case SV_LOW:
      bLevel = (5<<2)|SV_YLP_ENABLE; //bit7 -> sharpness use YLP, 6->10 worse sharpness
    break;
    case SV_MID:
      bLevel = (3<<2)|SV_YLP_ENABLE; //5 normal sharpness
    break;
    case SV_HIGH:
    default:
      bLevel = (2<<2)|SV_YLP_ENABLE; //4->0 more sharpness
    break;
  }
#else
  bLevel |= (5<<2); //sharpness use CLP and set YLP normal
#endif 
  
  vSetSharedInfo(SI_SHARPNESS, bLevel);
  vNotifySharedInfo(SI_SHARPNESS, 0, 0);
}

#ifdef MTK_TVE
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vVideoPScanMode(BYTE bPScanEn, BYTE bTvMode) large
{
  BYTE bMode = bEepromReadByte(ASPECT_POSITION);

#ifdef PSCAN_EN
  if (bPScanEn)
  {
    if (bEepromReadByte(TV_COMP_POS)==SV_TVE_VGA)
      vVfdSymbol(VFD_SYM_TV_VGA);    	
    else
      vVfdSymbol(VFD_SYM_TV_PSCAN);    	    	
  }
  else
    vVfdSymbol(VFD_SYM_TV_INTERLACE);  	
  		
#endif
  #ifdef PSCAN_FORCE_TV_AUTO
  if ((bPScanEn == SV_ON) && (bSharedInfo(SI_TV_SYSTEM) != SV_AUTO))
  {
    vSetSharedInfo(SI_TV_SYSTEM, SV_AUTO);
    vNotifySharedInfo(SI_TV_SYSTEM, 0, 0);

    vVfdSymbol(VFD_SYM_TV_MULTI);
  }
  #endif /* PSCAN_FORCE_TV_AUTO */

  if (bTvMode != SV_TVE_SCART)
  {
    vSetSharedInfo(SI_G_SYNC, SV_ON);
    vNotifySharedInfo(SI_G_SYNC, 0, 0);
  }

  #ifdef PSCAN_EN
  if (bPScanEn == SV_ON)
  {
    if (bTvMode == SV_TVE_VGA)
    {
      vSetSharedInfo(SI_G_SYNC, SV_OFF);
      vNotifySharedInfo(SI_G_SYNC, 0, 0);
    }
    
    if (bTvMode == SV_TVE_DIRECT)
    {
      bTvMode = SV_TVE_YCBCR;
    }

    if (bSharedInfo(SI_TVE_OUT_MODE) != bTvMode)
    {
      vSetSharedInfo(SI_TVE_OUT_MODE, bTvMode);
      vNotifySharedInfo(SI_TVE_OUT_MODE, 0, 0);
    }

    if (bSharedInfo(SI_PSCAN_EN) != SV_ON)
    {
      vSetSharedInfo(SI_PSCAN_EN, SV_ON);
      vNotifySharedInfo(SI_PSCAN_EN, 0, 0);
    }
  }
  else
  #endif /* PSCAN_EN */
  // P-Scan off
  {
    if (bTvMode != SV_TVE_SCART)
    {
      vTvScartAspect(0);  // don't care
      vTvRGBSel(1);
      vTvScartTvSel(0);   // don't care
    }
   
    if (bTvMode == SV_TVE_VGA)
    {
      fgEepromWriteByte(TV_COMP_POS, SV_TVE_YCBCR); //BillDen
      bTvMode = SV_TVE_YCBCR;
    }
    else if (bTvMode == SV_TVE_SCART)
    {
      bTvMode = SV_TVE_RGB;

      vSetSharedInfo(SI_G_SYNC, SV_OFF);
      vNotifySharedInfo(SI_G_SYNC, 0, 0);
      vTvScartTvSel(0);
      vTvRGBSel(0);
      if (bMode == SV_WIDE)
        vTvScartAspect(1);
      else
        vTvScartAspect(0);
    }

    if (bSharedInfo(SI_TVE_OUT_MODE) != bTvMode)
    {
      vSetSharedInfo(SI_TVE_OUT_MODE, bTvMode);
      vNotifySharedInfo(SI_TVE_OUT_MODE, 0, 0);
    }

    if (bSharedInfo(SI_PSCAN_EN) != SV_OFF)
    {
      vSetSharedInfo(SI_PSCAN_EN, SV_OFF);
      vNotifySharedInfo(SI_PSCAN_EN, 0, 0);
    }
  }
}
#endif /* MTK_TVE */

 #ifdef SCART_SELECTION
 extern BYTE xdata _bScart;
 #endif


#ifdef PSCAN_EN
  #ifdef  SETUP_NO_PSCAN_CTRL
/***************************************************************************
     Function : void vUserRecallPScan(BOOL fgInit)
  Dsecription : called from Timer routine
    Parameter : None
       Return : None
***************************************************************************/
#if defined(SUPPORT_RUSSIAN)||defined(SUPPORT_WAIXIAO)//Vincent @11-22-03
extern BIT _fgSoftReset;
#endif
  
void vVideoUserRecallPScan(BOOL fgInit) large
{
  BYTE bPScan, bTvMode;

#if defined(SUPPORT_RUSSIAN)||defined(SUPPORT_WAIXIAO) 		//Vincent @11-22-03			//俄罗斯IS/PS掉电不记忆
	if(fgIsSoftReset())
	{
	  bTvMode = bEepromReadByte(TV_COMP_POS);
	  bPScan = bEepromReadByte(TV_PSCAN_EN_POS);
	}
	else
	{
	 fgEepromWriteByte(TV_PSCAN_EN_POS,SV_OFF);
	 bPScan = SV_OFF;
	 ///fgEepromWriteByte(TV_COMP_POS, SV_TVE_DIRECT);
	 ///bTvMode = SV_TVE_DIRECT;	 
	}
#else
  bTvMode = bEepromReadByte(TV_COMP_POS);
  bPScan = bEepromReadByte(TV_PSCAN_EN_POS);
#endif

  if (fgInit == FALSE) // not inited, do reset
  {
    if (bTvMode == SV_TVE_VGA)
    {
      fgEepromWriteByte(TV_COMP_POS, SV_TVE_YCBCR);
      bTvMode = SV_TVE_YCBCR;
    }
    
    if (bPScan != SV_OFF)
    {
      fgEepromWriteByte(TV_PSCAN_EN_POS, SV_OFF);
      bPScan = SV_OFF;
    }
  }
  else //BillDen
  {
    if((bTvMode != SV_TVE_YCBCR) && (bPScan == SV_OFF))
    {
      fgEepromWriteByte(TV_COMP_POS, SV_TVE_YCBCR);
      bTvMode = SV_TVE_YCBCR;
    }
  }	
#ifdef SCART_SELECTION
  if(_bScart == 1 && bPScan == EV_OFF)
  	{
  	   vVideoPScanMode(1, SV_TVE_RGB);
  	    vTvRGBSel(1);
  	}
  #if defined(SCART_SELECTION)&&defined(MT1389_REV_E)		//修正BUG:S端子在PS下掉电,再上电后无输出
  else if(_bScart == 2 && bPScan == EV_OFF)
  {
    bSetCompOutBBK(TV_S_POS,SV_TVE_DIRECT);
     vTvRGBSel(0);
  }
 #endif

  else if (_bScart == 0 && bPScan == EV_OFF)
  	{
  	  vVideoPScanMode(1, SV_TVE_YCBCR);
  	   vTvRGBSel(0);
  	}
  else
 #endif	
       vVideoPScanMode(bPScan, bTvMode);
}
  #endif /* SETUP_NO_PSCAN_CTRL */
#endif /* PSCAN_EN */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -