📄 player.c
字号:
#ifdef USE_CD4094
CLR_4094_PIN(SET_TAS5508_HEADPHONE);
#else
ClrBitBIM(BIM_DIO_OUT1,SET_TAS5508_HEADPHONE);
SetBitBIM(BIM_RIODRM, SET_TAS5508_HEADPHONE);
#endif
#endif
#if defined(BBK_NEW_MENU)
if((!_fgIsInBBKNewMenu) && (fgIsInSetupMenu())) _bIRKey= IR_GAME;//EXIT SETUPMENU WHEN SETUPMENU OPEN
#else
if(fgIsInSetupMenu()) _bIRKey= IR_SETUP;
#endif
_fgHeadphone=0x3F;//headphone on
}
}
else
{
#if defined(DVR938)
#if defined(MT1389_REV_E)
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)
#ifdef USE_CD4094
SET_4094_PIN(SET_TAS5508_HEADPHONE);
#else
SetBitBIM(BIM_DIO_OUT1,SET_TAS5508_HEADPHONE);
SetBitBIM(BIM_RIODRM, SET_TAS5508_HEADPHONE);
#endif
#endif
#if defined(BBK_NEW_MENU)
if((!_fgIsInBBKNewMenu) && (fgIsInSetupMenu())) _bIRKey= IR_GAME;//EXIT SETUPMENU WHEN SETUPMENU OPEN
#else
if(fgIsInSetupMenu()) _bIRKey= IR_SETUP;
#endif
_fgHeadphone=0XBF;//speaker on
}
}
#if defined(DVR938)
if((_fgHeadphone & 0x7F)==0x01)
{
if(_fgHeadphone & 0xF0)
{
vHeadphoneProcess(0);//speaker on
}
else
{
vHeadphoneProcess(1);//headphone on
}
}
#elif defined(DVR979)
if((_fgHeadphone & 0x7F)==0x1F)
{
if(_fgHeadphone & 0x80)
{
#ifdef USE_CD4094
SET_4094_PIN(SET_TAS5508_HEADPHONE);
#else
SetBitBIM(BIM_DIO_OUT1,SET_TAS5508_HEADPHONE);
SetBitBIM(BIM_RIODRM, SET_TAS5508_HEADPHONE);
#endif
vHeadphoneProcess(0);//speaker on
}
else
{
#ifdef USE_CD4094
CLR_4094_PIN(SET_TAS5508_HEADPHONE);
#else
ClrBitBIM(BIM_DIO_OUT1,SET_TAS5508_HEADPHONE);
SetBitBIM(BIM_RIODRM, SET_TAS5508_HEADPHONE);
#endif
vHeadphoneProcess(1);//headphone on
}
}
else if((_fgHeadphone & 0x7F)==0x01)
{
if(_bPlayerMute == FALSE)//(!fgIsMute())
{
#if defined(USE_CD4094)
SET_4094_PIN(SET_TAS5508_MUTE);
#else
SetBitBIM(BIM_DIO_OUT1,SET_TAS5508_MUTE);
SetBitBIM(BIM_RIODRM, SET_TAS5508_MUTE);
#endif
}
}
#endif
#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 ( (bSharedInfo(SI_INIT_STATE) > 5) &&//BillDen
#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() && (bPbcState != SV_PAUSE) && (bPbcState != SV_STOP) && (bPbcState != SV_STOP_RESUME)&& (bSharedInfo(SI_TRACK_NO) == 0)) || //BillDen mod 2003.3.17
#endif
#ifdef JPEG_DECODING_UPDATE_VFD_CIRCLE
((fgIsIsoPlay() || fgIsPcdPlay()) && (bPbcState != SV_PAUSE) && (bPbcState != SV_STOP)) || //BillDen
// ((bSharedInfo(SI_PBC_STATE) != SV_PAUSE) && (_bWorkingStt == 0x01))// FSMENU_WKSTT_SPIC
#endif
0
)
{
vVfdRotate(VFD_DISC_SPIN);
}
#ifdef DVD_AMP
#if defined(DAV935)
#if 1//defined(AC3_NOATTEN)&&!defined(CLASSD_TRIM)
if(bSharedInfo(SI_A_CODE_MODE)==SV_A_CODE_AC3)
vAdspChTrim(7, 37) ;
else
vAdspChTrim(7, 36) ;
#endif
#if 1//def CLASSAB_MUTE_TEST
_bPL2_Sw = bEepromReadByte(PROLOG_SW_POS);
if((bSharedInfo(SI_INIT_STATE)!=SV_DISC_IDENTIFIED)||(bPbcState==SV_STOP)||(bPbcState==SV_STOP_RESUME) ||((bPbcState==SV_PAUSE)&&bDiscType !=SV_DATA)||(_bPlayerMute == TRUE))
{
SET_LRSWMUTE;
SetBitBIM(BIM_DIO_OUT1,SET_SCMUTE);
SetBitBIM(BIM_RIODRM, SET_SCMUTE);
}
else
{
if(_bVolNum)
{
WriteBIM(BIM_DIO_OUT1, (bReadBIM(BIM_DIO_OUT1) & CLR_AUDIO1)); //B-->0
WriteBIM(BIM_DIO_OUT1, (bReadBIM(BIM_DIO_OUT1) | SELECT_AUDIO0)); //A-->1
CLR_LRSWMUTE;
if (bDiscType == SV_DVD_VIDEO || bDiscType == SV_DVD_AUDIO || bDiscType == SV_MINI_DVD ||bDiscType==SV_DTS_CS|| _bPL2_Sw != EV_PROLOGIC_OFF)
{
ClrBitBIM(BIM_DIO_OUT1,SET_SCMUTE);
SetBitBIM(BIM_RIODRM, SET_SCMUTE);
}
else
{
SetBitBIM(BIM_DIO_OUT1,SET_SCMUTE);
SetBitBIM(BIM_RIODRM, SET_SCMUTE);
}
}
}
#endif
#else
if(_fgDtsAc3==0x0F)
{
if(bSharedInfo(SI_A_CODE_MODE)==SV_A_CODE_DTS)
{
vSendMasterVolume(DTS_VOLUME);
_fgDtsAc3=0xF0;
}
}
else if(_fgDtsAc3==0xF0)
{
if(bSharedInfo(SI_A_CODE_MODE)!=SV_A_CODE_DTS)
{
vSendMasterVolume(DVDVIDEO_VOLUME);
_fgDtsAc3=0x0F;
}
}
#endif
#ifdef AMP_RESETDEFAULT
//to avoid the unnomal voice when do "default"(maybe it is problem that mt1389&tas5508 's MCLK/LRCLK/SCLK matching ).
//it is not a good idea,but i have no idea!
if((!_fgReset) &&( _fgAmpDefault))
{
_fgAmpDefault--;//wait a minute to be sure do "default-->amp" after finish "defualt-->dvd"
if( !_fgAmpDefault)
{
//vAmpResetdefault();
#if defined(PERFECT_INTERNAL_KARAOK)
//bSureSetMicOff();
if(bDiscType==SV_DVD_AUDIO)
{
fgEepromWriteByte(MIC_SW_POS, EV_OFF);
bSetMic(NULL_POSITION, 0);
//vAdspEchoLevel(bEepromReadByte(MIC_ECHO_POS));
}
#endif
}
}
#endif
#endif
#ifdef YXT_CTL //BillDen bg
if (bSharedInfo(SI_INIT_STATE) > 5)// && _fgNeedCheck)
{
if( bDownmix!=EV_DOWN_OFF && (!fgExistSubW(bCh) || (fgExistSubW(bCh) && bSub==EV_OFF)))
{
vYXTSetDataOut;
vYXTGetDataOut(1);
}
else if(bDownmix==EV_DOWN_OFF && bCh && bCh<SV_A_CH_21_0 && bPL2==EV_PROLOGIC_OFF)
{
vYXTSetDataOut;
vYXTGetDataOut(1);
}
else if ( bDownmix==EV_DOWN_OFF &&
( (bSub == EV_OFF && fgExtOSubW(bCh))
|| (bCnt == EV_SPK_OFF && fgExtOCenter(bCh))
|| (bRear == EV_SPK_OFF && fgExtORear(bCh))
|| (bSub == EV_OFF && bCnt == EV_SPK_OFF && fgExtCS(bCh))
|| (bSub == EV_OFF && bRear == EV_SPK_OFF && fgExtRS(bCh))
|| (bRear == EV_SPK_OFF && bCnt == EV_SPK_OFF && fgExtCR(bCh))
|| (bRear == EV_SPK_OFF && bCnt == EV_SPK_OFF && bSub == EV_OFF && fgExtCRS(bCh))
)
)
{
vYXTSetDataOut;
vYXTGetDataOut(1);
}
else if(bDownmix==EV_DOWN_OFF && bCnt == EV_SPK_OFF && bRear == EV_SPK_OFF
&& (bSub == EV_OFF || (bSub==EV_ON && !fgExistSubW(bCh))))
{
vYXTSetDataOut;
vYXTGetDataOut(1);
}
else if (bSharedInfo(SI_DISC_TYPE)== SV_CDDA && bPL2==EV_PROLOGIC_OFF) //Vincent -5Version @03-28-04
{
vYXTSetDataOut;
vYXTGetDataOut(1);
}
else
{
vYXTSetDataOut;
vYXTGetDataOut(0);
}
//_fgNeedCheck = FALSE;
}
#endif //BillDen end
_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())
{
#if !defined(DVD_RECEIVER)
#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
#endif //dvd_receiver
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 */
{
/* if user allow screen saver */
if (bEepromReadByte(SCR_SAVER_POSITION) == EV_ON)
{
/* enter power save mode */
vSendPlayerIdle(); //BillDen move here 2003.3.17
vScrSaveInit();
vScrSaverSetTimeOut(0); //BillDen move here 2003.3.17
}
//BillDen bg 2003.3.17
else
{
_bScrSaverTimer = SCR_SAVER_TIMEOUT;
_bScrSaverBeepCnt = SCR_SAVER_OFF_BEEP_COUNT;
}
//BillDen end
}
else /* if (_bScrSaverTimer > 0) */
{
_bScrSaverTimer--;
_bScrSaverBeepCnt = SCR_SAVER_OFF_BEEP_COUNT;
/*************自动记忆模式2****************/
/* #ifdef MEMORY_SCREENOFF //lk-060717
_fgMemoryPointOneTime=_fgMemoryPointOneTime+1;
if(_fgMemoryPointOneTime==5) //保证屏保到来前IR_Memory执行一次,不会多次循环记忆
{
//fgAutoReset=1;
_SysStateSwitch=AUTO_RESET; //记忆碟片后如果待机,则下次从记忆点播放,待机模式设为自动待机
// _bPowerDownTimer1=0xD7A0;
_bPowerDownTimer1=0x600;
_bPlayPostKey=IR_MEMORY;
}
if(_fgMemoryPointOneTime>=20)
_fgMemoryPointOneTime=20;
#endif
*/
}
}
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();
}
// *********************************************************************
// Function : void vIrTimer(void)
// Description :
// Parameter : None
// Return : None
// *********************************************************************
static void vIrTimer(void) large
{
BOOL fgRet = UOP_OK;
/* error check */
if (_bIRKey >= IR_KEY_MAX)
{
_bIRKey = IR_NONE;
return;
}
/* screen saver */
if (!fgIsScrSaverOn())
{
vScrSaverSetTimeOut(SCR_SAVER_TIMEOUT);
}
vPlayerKeyProc();
}
/***************************************************************************
Function : void vGetCurrKey(void)
Dsecription :
Parameter : None
Return : None
***************************************************************************/
static void vGetCurrKey(void) large
{
/* TODO: the emergency key should abort ther current key operation */
#if defined(DVD_RECEIVER)
BYTE bDiscType;
bDiscType = bSharedInfo(SI_DISC_TYPE);
#endif
#ifdef IR_CHECK_KEY_LOCK
if (fgIsIrKeyLock())
{
vIrKeyPressTimeoutCheck();
}
#endif
if (_bIRKey == IR_NONE) /* check this to prevent command conflict */
{
/* note the internal state transition priority is higher than user operation */
if (_bPlayPostKey != IR_NONE)
{
if (_bPWRMode == SV_PWR_ACTIVE)
{
_bIRKey = _bPlayPostKey;
_bPlayPostKey = IR_NONE;
}
else if (_bPlayPostKey == IR_MANUAL_EJECT)
/* && ((_bPWRMode == SV_PWR_IDLE_PAUSE) || (_bPWRMode == SV_PWR_IDLE_STOP)) */
{
_bIRKey = IR_EJECT;
_bPlayPostKey = IR_NONE;
}
else if (_bPlayPostKey == IR_POWER)
/* && ((_bPWRMode == SV_PWR_IDLE_PAUSE) || (_bPWRMode == SV_PWR_IDLE_STOP)) */
{
#ifdef DVD_RECEIVER
_bSysState = PD_STATE;
#endif
_bIRKey = IR_POWER;
_bPlayPostKey = IR_NONE;
}
}
/* for UI timer */
else if (_bIrTimer == IR_TIMER_TIMEOUT)
{
_bIRKey = IR_TIME_OUT;
_bIrTimer = IR_TIMER_VOID;
}
/* note here must be the only one entry point for user operation input */
/* VFD key's priority is higher than IR key */
else if (_bVfdKeyScan != IR_NONE)
{
_bIRKey = _bVfdKeyScan;
_bVfdKeyScan = IR_NONE;
#if defined(DVD_RECEIVER)
#if !defined(DVR979)
if (_bIRKey == IR_BAND)
_bIRKey = IR_STOP;//IR_PAUSE_STEP;
#endif
#if !defined(DVD_AMP)
if (_bIRKey == IR_FF)
_bIRKey = IR_NEXT;
if (_bIRKey == IR_FR)
_bIRKey = IR_PREV;
#endif
#endif
}
/* note the _bIRKey0 is put in the IR interrupt */
else if (EXIST_IR_KEY())
{
#ifdef IR_CHECK_KEY_LOCK
if (fgIsIrKeyLock())
{
if (_bIRKeyPressCnt == 0)
{
// already timeoute
vIrKeyForceRelease();
GET_IR_KEY(_bIRKey);
_bIRKey = bHandleIRKeyPressTimeout(TRUE, _bIRKey);
}
else // not timeout yet
{
if (bHandleIRKeyPressTimeout(FALSE, _bIRKey0) != IR_NONE)
{
// no need to wait timeout
vIrKeyForceRelease();
GET_IR_KEY(_bIRKey);
}
}
}
else
#endif // IR_CHECK_KEY_LOCK
{
// original routine
GET_IR_KEY(_bIRKey);
#if defined(DVD_RECEIVER) //XIAO 03-05-23
//=================BBK KEY Shift=======================
#if defined(PSCAN_EN)
#if !defined(K990)
#if defined(DAV935)
if (_bIRKey == IR_AUTO_SEARCH_TEMP)
_bIRKey = IR_COMPONENT; //I-Scan
else if (_bIRKey == IR_STORE_BAND)
_bIRKey = IR_PSCAN; //P-Scan
#elif defined(CS360)
if (_bIRKey== IR_PSCAN_TEMP)
{
if (bSharedInfo(SI_PSCAN_EN)==SV_ON)
{
_bIRKey=IR_PSCAN;
}
else
{
_bIRKey=IR_COMPONENT;
}
}
if (_bIRKey == IR_STORE_BAND)
_bIRKey = IR_REPEAT;
else if (_bIRKey == IR_AUTO_MAN)
_bIRKey = IR_A2B;
#else
#if !defined(ER1500)
if (_bIRKey == IR_BAND)
_bIRKey = IR_NONE; //I-Scan
else if (_bIRKey == IR_AUTO_MAN)
#else
if (_bIRKey == IR_AUTO_MAN)
#endif
_bIRKey = IR_NONE; //P-Scan
#if defined(DVR979)
else if (_bIRKey == IR_STORE_BAND)
_bIRKey = IR_EQUALIZER;
#endif
#endif
#else
if (_bIRKey == IR_COMPONENT_TEMP)
_bIRKey = IR_NONE; //I-Scan
else if (_bIRKey == IR_PSCAN_TEMP)
_bIRKey = IR_NONE; //P-Scan
#endif
#endif
//XIAO 03-06-19 FOR L/R key
#if !defined(BBK940S) && !defined(BBK950S) && !defined(DVD_AMP) //XIAO 03-08-25
if (IS_SVCD_TYPE(bDiscType) || (bDiscType == SV_CVD))
{
if (_bIRKey == IR_OSD_LANGUAGE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -