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

📄 player.c

📁 mtk1389L latest sourcecode enjoy
💻 C
📖 第 1 页 / 共 3 页
字号:
  /* vSelMenuReset(); */
  vSetSharedInfo(SI_USR_PROGRAM_TYPE, SV_PROGRAM_NONE_ITEM);
  /* vSetSharedInfo(SI_USR_PROGRAM_NO, 0); */
  vSetSharedInfo(SI_USR_PROGRAM_NS, 0);

  /* vClearPlayType(); */
  _bPlayType = PLAY_TYPE_NONE;
   vSetKeyState(KEY_INIT);

#ifdef PLAYER_GOTO
  if ( fgIsInGoto() )
  {
  	vSetKeyState(KEY_GOTO);
  }
#endif

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

  /* reset screen saver timer */
  _bScrSaverBeepCnt = SCR_SAVER_OFF_BEEP_COUNT;
  _bScrSaverTimer = SCR_SAVER_TIMEOUT;
  vSetScrSaverOff();
  vSetSharedInfo(SH_IR_TIMER_AUTO_PWR_DOWN, 0);

  _fgFlSrcSet = FALSE;

#if (defined(PLAYER_STOP_SRV_STOP) || defined(AUDIO_IN_EN) || defined(SUPPORT_CAPTURE_LOGO))
  /* reset player state */
  _bUISrvStatus = PLAYER_SRV_NORMAL;
#endif

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

#ifdef AUDIO_STREAM_CHANGE_MUTE
  _fgAstChg = FALSE;
#endif

#ifdef SRV_SHOW_ERROR_COUNTER
  _bSrvErrorTimer = 0;
  _bSrvShowErrIdx = 0;

  _pbSrvErrTrace[0] = 0;
  _pbSrvErrTrace[1] = 0;
  _pbSrvErrTrace[2] = 0;
  _pbSrvErrTrace[3] = 0;
  _pbSrvErrTrace[4] = 0;
#endif

  return;
}

#define PLAYER_TIEMR_ST_NONE            0
#define PLAYER_TIMER_ST_OSD_REFRESH     1
#define PLAYER_TIMER_ST_OSD_CHECK       2
#define PLAYER_TIMER_ST_MIC_DETECT      3
#define PLAYER_TIMER_ST_CHK_DISC_INIT   4



#ifdef SUPPORT_USB_COPY //yan 070409
// *********************************************************************
// Function : void vUSBSaverTimer(BYTE bState)
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
static void vUSBSaverTimer(void) large
{
  BYTE bErrTemp, bPercent;
  BYTE bSourceUSBSt, bSourceMCRSt, bSavToUSBSt;
#ifdef SMSUI_FOR_MULTI_PARTITION_FAT     //simon mul
 BYTE bAttach;
 bAttach = ((bSharedInfo(SI_EMD_DRIVE_0) >> SV_MCR_TOTAL_NS) | 
                     (bSharedInfo(SI_EMD_DRIVE_1) << SV_MCR_TOTAL_NS));

#endif
bErrTemp=bSharedInfo(SI_FMV_ERR_CODE);
  bPercent = bSharedInfo(SI_FMV_PERCENT);
#ifdef SMSUI_FOR_MULTI_PARTITION_FAT
  bSavToUSBSt = bAttach;
#else
  bSavToUSBSt = bSharedInfo(SI_EMD_ATTACH);
#endif
  #if 0//def USB_COPY_DEBUG
  DBGLogS("Run into USB save time:");
  DBGLogB(_bSourceDev, bSavToUSBSt, bPercent, 0);
  #endif

#ifdef USB_PULL_OUT //yan 070409
    #ifdef SUPPORT_MCR
	  if((_bSourceDev >= 6) && (_bSourceDev <= 9))
{
		  bSourceMCRSt = bSharedInfo(SI_MCR_ATTACH) & (1 << (_bSourceDev - 6));
	      bSourceUSBSt = 1;
		}
	else
	#endif
       if(_bSourceDev < 6)
{
	      bSourceMCRSt = 1;
       #ifdef SMSUI_FOR_MULTI_PARTITION_FAT 
              bSourceUSBSt = bAttach & (1 << _bSourceDev);
       #else  
	      bSourceUSBSt = bSharedInfo(SI_EMD_ATTACH) & (1 << _bSourceDev);
       #endif 
        }
      else
        {
          bSourceMCRSt = 1;
	      bSourceUSBSt = 1;
}
	
switch(_bUSBUIState)

{
case USBUI_CARD_SAVETO_ST:
	        if((bSourceUSBSt == 0) || (bSourceMCRSt == 0))
 {	
#ifdef USB_COPY_DEBUG
                DBGLogS("Save to St,Source MCR or USB pull out:");
                DBGLogB(bSourceUSBSt, bSourceMCRSt, 0, 0);
#endif
//_bUSBUIState=USBUI_MAX_ST;
     vUSBDisInputExit();
  }
	break;


case USBUI_CARD_SURE_ST:
         	if(!( bSavToUSBSt & (1 << _bSaveToDev)) /*|| (bSourceMCRSt == 0)*/)  //simon copy
{
 #ifdef USB_COPY_DEBUG
                 DBGLogS("Sure St,Source/SaveTo MCR/USB had been pull out:");
                 DBGLogB(bSavToUSBSt, _bSaveToDev, bSourceMCRSt, _bUSBUIState);
#endif
     vUSBDisInputExit();
  }
	break;

case USBUI_CARD_SAVING_ST:
            if((((bSourceUSBSt == 0) || (bSourceMCRSt == 0)) && ( _bSourceDev != SV_DEVID_CDVDROM))  \
	           || (!(bSavToUSBSt & (1 << _bSaveToDev))))
              {
                 #ifdef USB_COPY_DEBUG
                 DBGLogS("Saving St,Source/SaveTo MCR/USB had been pull out:");
                 DBGLogB(bSourceUSBSt, bSourceMCRSt, bSavToUSBSt, _bSaveToDev);
                 #endif
                 fgFlMnOnIrCancelCopy();
                 vSetExitInputState();                  
                 vUSBDisInputExit();
              }
break;

case USBUI_CARD_WAIT_CHANGE_ST:
case USBUI_CARD_ERR_ST:
case USBUI_CARD_FULL_ST:
case USBUI_CARD_NONE_ST:
case USBUI_CARD_CREATEFILEFAIL_ST:
case USBUI_CARD_COPYFAIL_ST:
case USBUI_CARD_COPYFINISH_ST:
     if(!(bSavToUSBSt & (1 << _bSaveToDev))) 
        {
           #ifdef USB_COPY_DEBUG
           DBGLogS("Copy Err St:Source/SaveTo MCR/USB had been pull out:");
           DBGLogB(bSourceMCRSt,bSavToUSBSt,_bUSBUIState,0);
           #endif
           vUSBDisInputExit();
          }
      break;
}
#endif

if(_bUSBUIState==USBUI_CARD_WAIT_CHANGE_ST)
{
   if(_bUSBSwitchSuccess == TRUE)
    { 
    //_bUSBSwitchSuccess = FALSE;
#ifdef SMSUI_FOR_MULTI_PARTITION_FAT     //simon mul
    if(bAttach & (1<<_bSaveToDev))
#else
    if(bSharedInfo(SI_EMD_ATTACH)& (1<<_bSaveToDev))
#endif
    {
    _bUSBUIState = USBUI_CARD_SURE_ST; 
    	vUSBUIShowInit(_bUSBUIState, 0);
    	}
    else
    	{
    _bUSBUIState = USBUI_CARD_NONE_ST;
    vUSBUIShowInit(_bUSBUIState, 0);
    }
   	}
}

if(_bUSBUIState==USBUI_CARD_SAVING_ST)
{
switch(bErrTemp)
    {
               case SV_FMV_ERR_DEVICEFULL:
      	           _bUSBUIState=USBUI_CARD_FULL_ST;
                   vUSBUIShowInit(_bUSBUIState, 0);
               break;

               case SV_FMV_ERR_CREATEFILEFAILS:
      	           _bUSBUIState=USBUI_CARD_CREATEFILEFAIL_ST;
      	           vUSBUIShowInit(_bUSBUIState, 0);
               break;
               
               case SV_FMV_ERR_DEVWRITEFAILS:
      	           _bUSBUIState=USBUI_CARD_COPYFAIL_ST;
      	           vUSBUIShowInit(_bUSBUIState, 0);
      	       break;
 	}

          if((bPercent == 0x64)&&(_bUSBJustCopy == TRUE))
 	         {
 	            #ifdef USB_COPY_DEBUG
                DBGLogS("USB_COPY_FINISH:");
 	            #endif
 	            _bUSBJustCopy = FALSE;
 	            vSetSharedInfo(SI_FMV_PERCENT,0x00);
                _bUSBUIState = USBUI_CARD_COPYFINISH_ST;
                vUSBUIShowInit(_bUSBUIState, 0);
 	         }
          #ifdef  USB_COPY_INTERPUT
          else if((_bUSBInterput == TRUE) && (_bUSBJustCopy == TRUE))
 	          {
 	             #ifdef USB_COPY_DEBUG
                 DBGLogS("USB copy interput:");
 	             #endif
 	             _bUSBInterput = FALSE;
 	             _bUSBJustCopy = FALSE;
 	             vSetSharedInfo(SI_FMV_PERCENT, 0x00);
                 _bUSBUIState = USBUI_CARD_ERR_ST;
                 vUSBUIShowInit(_bUSBUIState, 0);
 	          }
          #endif
}

}
#endif





