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

📄 player.c

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