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

📄 stprisc.c

📁 MTK 1389E SOURCE CODE
💻 C
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 05/08/19 2:51p    $       ****************/
/***************  $Revision:: 5                $       ****************/
/***************                                       ****************/
/***************   Description : Setup Menu            ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/

#include "general.h"

#include SETUP_MENU_FILE
#include "stposdfn.h"

#pragma NOAREGS

struct sLangChar
{
  WORD  wLangItem;
  BYTE  c0;
  BYTE  c1;  
};


static code struct sLangChar rLangChar[] = 
     { { EV_FRENCH, 'f', 'r' },   { EV_SPANISH, 'e', 's' },   { EV_CHINESE, 'z', 'h' },
       { EV_JAPANESE, 'j', 'a'},  { EV_GERMAN, 'd', 'e' },     { EV_SWEDISH, 's', 'v' },
       { EV_DANISH, 'd', 'a' },   { EV_NORWEGIAN, 'n', 'o' },  { EV_FINNISH, 'n', 'i' },
       { EV_DUTCH, 'n', 'l'},     { EV_ICELANDIC , 'i', 's' }, { EV_PORTUGUES, 'p', 't' },
       { EV_HEBREW, 'i', 'w' },   { EV_GREEK, 'e', 'l' },      { EV_CROATIAN, 'h', 'r' },  
       { EV_TURKISH, 't', 'r' },  { EV_ITALIAN, 'i', 't' },    { EV_POLISH, 'p', 'l' },   
       { EV_HUNGARIAN, 'h','u' }, { EV_CZECH, 'c','s' },       { EV_INDONESIAN, 'i', 'n'},
       { EV_THAI, 't', 'h' },     { EV_KOREAN, 'k', 'o' },     { EV_MALAY, 'm', 's' },
       { EV_IRISH, 'g','a' },     { EV_ROMANIAN, 'r','o' },    { EV_OTHER, 0, 0 },
       { EV_ENGLISH, 'e', 'n' } };
 
// *********************************************************************
// Function : BYTE bNormalVdo(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bNormalVdo(WORD wEEPos, BYTE bVal) large
{
  WORD wSIPos;

  switch (wEEPos)
  {
    case TV_SYSTEM_POSITION:
      vVideoTvSystem(bVal);
      break;

    case GAMMA_POS:
      vVideoGammaLevel(bVal);
      break;

    case SHARP_POS:
      vVideoSharpness(bVal);
      break;

    case EDGE_EN_POS:
      vVideoEdgeEnhance(bVal);
      break;

    case CC_SW_POSITION:
      /* note use SV_ON/OFF */
      vSystemCloseCaption(bVal);
      break;

    case ASPECT_POSITION:
      vSystemTvMode(bVal);
      break;
      
   case BLACK_LVL_POS: // composite.
      vVideoPedestal(SV_SETUP,(bVal!=SV_BLACK_NONE));
      vVideoPedestal(SV_CPNT_SETUP,(bVal!=SV_BLACK_NONE));  

#ifdef PSCAN_EN
    case TV_PSCAN_VIDEO_POS:
      vSetSharedInfo(SI_PSCAN_VIDEO, bVal);
      vNotifySharedInfo(SI_PSCAN_VIDEO, 0, 0);      
      break;
#endif
    case WARMTH_FILTER_POS:
      vSetSharedInfo(SI_WARMTH_LEVEL, bEepromReadByte(WARMTH_FILTER_POS));
      vNotifySharedInfo(SI_WARMTH_LEVEL, 0, 0);
      break;

    default:
      wSIPos = _rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wSIPos;
      if (wSIPos)
      {
        vSetSharedInfo(wSIPos, bVal);
        vNotifySharedInfo(wSIPos, 0, 0);
      }

      break;
  } /* switch (wEEPos) */
  
#ifdef PSCAN_EN
  if ((wEEPos == TV_PSCAN_EN_POS) ||
      (wEEPos == TV_PSCAN_MODE_POS))
  {
    return (ENTRY_FUN_REDRAW);
  }
#endif /* PSCAN_EN */
  return (ENTRY_FUN_OK);
}

BYTE bSetVdoQlty(WORD wEEPos, BYTE bVal) large
{
  switch(wEEPos)
  {
    case BRIGHT_POS:
      cVideoGammaBright((char)_bDataCur);
      break;

    case HUE_POS:
#ifdef MTK_TVE
      vVideoHueDegree(_bDataCur);
#else
      vVideoHueDegree((char)(_bDataCur - 9) * 5);
#endif
      break;

    case CONTRAST_POS:
      cVideoGammaContrast(_bDataCur);
      break;

    case TINT_POS:
      vVideoHueSaturation(_bDataCur);
      break;
  }
  return (ENTRY_FUN_OK);
}

