📄 setupfunc.c
字号:
#include <comsub.h>
#include <platform.h>
#include <resource.h>
//#include <aliconf.h>
#include <ui_sub.h>
#include <pe.h>
#include <gui.h>
#include <iic.h>
#include <setupfunc.h>
#include <setupdefine.h>
#include "setupshow.h"
#include <gpio51.h>//20030801 Tom Yang
#include "../../cstm/fend/frntp.h"
#if ( _JPG_MODE==_JPG_Enable )
extern DWORD JPG_PAUSE_TIME;
extern BYTE bJPGSlideMode;
#endif
#if(_DEALER_LOCK_MODE == _DEALER_LOCK_ENABLE_)
extern BOOL bDealerLock ;
#endif
extern void VCDClearPrgmInfo(void);
extern void FPShowOnOff(void);
BOOL CheckIsLangCode(BYTE bFirstLetter,BYTE bSecondLetter)
{
WORD LangCode[144] =
{
0x6161,0x6162,0x6166,0x616d,0x6172,0x6173,0x6179,0x617a,0x6261,0x6265,
0x6267,0x6268,0x6269,0x626e,0x626f,0x6272,0x6361,0x636f,0x6373,0x6379,
0x6461,0x6465,0x647a,0x656c,0x656e,0x656f,0x6573,0x6574,0x6575,0x6661,
0x6669,0x666a,0x666f,0x6672,0x6679,0x6761,0x6764,0x676c,0x676e,0x6775,
0x6776,0x6861,/*0x6865*/0x6977,0x6869,0x6872,0x6875,0x6879,0x6961,/*0x6964*/0x696e,0x6965,
0x696b,0x6973,0x6974,0x6975,0x6a61,0x6a77,0x6b61,0x6b6b,0x6b6c,0x6b6d,
0x6b6e,0x6b6f,0x6b73,0x6b75,0x6b77,0x6b79,0x6c61,0x6c62,0x6c6e,0x6c6f,
0x6c74,0x6c76,0x6d67,0x6d69,0x6d6b,0x6d6c,0x6d6e,0x6d6f,0x6d72,0x6d73,
0x6d74,0x6d79,0x6e61,0x6e65,0x6e6c,0x6e6f,0x6f63,0x6f6d,0x6f72,0x7061,
0x706c,0x7073,0x7074,0x7175,0x726d,0x726e,0x726f,0x7275,0x7277,0x7361,
0x7364,0x7365,0x7367,0x7368,0x7369,0x736b,0x736c,0x736d,0x736e,0x736f,
0x7371,0x7372,0x7373,0x7374,0x7375,0x7376,0x7377,0x7461,0x7465,0x7467,
0x7468,0x7469,0x746b,0x746c,0x746e,0x746f,0x7472,0x7473,0x7474,0x7477,
0x7567,0x756b,0x7572,0x757a,0x7669,0x766f,0x776f,0x7868,/*0x7969*/0x6a69,0x796f,
0x7a61,0x7a68,0x5f66,0x7a75
};
WORD wTempCode;
int i;
bFirstLetter = (bFirstLetter&0xf0)/16*10+(bFirstLetter&0x0f)+32 ;
bSecondLetter = (bSecondLetter&0xf0)/16*10+(bSecondLetter&0x0f)+32 ;
for(i=0;i<144;i++)
{
if((bFirstLetter == LangCode[i]/256)&&(bSecondLetter == LangCode[i]%256))
return TRUE;
}
return FALSE;
}
BYTE SetupTransLang(WORD wLang)
{
PRINTOUT(ER_TransLang2OSDMsg | ER_Enter);
switch(wLang)
{
case LC_ENGLISH:
return L_ENGLISH;
break;
case LC_CHINESE:
return L_CHINESE;
break;
case LC_FRENCH:
return L_FRENCH;
break;
case LC_GERMAN:
return L_GERMAN;
break;
case LC_ITALIAN:
return L_ITALIN;
break;
case LC_POLISH:
return L_POLISH;
break;
case LC_SPANISH:
return L_SPANISH;
break;
case LC_HUNGARIAN:
return L_HUNGRARY;
break;
case LC_GREEK:
return L_GREEK;
break;
case LC_KOREAN:
return L_KOREAN;
break;
case LC_CZECH:
return L_CZECH;
break;
case LC_DUTCH:
return L_DUTCH;
break;
case LC_JAPANESE:
return L_JAPANESE;
break;
case LC_PORTUGUESE:
return L_PORTUGUESE;
break;
default:
return L_OTHER;
}
PRINTOUT(ER_TransLang2OSDMsg | ER_Leave);
}
BYTE GetOSDLangCmd(BYTE bIndex)
{
#if ( _SETUP_MODE==_SETUP_MENU_Enable )
extern SETUP_ITEM MenuLanguage;
return (MenuLanguage.bFuncCmds[bIndex]);
#else
return SETUPFUNC_LANG_ENGLISH;
#endif
}
void SetAudioLanguage(LPBYTE lpSel)
{
WORD wLangCode;
BYTE bLangId;
switch (*lpSel)
{
case SETUPFUNC_NALANG_ORIGINAL:
//NVSetDialogue(SETUPFUNC_NALANG_ORIGINAL);
NVSetDialogueByCode(0xffff);
break;
/*
case SETUPFUNC_NALANG_ENG:
NVSetDialogue(SETUPFUNC_NALANG_ENG);
break;
case SETUPFUNC_NALANG_FRA:
NVSetDialogue(SETUPFUNC_NALANG_FRA);
break;
case SETUPFUNC_NALANG_GER:
NVSetDialogue(SETUPFUNC_NALANG_GER);
break;
case SETUPFUNC_NALANG_SPA:
NVSetDialogue(SETUPFUNC_NALANG_SPA);
break;
case SETUPFUNC_NALANG_ITA:
NVSetDialogue(SETUPFUNC_NALANG_ITA);
break;
case SETUPFUNC_NALANG_CHI:
NVSetDialogue(SETUPFUNC_NALANG_CHI);
break;
case SETUPFUNC_NALANG_POL:
NVSetDialogue(SETUPFUNC_NALANG_POL);
break;
case SETUPFUNC_NALANG_HUN:
NVSetDialogue(SETUPFUNC_NALANG_HUN);
break;
*/
case SETUPFUNC_NALANG_OHTER:
HiByte(wLangCode)= (lpSel[1]&0xf0)/16*10+(lpSel[1]&0x0f)+32 ;
LoByte(wLangCode)= (lpSel[2]&0xf0)/16*10+(lpSel[2]&0x0f)+32 ;
bLangId =SetupTransLang(wLangCode);
#if ( _SETUP_MODE==_SETUP_MENU_Enable )
if(bLangId!=L_OTHER&&InCurLangGOP(bLangId))
{
lpSel[0] = bLangId;
}
#endif
NVSetDialogueByCode(wLangCode);
break;
default:
NVSetDialogue(*lpSel);
break;
}
}
void SetSubtitleLanguage(LPBYTE lpSel)
{
WORD wLangCode;
BYTE bLangId;
bNVSpSwOnOff = TRUE;
switch (*lpSel)
{
case SETUPFUNC_NALANG_OFF:
bNVSpSwOnOff = FALSE;
NVSetSpSW(C_OFF);
break;
case SETUPFUNC_NALANG_ORIGINAL:
NVSetSpSW(C_ON);
//NVSetCaption(SETUPFUNC_NALANG_ORIGINAL);
NVSetCaptionByCode(0xffff);
break;
/*
case SETUPFUNC_NALANG_ENG:
NVSetSpSW(C_ON);
NVSetCaption(SETUPFUNC_NALANG_ENG);
break;
case SETUPFUNC_NALANG_FRA:
NVSetSpSW(C_ON);
NVSetCaption(SETUPFUNC_NALANG_FRA);
break;
case SETUPFUNC_NALANG_GER:
NVSetSpSW(C_ON);
NVSetCaption(SETUPFUNC_NALANG_GER);
break;
case SETUPFUNC_NALANG_SPA:
NVSetSpSW(C_ON);
NVSetCaption(SETUPFUNC_NALANG_SPA);
break;
case SETUPFUNC_NALANG_ITA:
NVSetSpSW(C_ON);
NVSetCaption(SETUPFUNC_NALANG_ITA);
break;
case SETUPFUNC_NALANG_CHI:
NVSetSpSW(C_ON);
NVSetCaption(SETUPFUNC_NALANG_CHI);
break;
case SETUPFUNC_NALANG_POL:
NVSetSpSW(C_ON);
NVSetCaption(SETUPFUNC_NALANG_POL);
break;
case SETUPFUNC_NALANG_HUN:
NVSetSpSW(C_ON);
NVSetCaption(SETUPFUNC_NALANG_HUN);
break;
*/
case SETUPFUNC_NALANG_OHTER:
NVSetSpSW(C_ON);
HiByte(wLangCode)= (lpSel[1]&0xf0)/16*10+(lpSel[1]&0x0f)+32 ;
LoByte(wLangCode)= (lpSel[2]&0xf0)/16*10+(lpSel[2]&0x0f)+32 ;
bLangId =SetupTransLang(wLangCode);
#if ( _SETUP_MODE==_SETUP_MENU_Enable )
if(bLangId!=L_OTHER&&InCurLangGOP(bLangId))
{
lpSel[0] = bLangId;
}
#endif
NVSetCaptionByCode(wLangCode);
break;
default:
NVSetSpSW(C_ON);
NVSetCaption(*lpSel);
break;
}
}
void SetMenuLanguage(LPBYTE lpSel)
{
WORD wLangCode;
BYTE bLangId;
switch (*lpSel)
{
case SETUPFUNC_NALANG_ORIGINAL:
NVSetMenuLanguage(SETUPFUNC_NALANG_ORIGINAL);
break;
/*
case SETUPFUNC_NALANG_ENG:
NVSetMenuLanguage(SETUPFUNC_NALANG_ENG);
break;
case SETUPFUNC_NALANG_FRA:
NVSetMenuLanguage(SETUPFUNC_NALANG_FRA);
break;
case SETUPFUNC_NALANG_GER:
NVSetMenuLanguage(SETUPFUNC_NALANG_GER);
break;
case SETUPFUNC_NALANG_SPA:
NVSetMenuLanguage(SETUPFUNC_NALANG_SPA);
break;
case SETUPFUNC_NALANG_ITA:
NVSetMenuLanguage(SETUPFUNC_NALANG_ITA);
break;
case SETUPFUNC_NALANG_CHI:
NVSetMenuLanguage(SETUPFUNC_NALANG_CHI);
break;
case SETUPFUNC_NALANG_POL:
NVSetMenuLanguage(SETUPFUNC_NALANG_POL);
break;
case SETUPFUNC_NALANG_HUN:
NVSetMenuLanguage(SETUPFUNC_NALANG_HUN);
break;
*/
case SETUPFUNC_NALANG_OHTER:
NVSetMenuLanguage(SETUPFUNC_NALANG_OHTER);
HiByte(wLangCode)= (lpSel[1]&0xf0)/16*10+(lpSel[1]&0x0f)+32 ;
LoByte(wLangCode)= (lpSel[2]&0xf0)/16*10+(lpSel[2]&0x0f)+32 ;
bLangId =SetupTransLang(wLangCode);
#if ( _SETUP_MODE==_SETUP_MENU_Enable )
if(bLangId!=L_OTHER&&InCurLangGOP(bLangId))
{
lpSel[0] = bLangId;
}
#endif
break;
default:
NVSetMenuLanguage(*lpSel);
break;
}
}
void SetParental(LPBYTE lpSel)
{
extern BOOL bPLIsChanged;
/*modify by xianzhong to down size. Aug.4.2004*/
if(*lpSel>=SETUPFUNC_PAEENTL_UNLOCK && *lpSel <=SETUPFUNC_PARENTL_8)
{
#if 0
switch (*lpSel)
{
case SETUPFUNC_PAEENTL_UNLOCK:
case SETUPFUNC_PARENTL_1:
case SETUPFUNC_PARENTL_2:
case SETUPFUNC_PARENTL_3:
case SETUPFUNC_PARENTL_4:
case SETUPFUNC_PARENTL_5:
case SETUPFUNC_PARENTL_6:
case SETUPFUNC_PARENTL_7:
case SETUPFUNC_PARENTL_8:
#endif
if(NVChkCtrCode())
NVSetParentLevel(*lpSel);
else
NVSetParentLevel(SETUPFUNC_PAEENTL_UNLOCK);
OSD_Setup_Parameter.bParental = *lpSel;
bPLIsChanged=TRUE;
// break;
// default:
// break;
}
}
void SetCountryCode(LPBYTE lpSel)
{
// NVSetCountryCode(lpSel);
if(NVChkCtrCode())
NVSetParentLevel(OSD_Setup_Parameter.bParental);
else
NVSetParentLevel(SETUPFUNC_PAEENTL_UNLOCK);
}
void SetOSDLanguage(LPBYTE lpSel)
{
WORD OsdLang;
int i;
BYTE SetupOsdLangNum;
SetupOsdLangNum = GetSetupOSDLangNum();
for(i=0;i<SetupOsdLangNum;i++)
{
if(*lpSel == SetupLangMap[i].SetupLangID)
{
OsdLang = SetupLangMap[i].LangID;
SetLanguage(OsdLang);
return;
}
}
OsdLang = SetupLangMap[0].LangID;
SetLanguage(OsdLang);
#if 0
switch (*lpSel)
{
case SETUPFUNC_LANG_ENG:
OsdLang=LC_ENGLISH;
break;
case SETUPFUNC_LANG_CHI:
OsdLang=LC_CHINESE;
break;
case SETUPFUNC_LANG_TCHI:
OsdLang=LC_TRADITIONAL_CHINESE;
break;
case SETUPFUNC_LANG_KOR:
OsdLang=LC_KOREAN;
break;
case SETUPFUNC_LANG_JAP:
OsdLang=LC_JAPANESE;
break;
case SETUPFUNC_LANG_RUS:
OsdLang=LC_RUSSIAN;
break;
case SETUPFUNC_LANG_SPA:
OsdLang=LC_SPANISH;
break;
case SETUPFUNC_LANG_FRA:
OsdLang=LC_FRENCH;
break;
case SETUPFUNC_LANG_GER:
OsdLang=LC_GERMAN;
break;
case SETUPFUNC_LANG_POR:
OsdLang=LC_PORTUGUESE;
break;
case SETUPFUNC_LANG_ITA:
OsdLang=LC_ITALIN;
break;
case SETUPFUNC_LANG_HUN:
OsdLang=LC_HUNGARIAN;
break;
case SETUPFUNC_LANG_POL:
OsdLang=LC_POLISH;
break;
default:
//cliff 30906-01cf for OSD language option temp solution
*lpSel = SETUPFUNC_LANG_ENG;
OsdLang=LC_ENGLISH;
break;
}
SetLanguage(OsdLang);
#endif
}
void SetPBC(LPBYTE lpSel)
{
switch (*lpSel)
{
case SETUPFUNC_OFF:
OSD_Setup_Parameter.bPBC = SETUPFUNC_OFF;
break;
case SETUPFUNC_ON:
#if(_VCD_PROGRAM_MODE==_VCD_PROGRAM_ENABLE_)
if(DiscType==C_VCD10||DiscType==C_VCD20||DiscType==C_SVCD)
emptyProgList();
#endif
OSD_Setup_Parameter.bPBC = SETUPFUNC_ON;
break;
default :
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -