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

📄 combine.c

📁 MTK portableDVD 采用mtk1389方案的代码
💻 C
📖 第 1 页 / 共 5 页
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 05/06/28 10:24p   $       ****************/
/***************  $Revision: 2.0 $       ****************/
/***************                                       ****************/
/***************   Description : Key-Combine State     ****************/
/***************                 Machine               ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer : Sung-Ching Lin        ****************/
/**********************************************************************/
#define _COMBINE_C_

#pragma NOAREGS
#include "general.h"
#include "posi.h"
#include "../../procdef.h"

#ifdef SRVFORCESTOP
  extern BOOL _bForceStop;
#endif
#ifdef RISC_SP60
extern BYTE bSetReverbMd(WORD wEEPos, BYTE bValue) large;
extern BYTE bSetEqPreset(WORD wEEPos, BYTE bValue) large;
#endif

#ifdef VIDEOIN_DETECT
extern BYTE xdata BBK_VIDEOIN_FLAG;
extern void BBKTFTSetNTSCPAL(void) large;
#endif
#if defined(YJT_CTL)&&defined(HAVE_TRUE_REGION)//billy[070104]
  extern  BYTE xdata  _fgQPlay;
#endif
// *********************************************************************
// Static Function Prototype
// *********************************************************************
static void vShowDiscType(BYTE bDiscType) large;

