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

📄 setupfunc.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
#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 + -