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

📄 combine.c

📁 MTK portableDVD 采用mtk1389方案的代码
💻 C
📖 第 1 页 / 共 5 页
字号:
  BYTE bTmp;

  /* for state change only */
  if (bPbcState == _bLastPbcState)
  {
    return;
  }

  switch (_bLastPbcState)
  {
    case SV_STOP:
    case SV_STOP_RESUME:
#if (STOP_RESUME_STYLE == STOP_RESUME_TWO_KEYS)
      if ((_bLastPbcState == SV_STOP_RESUME) ||
          (_bLastPbcState == SV_STOP))
      {
        vOsdPosClear(OSD_POS_STOP_MSG1);
        vOsdPosClear(OSD_POS_STOP_MSG2);
      }
#elif (STOP_RESUME_STYLE == STOP_RESUME_TWO_STOP)
      if (_bLastPbcState == SV_STOP_RESUME)
      {
        vOsdPosClear(OSD_POS_STOP_MSG1);
      }
#endif
      break;

    case SV_PLAY:
    case SV_FF:
    case SV_SF:
    case SV_FR:
    case SV_SR:
    case SV_PAUSE:
    case SV_STEP:
    case SV_STEP_BACK:
    case SV_FREEZE:
    case SV_STILL:
      /* fgIsDiscPlay() */
      break;

    case SV_DIGEST9:
    case SV_DIGEST4:
    case SV_DIGEST:
    case SV_PTL_ERR:
    case SV_REGION_ERR:
    case SV_DISC_ERR:
    case SV_SET_TMP_PTL:
      break;

    default:
      /* error? */
      break;
  }

  switch (bPbcState)
  {
    case SV_STOP:
    case SV_STOP_RESUME:
      vOsdCoreSetPlayStatus(OSD_SHOW_CLEAR, 0);
			/*Find that: when play CD, bSharedInfo(SI_ISO_ITEM_TYPE) ==SV_ISO_JPG). so add: || !fgIsIsoPlay().linshangbo 06.04.07*/
      if((bSharedInfo(SI_A_CODE_MODE)!=SV_A_CODE_MP3 && bSharedInfo(SI_ISO_ITEM_TYPE) !=SV_ISO_JPG) || !fgIsIsoPlay()) 
			{
        vVfdRotate(VFD_DISC_LIGHT_ALL);
        vVfdMessage(VFD_MESSAGE_STOP);
        vVfdClrAudInfo();
        vVfdSymbol(VFD_SYM_STOP);
      }  
      if(bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI)
      {
       vVfdSymbol(VFD_SYM_A_CODE_AAC);   // dengsu 0723 for close mpeg4.
      }
#ifdef STOP_CANCEL_USR_CTRL
      if (((fgIsIsoPlay() || fgIsPcdPlay()) == FALSE)
#ifdef SINGLE_STOP_KEEP_USR_CTRL
          && (bPbcState != SV_STOP_RESUME)
#endif
         )
      {
        bTmp = bSharedInfo(SI_USR_PBC_CTRL);

        if (bTmp == SV_PROGRAM)
        {
          vSendUopCmd(UOP_PROGRAM, SV_PROGRAM_STOP, 0, 0);
        }
        else if (bTmp == SV_SHUFFLE)
        {
          vSendUopCmd(UOP_SHUFFLE, SV_OFF, 0, 0);
        }
        else if (bTmp == SV_RANDOM)
        {
          vSendUopCmd(UOP_RANDOM, SV_OFF, 0, 0);
        }
      }
#endif /* STOP_CANCEL_USR_CTRL */
#ifdef STOP_RESUME_CANCEL_REPEAT
      if ((fgIsIsoPlay() || fgIsPcdPlay()) == FALSE)
      {
        bTmp = bSharedInfo(SI_REPEAT_MODE);

        if ((bTmp != SV_REPEAT_NONE) &&
            (bTmp != SV_REPEAT_ABNONE))
        {
          vSendUopCmd(UOP_REPEAT, SV_REPEAT_NONE, 0, 0);
        }
      }
#endif /* STOP_RESUME_CANCEL_REPEAT */
#ifdef SUPPORT_BROWSER	
  /*if auto play to end ,must close the browser,to avoid player idle. */
  if(fgIsVcdPlay() && bSharedInfo(SI_PBC_SWITCH) == SV_PBC_OFF)
  {	
    if(fgIsInBrowser())
    {
	    vBrowserClose();			//stop condition maybe close the browser.songchen.
    }
  }
#endif
      break;

    case SV_PLAY:
    case SV_FF:
    case SV_SF:
    case SV_FR:
    case SV_SR:
    case SV_PAUSE:
    case SV_STEP:
    case SV_STEP_BACK:
    case SV_FREEZE:
    case SV_STILL:
      /* fgIsDiscPlay() */
      if(bPbcState == SV_PLAY && bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI)  //dengsu
      {
         vVfdSymbol(VFD_SYM_A_CODE_MPEG);
      }
      if (!fgIsDiscPlay(_bLastPbcState) && (_bLastPbcState != SV_PBC_INIT))
      {
        vStatusDispRecall();

        if (_bLastPbcState == SV_STOP)
        {
          /* if previous state is STOP, the time information may be incorrect! */
          if (fgIsDvdPlay())
          {
            vDVDShowTotalTimeMark();
          }
          else if (fgIsVcdPlay())
          {
            vVCDShowTotalTimeMark();
          }
        }
      }
      break;

    case SV_DIGEST9:
    case SV_DIGEST4:
    case SV_DIGEST:
    case SV_PTL_ERR:
    case SV_REGION_ERR:
    case SV_DISC_ERR:
    case SV_SET_TMP_PTL:
      break;

    default:
      /* error? */
      break;
  }

  /* to update VFD */
  vVfdUpdateTrick();

#ifdef PLAYER_STOP_SRV_STOP
  if (fgSrvStopCheck() == TRUE)
  {
    _bUISrvStatus = PLAYER_SRV_STOP;
  }
#endif

  _bLastPbcState = bPbcState;
}

/************************************************************************
     Function :
  Description :
    Parameter :
    Return    :
************************************************************************/
#ifdef BBK_NEW_SELECTOR
void vShowUsrPbcCtrl(BYTE bMode) large
	{
		WORD wPos;
	
		if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_LEFT)
		{
			if (fgIsIsoPlay())
			{
				wPos = OSD_POS_ISO_REPEAT;
			}
			else
			{
				wPos = OSD_POS_REPEAT;
			}
		}
		else if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_RIGHT)
		{
			if (fgIsIsoPlay())
			{
				wPos = OSD_POS_ISO_REPEAT_LEFT;
			}
			else
			{
				wPos = OSD_POS_REPEAT_LEFT;
			}
		}
	
		switch (bMode)
		{
			case SV_REPEAT_NONE:
			case SV_REPEAT_ABNONE:
				vOsdPosClear(wPos);
				break;
	
			case SV_REPEAT_SET_A:
				vOsdPosShow(wPos, OSD_MSG_ICON_RPT_A, OSD_TIMEOUT);//10/08
				break;
	
			case SV_REPEAT_AB:
				vOsdPosShow(wPos, OSD_MSG_ICON_RPT_AB, OSD_TIMEOUT);//10/08
				break;

			default:
				vOsdPosClear(wPos);
				break;
		}
		#ifdef SUPPORT_CD_SHUFFLE_PLAY// songchen 061030
  		   if(fgIsInBrowser())
  		   {
    		      vBrowserUpdateShuffle();
  		   }
		#endif
	
		if (fgIsUsrCtrlMode(bMode))
		{
			if (bCurrRemainType() != OSD_SHOW_DISABLE)
			{
				if (fgIsDvdPlay())
				{
					bDvdCheckRemainShow(FALSE, bCurrRemainType());
				}
				else if (fgIsCddaPlay())
				{
					bCddaCheckRemainShow(FALSE, bCurrRemainType());
				}
			}
		}
	}


#else
void vShowUsrPbcCtrl(BYTE bMode) large
{
  WORD wPos;

  if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_LEFT)
  {
    if (fgIsIsoPlay())
    {
      wPos = OSD_POS_ISO_REPEAT;
    }
    else
    {
      wPos = OSD_POS_REPEAT;
    }
  }
  else if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_RIGHT)
  {
    if (fgIsIsoPlay())
    {
      wPos = OSD_POS_ISO_REPEAT_LEFT;
    }
    else
    {
      wPos = OSD_POS_REPEAT_LEFT;
    }
  }

  switch (bMode)
  {
    case SV_REPEAT_NONE:
    case SV_REPEAT_ABNONE:
      vOsdPosClear(wPos);
      break;

    case SV_REPEAT_ALL:
      vOsdPosShow(wPos, OSD_MSG_ICON_RPT_ALL, OSD_NO_DISAPPEAR);
      break;

    case SV_REPEAT_TRACK:
    case SV_REPEAT_LIST:
      vOsdPosShow(wPos, OSD_MSG_ICON_RPT_TRK, OSD_NO_DISAPPEAR);
      break;

    case SV_REPEAT_TITLE:
      vOsdPosShow(wPos, OSD_MSG_ICON_RPT_TT, OSD_NO_DISAPPEAR);
      break;

    case SV_REPEAT_CHAPTER:
      vOsdPosShow(wPos, OSD_MSG_ICON_RPT_CH, OSD_NO_DISAPPEAR);
      break;

    case SV_REPEAT_SET_A:
      vOsdPosShow(wPos, OSD_MSG_ICON_RPT_A, OSD_NO_DISAPPEAR);
      break;

    case SV_REPEAT_AB:
      vOsdPosShow(wPos, OSD_MSG_ICON_RPT_AB, OSD_NO_DISAPPEAR);
#ifdef KARAOKE_MIC_REC
      vMicRecCtrl(MIC_REC_CTRL_INIT);
#endif
      break;
#if 0 //bywhy 2003/10/09
    case SV_RANDOM:
      vOsdPosShow(wPos, OSD_MSG_RANDOM, OSD_NO_DISAPPEAR);
      break;

    case SV_SHUFFLE:
      if (_rOsdStateCtx.fgRepeatShow == TRUE)
      {
        vOsdPosShow(wPos, OSD_MSG_SHUFFLE, OSD_NO_DISAPPEAR);
      }
      break;

    case SV_PROGRAM:
      vOsdPosShow(wPos, OSD_MSG_PROGRAM, OSD_NO_DISAPPEAR);
      break;

    case SV_USR_DIGEST:
      // show OSD
      if (fgIsCddaPlay())
      {
        vOsdPosShow(wPos, OSD_MSG_SCAN, OSD_NO_DISAPPEAR);
      }
      else
      {
#if 0
        vOsdPosShow(wPos, OSD_MSG_DIGEST, OSD_NO_DISAPPEAR);
#else
        vOsdPosClear(wPos);
#endif
      }

      // show VFD
      if (fgIsDvdPlay())
      {
#ifdef DVD_DGST_SHOW_MSG_ONLY

#ifdef VFD_MESSAGE_DIGEST
        vVfdMessage(VFD_MESSAGE_DIGEST);
#endif

#else
        vVfdWord(VFD_WORD_TT, bHEXToBCD(bSharedInfo(SI_TT_NO)), 1);
        vVfdWord(VFD_WORD_CH, bHEXToBCD(bSharedInfo(SI_CHAP_NO)), 1);
        vVfdSymbol(VFD_SYM_PLAYINFO_TT_CH);
#endif
      }
      else if (fgIsVcdPlay())
      {
#ifdef VCD_DGST_SHOW_MSG_ONLY

#ifdef VFD_MESSAGE_DIGEST
        vVfdMessage(VFD_MESSAGE_DIGEST);
#endif

#else

        wPos=(WORD) bSharedInfo(SI_TRACK_NO);
        if (wPos <= 99)
          vVfdWord(VFD_WORD_CH, bHEXToBCD((BYTE)wPos), 0);
        else
          vVfdWord(VFD_WORD_CH, 0, 0);

        vVfdWordClr(VFD_WORD_TT);
        vVfdSymbol(VFD_SYM_PLAYINFO_TRACK);

#endif  //VCD_DGST_SHOW_MSG_ONLY
      }
      else if (fgIsIsoPlay() || fgIsCddaPlay())
      {
        /* ? */
      }
      break;
#endif
    default:
      vOsdPosClear(wPos);
      break;
  }

  if (fgIsUsrCtrlMode(bMode))
  {
    if (bCurrRemainType() != OSD_SHOW_DISABLE)
    {
      if (fgIsDvdPlay())
      {
        bDvdCheckRemainShow(FALSE, bCurrRemainType());
      }
      else if (fgIsVcdPlay())
      {
      #ifndef BBK_MENU
        bVcdCheckRemainShow(FALSE, bCurrRemainType());
      #endif
      }
      else if (fgIsCddaPlay())
      {
        bCddaCheckRemainShow(FALSE, bCurrRemainType());
      }
    }
  }
}
#endif //end bbk_new_selector

/************************************************************************
     Function :
  Description :
    Parameter :
    Return    :
************************************************************************/
#ifdef BBK_NEW_SELECTOR
BOOL fgShowRepeatMode(BYTE bMode) large
{
#ifdef SUPPORT_BROWSER
if(fgIsInBrowser())
{
	vBrowserUpdateRepeat();
}
#endif

if((bMode == SV_REPEAT_ALL) || (bMode == SV_REPEAT_TRACK) 
	 || (bMode == SV_REPEAT_LIST) || (bMode == SV_REPEAT_TITLE)
	 || (bMode == SV_REPEAT_CHAPTER))
{
	return(TRUE);
}
else
{
	return(FALSE);
}

}

#else
BOOL fgShowRepeatMode(BYTE bMode) large
{
  BOOL fgRet = FALSE; /* default is continue update */
  WORD wPos;
  WORD wMsg = 0;

  if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_LEFT)
  {
    if (fgIsIsoPlay())
    {
      wPos = OSD_POS_ISO_REPEAT;
    }
    else
    {
      wPos = OSD_POS_REPEAT;
    }
  }
  else if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_RIGHT)
  {
    if (fgIsIsoPlay())
    {
      wPos = OSD_POS_ISO_REPEAT_LEFT;
    }
    else
    {
      wPos = OSD_POS_REPEAT_LEFT;
    }
  }

  switch (bMode)
  {
    case SV_REPEAT_ALL:
      wMsg = OSD_MSG_ICON_RPT_ALL;
      fgRet = TRUE;
      break;

    case SV_REPEAT_TRACK:
    case SV_REPEAT_LIST:
      wMsg = OSD_MSG_ICON_RPT_TRK;
      fgRet = TRUE;
      break;

    case SV_REPEAT_TITLE:
      wMsg = OSD_MSG_ICON_RPT_TT;
      fgRet = TRUE;
      break;

    case SV_REPEAT_CHAPTER:
      wMsg = OSD_MSG_ICON_RPT_CH;
      fgRet = TRUE;
      break;

    case SV_REPEAT_NONE:
    case SV_REPEAT_ABNONE:
      wMsg = 0xffff;
      fgRet = FALSE; /* continue update PBC state */
      break;

    default:
      break;
  }

#ifdef SUPPORT_BROWSER
  if(fgIsInBrowser())
  {
    vBrowserUpdateRepeat();
  }
#endif

  if (_rOsdStateCtx.fgRepeatShow == TRUE)
  {
    if (wMsg == 0xffff)
    {
      vOsdPosClear(wPos);
    }
    else if (wMsg != 0)
    {
      vOsdPosShow(wPos, wMsg, OSD_TIMEOUT);//10/08
    }
  }

  return (fgRet);
}
#endif //end bbk_new_selector

/************************************************************************
     Function :
  Description :
    Parameter :
    Return    :
************************************************************************/
#ifdef RUSSIAN_BUYER_REQUEST2			//songchen 061211
BOOL fgShowAuxCtrl(BYTE bMode) large
{
  BOOL fgFlMenuOn = fgFlCheckStatus(FL_STATUS_IN_MENU);
  BOOL fgFlMpegOn = fgFlCheckStatus(FL_STATUS_IN_MPEG);		//songchen 061215
  WORD wTmp;
  BOOL fgRet = FALSE; /* default is continue update */
  WORD wPos;

  if(fgIsIsoPlay() && !fgIsIsoItemAV(bSharedInfo(SI_ISO_ITEM_TYPE)))
	{

⌨️ 快捷键说明

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