/************************************************************************
     Function : void vSetPlayType(BYTE bType)
  Description : 8032 play type define, set play type dependant setting
    Parameter : None
    Return    : None
************************************************************************/
void vSetPlayType(BYTE bType) large
{

  switch (bType)
  {
    case SV_DVD_VIDEO:
    case SV_DVD_AUDIO:
    case SV_DVD_VR:
    case SV_MINI_DVD:
    {
#ifdef DVD_DISC_ID_CHK
      if (!fgIsDiscInitChecked())
      {
        return;
      }
      else
#endif
      {
        _bPlayType = PLAY_TYPE_DVD;
        vSetKeyState(KEY_NONISO);
        if ( fgIsInSetupMenu() )
        {
          vSetKeyState(KEY_SETUP);
        }

        vDVDInit(bType);
      }
      break;
    }

    case SV_SVCD:
    case SV_CVD:
    case SV_VCD3_0:
    case SV_VCD2_0:
    case SV_VCD1_1:
    case SV_VCD6_0:
    case SV_VCD6_1:
    {
#ifdef VCD_DISC_ID_CHK
      if (!fgIsDiscInitChecked())
      {
        return;
      }
      else
#endif
      {
        _bPlayType = PLAY_TYPE_VCD;
        vSetKeyState(KEY_NONISO);
        if ( fgIsInSetupMenu() )
        {
          vSetKeyState(KEY_SETUP);
        }

        vVCDInit(bType);
      }
      break;
    }

#ifdef SUPPORT_DATA_DISC
    case SV_DATA:
    {
#ifdef ISO_DISC_ID_CHK
      if (!fgIsDiscInitChecked())
      {
        return;
      }
      else
#endif
      {
        _bPlayType = PLAY_TYPE_ISO;
        vSetKeyState(KEY_ISO);
        if ( fgIsInSetupMenu() )
        {
          vSetKeyState(KEY_SETUP);
        }

        vISOInit(bType);
      }
      break;
    }

    case SV_PCD:
    {
#ifdef PCD_DISC_ID_CHK
      if (!fgIsDiscInitChecked())
      {
        return;
      }
      else
#endif
      {
        _bPlayType = PLAY_TYPE_PCD;
        vSetKeyState(KEY_ISO);
        if ( fgIsInSetupMenu() )
        {
          vSetKeyState(KEY_SETUP);
        }

        vPCDInit(bType);
      }
      break;
    }
#endif /* SUPPORT_DATA_DISC */

    case SV_DTS_CS:
    case SV_CDDA:
    case SV_SACD:
    case SV_CDG:
    case SV_HDCD:
    {
#ifdef CDDA_DISC_ID_CHK
      if (!fgIsDiscInitChecked())
      {
        return;
      }
      else
#endif
      {
        _bPlayType = PLAY_TYPE_CDDA;
        vSetKeyState(KEY_NONISO);
        if ( fgIsInSetupMenu() )
        {
          vSetKeyState(KEY_SETUP);
        }

        vCDDAInit(bType);
      }
      break;
    }

    case SV_AUDIO_IN:
    {
      _bPlayType = PLAY_TYPE_AIN;
      vSetKeyState(KEY_NONISO);
      if ( fgIsInSetupMenu() )
      {
        vSetKeyState(KEY_SETUP);
      }

      vAINInit(bType);
      break;
    }

    default:
    {
      vSetKeyState(KEY_INIT);

      if ( fgIsInSetupMenu() )
      {
        vSetKeyState(KEY_SETUP);
      }

       
       _bPlayType = PLAY_TYPE_NONE;
      break;
    }
  } /* switch (bType) */
 #ifdef PORTABLEDVD		//bywhy 2003/08/05
  vAdspVolume( _rAudioCtrl.sVol.bCurVol);
 #endif 

   if(bType == SV_DTS_CS             //TONE
         #ifdef SUPPORT_DVD_AUDIO
           || bType == SV_DVD_AUDIO
         #endif
   )
   {
      fgEepromWriteByte(TONE_POS, ZERO_KEY_LEVEL);
	#ifdef TONE_IN_SETUP
      bToneChange(ZERO_KEY_LEVEL);
	#endif
   }
   
   if(bType == SV_DTS_CS         //EQ SURROUND
   #ifdef SUPPORT_DVD_AUDIO
   || bType == SV_DVD_AUDIO
   #endif
   )
 {
     if(bEepromReadByte(EQ_PRESET_POS) != EV_NONE)
     {
             fgEepromWriteByte(EQ_PRESET_POS, 0);
             bSetEqPreset(0,0);
     }
     if(bEepromReadByte(REVERB_MD_POS) != EV_NONE)
     {
             fgEepromWriteByte(REVERB_MD_POS, 0);
             bSetReverbMd(0,0);     
     } 
 }
 

  vOsdDisplayChange(DISP_INIT, 0);

#ifdef DISC_IDENT_AUTO_MUTE_OFF
  if (_bPlayType != PLAY_TYPE_NONE)
  {
    if (fgIsMute()) // if mute on
    {
      vAdspMute(ADSP_OFF, 0);
      vOsdShowMute(OSD_MUTE_CLEAR);
    }
  }
#endif

  vShowDiscType(bType);
}

/************************************************************************
     Function : void vClearPlayType(void)
  Description : Clear play type related setting
    Parameter : None
    Return    : None
************************************************************************/
void vClearPlayType(void) large
{
  if (fgIsDvdPlay())
  {
    vDVDExit();
  }
  else if (fgIsVcdPlay())
  {
    vVCDExit();
  }
#ifdef SUPPORT_DATA_DISC
  else if (fgIsIsoPlay())
  {
    vISOExit();
  }
  else if (fgIsPcdPlay())
  {
    vPCDExit();
  }
#endif /* SUPPORT_DATA_DISC */
  else if (fgIsCddaPlay())
  {
    vCDDAExit();
  }
  else if (fgIsAinPlay())
  {
    vAINExit();
  }

  _bPlayType = PLAY_TYPE_NONE;
  vSetKeyState(KEY_INIT);

  if ( fgIsInSetupMenu() )
  {
    vSetKeyState(KEY_SETUP);
  }  
}

#ifdef AUDIO_IN_EN
// *********************************************************************
// Function : void vPlayerFuncSwitch(BYTE bMode) large
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
void vPlayerFuncSwitch(BYTE bMode) large
{
  if (_fgNotify == FALSE) // system init stage
  {
    if (bMode == PLAYER_FUNC_AIN)
    {
      _bPlayerFuncMode = PLAYER_FUNC_AIN;
    }
    else /* if (bMode == PLAYER_FUNC_DVD) */
    {
      _bPlayerFuncMode = PLAYER_FUNC_DVD;
    }
  }
  else // system run stage
  {
    if (bMode == PLAYER_FUNC_AIN)
    {
      if (fgIsFuncAin() == FALSE)
      {
        vPlayerReset();

        _bPlayerFuncMode = PLAYER_FUNC_AIN;

        vSendUopCmd(UOP_OPEN_CLOSE, SV_PSEUDO_OPEN, 0, 0);

        _bUISrvStatus = PLAYER_SRV_STOP;

        if (_bDiscLoadSt >= DISC_LOAD_STARTUP)
        {
          _fgSkipSrvStart = TRUE;
        }
      }
    }
    else /* if (bMode == PLAYER_FUNC_DVD) */
    {
      if (fgIsFuncDvd() == FALSE)
      {
        vPlayerReset();

        _bPlayerFuncMode = PLAYER_FUNC_DVD;

        vSendUopCmd(UOP_OPEN_CLOSE, SV_PSEUDO_CLOSE, 0, 0);
      }
    }
  }
}
#endif /* AUDIO_IN_EN */

// *********************************************************************
// Function : void vPlayerReset(void) large
// Description : called from playback
// Parameter : None
// Return    : None
// *********************************************************************
void vPlayerReset(void) large
{
  BYTE i;

vSetSharedInfo(SI_JOLIET_LEVEL , 0); //tanglushan 
vSetSharedInfo(SI_DDISC_DEF_PMODE, SV_REPEAT_NONE);//tanglusan 1014
#ifdef BBK_LAST_MEMORY
  _fgPlayFromMemory = FALSE;
#endif 
  /* check setup menu exist moved to WB reset */

  // clear play type, call every play module exit function
  vClearPlayType();

  //songchen 060410 for some variable initialization.
  vSetSharedInfo(SI_JPG_STT, JPEGSTT_DEC_FSH);
  vSetSharedInfo(SI_JPG_SLIDE_SHOW_DONE, JPEG_SLIDESHOW_FSH);
  // reset player timer beep count
#if (defined(DVD_MENU_UPDATE_VFD_CIRCLE) || defined(JPEG_DECODING_UPDATE_VFD_CIRCLE))
  _bPlayerTimerBeepCnt = PLAYER_TIMER_BEEP_PERIOD*2;
#else
  _bPlayerTimerBeepCnt = PLAYER_TIMER_BEEP_PERIOD;
#endif

  // reset display mode
  vOsdShowWb(OSD_WB_RESET);

  // reset zoom indicator flag
  _rOsdStateCtx.fgZoomBrShow = FALSE;

  // reset EQ state
  _rEqState.bDispType = OSD_EQ_TYPE_DISABLE;

  // reset input state
  vResetInputState();

  // for RISC communication states
  _bLastSyncUop = UOP_NONE;
  _bLastPbcState = SV_PBC_INIT;

  // reset osd state
  vOsdDisplayChange(DISP_INIT, 0);

  // reset search state
  _rSearchStateCtx.bType = SEARCH_NONE;

// Seiya: Added on 2004/07/27 for dual mono switch.

  // reset program state
  vSelMenuReset();

  // this is play type dependant
#ifdef PLAYER_KARAOKE
  if (bAdspCurrVocal() != VOCAL_NO_ASSIST)
  {
    vAdspVocalAssist(VOCAL_NO_ASSIST);
#ifdef BBK_NEW_GUI
		fgEepromWriteByte(KAR_HELP_POS, VOCAL_NO_ASSIST); //add by linshangbo 06.02.07
#endif
  }
  #ifdef KARAOKE_MIC_REC
  vMicRecCtrl(MIC_REC_CTRL_RESET);
  #endif
#else /* not define PLAYER_KARAOKE */
  if (bAdspCurrVocal() != AUDIO_STEREO)
  {
    vAdspLR(AUDIO_STEREO);
  }
#endif /* PLAYER_KARAOKE */
  vAdspReset();

#if !defined(NO_SM_NOTIFY)
  SmInit();
#endif

  // for vocal assist
#ifdef PLAYER_KARAOKE
  _fgVocalOn = FALSE;
#endif

#ifdef AUDIO_STREAM_CHANGE_MUTE
  _fgAstChg = FALSE;
#endif
}

/************************************************************************
     Function :
  Description : This function must be moved to screen saver moudle
    Parameter :
    Return    :  = 0 -> screen saver not allowed
                 > 0 -> screen saver allowed
************************************************************************/
BOOL fgScrSaverCheck(void) large
{
  BYTE bInitState = bSharedInfo(SI_INIT_STATE);
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);


  #ifdef VIDEOIN_DETECT
	if(BBK_VIDEOIN_FLAG == 1)
		return(FALSE);
  #endif

#ifdef GUI_DC_SELECT  //billy[061005]    prevent the savescreen on
if((_bDevType == DEVICE_USB||_bDevType == DEVICE_CARD)
	/*&&bPbcState==SV_PAUSE*/
	&&bSharedInfo(SI_MP3_BITRATE_LO)!=0xff)
   {
    return(FALSE);
   }
#endif

  if (bEepromReadByte(SCR_SAVER_POSITION) == EV_OFF)
  {
    return FALSE;
  }

  if(fgFlCheckStatus(FL_STATUS_IN_HELP) || fgFlCheckStatus(FL_STATUS_IN_JPGDGST)) //add by linshangbo 06.02.20
  {
    return(FALSE);
  }

  switch (bInitState)
  {
    case SV_LOADING_DISC:
    case SV_TRAY_CLOSING:
    case SV_TRAY_ERROR:
  #ifdef PORTABLEDVD
    case SV_TRAY_OPENING:
  #endif
      return (FALSE); /* not allowed */
  
  #ifndef PORTABLEDVD
    case SV_TRAY_OPENING:
  #endif
    case SV_NO_DISC:
    case SV_UNKNOWN_DISC:
      return (TRUE); /* allowed */

    case SV_DISC_IDENTIFIED:
    default:
      break; /* not determined */
  }

  switch (bPbcState)
  {
    case SV_PAUSE:
    case SV_STEP:
    case SV_STEP_BACK:
    case SV_STOP:
    case SV_STOP_RESUME:
    case SV_SETUP_PAUSE:
    case SV_PTL_ERR:
    case SV_REGION_ERR:
    case SV_DISC_ERR:
    case SV_SET_TMP_PTL:
      return (TRUE); /* allowed */

    case SV_PLAY:
    case SV_FF:
    case SV_SF:
    case SV_FR:
    case SV_SR:
    case SV_FREEZE:
    case SV_DIGEST9:
    case SV_DIGEST4:
    case SV_PBC_INIT:
      return (FALSE); /* not allowed */

    case SV_DIGEST:
    case SV_STILL:
#ifdef SUPPORT_DATA_DISC
      if (fgIsIsoPlay() || fgIsPcdPlay())
      {
        //if (fgFsMenuIsDecoding() == FALSE)
        if (fgFlCheckStatus(FL_STATUS_BUSY) == FALSE)
        {
          /* if not decoding, allowed */
          return (TRUE);
        }
        else
        {
          /* if is decoding, not allowed */
          return (FALSE);
        }
      }
      else
      {
        /* DVD/VCD is not allowed in still mode */
        return (FALSE);
      }
      break;
#endif /* SUPPORT_DATA_DISC */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -