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

📄 player.c

📁 MTK 1389e版 MINI组合音响代码
💻 C
📖 第 1 页 / 共 4 页
字号:
		#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 + -