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

📄 show_iso.c

📁 手机8032的完整代码。吐血推荐。小做改动就可以生产。
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 08-05-22 13:39    $       ****************/
/***************  $Revision:: 1                $       ****************/
/***************                                       ****************/
/***************   Description :                       ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/

#define _SHOW_ISO_C_

#pragma NOAREGS
#include "general.h"

#ifdef SUPPORT_DATA_DISC

#ifndef NEW_SHOW
// *********************************************************************
// Initial OSD state for ISO
// *********************************************************************
void vISOShowInit(void) large
{
  _rOsdStateCtx.fgTimeShow = TRUE;
#ifdef PLAYER_FLMENU
  _rOsdStateCtx.bTimeType = OSD_SHOW_SINGLE_ELAPSED;
#else
  _rOsdStateCtx.bTimeType = OSD_SHOW_DISABLE;
#endif
#ifdef KEEP_REMAIN_TYPE_SHOW
  _rOsdStateCtx.fgRemainMsgShow = TRUE;
#else
  _rOsdStateCtx.fgRemainMsgShow = FALSE;
#endif
  _rOsdStateCtx.fgPlayInfoShow = TRUE;
  _rOsdStateCtx.bPlayInfoType = OSD_INFO_DISABLE;
  _rOsdStateCtx.fgPlayShow = TRUE;
  _rOsdStateCtx.bPlayType = OSD_SHOW_PLAY;
  _rOsdStateCtx.fgRepeatShow = TRUE;
  _rOsdStateCtx.fgABShow = TRUE;
  _rOsdStateCtx.fgUsrCtrlShow = TRUE;
  _rOsdStateCtx.fgZoomShow = TRUE;
  _rOsdStateCtx.fgTimePos = OSD_SHOW_TIME_LEFT;

    #ifndef MT1379_MANUFACTURE_TEST
  vPlayerShowLogo(ISO_STOP_LOGO, ISO_LOGO_COLOR);
    #endif
  vPlayerShowLogo(ISO_STOP_LOGO, ISO_LOGO_COLOR);
}

// *********************************************************************
// Show time mark
// *********************************************************************
void vISOShowTimeMark(BYTE fgClear) large
{
  BYTE  bHour, bMin, bSec;
  BYTE  bPbcState = bSharedInfo(SI_MP3_MOD);
  BYTE  bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);

#ifdef MP3_LYRICS_V2_SUPPORT // Bright_liu
  if (bSharedInfo(SI_MP3_KARA_DISC_TYPE) == SV_ID_MATCH)
  {
    return;
  }
#endif

  bHour = bMin = bSec = 0;

#ifndef PLAYER_FLMENU
  if (fgFlCheckStatus(FL_STATUS_IN_MENU))
  {
    if (!fgIsDiscPlay(bPbcState) || (bItemType == SV_ISO_NONE))
    {
      vOsdPosClear(OSD_POS_ISO_TIME_LEFT);
      return;
    }
  }
  else if (fgFlCheckStatus(FL_STATUS_IN_JPEG))
  {
    vOsdPosClear(OSD_POS_ISO_TIME_LEFT);
    return;
  }
#endif /* PLAYER_FLMENU */

  switch(_rOsdStateCtx.bTimeType)
  {
    case OSD_SHOW_DISABLE:
      if (fgClear)
      {
        vOsdPosClear(OSD_POS_ISO_TIME_LEFT);
      }
      /* for VFD */
      bHour = bSharedInfo(SI_TIME_HH);
      bMin  = bSharedInfo(SI_TIME_MM);
      bSec  = bSharedInfo(SI_TIME_SS);
      break;

    case OSD_SHOW_SINGLE_ELAPSED:
      bHour = bSharedInfo(SI_TIME_HH);
      bMin  = bSharedInfo(SI_TIME_MM);
      bSec  = bSharedInfo(SI_TIME_SS);
      break;

    case OSD_SHOW_SINGLE_REMAIN:
      bHour = bSharedInfo(SI_TIME_RMN_HH);
      bMin  = bSharedInfo(SI_TIME_RMN_MM);
      bSec  = bSharedInfo(SI_TIME_RMN_SS);
      break;

    default:
      _rOsdStateCtx.bTimeType = OSD_SHOW_DISABLE;
      return;
  }

  if (((fgFlCheckStatus(FL_STATUS_IN_MENU)) && (fgIsDiscPlay(bSharedInfo(SI_MP3_MOD)))) ||
      ((fgFlCheckStatus(FL_STATUS_IN_MPEG)) && (fgIsDiscPlay(bSharedInfo(SI_PBC_STATE)))))
  {
    VfdShowPlayTime(bHour, bMin, bSec);
  }
  else
  {
    bHour = 0; bMin = 0; bSec = 0;
  }

  if (_rOsdStateCtx.bTimeType != OSD_SHOW_DISABLE)
  {
#ifdef PLAYER_FLMENU
    if (fgFlCheckStatus(FL_STATUS_IN_MENU) && (_rSearchStateCtx.bType != SEARCH_ISO_TIME))
      vFlIpShowInfo(IP_INFO_PLAYTIME, bMin, bSec);
    else
#endif
      vOsdShowIsoTimeRemain2(bHour, bMin, bSec, OSD_NO_DISAPPEAR);
  }
}
#endif  /* #ifndef NEW_SHOW */