// *********************************************************************
// Function : void vPlayerTimerState(BYTE bState)
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
static void vPlayerTimerState(BYTE bState) large
{
  BYTE bTmp;
#ifdef KARAOKE_SCORING
  BYTE pbStr[13];
#endif
#ifdef AUDIO_STREAM_CHANGE_MUTE
  if (_fgAstChg == TRUE)
  {
    bTmp = bSharedInfo(SH_CHG_AST_CNT);

    if (bTmp > 0)
    {
      bTmp--;
      vSetSharedInfo(SH_CHG_AST_CNT, bTmp);
    }

    if (bTmp == 0)
    {
      vSendUopCmd(UOP_CHANGE_ASTN, bSharedInfo(SH_CHG_AST_OPT1),
                  bSharedInfo(SH_CHG_AST_OPT2), bSharedInfo(SH_CHG_AST_OPT3));

      _fgAstChg = FALSE;
    }
  }
#endif /* AUDIO_STREAM_CHANGE_MUTE */

  switch (bState)
  {
    case PLAYER_TIMER_ST_OSD_REFRESH:
      /* force refresh */
      vOsdCoreRefresh(TRUE);
      vSetLayer2Change(FALSE);
#ifdef PLAYER_FLMENU
      vFlMnOnTimer();
#endif
#ifdef KARAOKE_SCORING
      if(fgAdspKscoreSupport())
      {
        vAdspGetScoreStr(pbStr);
        vOsdPosShowArg(OSD_POS_FS_KSCORE, OSD_MSG_KSCORE, OSD_TIMEOUT, pbStr);
      }
  #ifdef KARAOKE_SCORE_TEST
      vAdspGetKSHMStr(pbStr);
      vOsdPosShowArg(OSD_POS_FS_KSINFO, OSD_MSG_KSHITMISS, OSD_TIMEOUT, pbStr);
  #endif
#endif
      break;

    case PLAYER_TIMER_ST_OSD_CHECK:
      /* only when OSD changed */
      if (fgIsLayer2Changed())
      {
        vOsdCoreRefresh(FALSE); /* no timer count */
        vSetLayer2Change(FALSE);
      }
#ifdef PLAYER_FLMENU
      vFlMnOnTimer();
#endif
      break;

    case PLAYER_TIMER_ST_MIC_DETECT:
#ifdef PLAYER_KARAOKE
      vPlayerMicLevelDetect();
#endif
      break;

#ifdef EN_DISC_ID_CHK
    case PLAYER_TIMER_ST_CHK_DISC_INIT:
      if (fgIsNonPlay())
      {
        if (bSharedInfo(SI_INIT_STATE) == SV_DISC_IDENTIFIED)
        {
          if (fgIsDiscInitAskPwd())
          {
            vSetDiscInitFlag(DISC_INIT_WAIT_PWD_IN);

            fgSetPlayPostKey(IR_PASSWORD);
          }
          if (fgIsDiscInitChecked())
          {
            vSetPlayType(bSharedInfo(SI_DISC_TYPE));
          }
        }
      }
      break;
#endif /* EN_DISC_ID_CHK */

    case PLAYER_TIEMR_ST_NONE:
    default:
      break;
  }
}

static code BYTE bPlayerTimerStateList[PLAYER_TIMER_BEEP_PERIOD] =
{
  /* 00 */ PLAYER_TIMER_ST_OSD_REFRESH,
  /* 01 */ PLAYER_TIMER_ST_CHK_DISC_INIT,
  /* 02 */ PLAYER_TIEMR_ST_NONE,
  /* 03 */ PLAYER_TIEMR_ST_NONE,
  /* 04 */ PLAYER_TIEMR_ST_NONE,
  /* 05 */ PLAYER_TIEMR_ST_NONE,
  /* 06 */ PLAYER_TIMER_ST_OSD_CHECK,
  /* 07 */ PLAYER_TIMER_ST_MIC_DETECT,
  /* 08 */ PLAYER_TIEMR_ST_NONE,
  /* 09 */ PLAYER_TIEMR_ST_NONE,
  /* 10 */ PLAYER_TIEMR_ST_NONE,
  /* 11 */ PLAYER_TIEMR_ST_NONE,
  /* 12 */ PLAYER_TIMER_ST_OSD_CHECK,
  /* 13 */ PLAYER_TIEMR_ST_NONE,
  /* 14 */ PLAYER_TIEMR_ST_NONE,
  /* 15 */ PLAYER_TIEMR_ST_NONE,
  /* 16 */ PLAYER_TIEMR_ST_NONE,
  /* 17 */ PLAYER_TIEMR_ST_NONE,
  /* 18 */ PLAYER_TIMER_ST_OSD_CHECK,
  /* 19 */ PLAYER_TIMER_ST_MIC_DETECT,
  /* 20 */ PLAYER_TIEMR_ST_NONE,
  /* 21 */ PLAYER_TIEMR_ST_NONE,
  /* 22 */ PLAYER_TIEMR_ST_NONE,
  /* 23 */ PLAYER_TIEMR_ST_NONE
};

// *********************************************************************
// Function : void vPlayerTimer(void)
// Description : Trigger non-key dependant event for play module
// Parameter : None
// Return    : None
// *********************************************************************
//alfonso
extern BYTE xdata _bSetupCounter;
#ifdef PLAYER_VRMT
extern BYTE xdata _bVRmtCounter;
#endif /* PLAYER_VRMT */
extern BYTE xdata _bDrmCounter;

#ifdef REAL_TIME_SAVE_FLASH_SHADOW
extern BYTE xdata _bFlashSaveTimer;
extern BYTE xdata _bStpInitTimer;
extern BYTE xdata _bPNSwitchTimer;
#endif

static void vPlayerTimer(void) large
{
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#ifdef DVD_MENU_UPDATE_VFD_CIRCLE
  BYTE bDom = bSharedInfo(SI_DVD_DOM);
#endif

  /* for UI timer */
  if ((_bIrTimer != IR_TIMER_VOID) && (_bIrTimer != IR_TIMER_TIMEOUT))
  {
    _bIrTimerBeepCnt--;

    if(_bIrTimerBeepCnt == 0)
    {
      _bIrTimerBeepCnt = IR_TIMER_BEEP_PERIOD;
      _bIrTimer--;

      if (_bIrTimer == 0)
      {
        _bIrTimer = IR_TIMER_TIMEOUT;
      }
    }
  } /* _bIrTimer */

#ifdef REAL_TIME_SAVE_FLASH_SHADOW
  if (_bFlashSaveTimer > 0)
     _bFlashSaveTimer --;

  if (_bStpInitTimer > 0)
     _bStpInitTimer --;

  if (_bPNSwitchTimer > 0)
     _bPNSwitchTimer --;
#endif

  /* for player timer state */
  _bPlayerTimerBeepCnt--;
#if (defined(DVD_MENU_UPDATE_VFD_CIRCLE) || defined(JPEG_DECODING_UPDATE_VFD_CIRCLE) || defined(VCD_MENU_UPDATE_VFD_CIRCLE))
  vPlayerTimerState(bPlayerTimerStateList[_bPlayerTimerBeepCnt%PLAYER_TIMER_BEEP_PERIOD]);
  if (_bPlayerTimerBeepCnt == 0)
  {
    if (
  #ifdef DVD_MENU_UPDATE_VFD_CIRCLE
        (fgIsDvdPlay() && (bSharedInfo(SI_INIT_STATE) == SV_DISC_IDENTIFIED) &&
        ((bDom == SV_VTSM_DOM) || (bDom == SV_VMGM_DOM))) ||
  #endif
  #ifdef VCD_MENU_UPDATE_VFD_CIRCLE
        (fgIsVcdPlay() && (bSharedInfo(SI_PBC_STATE) != SV_PAUSE) && (bSharedInfo(SI_TRACK_NO) == 0)) ||
  #endif
  #ifdef JPEG_DECODING_UPDATE_VFD_CIRCLE
        ((bSharedInfo(SI_PBC_STATE) != SV_PAUSE) && (_bWorkingStt == 0x01)) // FSMENU_WKSTT_SPIC
  #else
        0
  #endif
       )
    {
      vVfdRotate(VFD_DISC_SPIN);
    }
    _bPlayerTimerBeepCnt = PLAYER_TIMER_BEEP_PERIOD*2;
  }
#else
  vPlayerTimerState(bPlayerTimerStateList[_bPlayerTimerBeepCnt]);
  if (_bPlayerTimerBeepCnt == 0)
  {
    _bPlayerTimerBeepCnt = PLAYER_TIMER_BEEP_PERIOD;
  }
#endif

#ifdef AUDIO_IN_EN
  if (fgIsFuncDvd())
#endif
  {
    /* for screen saver */
    _bScrSaverBeepCnt--;
  }

  if (_bScrSaverBeepCnt == 0)
  {
    if (fgIsScrSaverOn())
    {
#ifdef PLAYER_AUTO_PWR_DOWN
      /* use _bScrSaverTimer as temp counter */
      if ((_bScrSaverTimer == 0)
#ifdef PAUSE_NO_PWR_DOWN
          && (!fgIsDiscPause(bPbcState) && (bPbcState != SV_STILL)
#endif
#if(defined(SETUP_PAUSE_PLAY) || defined(SMS_MENU_PAUSE_PLAY)) //yan 070409
          && (bPbcState != SV_SETUP_PAUSE)
#endif
         )
      {
        /* use _bScrSaverBeepCnt as temp variable */
        _bScrSaverBeepCnt = bSharedInfo(SH_IR_TIMER_AUTO_PWR_DOWN);
        if (_bScrSaverBeepCnt == 0)
        {
          fgSetPlayPostKey(IR_POWER);
          _bScrSaverTimer = 5 * ((BYTE)(50 / SCR_SAVER_ON_BEEP_COUNT)); /* 5 seconds based beep count */
        }
        else
        {
          _bScrSaverBeepCnt--;
          vSetSharedInfo(SH_IR_TIMER_AUTO_PWR_DOWN, _bScrSaverBeepCnt);
          _bScrSaverTimer = 5 * ((BYTE)(50 / SCR_SAVER_ON_BEEP_COUNT)); /* 5 seconds based beep count */
        }
      }
      else
      {
        _bScrSaverTimer--;
      }
#endif

      if (bEepromReadByte(SCR_SAVER_POSITION) == EV_ON)
      {
        vScrSaveState();
      }

      _bScrSaverBeepCnt = SCR_SAVER_ON_BEEP_COUNT;
    }
    else /* screen saver off */
    {
      if (fgScrSaverCheck())
      {
        if (_bScrSaverTimer == 0) /* time up, turn on the screen saver */
        {
          /* enter power save mode */
          vSendPlayerIdle();
          /* if user allow screen saver */
          if (bEepromReadByte(SCR_SAVER_POSITION) == EV_ON)
          {
            vScrSaveInit();
          }
          vScrSaverSetTimeOut(0);
        }
        else /* if (_bScrSaverTimer > 0) */
        {
#ifndef MT1389HD_NO_SERVO        
          _bScrSaverTimer--;
#endif //MT1389HD_NO_SERVO
          _bScrSaverBeepCnt = SCR_SAVER_OFF_BEEP_COUNT;
        }
      }
      else /* not allow to enter screen save mode */
      {
        /* reset counter */
        vScrSaverSetTimeOut(SCR_SAVER_TIMEOUT);
      }
    } /* screen saver off */
  } /* _bScrSaverBeepCnt */

#ifdef SRV_SHOW_ERROR_COUNTER
  vPlayerShowSrvErr();
#endif

  vAdspTimerJob();

#ifdef  SUPPORT_HDMI
  vHDCPTimer();
#endif  // #ifdef SUPPORT_HDMI

#ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
  vSmsMenuTimer();
#endif

#ifdef PLAYER_VRMT
  //alfonso
  if(_bVRmtCounter != 0)
  {
    _bVRmtCounter --;
  }
#endif /* PLAYER_VRMT */
  if(_bSetupCounter != 0)

⌨️ 快捷键说明

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