📄 stprisc.c
字号:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 05/07/13 4:19p $ ****************/
/*************** $Revision: 2.0 $ ****************/
/*************** ****************/
/*************** Description : Setup Risc ****************/
/*************** relative routine ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : Peter Huang ****************/
/**********************************************************************/
#include "general.h"
#include SETUP_MENU_FILE
//#include "stpmenu.h"
#include "stposdfn.h"
#ifdef DL333_T100
extern void BBKTFTSetNTSCPALDIRECT(BYTE bMode) large;
#endif
#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_UKRAINIAN, 'u', 'k' },
{ EV_BYELORUSSIA, 'b','e' },{ EV_LATVIAN, 'l','v' }, { EV_KAZAKH, 'k', 'k' },
{ EV_ESTONIAN, 'e','t' }, { EV_OTHER, 0, 0 }, { EV_LANG_OFF, 0, 0},
{EV_ENGLISH, 'e', 'n' }
};
#ifdef SUPPORT_SACD
// for SACD layer selection
extern BIT _fgSACDSelCD;
#endif
// *********************************************************************
// Function : BYTE bNormalVdo(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
BYTE bNormalVdo(WORD wEEPos, BYTE bVal) large
{
WORD wSIPos;
BYTE bTemp;
switch (wEEPos)
{
case TV_SYSTEM_POSITION:
vVideoTvSystem(bVal);
#ifdef DL333_T100
BBKTFTSetNTSCPALDIRECT(bVal);
#endif
break;
case GAMMA_POS:
vVideoGammaLevel(bVal);
break;
case SHARP_POS:
vVideoSharpness(bVal);
break;
case EDGE_EN_POS:
vVideoEdgeEnhance(bVal);
break;
#ifndef GUI_II_YWB
case CC_SW_POSITION:
/* note use SV_ON/OFF */
vSystemCloseCaption(bVal);
break;
#endif
case ASPECT_POSITION:
vSystemTvMode(bVal);
break;
case BLACK_LVL_POS: // composite.
// case BLACK_LVL_COMPN_POS: //component. will be added. currently, compoent and composite will be switch together.
//r case BLACKER_THAN_BLACKER: //will be added in future.
vVideoPedestal(SV_SETUP,(bVal!=SV_BLACK_NONE));
vVideoPedestal(SV_CPNT_SETUP,(bVal!=SV_BLACK_NONE));
break;
#ifdef PSCAN_EN
case TV_PSCAN_VIDEO_POS:
#if 0 //max remove
if (bSharedInfo(SI_DRAM_BW) == SV_DRAM_16BIT)
{
#ifndef HIGH_SPEED_DRAM
if (bVal == SV_PSCAN_HR)
{
bVal = SV_PSCAN_NF;
}
#endif
}
#endif
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) */
/* for user switch PBC on/off flag */
if (wEEPos == VCD_PBC_SW_POSITION)
{
vSetSharedInfo(SH_VCD_USR_PBC_OFF, bVal);
vNotifySharedInfo(SH_VCD_USR_PBC_OFF, 0, 0); //BillDen
}
#ifdef SUPPORT_SACD
if (wEEPos == SACD_PRIORITY_POSITION)
{
/* depend on setup menu SACD Priority option */
_fgSACDSelCD = (bSharedInfo(SI_SACD_PRIO) == SV_SACD_CD);
}
#endif
#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);
}
_bPrevMenu = _bMenu;
_bPrevEntry = _bEntry;
_bOsdState = STPSTT_DIALOG_INPUT;
_bMenu = LANG_OTH_PAGE;
_bEntry = 1;
_bDataSel = 0;
_bDataCur = 0;
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;
}
//vRedrawPage();
return (ENTRY_FUN_DRAW_OTHRE_LANG);
}
#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, bValue));
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';
}
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;
}
return (ENTRY_FUN_OK);
}
#ifdef RUSSIAN_BUYER_SPECIAL2 //songchen 061205
// *********************************************************************
// Function : BYTE bSetLangPage(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
BYTE bSetFontPage(WORD wEEPos, BYTE bValue)large
{
fgEepromWriteByte(DIVX_FONTPAGE_POSITION, bValue);
return (ENTRY_FUN_OK);
}
#endif
// *********************************************************************
// 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);
}
if(bValue > 8)
bValue = 0x0f;
fgEepromWriteByte(PTL_LEVEL_POSITION, bValue);
vSystemParentalLevel(bValue);
return (ENTRY_FUN_OK);
}
#ifdef MTK_TVE
// *********************************************************************
// Function : BYTE bSetCompOut(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
#ifdef PSCAN_EN
BYTE bSetCompOut(WORD wEEPos, BYTE bValue) large
{
BYTE bTvOut;
BYTE bPScan;
#if defined(MT1389_REV_HD) && defined(PSCAN_EN)
BYTE bTvHdMode = bSharedInfo(SI_HD_MODE);
vSetSharedInfo(SI_TV_CHG_MODE, bSharedInfo(SI_HD_MODE));
#endif
bPScan = bEepromReadByte(TV_PSCAN_EN_POS);
bTvOut = bEepromReadByte(TV_COMP_POS);
if ((bTvOut == SV_TVE_DIRECT) || (bTvOut == SV_TVE_SCART))
{
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);
}
#if defined(MT1389_REV_HD) && defined(PSCAN_EN)
if (SV_HD_MODE_1080I == bTvHdMode)
{
fgEepromWriteByte(TV_HD_MODE_POS, SV_HD_MODE_OFF);
vSetSharedInfo(SI_HD_MODE, SV_HD_MODE_OFF);
vNotifySharedInfo(SI_HD_MODE, 0, 0);
}
#endif
}
#if defined(MT1389_REV_HD) && defined(PSCAN_EN)
else
{
if ((SV_HD_MODE_720P == bTvHdMode) && (bPScan == SV_OFF))
{
bPScan = SV_ON;
fgEepromWriteByte(TV_PSCAN_EN_POS, SV_ON);
}
else if ((SV_HD_MODE_1080I == bTvHdMode) && (bPScan == SV_ON))
{
bPScan = SV_OFF;
fgEepromWriteByte(TV_PSCAN_EN_POS, SV_OFF);
}
}
#endif
vVideoPScanMode(bPScan, bTvOut);
return (ENTRY_FUN_REDRAW);
}
// *********************************************************************
// Function : BYTE bSetCompOut(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
/*
BYTE bSetCompOutBBK(WORD wEEPos, BYTE bValue) large
{
BYTE bVideoMode;
#ifdef PSCAN_EN//billy050905
if(bEepromReadByte(TV_PSCAN_EN_POS) == SV_ON)
return (ENTRY_FUN_REDRAW); //if tv_pscan == on,then decide output by usrrecall YPBPR or vga
#endif
fgEepromWriteByte(TV_COMP_POS, bValue); //dengsu 0809
vVideoPScanMode(SV_OFF, bValue);
return (ENTRY_FUN_REDRAW);
}
*/
#endif
#endif
#if 1 //def 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;
#ifdef BBK_NEW_GUI
vSetSharedInfo(SI_FLASH_LOGO_IDX, wItem);
#else
vSetSharedInfo(SI_FLASH_LOGO_IDX, 0);
#endif
break;
}
#ifdef PLAYER_FLMENU
// when enter setup menu from flmenu, do not change share info
// restore it when exit ISO play module
#ifdef BBK_NEW_GUI
if(0)
#else
if(fgIsInSetupMenu() && fgIsIsoPlay())
#endif
{
return (ENTRY_FUN_OK);
}
#endif
vSetSharedInfo(SI_DEFAULT_LOGO, bValue);
vNotifySharedInfo(SI_DEFAULT_LOGO, 0, 0);
return (ENTRY_FUN_OK);
}
#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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -