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

📄 isoshow.c

📁 mtk1389L latest sourcecode enjoy
💻 C
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 07/04/09 11:49a   $       ****************/
/***************  $Revision:: 2                $       ****************/
/***************                                       ****************/
/***************   Description : OSD                   ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer : Peter Huang           ****************/
/**********************************************************************/

#define _ISOSHOW_C_

#pragma NOAREGS

#include "general.h"
#include "osdshow.h"

// *********************************************************************
// Function : void vOsdShowFile(BYTE bMode, WORD wFileNo, WORD wFileNs, BYTE bTime)
// Description :
// Parameter :  bState -
//                        OSD_TRACK = 0,
//                        OSD_TOTAL,
// Return    : None
// *********************************************************************
void vOsdShowFile(BYTE bMode, WORD wFileNo, WORD wFileNs, BYTE bTime) large
{
  BYTE pbNum[7];

  wFileNo = wWRDToBCD(wFileNo);
  wFileNs = wWRDToBCD(wFileNs);

  switch (bMode)
  {
    case OSD_FILE_NO:
      pbNum[0] = 3;
      pbNum[1] = BCD_LO(bHiByte(wFileNo)) + '0';
      pbNum[2] = BCD_HI(bLoByte(wFileNo)) + '0';
      pbNum[3] = BCD_LO(bLoByte(wFileNo)) + '0';
      vOsdPosShowArg(OSD_POS_NORMAL, OSD_MSG_FILE_NO, bTime, pbNum);
      break;

    case OSD_FILE_TOTAL:
      pbNum[0] = 3;
      pbNum[1] = BCD_LO(bHiByte(wFileNs)) + '0';
      pbNum[2] = BCD_HI(bLoByte(wFileNs)) + '0';
      pbNum[3] = BCD_LO(bLoByte(wFileNs)) + '0';
      vOsdPosShowArg(OSD_POS_NORMAL, OSD_MSG_FILE_TOTAL, bTime, pbNum);
      break;

    case OSD_FILE_NORMAL:
      pbNum[0] = 6;
      pbNum[1] = BCD_LO(bHiByte(wFileNo)) + '0';
      pbNum[2] = BCD_HI(bLoByte(wFileNo)) + '0';
      pbNum[3] = BCD_LO(bLoByte(wFileNo)) + '0';
      pbNum[4] = BCD_LO(bHiByte(wFileNs)) + '0';
      pbNum[5] = BCD_HI(bLoByte(wFileNs)) + '0';
      pbNum[6] = BCD_LO(bLoByte(wFileNs)) + '0';
      vOsdClearInputField(OSD_POS_ISO_INFO);
      vOsdPosShowArg(OSD_POS_ISO_INFO, OSD_MSG_FILE_NO_TOTAL, bTime, pbNum);
      break;

    default:
      break;
  }
}

// *********************************************************************
// Function : void vOsdShowIsoTimeSearch(BYTE bNum, BYTE bType, BYTE *pbTime)
// Description :
// Parameter :
// Return    : None
// Note      :
// *********************************************************************
void vOsdShowIsoTimeSearch(BYTE bNum, BYTE bType, BYTE *pbTime) large
{
  BYTE  pbStr[6], fgFlMenuOn;


  fgFlMenuOn = fgFlCheckStatus(FL_STATUS_IN_MENU) ? TRUE : FALSE;

  if (bType == OSD_SEARCH_CLEAR)
  {
    if (fgFlMenuOn)
    {
      vOsdPosClear(OSD_POS_FS_PLAYTIME);
    }
    else
    {
      vOsdClearInputField(OSD_POS_ISO_SEARCH);
      vOsdPosClear(OSD_POS_ISO_SEARCH);
    }
    return;
  }

  pbStr[0] = 5;

  if (bNum <= 5)
  {
    pbStr[1] = '-';
    pbStr[2] = '-';
    pbStr[3] = '-';
    pbStr[4] = '-';
    pbStr[5] = '-';

    if (bNum == 0)
    {
      if (fgFlMenuOn)
        vInMsgColEn(FSMENU_INFO);
      else
        vOsdSetInputField(OSD_POS_ISO_SEARCH);
    }
    if (bNum >= 1)
    {
      pbStr[1] = pbTime[0] + '0';
    }
    if (bNum >= 2)
    {
      pbStr[2] = pbTime[1] + '0';
    }
    if (bNum >= 3)
    {
      pbStr[3] = pbTime[2] + '0';
    }
    if (bNum >= 4)
    {
      pbStr[4] = pbTime[3] + '0';
    }
    if (bNum == 5)
    {
      pbStr[5] = pbTime[4] + '0';
    }

    if (fgFlMenuOn)
      vOsdPosShowArg(OSD_POS_FS_PLAYTIME, OSD_MSG_FLMENU_HH_SS, OSD_NO_DISAPPEAR, pbStr);
    else
      vOsdPosShowArg(OSD_POS_ISO_SEARCH, OSD_MSG_GOTO_HMS, OSD_NO_DISAPPEAR, pbStr);

  }
  else if (bNum == OSD_ISO_SEARCH_END)
  {
    pbStr[1] = pbTime[0] + '0';
    pbStr[2] = pbTime[1] + '0';
    pbStr[3] = pbTime[2] + '0';
    pbStr[4] = pbTime[3] + '0';
    pbStr[5] = pbTime[4] + '0';

    if (fgFlMenuOn)
    {
      vInMsgColDis(FSMENU_INFO);
      vOsdPosShowArg(OSD_POS_FS_PLAYTIME, OSD_MSG_FLMENU_HH_SS, OSD_NO_DISAPPEAR, pbStr);
    }
    else
    {
      vOsdClearInputField(OSD_POS_ISO_SEARCH);
      vOsdPosShowArg(OSD_POS_ISO_SEARCH, OSD_MSG_GOTO_HMS, OSD_TIMEOUT_SHORT, pbStr);
    }
  }
}

// *********************************************************************
// Function : void vOsdShowIsoTimeRemain2(BYTE bMin, BYTE bSec, BYTE bTime)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
void vOsdShowIsoTimeRemain2(BYTE bHour, BYTE bMin, BYTE bSec, BYTE bTime) large
{
  BYTE pbTime[6];

  vCheckTimeValid2(bMin, bSec);

  pbTime[0] = 5;
  pbTime[1] = BCD_LO(bHour) + '0';
  pbTime[2] = BCD_HI(bMin) + '0';
  pbTime[3] = BCD_LO(bMin) + '0';
  pbTime[4] = BCD_HI(bSec) + '0';
  pbTime[5] = BCD_LO(bSec) + '0';

  if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_LEFT)
  {
    vOsdPosShowArg(OSD_POS_ISO_TIME_LEFT, OSD_MSG_TIME_LEFT_3, bTime, pbTime);
  }
  else if (_rOsdStateCtx.fgTimePos == OSD_SHOW_TIME_RIGHT)
  {
   	vOsdPosShowArg(OSD_POS_ISO_TIME_RIGHT, OSD_MSG_TIME_RIGHT_3, bTime, pbTime);
  }

#ifdef DIVXMENU_INFO
  if (bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI)
  {
  #ifdef DIVXMENU_CHAP_TT_3_DIGITS
  BYTE pbNum[13];
    WORD wCurTit = 0;//bSharedInfo(SI_TT_NO);
    WORD wTotTit = 0;//bSharedInfo(SI_TT_NS);
    WORD wCurCha = 0;//bSharedInfo(SI_CHAP_NO);
    WORD  wTotCha = 0;//bSharedInfo(SI_CHAP_NS);

    wCurTit = bSharedInfo(SI_TT_NO);
    wTotTit = bSharedInfo(SI_TT_NS);
    wCurCha = bSharedInfo(SI_CHAP_NO);
    wTotCha = bSharedInfo(SI_CHAP_NS);
    if ( wCurTit==0xFF ||  // DMC_ID_INVALID
         wTotTit==0xFF ||
         wCurCha==0xFF ||
         wTotCha==0xFF
       )
    {
      vOsdPosClear(OSD_POS_MP4_CHAP);    
    }
    else
    {
      wCurTit = wWRDToBCD(wCurTit);
      wTotTit = wWRDToBCD(wTotTit);
      wCurCha = wWRDToBCD(wCurCha);
      wTotCha = wWRDToBCD(wTotCha);

      pbNum[0] = 12;
	  
      pbNum[1] = BCD_LO(bHiByte(wCurTit)) + '0';
      pbNum[2] = BCD_HI(bLoByte(wCurTit)) + '0';
      pbNum[3] = BCD_LO(bLoByte(wCurTit)) + '0';
	  
      pbNum[4] = BCD_LO(bHiByte(wTotTit)) + '0';
      pbNum[5] = BCD_HI(bLoByte(wTotTit)) + '0';
      pbNum[6] = BCD_LO(bLoByte(wTotTit)) + '0';
	  
      pbNum[7] = BCD_LO(bHiByte(wCurCha)) + '0';
      pbNum[8] = BCD_HI(bLoByte(wCurCha)) + '0';
      pbNum[9] = BCD_LO(bLoByte(wCurCha)) + '0';
	  
       pbNum[10] = BCD_LO(bHiByte(wTotCha)) + '0';
      pbNum[11] = BCD_HI(bLoByte(wTotCha)) + '0';
      pbNum[12] = BCD_LO(bLoByte(wTotCha)) + '0';

      vOsdPosShowArg(OSD_POS_MP4_CHAP, OSD_MSG_TT_3_CH_3, OSD_NO_DISAPPEAR, pbNum);
    }
  #else
    BYTE pbNum[9];
    BYTE bCurTit = bSharedInfo(SI_TT_NO);
	 BYTE bTotTit = bSharedInfo(SI_TT_NS);
    BYTE bCurCha = bSharedInfo(SI_CHAP_NO);
	 BYTE bTotCha = bSharedInfo(SI_CHAP_NS);

    if ( bCurTit==0xFF ||  // DMC_ID_INVALID
         bTotTit==0xFF ||
         bCurCha==0xFF ||
         bTotCha==0xFF
       )
    {
      vOsdPosClear(OSD_POS_MP4_CHAP);    
    }
    else
    {
      bCurTit = bHEXToBCD(bCurTit);
      bTotTit = bHEXToBCD(bTotTit);
      bCurCha = bHEXToBCD(bCurCha);
      bTotCha = bHEXToBCD(bTotCha);

      pbNum[0] = 8;
      pbNum[1] = BCD_HI(bCurTit) + '0';
      pbNum[2] = BCD_LO(bCurTit) + '0';
      pbNum[3] = BCD_HI(bTotTit) + '0';
      pbNum[4] = BCD_LO(bTotTit) + '0';
      pbNum[5] = BCD_HI(bCurCha) + '0';
      pbNum[6] = BCD_LO(bCurCha) + '0';
      pbNum[7] = BCD_HI(bTotCha) + '0';
      pbNum[8] = BCD_LO(bTotCha) + '0';

      vOsdPosShowArg(OSD_POS_MP4_CHAP, OSD_MSG_TT_CH, OSD_NO_DISAPPEAR, pbNum);
    }
   #endif
  }
