📄 player.c
字号:
_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;
#if defined(DVD_RECEIVER) //xiao 03-04-15
_bVolCtrlTimer = IR_VOL_CTRL_EFFECT;
_fgVolCtrl = FALSE;
_bChCount = 0;
_bChTimer = CH_OSD_TIMER;
_bChMode = CH_MODE_NONE;//INIT VOL MODE
#endif
#ifdef SLEEP_FUNCTION //xiao 03-04-14
_bSleepOSDTimer = SLEEP_OSD_TIMER;
_wSleepCounter = 0;
_bSetSleepState = SLEEP_OFF;
_fgPowerDown = FALSE;
#endif
#ifdef MEMORY_SCREENOFF
_fgMemoryPointOneTime=0;
_fgCddaPlayControlDelay=0;
_fgCddaPlayControlOneTime=0;
_bPowerDownTimer1=0;
_bPowerDownTimer=0;
#endif
#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; //初始化搜索状态 IR_GOTO
// _rSearchStateCtx.bType = SEARCH_DVD_TIME; //
#ifdef SETUP_NO_AGL_MARK
_rOsdStateCtx.fgAngleShow = TRUE;
#endif
// reset program state
/* 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);
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
#ifdef RISC_SP81
vSetSharedInfo(SI_ZOOM_SWITCH, SV_ZOOM_OFF);
#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
// *********************************************************************
// 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_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
// *********************************************************************
static void vPlayerTimer(void) large
{
#if defined(DVD_RECEIVER)//DVD_AMP
BYTE bTmp,bTmp1;
#if defined(DAV935)
BYTE _bPL2_Sw;
#endif
#endif
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#ifdef DVD_MENU_UPDATE_VFD_CIRCLE
BYTE bDom = bSharedInfo(SI_DVD_DOM);
#endif
#ifdef YXT_CTL //BillDen
BYTE bCh = bSharedInfo(SI_DSP_CH_CFG);
BYTE bDownmix = bEepromReadByte(SPEAKER_POSITION);
BYTE bSub = bEepromReadByte(SUB_SPK_POSITION);
BYTE bCnt = bEepromReadByte(CNTR_SPK_POSITION);
BYTE bRear = bEepromReadByte(REAR_SPK_POSITION);
BYTE bPL2 = bEepromReadByte(PROLOG_SW_POS);
#endif
#if defined(DVD_RECEIVER) && !defined(DVD_TUNER) //xiao 03-04-15
BYTE bDiscType = bSharedInfo(SI_DISC_TYPE);
#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 */
#if defined(DVD_RECEIVER) //xiao 03-04-15
#if !defined(DVD_TUNER)
_bVolCtrlTimer--;
if (_bVolCtrlTimer == 0)
{
if (_fgVolCtrl)
{
#if defined(DAV935)
if(bDiscType != SV_DVD_VIDEO && bDiscType != SV_DVD_AUDIO && bDiscType != SV_MINI_DVD)
{
bTmp = bEepromReadByte(AMP_FL_VOL_POSITION);
vSendFlFrSwVolume(CHANNELFL_VOLUME_REGISTER,bTmp,COMMON_VOLUME);
bTmp = bEepromReadByte(AMP_FR_VOL_POSITION);
vSendFlFrSwVolume(CHANNELFR_VOLUME_REGISTER,bTmp,COMMON_VOLUME);
if(bEepromReadByte(SUB_SPK_POSITION)==0)//EV_ON
{
bTmp = bEepromReadByte(AMP_SUBW_VOL_POSITION);
vSendFlFrSwVolume(CHANNELSW_VOLUME_REGISTER,bTmp,COMMON_VOLUME);
}
}
else
{
bTmp = bEepromReadByte(AMP_FL_VOL_POSITION);
vSendFlFrSwVolume(CHANNELFL_VOLUME_REGISTER,bTmp,DVD_VOLUME);
bTmp = bEepromReadByte(AMP_FR_VOL_POSITION);
vSendFlFrSwVolume(CHANNELFR_VOLUME_REGISTER,bTmp,DVD_VOLUME);
if(bEepromReadByte(SUB_SPK_POSITION)==0)//EV_ON
{
bTmp = bEepromReadByte(AMP_SUBW_VOL_POSITION);
vSendFlFrSwVolume(CHANNELSW_VOLUME_REGISTER,bTmp,DVD_VOLUME);
}
}
bTmp = bEepromReadByte(AMP_SL_VOL_POSITION);
vSendCtSlSrVolume(CHANNELSL_VOLUME_REGISTER,bTmp,COMMON_VOLUME);
bTmp = bEepromReadByte(AMP_SR_VOL_POSITION);
vSendCtSlSrVolume(CHANNELSR_VOLUME_REGISTER,bTmp,COMMON_VOLUME);
bTmp = bEepromReadByte(AMP_CT_VOL_POSITION);
vSendCtSlSrVolume(CHANNELCT_VOLUME_REGISTER,bTmp,COMMON_VOLUME);
//bTmp1 = bEepromReadByte(AMP_BASS_VOL_POSITION);
//vSendToneVol(BASS_FILTER_INDEX_ADDRESS,bTmp1,bTmp);
#else
#ifdef SUPPORT_WAIXIAO
_bVolNum=bEepromReadByte(MAIN_VOLUME_POS);
#endif
bTmp = bEepromReadByte(AMP_FL_VOL_POSITION);
vSendChVolume(CHANNELFL_VOLUME_REGISTER,bTmp);
bTmp = bEepromReadByte(AMP_FR_VOL_POSITION);
vSendChVolume(CHANNELFR_VOLUME_REGISTER,bTmp);
bTmp = bEepromReadByte(AMP_SL_VOL_POSITION);
vSendChVolume(CHANNELSL_VOLUME_REGISTER,bTmp);
bTmp = bEepromReadByte(AMP_SR_VOL_POSITION);
vSendChVolume(CHANNELSR_VOLUME_REGISTER,bTmp);
bTmp = bEepromReadByte(AMP_CT_VOL_POSITION);
vSendChVolume(CHANNELCT_VOLUME_REGISTER,bTmp);
bTmp = bEepromReadByte(AMP_SUBW_VOL_POSITION);
vSendChVolume(CHANNELSW_VOLUME_REGISTER,bTmp);
bTmp1 = bEepromReadByte(AMP_BASS_VOL_POSITION);
vSendToneVol(BASS_FILTER_INDEX_ADDRESS,bTmp1,bTmp);
#endif
if (!fgIsInSetupMenu())
vOsdShowVol(_bVolNum, OSD_TIMEOUT);
vVfdShowVOL(9,_bVolNum); //Don't deal xiao 03-04-26
_bChCount = CH_OSD_COUNT;
_fgVolCtrl = FALSE;
}
_bVolCtrlTimer = IR_VOL_CTRL_EFFECT;
}
#endif
//for changhong volume show timer state
if (_bChCount != 0) //xiao_del
{
if (_bChTimer != 0)
{
_bChTimer--;
if (_bChTimer == 0)
{
_bChTimer = CH_OSD_TIMER;
_bChCount--;
if (_bChCount == 0)
{
vOsdPosClear(OSD_POS_AUD_CTRL);
_bChMode = CH_MODE_NONE;
}
}
}
}
#endif
#if defined(DV969_RDS) ||defined(DV967_RDS)
if (bSharedInfo(SI_DISC_TYPE) == SV_DVD_AUDIO)
{
vSetSharedInfo(SI_DISC_TYPE,0xff);
vSetSharedInfo(SI_INIT_STATE,SV_UNKNOWN_DISC);
vSendUopCmd(UOP_STOP, 0, 0, 0);
vSendUopCmd(UOP_STOP, 0, 0, 0);
}
#endif
#ifdef MP3_AUTO_PLAY
if(IsoFileCmdTimer >0)
{
IsoFileCmdTimer --;
if(IsoFileCmdTimer == 0x10)
#if 0//ndef NEIXIAO
_bPlayPostKey = IR_ANGLE;
#else
_bPlayPostKey = IR_DISPLAY;
#endif
else if(IsoFileCmdTimer == 0)
_bPlayPostKey = IR_PLAY;
}
#endif
#ifdef FAN_CONTROL
if(//(bSharedInfo(SI_PBC_STATE)==SV_STOP)||(bSharedInfo(SI_PBC_STATE)==SV_PAUSE)
( fgIsDiscPause(bSharedInfo(SI_PBC_STATE)))||(!fgIsDiscPlay(bSharedInfo(SI_PBC_STATE)))
||(bSharedInfo(SI_INIT_STATE) == SV_NO_DISC)||(bSharedInfo(SI_INIT_STATE) == SV_TRAY_OPENING)
||(bSharedInfo(SI_INIT_STATE) == SV_LOADING_DISC)||(bSharedInfo(SI_INIT_STATE) == SV_TRAY_CLOSING))
//DVD暂停,停止,无碟,开仓关仓,loading,时风扇不转
{
CLR_4094_PIN(SET_VDATA3); //关闭风扇
}
else
{
if((_bVolNum>=10)&&(_bPlayerMute==0))
{
SET_4094_PIN(SET_VDATA3);
}
else
{
CLR_4094_PIN(SET_VDATA3);
}
}
#endif
/*
#ifdef MEMORY_SCREENOFF
_fgCddaPlayControlDelay=_fgCddaPlayControlDelay+1;
if(_fgCddaPlayControlDelay==150)
{
if(_bResetState==PLAYER_AUTO_RESET)
{
_bResetState=PLAYER_SOFTWARE_RESET;
_SysStateSwitch=MAN_RESET; //从记忆点播放后下次待机或者断电则不再记忆
}
}
else if(_fgCddaPlayControlDelay>=160)
_fgCddaPlayControlDelay=160;
*/
/*
if(_fgCddaPlayControlDelay==80)
{
if(bSharedInfo(SI_INIT_STATE) == SV_DISC_IDENTIFIED )
{
if(_bResetState==PLAYER_SOFTW ARE_RESET)
{
if(fgIsCddaPlay()) //CD
{
// _bPlayPostKey=IR_PLAY;
_bPlayPostKey=IR_EJECT;
}
}
else
{
if(fgIsCddaPlay()) //CD
{
// _bPlayPostKey=IR_PLAY;
_bPlayPostKey=IR_STOP;
}
}
}
}
*/
/*if(_fgCddaPlayControlDelay==50)
{
if(fgIsCddaPlay())
{
if(_bResetState==PLAYER_SOFTWARE_RESET)
{
// _bPlayPostKey=IR_PLAY;
_bPlayPostKey=IR_EJECT;
}
else
{
// _bPlayPostKey=IR_PLAY;
_bPlayPostKey=IR_STOP;
}
}
}
#endif
*/
#if 0
#ifdef VFD_LED //BillDen bg
if ( bSharedInfo(SI_INIT_STATE) > 5 )
{
if (_fgLedOnOff)
{
if ( fgIsDiscPlay(bPbcState) )
{
vVfdLed(0, TRUE);
}
else if ( bPbcState == SV_STOP || bPbcState == SV_STOP_RESUME )
{
vVfdLed(0, FALSE);
}
}
}
#endif //BillDen end
#endif
#if defined(SETUP_HEADPHONE)
if(_fgHeadphone & 0x7F)
{
_fgHeadphone--;
}
if(_fgHeadphone & 0x80)
{
#if defined(DVR938)
#if defined(USE_CD4094)
if(!(bReadBIM(0xB9)&READ_HEADPHONE_DET))
#else
if(!(bReadBIM(BIM_DIO_IN2)&READ_HEADPHONE_DET))
#endif
#elif defined(DVR979)
if(!READ_HEADPHONE_CPUIO)
#endif
{
#if defined(USE_CD4094)
CLR_4094_PIN(SET_TAS5508_MUTE);
#else
ClrBitBIM(BIM_DIO_OUT1,SET_TAS5508_MUTE);
SetBitBIM(BIM_RIODRM, SET_TAS5508_MUTE);
#endif
#if defined(DVR938)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -