📄 player.c
字号:
/* 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 + -