#ifdef ENABLE_USER_LANG_CODE
BYTE bSwitchLang(WORD wEEPos, BYTE bValue) large
{
  if (!_fgNotify)
  {
    return (ENTRY_FUN_OK);
  }
  
  _bOsdState = STPSTT_DIALOG;
  _bMenu = LANG_PAGE;
  _bEntry = 1;
  
  switch(wEEPos)
  {
    case AUDIO_LCD_POSITION:
      _bDlgId = DLG_AUDIO_LANG_CODE;
      break;
    case SP_LCD_POSITION:
      _bDlgId = DLG_SP_LANG_CODE;
      break;
    case MENU_LCD_POSITION:
      _bDlgId = DLG_MENU_LANG_CODE;
      break;
  }
  
  return (ENTRY_FUN_REDRAW);
}
#endif

// *********************************************************************
// Function : BYTE bSetLangCd(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bSetLangCd(WORD wEEPos, BYTE bValue) large
{
  BYTE bLc0;
  BYTE bLc1;
  BYTE i;

  
  if (bValue == EV_OTHER)
  {
#ifdef ENABLE_USER_LANG_CODE
    return (bSwitchLang(wEEPos, 0));
#endif
    return (ENTRY_FUN_OK);
  }
  
  i = 0;
  while ((rLangChar[i].wLangItem != 0) && (rLangChar[i].wLangItem != bValue))
    i++;

  if (rLangChar[i].wLangItem != 0)
  {
    bLc0 = rLangChar[i].c0;
    bLc1 = rLangChar[i].c1;
  }
  else
  {
    bLc0 = 'e';
    bLc1 = 'n';
  }

  //sp disable
  if((bValue == EV_LANG_OFF) && (wEEPos == SP_LCD_POSITION))
  {
    bLc0 = 0;
    bLc1 = 0;
  }

  switch (wEEPos)
  {
    case AUDIO_LCD_POSITION:
      vSystemPrefAuLang(bLc0, bLc1);
      break;

    case SP_LCD_POSITION:
      vSystemPrefSpLang(bLc0, bLc1);
      break;

    case MENU_LCD_POSITION:
      vSystemPrefMenuLang(bLc0, bLc1);
      break;
  }
}

// *********************************************************************
// Function : BYTE bSetPrLvl(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bSetPrLvl(WORD wEEPos, BYTE bValue) large
{
  if (!_fgNotify)
  {
    return (ENTRY_FUN_OK);
  }
  
  fgEepromWriteByte(PTL_LEVEL_POSITION, bValue);
  vSystemParentalLevel(bValue);

  return (ENTRY_FUN_OK);
}

#if (defined(SCART_SELECTION) && !defined(MTK_TVE))
// *********************************************************************
// Function : void vScartSel(void) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bScartSel(WORD wEEPos, BYTE bValue) large
{
  if (bValue == EV_RGB)
  {
    vTvRGBOut(TRUE);
  }
  else
  {
    vTvRGBOut(FALSE);
  }
  
  return (ENTRY_FUN_OK);
}
#endif /* SCART_SELECTION, !MTK_TVE */

