📄 player.c
字号:
}
vSetSharedInfo(SI_RISC_SHM_RP, _bShmRp);
}
else
{
/* no more info to update */
vClearShmUpdCnt();
}
#else
if (_bSMUpdate)
{
vHandleSM();
_bSMUpdate = FALSE;
ClrSmBusy();
}
#endif
}
// *********************************************************************
// Function : void vPlayerInit(void) large
// Description :
// Parameter : None
// Return : None
// *********************************************************************
static void vPlayerInit(void) large
{
/* note: player function is loaded in vUserInit() */
#ifdef SUPPORT_DRM
_bDRMState=DRM_MAX_ST;
_rOsdStateCtx.fgDRMShow=FALSE;
#endif
_rOsdStateCtx.fgUopUpdate = FALSE;
_rOsdStateCtx.bUopRetId = UOP_NONE;
_rOsdStateCtx.bUopRetVal = SV_NO_ERROR;
_rOsdStateCtx.fgSetupShow = FALSE;
#ifdef PLAYER_GOTO
_rOsdStateCtx.fgGotoShow = FALSE; //megaa Goto
_rOsdStateCtx.fgVRemoteShow = FALSE; //megaa Goto
#endif
_rOsdStateCtx.fgZoomBrShow = FALSE;
_rEqState.bDispType = OSD_EQ_TYPE_DISABLE;
// for player timer
_bPlayerTimerBeepCnt = 0;
// reset input state
/* vResetInputState(); */
_bInputState = INPUT_STATE_NONE;
_fgInputResend = FALSE;
_fgInputEscape = FALSE;
_bIrTimer = IR_TIMER_VOID;
_bIrTimerBeepCnt = 0;
// for RISC communication states
_bLastSyncUop = UOP_NONE;
_bLastPbcState = SV_PBC_INIT;
// reset osd state
/* vResetOsdState(); */
_rOsdStateCtx.fgTimeShow = FALSE;
_rOsdStateCtx.bTimeType = OSD_SHOW_DISABLE;
_rOsdStateCtx.fgRemainMsgShow = FALSE;
_rOsdStateCtx.fgPlayInfoShow = FALSE;
_rOsdStateCtx.bPlayInfoType = OSD_INFO_DISABLE;
_rOsdStateCtx.fgPlayShow = FALSE;
_rOsdStateCtx.bPlayType = OSD_SHOW_PLAY;
_rOsdStateCtx.fgRepeatShow = FALSE;
_rOsdStateCtx.fgABShow = FALSE;
_rOsdStateCtx.fgUsrCtrlShow = FALSE;
_rOsdStateCtx.fgZoomShow = FALSE;
_rOsdStateCtx.fgTimePos = OSD_SHOW_TIME_LEFT;
#ifdef EN_DISC_ID_CHK
//vResetDiscInitFlag()
_rOsdStateCtx.bDiscIDFound = 0;
_rOsdStateCtx.bDiscInitFlag = 0;
#endif
// this state is not affected by tray-in/out
_rOsdStateCtx.bAudioStatus = OSD_AUDIO_SHOW_NORMAL;
_rOsdStateCtx.fgAudioStatusRecall = FALSE;
// reset search state
_rSearchStateCtx.bType = SEARCH_NONE;
#ifdef SETUP_NO_AGL_MARK
_rOsdStateCtx.fgAngleShow = TRUE;
#endif
// reset program state
/* vSelMenuReset(); */
#ifdef PLAYER_PROGRAM
vSetSharedInfo(SI_USR_PROGRAM_TYPE, SV_PROGRAM_NONE_ITEM);
/* vSetSharedInfo(SI_USR_PROGRAM_NO, 0); */
vSetSharedInfo(SI_USR_PROGRAM_NS, 0);
#endif
/* vClearPlayType(); */
_bPlayType = PLAY_TYPE_NONE;
vSetKeyState(KEY_INIT);
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);
#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
_rUopmapFlag.fgVCDPBCShow = 0;
_rUopmapFlag.fgVCDLMShow = 0;
_fgSetupProhibit = FALSE ; // 20050504, PL00000143
return;
}
#define PLAYER_TIMER_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
// *********************************************************************
// Function : void vPlayerTimerState(BYTE bState)
// Description :
// Parameter : None
// Return : None
// *********************************************************************
static void vPlayerTimerState(BYTE bState) large
{
BYTE bTmp;
#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
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_TIMER_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_TIMER_ST_NONE,
/* 03 */ PLAYER_TIMER_ST_NONE,
/* 04 */ PLAYER_TIMER_ST_NONE,
/* 05 */ PLAYER_TIMER_ST_NONE,
/* 06 */ PLAYER_TIMER_ST_OSD_CHECK,
/* 07 */ PLAYER_TIMER_ST_MIC_DETECT,
/* 08 */ PLAYER_TIMER_ST_NONE,
/* 09 */ PLAYER_TIMER_ST_NONE,
/* 10 */ PLAYER_TIMER_ST_NONE,
/* 11 */ PLAYER_TIMER_ST_NONE,
/* 12 */ PLAYER_TIMER_ST_OSD_CHECK,
/* 13 */ PLAYER_TIMER_ST_NONE,
/* 14 */ PLAYER_TIMER_ST_NONE,
/* 15 */ PLAYER_TIMER_ST_NONE,
/* 16 */ PLAYER_TIMER_ST_NONE,
/* 17 */ PLAYER_TIMER_ST_NONE,
/* 18 */ PLAYER_TIMER_ST_OSD_CHECK,
/* 19 */ PLAYER_TIMER_ST_MIC_DETECT,
/* 20 */ PLAYER_TIMER_ST_NONE,
/* 21 */ PLAYER_TIMER_ST_NONE,
/* 22 */ PLAYER_TIMER_ST_NONE,
/* 23 */ PLAYER_TIMER_ST_NONE
};
// *********************************************************************
// Function : void vPlayerTimer(void)
// Description : Trigger non-key dependant event for play module
// Parameter : None
// Return : None
// *********************************************************************
static void vPlayerTimer(void) large
{
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#ifdef DVD_MENU_SHOW_VFD_WHEEL
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 */
/* for player timer state */
_bPlayerTimerBeepCnt--;
#if (defined(DVD_MENU_SHOW_VFD_WHEEL) || defined(JPEG_DECODING_SHOW_VFD_WHEEL) || defined(VCD_MENU_SHOW_VFD_WHEEL))
vPlayerTimerState(bPlayerTimerStateList[_bPlayerTimerBeepCnt%PLAYER_TIMER_BEEP_PERIOD]);
if (_bPlayerTimerBeepCnt == 0)
{
if (
#ifdef DVD_MENU_SHOW_VFD_WHEEL
(fgIsDvdPlay() && (bSharedInfo(SI_INIT_STATE) == SV_DISC_IDENTIFIED) &&
((bDom == SV_VTSM_DOM) || (bDom == SV_VMGM_DOM))) ||
#endif
#ifdef VCD_MENU_SHOW_VFD_WHEEL
(fgIsVcdPlay() && (bSharedInfo(SI_PBC_STATE) != SV_PAUSE) && (bSharedInfo(SI_TRACK_NO) == 0)) ||
#endif
#ifdef JPEG_DECODING_SHOW_VFD_WHEEL
((bSharedInfo(SI_PBC_STATE) != SV_PAUSE) && (_bWorkingStt == 0x01)) // FSMENU_WKSTT_SPIC
#else
0
#endif
)
{
VfdWheel(VFD_WHEEL_ROTATE);
}
_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
#ifdef SETUP_PAUSE_PLAY
&& (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)
{
vBmpScrSaveState();
}
_bScrSaverBeepCnt = SCR_SAVER_ON_BEEP_COUNT;
}
else /* screen saver off */
{
/*
Add the '!fgIsPcdPlay()' condition by Bright_liu 2005/12/02, for CQ(PL00001430)
when enter PCD -> file menu, after several mintues, system hang up!
Same as ISO.
*/
if (fgScrSaverCheck() && !fgIsIsoPlay() && !fgIsPcdPlay() && !fgIsInSetupMenu())
{
if (_bScrSaverTimer == 0) /* time up, turn on the screen saver */
{
/* enter power save mode */
#ifndef REDUCE_POWER_MODE
vSendPlayerIdle();
#endif
/* if user allow screen saver */
if (bEepromReadByte(SCR_SAVER_POSITION) == EV_ON)
{
vBmpScrSaveInit();
}
vScrSaverSetTimeOut(0);
}
else /* if (_bScrSaverTimer > 0) */
{
_bScrSaverTimer--;
_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();
if (_rUopmapFlag.fgVCDPBCShow)
{
if (bSharedInfo(SH_OSD_TIMER_START + 1)<=1)
{
if ((bSharedInfo(SI_PBC_CTRL_VALID) == SV_PBC_OFF) ||
(bSharedInfo(SI_VCD_PBC_OFF) == TRUE))
{
vOsdPosShow(OSD_POS_PBC_2, OSD_MSG_PBC_OFF, OSD_TIMEOUT_SHORT);
}
else /* disc with PBC and allow it on */
{
vOsdPosShow(OSD_POS_PBC_2, OSD_MSG_PBC_ON, OSD_TIMEOUT_SHORT);
}
_rUopmapFlag.fgVCDPBCShow = 0;
}
}
if (_rUopmapFlag.fgVCDLMShow)
{
if (bSharedInfo(SH_OSD_TIMER_START + 1)<=1)
{
vOsdPosShow(OSD_POS_LAST_MEM, OSD_MSG_LAST_MEMORY, OSD_TIMEOUT);
_rUopmapFlag.fgVCDLMShow = 0;
}
}
}
// *********************************************************************
// Function : void vIrTimer(void)
// Description :
// Parameter : None
// Return : None
// *********************************************************************
static void vIrTimer(void) large
{
BOOL fgRet = UOP_OK;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -