📄 stprisc.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 + -