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

📄 player.~c

📁 MTK 1389e版 MINI组合音响代码
💻 ~C
📖 第 1 页 / 共 4 页
字号:
  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() */
  
  _rOsdStateCtx.fgUopUpdate = FALSE;
  _rOsdStateCtx.bUopRetId = UOP_NONE;
  _rOsdStateCtx.bUopRetVal = SV_NO_ERROR;
  _rOsdStateCtx.fgSetupShow = FALSE;
  _rOsdStateCtx.fgSetupSttTrans = 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
#if  defined(DVD_RECEIVER)
  _bPlayerTimerBeepCnt = 24;
#else  
  _bPlayerTimerBeepCnt = 0;
#endif
  #ifdef SHOW_CD_TEXT //Vincent @02-02-04
  _bShow_CDTextCounter = 0;
  #endif
  // 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;

#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 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(); */
  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
	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

#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)
		#ifdef  USE_CD4094

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -