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

📄 stpcheck.c

📁 MTK 1389e版 MINI组合音响代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********************************************************************/
/***************    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 + -