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

📄 dgstshow.c

📁 MTK 1389E SOURCE CODE
💻 C
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 05/10/03 6:15p    $       ****************/
/***************  $Revision:: 2                $       ****************/
/***************                                       ****************/
/***************   Description : OSD                   ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/

#define _DGSTSHOW_C_

#pragma NOAREGS

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

#ifdef PLAYER_DIGEST

extern xdata strucDigest _rDigest;  // megaa dgst time mark number


// *********************************************************************
// Function : void vOsdShowDgstMark(BYTE bItemIdx, BYTE bType, BYTE *pbStr)
// Description :
// Parameter :
// Return    : None
// Note      :
// *********************************************************************
void vOsdShowDgstMark(BYTE bItemIdx, BYTE bType, BYTE *pbStr) large
{
  BYTE pbTmp[8];
  BYTE pbNum[3];  // megaa dgst time mark number
  BYTE bItemNo;   // megaa dgst time mark number
  BOOL fgHili = FALSE;

  if (bItemIdx >= 9)
  {
    return;
  }

  pbTmp[0] = 0;
  bItemNo = bItemIdx + 1 + _rDigest.bPageNo * DGST_VIEW_NS;  // megaa dgst time mark number

  if (bType != OSD_DGST_MARK_CLEAR)
  {
    if (bType & OSD_DGST_MARK_HILI)
    {
      fgHili = TRUE;
      bType &= (~OSD_DGST_MARK_HILI);
    }
  }

  switch (bType)
  {
    case OSD_DGST_MARK_NONE:
      if (pbStr == 0)
      {
        if (bSharedInfo(SI_NTSC_PAL) == SV_NTSC)
        {
          vOsdPosClear(OSD_POS_NTSC_DGST_MARK_1 + bItemIdx);
        }
        else
        {
          vOsdPosClear(OSD_POS_PAL_DGST_MARK_1 + bItemIdx);
        }
      }
      return;

    case OSD_DGST_MARK_NO:
      pbTmp[0] = 2;
      if (pbStr != 0)
      {
        pbTmp[3] = bHEXToBCD(pbStr[0]); /* use pbTmp[3] as a temp variable */
        pbTmp[1] = BCD_HI(pbTmp[3]) + '0';
        pbTmp[2] = BCD_LO(pbTmp[3]) + '0';
      }
      break;

    case OSD_DGST_MARK_TIME2:
      // megaa dgst time mark number begin
      pbTmp[0] = 5;
      if (pbStr != 0)
      {
        pbTmp[1] = BCD_HI(pbStr[0]) + '0';
        pbTmp[2] = BCD_LO(pbStr[0]) + '0';
        pbTmp[3] = ':';
        pbTmp[4] = BCD_HI(pbStr[1]) + '0';
        pbTmp[5] = BCD_LO(pbStr[1]) + '0';
        pbNum[0] = 2;
        pbNum[1] = bItemNo / 10 + '0';
        pbNum[2] = bItemNo % 10 + '0';
      }
      // megaa dgst time mark number end
      break;

    case OSD_DGST_MARK_TIME3:
      // megaa dgst time mark number begin
      pbTmp[0] = 7;
      if (pbStr != 0)
      {
        pbTmp[1] = BCD_LO(pbStr[0]) + '0';
        pbTmp[2] = ':';
        pbTmp[3] = BCD_HI(pbStr[1]) + '0';
        pbTmp[4] = BCD_LO(pbStr[1]) + '0';
        pbTmp[5] = ':';
        pbTmp[6] = BCD_HI(pbStr[2]) + '0';
        pbTmp[7] = BCD_LO(pbStr[2]) + '0';
        pbNum[0] = 2;
        pbNum[1] = bItemNo / 10 + '0';
        pbNum[2] = bItemNo % 10 + '0';
      }
      // megaa dgst time mark number end
      break;

    case OSD_DGST_MARK_CLEAR:
      /* 2002/3/19
         clear WB in burst mode, for not just clear one field */
      vOsdSetSt(OSD_ST_BURST);
      vClearWB(WB_DGST_DISP1);
      vClearWB(WB_DGST_DISP2);
      vClearWB(WB_DGST_DISP3);
      vClearWB(WB_DGST_DISP1A);
      vClearWB(WB_DGST_DISP2A);
      vClearWB(WB_DGST_DISP3A);
      vOsdSetSt(OSD_ST_NML);
      /* 2002/3/19 end */
      return;

    default:
      return;
  }

  if (pbStr != 0)
  {
    if (bSharedInfo(SI_NTSC_PAL) == SV_NTSC)
    {
      if (bType == OSD_DGST_MARK_TIME3 || bType == OSD_DGST_MARK_TIME2)
      {
        vOsdPosShowStr(OSD_POS_NTSC_DGST_MARK_1A + bItemIdx, pbTmp);
        vOsdPosShowStr(OSD_POS_NTSC_DGST_MARK_1 + bItemIdx, pbNum);
      }
      else
      {
        vOsdPosShowStr(OSD_POS_NTSC_DGST_MARK_1 + bItemIdx, pbTmp);
      }
    }
    else
    {
      if (bType == OSD_DGST_MARK_TIME3 || bType == OSD_DGST_MARK_TIME2)
      {
        vOsdPosShowStr(OSD_POS_PAL_DGST_MARK_1A + bItemIdx, pbTmp);
        vOsdPosShowStr(OSD_POS_PAL_DGST_MARK_1 + bItemIdx, pbNum);
      }
      else
      {
        vOsdPosShowStr(OSD_POS_PAL_DGST_MARK_1 + bItemIdx, pbTmp);
      }
    }
  }

  if (fgHili)
  {
    if (pbTmp[0] > 0)
    {
      if (bSharedInfo(SI_NTSC_PAL) == SV_NTSC)
      {
#ifdef HILI_USE_OSD
        vOsdPosHili(OSD_POS_HILI_CLEAR, OSD_POS_NTSC_DGST_MARK_1, 0);
        vOsdPosHili(OSD_POS_HILI_CLEAR, OSD_POS_NTSC_DGST_MARK_4, 0);
#endif
        vOsdPosHili(OSD_POS_HILI_SHOW, OSD_POS_NTSC_DGST_MARK_1 + bItemIdx, pbTmp[0]);
      }
      else
      {
#ifdef HILI_USE_OSD
        vOsdPosHili(OSD_POS_HILI_CLEAR, OSD_POS_PAL_DGST_MARK_1, 0);
        vOsdPosHili(OSD_POS_HILI_CLEAR, OSD_POS_PAL_DGST_MARK_4, 0);
#endif
        vOsdPosHili(OSD_POS_HILI_SHOW, OSD_POS_PAL_DGST_MARK_1 + bItemIdx, pbTmp[0]);
      }
    }
    else
    {
      vOsdPosHili(OSD_POS_HILI_CLEAR, 0, 0);
    }
  }
}

// *********************************************************************
// Function : void vOsdShowDgstMenuType(WORD wMsg, BYTE bParm)
// Description :
// Parameter :
// Return    : None
// Note      :
// *********************************************************************
void vOsdShowDgstMenuType(WORD wMsg, BYTE bParm) large
{
  BYTE pbTmp[3];

  vOsdPosClear(OSD_POS_DGST_MENU_TYPE);

  if (bParm == 0)
  {
    pbTmp[0] = 0;
  }
  else
  {
    bParm = bHEXToBCD(bParm);
    pbTmp[0] = 2;
    pbTmp[1] = BCD_HI(bParm) + '0';
    pbTmp[2] = BCD_LO(bParm) + '0';
  }

  if (wMsg != 0xffff)
  {
    if (pbTmp[0] == 0)
    {
      vOsdPosPaste(OSD_POS_DGST_MENU_TYPE, wMsg);
    }
    else
    {
      vOsdPosPasteArg(OSD_POS_DGST_MENU_TYPE, wMsg, pbTmp, 0);
    }
  }
}

// *********************************************************************
// Function : void vOsdShowDgstMenuSelect(BYTE bStart, BYTE bEnd, BYTE bSelNo, BYTE bMode)
// Description :
// Parameter :
// Return    : None
// Note      :
// *********************************************************************
void vOsdShowDgstMenuSelect(BYTE bStart, BYTE bEnd, BYTE bSelNo, BYTE bMode) large
{
  BYTE pbTmp[7];
  BYTE bKeySeq;

  bKeySeq = bMode & 0x0f;
  bMode = bMode & 0xf0;

  vOsdPosClear(OSD_POS_DGST_MENU_SEL);

  if ((bStart > 0) || (bEnd >= bStart))
  {
    bStart = bHEXToBCD(bStart);
    bEnd = bHEXToBCD(bEnd);
    bSelNo = bHEXToBCD(bSelNo);

    pbTmp[0] = 6;
    pbTmp[1] = BCD_HI(bStart) + '0';
    pbTmp[2] = BCD_LO(bStart) + '0';
    pbTmp[3] = BCD_HI(bEnd) + '0';
    pbTmp[4] = BCD_LO(bEnd) + '0';

  #ifdef NO_ADD10_KEY
    if (bMode == OSD_DGST_SEL_HILI)
    {
      if (bKeySeq == 1)
      {
        pbTmp[5] = BCD_LO(bSelNo) + '0';
        pbTmp[6] = ' ';
      }
      else if (bKeySeq == 2)
      {
        pbTmp[5] = BCD_HI(bSelNo) + '0';
        pbTmp[6] = BCD_LO(bSelNo) + '0';
      }
      else
      {
        pbTmp[5] = '-';
        pbTmp[6] = '-';
      }
    }
    else
  #endif /* NO_ADD10_KEY */
    if (bSelNo == 0)
    {
      pbTmp[5] = '-';
      pbTmp[6] = '-';
    }
    else
    {
      pbTmp[5] = BCD_HI(bSelNo) + '0';
      pbTmp[6] = BCD_LO(bSelNo) + '0';
    }

    /* assume the digest page only one input field, the mark will use hili */
    if (bMode == OSD_DGST_SEL_HILI)
    {
      vOsdSetInputField(OSD_POS_DGST_MENU_SEL);
    }
    else
    {
      vOsdClearInputField(OSD_POS_DGST_MENU_SEL);
    }

    vOsdPosPasteArg(OSD_POS_DGST_MENU_SEL, OSD_MSG_SELECT_RANGE, pbTmp, 0);
  }
}

#endif /* PLAYER_DIGEST */

⌨️ 快捷键说明

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