📄 stpcheck.c
字号:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 03/09/10 5:51p $ ****************/
/*************** $Revision: 2.0 $ ****************/
/*************** Description : Setup check valid ****************/
/*************** relative routine ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : Peter Huang ****************/
/**********************************************************************/
#include "general.h"
#include "stpmain.h"
#include "stpmenu.h"
#pragma NOAREGS
static void vCheckMain(void) large
{
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
BYTE bInitState = bSharedInfo(SI_INIT_STATE);
//_wInvalid &= ~(01<<(MENU_INITIAL_SETUP - 1));
/*
if (fgFlCheckStatus(FL_STATUS_IN_MENU))
{
_wInvalid &= ~(01<<(MENU_PLAYBACK - 1));
}
*/
switch (bInitState)
{
case SV_TRAY_OPENING:
case SV_TRAY_ERROR:
case SV_NO_DISC:
case SV_UNKNOWN_DISC:
// allowed
break;
case SV_LOADING_DISC:
case SV_TRAY_CLOSING:
case SV_DISC_IDENTIFIED:
// need to check
if ((bPbcState != SV_STOP) && (bPbcState != SV_PTL_ERR))
{
_wInvalid &= ~(01<<(MENU_INITIAL_SETUP - 1));
_wInvalid &= ~(01<<(MENU_RESET_TO_DEFAULTS - 1));
_wInvalid &= ~(01<<(MENU_PLAYBACK - 1));
}
/*songchen 060331 add for check the busy condition, for example,jpg and mp3 is playing simultaneitily.although jpeg
play over,but system is busying,si_pbc_state will be change to sv_stop,so must process "specially sv_stop" condition*/
if (fgIsIsoPlay() || fgIsPcdPlay())
{
if((bSharedInfo(SI_JPG_SLIDE_SHOW_DONE) == JPEG_SLIDESHOW_FSH) && (fgFlCheckStatus(FL_STATUS_BUSY) == TRUE))
{
/* if JPEG decoding, NOT allowed,and DON'T care the mpic or mp3. */
_wInvalid &= ~(01<<(MENU_INITIAL_SETUP - 1));
_wInvalid &= ~(01<<(MENU_RESET_TO_DEFAULTS - 1));
_wInvalid &= ~(01<<(MENU_PLAYBACK - 1));
}
}
break;
default:
// not allowed
break;
}
}
#if defined(PLAYER_KARAOKE) && defined(KARA_IN_SETUP)
static void vChkKok(void) large
{
if(fgIsMute())
_wInvalid &= ~(01<<(KARAOKE_MICROPHONE - 1));
}
#endif /* PLAYER_KARAOKE */
static void vCheckSoundMix(void) large
{
BYTE bMixCfg = bEepromReadByte(SPEAKER_POSITION);
BYTE bType = bEepromReadByte(IEC_MAX_FREQ_POSITION);
switch(bMixCfg)
{
case EV_CFG_STEREO:
#ifdef STP_BALANCE
_wInvalid &= ~(01<<(SOUND_MIX_BALANCE - 1));
#endif
#ifndef GUI_2_CHANNEL
_wInvalid &= ~(01<<(SOUND_MIX_PRO_II - 1));
#endif
break;
case EV_DOWN_OFF:
#ifndef GUI_2_CHANNEL
_wInvalid &= ~(01<<(SOUND_MIX_SER_MIX - 1));
_wInvalid &= ~(01<<(SOUND_MIX_SUR_MIX - 1));
#endif
break;
}
#ifndef GUI_2_CHANNEL
if(bEepromReadByte(IEC958_POSITION) == EV_PCM ||
bSharedInfo(SI_A_CODE_MODE) == SV_A_CODE_WMA ||
(bSharedInfo(SI_DISC_TYPE) == SV_DVD_AUDIO && (EV_192K == bType || EV_96K == bType))
)
{
_wInvalid &= ~(01<<(SOUND_MIX_PRO_II - 1));
}
#endif
}
static void vCheckSoundTone(void) large //060321
{
BYTE bCode = bSharedInfo(SI_A_CODE_MODE);
BYTE bDisc = bSharedInfo(SI_DISC_TYPE);
BYTE bType = bEepromReadByte(IEC_MAX_FREQ_POSITION);
BYTE bIsoAType = bSharedInfo(SI_ISO_ITEM_TYPE) ;//billy[060410]
if(bSharedInfo(SI_INIT_STATE) != SV_TRAY_OPENING &&
(SV_A_CODE_DTS == bCode /* || SV_A_CODE_WMA == bCode */ \
||(SV_DVD_AUDIO == bDisc && (EV_192K == bType || EV_96K == bType)) )
)
{
_wInvalid &= ~(01<<(TUNING_EQ - 1));
_wInvalid &= ~(01<<(TUNING_ECHO - 1));
_wInvalid &= ~(01<<(TUNING_TUNE - 1));
}
#ifdef SUPPORT_OGG//billy[060411]
if(SV_ISO_OGG == bIsoAType||bCode == SV_A_CODE_VORBIS)
{
_wInvalid &= ~(01<<(TUNING_TUNE - 1));
}
#endif
}
static void vCheckLowBand(void) large
{
BYTE bMixCfg = bEepromReadByte(SPEAKER_POSITION);
switch(bMixCfg)
{
case EV_DOWN_OFF:
break;
default:
_wInvalid &= ~(01<<LOW_BAND_C - 1);
_wInvalid &= ~(01<<LOW_BAND_SR - 1);
break;
}
}
static void vCheckChDelay(void) large
{
BYTE bMixCfg = bEepromReadByte(SPEAKER_POSITION);
switch(bMixCfg)
{
case EV_DOWN_OFF:
break;
default:
_wInvalid &= ~(01<<(CH_DELAY_C - 1));
_wInvalid &= ~(01<<(CH_DELAY_SR - 1));
break;
}
}
static void vCheckImage(void) large
{
#ifdef PSCAN_EN //billy[060508] for no pscan function
if(bEepromReadByte(TV_PSCAN_EN_POS) == SV_ON)
{
_wInvalid &= ~(01<<(IMAGE_VIDEO_OUTPUT - 1));
}
#endif
}
static void vCheckChsVol(void) large
{
BYTE bMixCfg = bEepromReadByte(SPEAKER_POSITION);
switch(bMixCfg)
{
case EV_DOWN_OFF:
break;
default:
_wInvalid &= ~(01<<(CH_VOL_SR_L - 1));
_wInvalid &= ~(01<<(CH_VOL_SR_R - 1));
_wInvalid &= ~(01<<(CH_VOL_CNT - 1));
break;
}
}
static void vCheckPlayback(void) large
{
BYTE bPlayDataD = bEepromReadByte(DATA_DISC_PLAY_POS);
switch(bPlayDataD)
{
case EV_NO_TYPE_FILE:
case EV_AUDIO_FILE:
case EV_VIDEO_FILE:
case EV_AU_VD_FILE:
_wInvalid &= ~(01<<(PLAYBACK_JPEG_LOADING - 1));
break;
}
}
static void vCheckLanguage(void) large
{
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_LOADING_DISC:
case SV_TRAY_CLOSING:
case SV_DISC_IDENTIFIED:
// need to check
if ((bPbcState != SV_STOP) && (bPbcState != SV_PTL_ERR))
{
_wInvalid &= ~(01<<(LANGUAGE_DVD_MENU - 1));
_wInvalid &= ~(01<<(LANGUAGE_SOUNDTRACK - 1));
_wInvalid &= ~(01<<(LANGUAGE_SUBTITLES - 1));
#ifdef RUSSIAN_BUYER_SPECIAL2 //songchen 061205
if( !fgIsIsoPlay()) /*fjw*/
{
_wInvalid &= ~(01<<(LANGUAGE_MP4SUBTITLES - 1));
}
#endif
}
break;
default:
// not allowed
break;
}
}
static void vCheckPref(void) large
{
BYTE bInitState = bSharedInfo(SI_INIT_STATE);
#ifdef SUPPORT_CAPTURE_LOGO
if (SV_NO_DISC != bInitState && SV_UNKNOWN_DISC != bInitState && SV_TRAY_OPENING != bInitState)
{
_wInvalid &= ~(01<<(PREFERENCE_BACKGROUND_PICTURE - 1));
}
#endif
if ( bSharedInfo(SI_INIT_STATE) == 0 ||
( bSharedInfo(SI_INIT_STATE) > 5 && ( fgIsNonPlay() || fgIsIsoPlay() || fgIsPcdPlay()||(bSharedInfo(SI_DISC_TYPE) == SV_DATA)
#ifdef SUPPORT_DVD_AUDIO
|| (bSharedInfo(SI_DISC_TYPE) == SV_DVD_AUDIO)
#endif
)))
{
_wInvalid &= ~(01<<(PREFERENCE_GRAPHIC_EQUALISER - 1));
}
#ifdef CELL_CAP_IN_MENU
if(fgFlCheckStatus(FL_STATUS_IN_MENU))
{
_wInvalid &= ~(01<<(PREFERENCE_CELL_DISPLAY - 1));
}
#endif
}
void vChkValid(BYTE bType) large
{
switch(bType)
{
case CHK_MAIN:
vCheckMain();
break;
#if defined(PLAYER_KARAOKE) && defined(KARA_IN_SETUP)
case CHK_KARAOKE:
vChkKok();
break;
#endif
case CHK_IMAGE:
vCheckImage();
break;
case CHK_SOUNDMIX:
vCheckSoundMix();
break;
case CHK_SOUND_TONE: //060321
vCheckSoundTone();
break;
case CHK_LOW_BAND:
vCheckLowBand();
break;
case CHK_CHDELAY:
vCheckChDelay();
break;
case CHK_CHANNEL:
vCheckChsVol();
break;
case CHK_PLAYBACK:
vCheckPlayback();
break;
case CHK_LAGUAGE:
vCheckLanguage();
break;
case CHK_PREF:
vCheckPref();
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -