📄 stpcheck.c
字号:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 03/09/10 5:51p $ ****************/
/*************** $Revision:: 3 $ ****************/
/*************** Description : Setup check valid ****************/
/*************** relative routine ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : Peter Huang ****************/
/**********************************************************************/
#include "general.h"
#include "stpmain.h"
//#ifdef SIMPLE_MENU
//#include "stpmenu1.h"
//#else
#include "stpmenu.h"
//#endif
#pragma NOAREGS
//extern BOOL _fgPsLbValid;
static void vCheckSp(void) large;
static void vChkPerf(void) large;
static void vVerIn(void) large;
static void vChkVdo(void) large;
static void vChkAdo(void) large;
static void vChkSpdif(void) large;
static void vCheckMain(void) large;
#ifdef BBK_MENU //BillDen
static void vChkGen(void) large;
#endif
//bywhy 2003/07/07
#ifdef BBK_NEW_MENU //BillDen
static void vChkCom(void) large;
#endif
#ifndef PLAYER_2_CHANNEL
static void vChkEq(void) large;
#endif
#if (defined(PLAYER_SURROUND) || defined(DOLBY_PROLOGIC) || defined(DOLBY_PROLOGIC2))
static void vChk3D(void) large;
#endif
#ifdef PLAYER_KARAOKE
static void vChkKok(void) large;
#endif
#ifdef PLAYER_SEQ
static void vChkSeq(void) large;
#endif
#ifdef DOLBY_PROLOGIC2
static void vChkPL2(void) large;
#endif
#ifndef PLAYER_2_CHANNEL
#ifdef BBK_MENU
static void vChkAudio(void) large;
#endif
#endif
#if defined(SETUP_HEADPHONE)
extern BYTE xdata _fgHeadphone;
#endif
// *********************************************************************
// Function : void vChkValid(BYTE bType) large
// Description :
// Parameter : None
// Return : None
// *********************************************************************
void vChkValid(BYTE bType) large
{
switch(bType)
{
case CHK_MAIN:
vCheckMain();
break;
case CHK_VDO:
vChkVdo();
break;
case CHK_ADO:
vChkAdo();
break;
case CHK_PREF:
vChkPerf();
break;
case CHK_VER:
vVerIn();
break;
case CHK_GENERAL:
#ifdef BBK_MENU //BillDen
vChkGen();
#endif
break;
//bywhy 2003/07/07
#ifdef BBK_NEW_MENU //BillDen
case CHK_COMMON:
vChkCom();
break;
#endif
#ifdef PLAYER_SEQ
case CHK_SEQ:
vChkSeq();
break;
#endif /* PLAYER_SEQ */
#ifndef PLAYER_2_CHANNEL
case CHK_EQ:
vChkEq();
break;
#endif /* PLAYER_2_CHANNEL */
#ifndef PLAYER_2_CHANNEL
case CHK_SPDIF:
vChkSpdif();
break;
#if (defined(PLAYER_SURROUND) || defined(DOLBY_PROLOGIC) || defined(DOLBY_PROLOGIC2))
case CHK_3D:
vChk3D();
break;
#endif
case CHK_SP:
vCheckSp();
break;
#ifdef PLAYER_KARAOKE
case CHK_KOK:
vChkKok();
break;
#endif
#ifdef DOLBY_PROLOGIC2
case CHK_PL2:
vChkPL2();
break;
#endif
#ifdef BBK_MENU
case CHK_AUDIO:
vChkAudio();
break;
#endif
case CHK_EXIT:
_wInvalid = 0;
break;
#endif
default:
break;
}
}
// *********************************************************************
// Function : void vChkGen(void) large
// Description :
// Parameter : None
// Return : None
// *********************************************************************
void vChkGen(void) large
{
// #define TV_ASPECT_ITEM 0x01
#ifndef BBK_MENU //BillDen
BYTE bDefMode;
BYTE bInitState = bSharedInfo(SI_INIT_STATE);
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
// _fgPsLbValid = TRUE;
bDefMode = bSharedInfo(SI_ASPECT_CHG_VALID);
if (bInitState == SV_DISC_IDENTIFIED)
{
switch(bPbcState)
{
case SV_STOP:
case SV_STOP_RESUME:
break;
default:
#if ((!defined(SETUP_PAUSE_PLAY)) && (!defined(SPDIF_MODE_CHANGE_MUTE)))
_wInvalid &= ~AUDIO_OUT_ITEM;
#endif
break;
}
}
#ifdef CHECK_TV_ASPECT_SET
if (fgIsDvdPlay())
{
if (bDefMode & SV_BLOCK_ON)
{
_wInvalid &= ~TV_ASPECT_ITEM;
}
}
#endif
#if 0 // #ifdef TREAT_PS_LB_AS_THE_SAME
if ( !(bDefMode & (SV_PSCAN_ON | SV_LB_ON)))
_fgPsLbValid = FALSE;
else
_fgPsLbValid = TRUE;
#endif
#else //BillDen
if ( bSharedInfo(SI_INIT_STATE) == 0 || ( bSharedInfo(SI_INIT_STATE) > 5
&& ( fgIsNonPlay() || fgIsIsoPlay() || fgIsPcdPlay()
#ifdef SUPPORT_DVD_AUDIO
|| (bSharedInfo(SI_DISC_TYPE) == SV_DVD_AUDIO)
#endif
)))
#ifdef SPECTRUM_IN_SETUP
_wInvalid &= ~SPECTRUM_ITEM;
#else//dengsu 040302 add to avoid inflecting the next judgement.
;
#endif
#ifdef SCART_SELECTION
if(bSharedInfo(SI_PSCAN_EN) == EV_ON)
_wInvalid &= ~(1<<3);
#endif
#ifdef SUPPORT_CAPTURE_LOGO
if ( bSharedInfo(SI_INIT_STATE) == 0 || ( bSharedInfo(SI_INIT_STATE) > 5 && bSharedInfo(SI_PBC_STATE) != SV_STOP /*&& bSharedInfo(SI_PBC_STATE) != SV_STOP_RESUME */))
_wInvalid &= ~LOGO_ITEM;
#endif
#endif
}
#ifdef BBK_NEW_MENU
// *********************************************************************
// Function : void vChkCom(void) large
// Description :
// Parameter : None
// Return : None
// *********************************************************************
void vChkCom(void) large
{
#ifdef SETUP_HEADPHONE
// if ((bEepromReadByte(SPEAKER_POSITION) != EV_DOWN_OFF )||(bEepromReadByte(IEC958_POSITION) == EV_PCM)||(!(_fgHeadphone&0x80)))//BillDen
if ( bSharedInfo(SI_INIT_STATE) == 0 || ( bSharedInfo(SI_INIT_STATE) > 5 && bSharedInfo(SI_PBC_STATE) != SV_STOP))
#else
if ((bEepromReadByte(SPEAKER_POSITION) != EV_DOWN_OFF )||(bEepromReadByte(IEC958_POSITION) == EV_PCM))//BillDen
#endif
_wInvalid &= ~(0x02);
if ( bSharedInfo(SI_INIT_STATE) == 0 || ( bSharedInfo(SI_INIT_STATE) > 5 && bSharedInfo(SI_PBC_STATE) != SV_STOP && bSharedInfo(SI_PBC_STATE) != SV_STOP_RESUME ))
_wInvalid &= ~(0x04);
if ( bSharedInfo(SI_INIT_STATE) == 0 || ( bSharedInfo(SI_INIT_STATE) > 5 && bSharedInfo(SI_PBC_STATE) != SV_STOP))
//_wInvalid &= ~(0x04 | BBK_RESET_ITEM);
_wInvalid &= ~(0x08);
}
#endif
// *********************************************************************
// Function : void vCheckMain(void) large
// Description : preference page only enable in FULL stop mode
// Parameter : None
// Return : None
// *********************************************************************
void vCheckMain(void) large
{
/*
#ifdef SIMPLE_MENU
#define PREF_ITEM 0x10 // preference page
#else
#define PREF_ITEM 0x08
#endif
#define VERSION_ITEM 0x20
*/
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
BYTE bInitState = bSharedInfo(SI_INIT_STATE);
switch (bInitState)
{
case SV_TRAY_OPENING:
case SV_TRAY_ERROR:
case SV_NO_DISC:
case SV_UNKNOWN_DISC:
// allowed
break;
case SV_DISC_IDENTIFIED:
// need to check
if ((bPbcState != SV_STOP) && (bPbcState != SV_PTL_ERR))
{
_wInvalid &= ~PREF_ITEM;
}
break;
case SV_LOADING_DISC:
case SV_TRAY_CLOSING:
default:
_wInvalid &= ~PREF_ITEM;
// not allowed
break;
}
#if defined(SETUP_HEADPHONE)
if(!(_fgHeadphone&0x80))
_wInvalid &= ~(1<<1);//check "downmix" & "channel delay"
#endif
//if (_bShowVerIdx != 0x0F) //[runma] mark off, because main menu have no version_item in this version.
// _wInvalid &= ~VERSION_ITEM;
}
// *********************************************************************
// Function : void vChkPerf(void) large
// Description :
// Parameter : None
// Return : None
// *********************************************************************
void vChkPerf(void) large
{
#if (defined(PLAYER_2_CHANNEL) || !defined(PWD_ON_NO_SET_PTL))
return;
#else
BYTE bPwdMode = bEepromReadByte(PASS_SW_POSITION);
// #define TV_ITEM 0x01 /* TV */
// #define PBC_ITEM 0x02 /* audio */
// #define AUDIO_ITEM 0x04 /* audio */
// #define SP_ITEM 0x08 /* sub-title */
// #define DM_ITEM 0x10 /* disc menu */
// #define PR_ITEM 0x20 /* parental */
// #define CR_ITEM 0x40 /* locale */
// #define RESET_ITEM 0x80
// we have the disc, check it
if (bPwdMode == EV_ON)
{
_wInvalid &= ~PR_ITEM;
}
#endif
}
// *********************************************************************
// Function : void vChkAdo(void) large
// Description :
// Parameter : None
// Return : None
// *********************************************************************
void vChkAdo(void) large
{
#ifdef PLAYER_2_CHANNEL
return;
#else
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
BYTE bInitState = bSharedInfo(SI_INIT_STATE);
/*
#define FNT_SPK_SZ 1
#define CNT_SPK_SZ 2
#define REAR_SPK_SZ 3
#define TEST_MODE 5
#define DIALOG_GIAN 6
*/
#if defined(SETUP_HEADPHONE)
if(!(_fgHeadphone&0x80))
_wInvalid &= ~((1<<0)|(1<<1));//check "downmix" & "channel delay"
#endif
if ((bEepromReadByte(SPEAKER_POSITION) == EV_DOWN_OFF)
#ifdef SPDIF_PCM_FORCE_DOWNMIX
&& (bEepromReadByte(IEC958_POSITION) != EV_PCM)
#endif
)
{
#ifndef BBK_MENU
_wInvalid &= ~(1<<DIALOG_GIAN);
#endif
}
else // downmix on
{
#ifndef BBK_MENU
_wInvalid &= ~((1<<CNT_SPK_SZ) | (1<<REAR_SPK_SZ) | (1<<TEST_MODE));
#else
if(bEepromReadByte(SUB_SPK_POSITION) == EV_OFF) //BillDen
_wInvalid &= ~((1<<CNT_SPK_SZ) | (1<<REAR_SPK_SZ) | (1<<TEST_MODE));
else
_wInvalid &= ~((1<<CNT_SPK_SZ) | (1<<REAR_SPK_SZ));
#endif
#ifndef BBK_MENU
#ifdef SET_VSURR_IN_SPKCFG
if (bEepromReadByte(SPEAKER_POSITION) == EV_DOWN_VSURR)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -