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

📄 dvd-player(mtk).txt

📁 DVD-PLAYER(MTK)的相关DVD播放指令
💻 TXT
字号:
main()
void main(void) 
{
#ifdef MANUFACTURE_BUNGLE       
  vCheckBungleType();
#endif  
  MDisableINT();                      // disable all interrupt

  _bErrCode = bReadDEC(RC_DISTA);     // clear Decode Interrupt Status Register
  _bErrCode = bReadBIM(BIM_RISCI);    // clear RISC Interrupt status register

  UnlockChip();                       // Unlock Chip
  WriteDEC(RW_BSTEST, 0);

#ifdef USE_VRAM2
  WriteBIM(BIM_MAP, VRAM2);
#else
  WriteBIM(BIM_MAP, 0);
#endif

  // Power On XDATA test
  PostXDATA();

  GetInitState();                     // determine system boot state

#ifdef PLAYER_POWERDOWN
  if (fgIsSoftReset() == FALSE)
#endif
  {
    _bPlayerErrCode = PLAYER_ERR_NO_ERROR;
  }

#ifdef PLAYER_POWERDOWN
  if (_bPWRMode >= SV_PWR_STANDBY)
  {
    PowerDownResetHardware();
  }
#endif // PLAYER_POWERDOWN

#ifdef TRACE_RESTART
  #ifdef PLAYER_POWERDOWN
  if (fgIsSoftReset() == FALSE)
  #endif
  {
    XBYTE[XDATA_END_ADDR] = XBYTE[XDATA_END_ADDR] + 1;
  }
#endif

  SetDRAMType();                      // set DRAM type and size

  _fgRstCntrEn = TRUE;

  // Power On DRAM test
  PostDRAM();

  // Reset Hardware -- RISC, Servor, Power-On Diag, ... etc
  ResetHardware();

  bStackTop = SP;

  MainLoop();

  // uncalled function
#ifdef TRAY_NOT_CONNECT
  SRVTrayIn();
  fgSRVTrayIsIn();
  SRVTrayStop();
#endif
  SRVPauseOff();
  SRVSetDVDBookType(0);
#ifdef VCODAC_IN_DRAM
  SRVWakeUpVCODAC();
#endif

#ifdef _PCM1604_
  bDA1604Read(1);
#endif

#ifdef DRS232_DEBUG
  #ifndef RS232_LOG_UI
  DBGLogS("");
  DBGLogB(1,2,3,4);
  #endif
  cDBGGetC();
#endif

#ifdef RISC_ICE_MODE
  MoveRISCCode();
#endif

#if (defined(RISC_ICE_MODE) || defined(USE_FLASH_DMA))
  fgMoveRISCDRAMCode(0);
#endif

  vADACFormat(0);

#ifdef MTK_TVE
  MVisionChangeType(0);
#endif

#ifndef PLAYER_POWERDOWN
  vADACPower(0);
  #if defined(MTK_ADAC)&&(defined(BOTH_INT_EXT_ADAC))
    vIntADACPower(0);
  #endif
  TerminateUI();
  SRVPowerDown(1);
  SRVWakeUp();
#endif

#ifdef TOP_LOADER
  SRVTrayIn();
#endif

#ifndef SUPPORT_CAPTURE_LOGO
  FlashWriteLogo();
#endif
}

/************************************************************************
     Function : void v(void)
  Description : MAIN loop to polling and handle device event/status
    Parameter : None
    Return    : None
************************************************************************/
void MainLoop(void)
{
  SP = bStackTop;

  MEnableINT();  // enable interrupt (if it was disabled by ReturnMain())


#ifdef RS232_LOG
  DBGLogS("Enter MainLoop.\n");
#endif

  /*=======================================================================*/
  /*========================= IDE MAIN LOOP ===============================*/
  /*=======================================================================*/
  while (TRUE)
  {
    // Peripheral device service routine
    PeriDevService();

    /****  Channel decoder CMD PROCESS BEGINS HERE  ****/
    if (_fgCDVDCmd)
    {
      CDVDCmd();
    }

    if (_testbit_(_fgTimeout))
    {
      if ((_bEEvtCode != 0) && (_rUI.bState == UI_EEVT_HANDLE))
      {
        EventHandler(_bEEvtCode);
      }

#if (!defined(TRAY_NOT_CONNECT) && !defined(TOP_LOADER))
  #ifdef THOMSON_TRAY
//      if ((fgTrayIsIn()) && (_bTrayStatus != TRAY_ST_MIDDLE))
//      {
//        _bPlayPostKey = IR_MANUAL_EJECT;        // send pseudo IR key
//        _bTrayStatus = TRAY_ST_MIDDLE;
//      }
  #else
      if (fgTrayIsIn())
      {
        _bTrayStatus = TRAY_ST_IN;
      }
      else if (fgTrayIsOut())
      {
        _bTrayStatus =  TRAY_ST_OUT;
      }
      else if (_bTrayStatus == TRAY_ST_OUT)
      {
        _bPlayPostKey = IR_MANUAL_EJECT;        // send pseudo IR key
        _bTrayStatus = TRAY_ST_MIDDLE;
      }
  #endif
#endif

      // CHECK THE FEATURES ONLY AVAILABLE WHEN DISC RECOGNIZED
      if (_bTotalSen)
      {
        // CHECK FOR PAUSE REQUIRED AND AVAILABLE
        if (_fgPause)
        {
          if (_wPauseTimer >= SRV_PAUSE_TIME_OUT)     // Pause After 2 Second
          {
            _fgPause = FALSE;
            if (_fgSpinStatus)
            {
              if (!_fgDiskIsDVD)
              {
#ifndef HIGH_SPEED_PAUSE
                // Audio Disc : Remain Current Speed
  &nbs 

⌨️ 快捷键说明

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