static code WORD pwIsoDispModeMsg[3] =
{
  OSD_MSG_DISPLAY_OFF,
  OSD_MSG_SINGLE_ELAPSED,
  OSD_MSG_SINGLE_REMAIN,
};

void vISOShowRemainMsg(BYTE fgShowOff) large
{
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
  BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);

#ifdef MP3_LYRICS_V2_SUPPORT // Bright_liu
  if (bSharedInfo(SI_MP3_KARA_DISC_TYPE) == SV_ID_MATCH)
  {
    return;
  }
#endif

  if ((fgShowOff == FALSE) && (_rOsdStateCtx.bTimeType == OSD_SHOW_DISABLE))
  {
    return;
  }

  if (!fgIsDiscPlay(bPbcState))
  {
    if (fgFlCheckStatus(FL_STATUS_IN_MENU) == FALSE)
    {
      vOsdPosClear(OSD_POS_REMAIN_MSG);
    }
  }
  else if (_rOsdStateCtx.bTimeType != OSD_SHOW_DISABLE)
  {
    if ((fgIsDiscPlay(bPbcState)) && (bItemType == SV_ISO_JPG))
    {
      vOsdPosShow(OSD_POS_REMAIN_MSG, pwIsoDispModeMsg[_rOsdStateCtx.bTimeType], OSD_TIMEOUT_SHORT);
    }
    else
    {
      if (_rOsdStateCtx.fgRemainMsgShow == TRUE)
      {
        vOsdPosShow(OSD_POS_REMAIN_MSG, pwIsoDispModeMsg[_rOsdStateCtx.bTimeType], OSD_NO_DISAPPEAR);
      }
      else
      {
        vOsdPosShow(OSD_POS_REMAIN_MSG, pwIsoDispModeMsg[_rOsdStateCtx.bTimeType], OSD_TIMEOUT_SHORT);
      }
    }
  }
  else
  {
    vOsdPosShow(OSD_POS_REMAIN_MSG, pwIsoDispModeMsg[_rOsdStateCtx.bTimeType], OSD_TIMEOUT_SHORT);
  }
}

// *********************************************************************
// Function : void vISOShowPlayInfo(BYTE bItem)
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
void vISOShowPlayInfo(BYTE bItem) large
{
#if 0
  WORD wFileNo = wIsoFileNo();
  WORD wFileNs = wIsoFileNs();
  BYTE bN1 = 0;
  BYTE bType = bSharedInfo(SI_DISC_TYPE);
  BYTE bState = bSharedInfo(SI_PBC_STATE);

  /* for OSD */
  switch (bItem)
  {
    case bSIItemIndex(SI_FILE_NS_HI):
    case bSIItemIndex(SI_FILE_NS_LO):
      vOsdShowFile(OSD_FILE_TOTAL, wFileNo, wFileNs, OSD_TIMEOUT);
      /* show VFD stop message here? */
      break;
    
    case bSIItemIndex(SI_FILE_NO_HI):
    case bSIItemIndex(SI_FILE_NO_LO):
      if ((fgIsDiscPlay(bState))
#ifdef JPEG_DGST_SHOW_NO
            || (fgIsInDigest(bState) && (bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_JPG))
#endif
         )
      {
        wFileNo = wWRDToBCD(wFileNo + 1); /* from 1 ~ Ns */
        VfdShowPlayInfo(VFD_INFO_NUMBER, bHiByte(wFileNo), bLoByte(wFileNo));
    
        /* check item type and show VFD message here? */
      }
      break;

    default:
      break;
  } /* switch (bItme) */
#endif

  /* force escape GOTO state if notified from RISC */
  if ((bItem > 0) && (bItem != PLAY_INFO_CLEAR))
  {
    if (fgIsInputStateValid(INPUT_STATE_ISO_TIME_SEARCH))
    {
      vSetExitInputState();
    }
  }
}

#ifndef NEW_SHOW
// *********************************************************************
// Show trick mode
// *********************************************************************
void vISOShowTrick(BYTE bState) large
{
  BYTE bSpeed = bSharedInfo(SI_PBC_SPEED);

  if ((bState == SV_FF) || (bState == SV_FR))
  {
    if (bSpeed >= ISO_FAST_MAX)
    {
      bSpeed = ISO_FAST_MAX - 1;
    }
    bSpeed = pbISOFastDispTbl[bSpeed];
  }
#if ((!defined DISABLE_SF) && (!defined DISABLE_SR))   
  else if ((bState == SV_SF) || (bState == SV_SR))
  {
    if (bSpeed >= ISO_SLOW_MAX)
    {
      bSpeed = ISO_SLOW_MAX - 1;
    }
    bSpeed = pbISOSlowDispTbl[bSpeed];
  }
#endif  

  switch (bState)
  {
    case SV_FF:
      vOsdShowPbcState(SV_FF, bSpeed, OSD_NO_DISAPPEAR);
      break;

    case SV_SF:
      vOsdShowPbcState(SV_SF, bSpeed, OSD_NO_DISAPPEAR);
      break;

    case SV_FR:
      vOsdShowPbcState(SV_FR, bSpeed, OSD_NO_DISAPPEAR);

⌨️ 快捷键说明

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