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

📄 zoom.c

📁 mtk1389L latest sourcecode enjoy
💻 C
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 07/04/09 11:49a   $       ****************/
/***************  $Revision:: 3                $       ****************/
/***************                                       ****************/
/***************   Description : Zoom-in indicator     ****************/
/***************                 module                ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/

#include "general.h"

#pragma NOAREGS

#ifdef PLAYER_ZOOMIN_INDICATOR

// *********************************************************************
// Local define macros
// *********************************************************************
#define wZoomOffsetX()  \
  ((WORD)(bSharedInfo(SI_ZOOM_OFST_X_HI)) * 256 + \
   (WORD)(bSharedInfo(SI_ZOOM_OFST_X_LO)))

#define wZoomOffsetY()  \
  ((WORD)(bSharedInfo(SI_ZOOM_OFST_Y_HI)) * 256 + \
   (WORD)(bSharedInfo(SI_ZOOM_OFST_Y_LO)))

// *********************************************************************
// Function : void vZoomBrOn(void)
// Description :
// Parameter :  
// Return    : 
// *********************************************************************
void vZoomBrOn(void) large
{
  if (fgIsDvdPlay() || fgIsVcdPlay() || fgIsCddaPlay())
  {
    if(bSharedInfo(SI_DISC_TYPE) == SV_CDG) return; //[runma] don't turn on for CDG
    _rOsdStateCtx.fgZoomBrShow = TRUE;

    vOsdShowWb(OSD_WB_ZOOM_BR);
  }
}

// *********************************************************************
// Function : void vZoomBrOff(void)
// Description :
// Parameter :  
// Return    : 
// *********************************************************************
void vZoomBrOff(void) large
{
  _rOsdStateCtx.fgZoomBrShow = FALSE;

  vOsdShowWb(OSD_WB_NORMAL);
}

xdata WORD _wFormerX = 0xFFFF;
xdata WORD _wFormerY = 0xFFFF;
// *********************************************************************
// Function : void vZoomBrOff(void)
// Description :
// Parameter :  
// Return    : 
// *********************************************************************
void vZoomBrUpdate(void) large
{
  WORD wX, wY;
  BYTE bZoomSwitch = bSharedInfo(SI_ZOOM_SWITCH);

  if (fgIsZoomBrShow() == FALSE)
  {
    return;
  }
  
  if ((bZoomSwitch < SV_ZOOM_IN_MIN) ||
      (bZoomSwitch > SV_ZOOM_IN_MAX))
  {
    vZoomBrOff();
    return;
  }

  wX = wZoomOffsetX();
  wY = wZoomOffsetY();

  /* if the X and Y equal to last setting, discarding this request. by Alfonso*/
  if (_wFormerX == wX && _wFormerY == wY)
  {
   	return;
  }

  _wFormerX = wX;
  _wFormerY = wY;

  // check X
  if (wX > 720)
  {
    vZoomBrOff();
    return;
  }

  // check Y
  if (bSharedInfo(SI_NTSC_PAL) == SV_NTSC)
  {
    if (wY > 480)
    {
      vZoomBrOff();
      return;
    }
  }
  else // PAL
  {
    if (wY > 480)
    {
      vZoomBrOff();
      return;
    }
  }

  // the X and Y are scaled down 8 times
  wX = wX / 8;
  wY = wY / 8;

  vOsdShowZoomBr(wX, wY, bZoomSwitch);
}


// Ad it by Bright_liu 2005/10/05
BOOL fgZoomBrCheck(void) large
{
  WORD wX, wY;
  BYTE bZoomSwitch = bSharedInfo(SI_ZOOM_SWITCH);

  if (fgIsZoomBrShow() == FALSE)
  {
    return FALSE;
  }
  
  if ((bZoomSwitch < SV_ZOOM_IN_MIN) ||
      (bZoomSwitch > SV_ZOOM_IN_MAX))
  {
    return FALSE;
  }

  wX = wZoomOffsetX();
  wY = wZoomOffsetY();

  // check X
  if (wX > 720)
  {
    return FALSE;
  }

  // check Y
  if (bSharedInfo(SI_NTSC_PAL) == SV_NTSC)
  {
    if (wY > 480)
    {
      return FALSE;
    }
  }
  else // PAL
  {
    if (wY > 480)
    {
      return FALSE;
    }
  }

  return TRUE;
}


void vZoomBrUpdate2(void) large
{
  WORD wX, wY;
  BYTE bZoomSwitch = bSharedInfo(SI_ZOOM_SWITCH);

  wX = wZoomOffsetX();
  wY = wZoomOffsetY();
  // the X and Y are scaled down 8 times
  wX = wX / 8;
  wY = wY / 8;

  vOsdShowZoomBr(wX, wY, bZoomSwitch);
}

#endif /* PLAYER_ZOOMIN_INDICATOR */

⌨️ 快捷键说明

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