#ifdef MTK_TVE
// *********************************************************************
// Function : BYTE bSetCompOut(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bSetCompOut(WORD wEEPos, BYTE bValue) large
{
  BYTE bTvOut;
  BYTE bPScan;

  bPScan = bEepromReadByte(TV_PSCAN_EN_POS);
  bTvOut = bEepromReadByte(TV_COMP_POS);

  if ((bTvOut == SV_TVE_DIRECT) || (bTvOut == SV_TVE_SCART))
//  if ((bTvOut == SV_TVE_DIRECT) || (bTvOut == SV_TVE_SCART)||(bTvOut == SV_TVE_YCBCR)||(bTvOut == SV_TVE_RGB))
  {

    if (bPScan != SV_OFF)
    {
      bPScan = SV_OFF;
      fgEepromWriteByte(TV_PSCAN_EN_POS, SV_OFF);
    }

  }
  else if (bTvOut == SV_TVE_VGA)
  {
    if (bPScan != SV_ON)
    {
      bPScan = SV_ON;
      fgEepromWriteByte(TV_PSCAN_EN_POS, SV_ON);
    }
  }

  vVideoPScanMode(bPScan, bTvOut);

  return (ENTRY_FUN_REDRAW);
}
#endif /* MTK_TVE */
#ifdef SUPPORT_CAPTURE_LOGO
// *********************************************************************
// Function : BYTE bSetLogoType(WORD wItem, BYTE bValue)
// Description :
// Parameter :
// Return    : None
// Note      : this function will be called from play_iso for NUI file list
//             Do not use code segment in this function
// *********************************************************************
BYTE bSetLogoType(WORD wItem, BYTE bValue) large
{
  
  switch (bValue)
  {
    case EV_LOGO_JACKET:
      bValue = SV_LOGO_JACKET;
      vSetSharedInfo(SI_FLASH_LOGO_IDX, 0);
      break;

    case EV_LOGO_BLUE:
      vSetSharedInfo(SI_DEFAULT_LOGO_CLR_Y, (LOGO_BLUE & 0x000f) << 4);
      vSetSharedInfo(SI_DEFAULT_LOGO_CLR_CB, ((LOGO_BLUE >> 4) & 0x000f) << 4);
      vSetSharedInfo(SI_DEFAULT_LOGO_CLR_CR, ((LOGO_BLUE >> 8) & 0x000f) << 4);
      bValue = SV_LOGO_COLOR;
  #ifdef PLAYER_FLMENU
      vSetSharedInfo(SI_FLASH_LOGO_IDX, 2);
  #else
      vSetSharedInfo(SI_FLASH_LOGO_IDX, 0);
  #endif
      break;

    case EV_LOGO_CAPTURED:
      bValue = SV_LOGO_CAPTURE;
      vSetSharedInfo(SI_FLASH_LOGO_IDX, 0);
      break;

    case EV_LOGO_DEFAULT:
    default:
      bValue = SV_LOGO_FLASH;
      vSetSharedInfo(SI_FLASH_LOGO_IDX, 0);
      break;
  }

  #ifdef PLAYER_FLMENU
  // when enter setup menu from flmenu, do not change share info
  // restore it when exit ISO play module
  // 20050819, PL00001368, add check if PCD.
  if (fgIsInSetupMenu() && (fgIsIsoPlay() || fgIsPcdPlay()))
  {
    return (ENTRY_FUN_OK);
  }
  #endif

  vSetSharedInfo(SI_DEFAULT_LOGO, bValue);
  vNotifySharedInfo(SI_DEFAULT_LOGO, 0, 0);  

  return (ENTRY_FUN_OK);
}

// *********************************************************************
// Function : BYTE bCaptureLogo(WORD wItem, BYTE bValue)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bCaptureLogo(WORD wItem, BYTE bValue) large
{
  fgSetPlayPostKey(IR_CAPTURE);
  
  return (ENTRY_FUN_EXIT);
}
#endif /* SUPPORT_CAPTURE_LOGO */


#ifdef PAUSE_MODE_SWITCH
BYTE bSetPauseMode(WORD wItem, BYTE bValue) large
{
  switch (bValue)
  {
  case EV_PM_AUTO:
    vSetSharedInfo(SI_PSCAN_PAUSE_MODE, SV_PSCAN_PAUSE_AUTO);
    vSetSharedInfo(SI_V2_PAUSE_SHOW_1FLD, 0);
    break;
  case EV_PM_FRAME:
    vSetSharedInfo(SI_PSCAN_PAUSE_MODE, SV_PSCAN_PAUSE_FRAME);
    vSetSharedInfo(SI_V2_PAUSE_SHOW_1FLD, 0);
    break;  
  case EV_PM_VIDEO:
    vSetSharedInfo(SI_PSCAN_PAUSE_MODE, SV_PSCAN_PAUSE_FIELD);
    vSetSharedInfo(SI_V2_PAUSE_SHOW_1FLD, 1);
    break;
  default:
    // error!
    break;
  }

  return (ENTRY_FUN_OK);
}
#endif /* PAUSE_MODE_SWITCH */

#ifdef SUPPORT_DRM
// *********************************************************************
// Function : BYTE bDivXRegCode(WORD wItem, BYTE bValue)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bDivXRegCode(WORD wItem, BYTE bValue) large
{
  fgSetPlayPostKey(IR_PLAY_TYPE);
  
  return (ENTRY_FUN_EXIT);
}
#endif

⌨️ 快捷键说明

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