#endif

  //alfonso
#ifdef DDISC_SUPPORT_QT_CHAPTER
  // in addition to show out mp4 chapter info
  if (bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_MP4)
  {
	  BYTE pbNum[5];
	  BYTE bTrkNo = bSharedInfo(SI_TRACK_NO);
	  BYTE bTrkNs = bSharedInfo(SI_TRACK_NS);
	  BYTE bState = OSD_TOTAL_TRACK;//bSharedInfo(SI_PBC_STATE);

	  /* check track range */
	  if (bTrkNs > 99)
	  {
		  bTrkNs = 0;
	  }
	  if (bTrkNo > 99)
	  {
		  bTrkNo = 0;
	  }

	bTrkNo = bHEXToBCD(bTrkNo);
	bTrkNs = bHEXToBCD(bTrkNs);

	/*
	switch(bState)
	{
	  case OSD_TRACK:
		pbNum[0] = 2;
		pbNum[1] = BCD_HI(bTrkNo) + '0';
		pbNum[2] = BCD_LO(bTrkNo) + '0';
		vOsdPosShowArg(OSD_POS_MP4_CHAP, OSD_MSG_MP4_CH, bTime, pbNum);
		break;

	  case OSD_TOTAL:
		pbNum[0] = 2;
		pbNum[1] = BCD_HI(bTrkNs) + '0';
		pbNum[2] = BCD_LO(bTrkNs) + '0';
		vOsdPosShowArg(OSD_POS_MP4_CHAP, OSD_MSG_MP4_CH, bTime, pbNum);
		break;

	  case OSD_TOTAL_TRACK:
		pbNum[0] = 4;
		pbNum[1] = BCD_HI(bTrkNo) + '0';
		pbNum[2] = BCD_LO(bTrkNo) + '0';
		pbNum[3] = BCD_HI(bTrkNs) + '0';
		pbNum[4] = BCD_LO(bTrkNs) + '0';
		vOsdPosShowArg(OSD_POS_MP4_CHAP, OSD_MSG_MP4_CH, OSD_NO_DISAPPEAR, pbNum);
		break;

	  default:
		break;
	}
	*/
	pbNum[0] = 4;
	pbNum[1] = BCD_HI(bTrkNo) + '0';
	pbNum[2] = BCD_LO(bTrkNo) + '0';
	pbNum[3] = BCD_HI(bTrkNs) + '0';
	pbNum[4] = BCD_LO(bTrkNs) + '0';
	vOsdPosShowArg(OSD_POS_MP4_CHAP, OSD_MSG_MP4_CH, OSD_NO_DISAPPEAR, pbNum);
  }
#endif /* DDISC_SUPPORT_QT_CHAPTER */
}

⌨️ 快捷键说明

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