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

📄 osdshow.c

📁 MTK portableDVD 采用mtk1389方案的代码
💻 C
📖 第 1 页 / 共 2 页
字号:
    for(i=0; i<pbStr[0]; i++)
    {
      vWriteNextSharedItem(pbStr[i+1]);
    }
  }
  vSendOsdCmd();

  if (fgIsLayer2(wPosIndex))
  {
    vSetSharedInfo(SH_OSD_TIMER_START + wPosIndex - OSD_POS_LAYER2_LINE1, OSD_NO_DISAPPEAR);
    vSetLayer2Change(TRUE);
  }
}


// *********************************************************************
// Function : void vOsdPasteMsgXYArg(WORD wX, WORD wY, BYTE bWbIdx, WORD wMsgIdx, BYTE *pbStr)
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
void vOsdPasteMsgXYArg(WORD wX, WORD wY, BYTE bWbIdx, WORD wMsgIdx, BYTE *pbStr) large
{
  WORD wTmp;
  BYTE i;

  vWaitBusy();
  vBeginWriteSharedGrp(SI_OSD_CMD_PRM_GRP, OSD_CMD_PASTE_MSG);
  vWriteNextSharedItem(bWbIdx);
  vWriteNextSharedItem(bLoByte(wX));
  vWriteNextSharedItem(bHiByte(wX));
  vWriteNextSharedItem(bLoByte(wY));
  vWriteNextSharedItem(bHiByte(wY));
  vWriteNextSharedItem(bLoByte(wMsgIdx));
  vWriteNextSharedItem(bHiByte(wMsgIdx));
  if (pbStr[0])
  {
    for(i=0; i<pbStr[0]; i++)
    {
      vWriteNextSharedItem(pbStr[i+1]);
    }
  }
  vSendOsdCmd();
}

#if (defined(PLAYER_BOOKMARK) || defined(PLAYER_PROGRAM) || defined(PLAYER_DIGEST))
// *********************************************************************
// Function : void vOsdPosHili(BYTE bMode, WORD wPosIndex, BYTE bWidth)
// Description : show SELECT message,
// Parameter :
// Return    : None
// *********************************************************************
void vOsdPosHili(BYTE bMode, WORD wPosIndex, BYTE bWidth) large
{
  BYTE bWB;
  WORD wEndX;

  vHideHL(HL_1);

  if (bMode == OSD_POS_HILI_CLEAR)
  {
    return;
  }

  if (fgIsPosValid(wPosIndex) == FALSE)
  {
    return;
  }

  bWB = bPosWB(wPosIndex);

  if (bWidth == 0)
  {
    wEndX = wPosX(wPosIndex) + wPosW(wPosIndex);
  }
  else
  {
    wEndX = wPosX(wPosIndex) + bWidth * EFONT_WIDTH;
  }

  vShowWbHiliXY(bWB, HL_1,
                wPosX(wPosIndex), wPosY(wPosIndex),
                wEndX, wPosY(wPosIndex) + LINE_HEIGHT - 1);

  vSetHLRng(HL_1, bWB);
  vShowHL(HL_1);
}
#endif /* PLAYER_BOOKMARK || PLAYER_PROGRAM || PLAYER_DIGEST */

#if (defined(PLAYER_BOOKMARK) || defined(PLAYER_PROGRAM))
// *********************************************************************
// Function : void vOsdPosHead(WORD wPosIndex, BYTE bBtnIndex, WORD wMsg, char cOffset, BYTE bWidth)
// Description : show SELECT message,
// Parameter :
// Return    : None
// *********************************************************************
#define BTN_MSG_Y_OFST        0

void vOsdPosHead(WORD wPosIndex, BYTE bBtnIndex, WORD wMsg, char cOffset, BYTE bWidth) large
{
  vSetBtnCol(bPosWB(wPosIndex), 0, 1, 3, 3);

  vCreateMsgButtonXY(bPosWB(wPosIndex),
                     bBtnIndex, 2, wMsg, 0xffff, BTN_MSG_Y_OFST,
                     wPosX(wPosIndex) + cOffset,
                     wPosY(wPosIndex),
                     wPosX(wPosIndex) + cOffset + bWidth,
                     wPosY(wPosIndex) + LINE_HEIGHT - 1);

  vSelButton(bPosWB(wPosIndex), bBtnIndex);
}
#endif /* PLAYER_BOOKMARK || PLAYER_PROGRAM */

// *********************************************************************
// Function : void vOsdPosShowStr(WORD wPosIndex, BYTE *pbStr)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
void vOsdPosShowStr(WORD wPosIndex, BYTE *pbStr) large
{
#if 0 // fix for some strange bug???
  WORD wX, wY;
  BYTE bWB;

  wX = wPosX(wPosIndex);
  wY = wPosY(wPosIndex);
  bWB = bPosWB(wPosIndex);

  vOsdShowStrXY(wX, wY, bWB, pbStr);
#else
  vOsdShowStrXY(wPosX(wPosIndex), wPosY(wPosIndex), bPosWB(wPosIndex), pbStr);
#endif 
}

// *********************************************************************
// Function : WORD wOsdGetLcdMsg(BYTE bLcd0, BYTE bLco1)
// Description :
// Parameter :  bState
// Return    : None
// *********************************************************************
WORD wOsdGetLcdMsg(BYTE bLcd0, BYTE bLcd1) large
{
  WORD wMsgId = DVD_SP_UNKNOWN_LCD_MSG;

  switch (bLcd0)
  {
    case 'b':
    {
      switch (bLcd1)
      {
        case 'e':
					wMsgId = OSD_MSG_AU_BELORUSSIAN;
          break;
      }
    }
    break;
		
    case 'e':
    {
      switch (bLcd1)
      {
        case 'l':
	        wMsgId = OSD_MSG_AU_GREEK;
          break;
        case 'n':
          wMsgId = OSD_MSG_OSDLANG_ENGLISH;
          break;
        case 's':
          wMsgId = OSD_MSG_AU_SPANISH;
          break;
				case 't':
          wMsgId = OSD_MSG_AU_ESTONIAN;
          break;
      }
    }
    break;

    case 'k':
    {
      switch (bLcd1)
      {
        case 'o':
          wMsgId = OSD_MSG_AU_KOREAN;
          break;

        case 'k':
          wMsgId = OSD_MSG_AU_KAZAH;
          break;
      }
    }
    break;

    case 'f':
    {
      switch (bLcd1)
      {
        case 'r':
          wMsgId = OSD_MSG_AU_FRENCH;
          break;
      }
    }
    break;
    
    case 'j':
    {
      switch (bLcd1)
      {
        case 'a':
          wMsgId = OSD_MSG_AU_JAPANESE;
          break;
      }
    }
    break;

    case 'l':
    {
      switch (bLcd1)
      {
        case 'v':
          wMsgId = OSD_MSG_AU_LATVIAN;
          break;
      }
    }
    break;

    case 'r':
    {
      switch(bLcd1)
      {
        case 'u':
          wMsgId = OSD_MSG_AU_RUSSIAN;
          break;
      }
    }
    break;

    case 't':
    {
      switch (bLcd1)
      {
        case 'h':
          wMsgId = OSD_MSG_AU_THAI;
          break;
      }
    }
    break;

		case 'u':
    {
      switch (bLcd1)
      {
        case 'k':
          wMsgId = OSD_MSG_AU_UKRAINIAN;
          break;
      }
    }
    break;
		
    case 'z':
    {
      switch (bLcd1)
      {
        case 'h':
	        wMsgId = OSD_MSG_AU_CHINESE;
          break;
      }
    }
    break;

    default:
      break;
  }

  return (wMsgId);
}

// *********************************************************************
// Function : WORD wOsdGetAudAtrMsg(BYTE bType)
// Description :
// Parameter :  bState
// Return    : None
// *********************************************************************
WORD wOsdGetAudAtrMsg(BYTE bType) large
{
  WORD wMsgId = OSD_MSG_NULL;

  switch (bType)
  {
    case SV_A_CODE_AAC:
      wMsgId = OSD_MSG_AAC;
      break;

    case SV_A_CODE_HDCD:
      wMsgId = OSD_MSG_HDCD;
      break;

    case SV_A_CODE_PCM:
      if (fgIsDvdPlay())
      {
        wMsgId = OSD_MSG_LPCM;
      }
      else
      {
        wMsgId = OSD_MSG_PCM;
      }
      break;

    case SV_A_CODE_AC3:
      if (fgIsAinPlay())
      {
        wMsgId = OSD_MSG_ICON_DOLBY_DIGITAL;
      }
      else
      {
        wMsgId = OSD_MSG_AC3;
      }
      break;

    case SV_A_CODE_MPEG:
      wMsgId = OSD_MSG_MPEG;
      break;

    case SV_A_CODE_DTS:
#ifndef DTS_NO_DISPLAY //BillDen
      wMsgId = OSD_MSG_DTS;
#else
      wMsgId = OSD_MSG_NULL;      
#endif      
      break;

    case SV_A_CODE_SDDS:
      wMsgId = OSD_MSG_SDDS;
      break;

    case SV_A_CODE_MP3:
      wMsgId = OSD_MSG_MP3;
      break;

    case SV_A_CODE_WAV:
      wMsgId = OSD_MSG_WAV;
      break;

#ifdef SUPPORT_DVD_AUDIO
    case SV_A_CODE_MLP:
      wMsgId = OSD_MSG_MLP;
      break;
#endif

    case SV_A_CODE_NONE:
    default:
#if 0
      if (fgIsDvdPlay())
      {
        wMsgId = OSD_MSG_AC3;
      }
      else if (fgIsVcdPlay())
      {
        wMsgId = OSD_MSG_MPEG;
      }
      else if (fgIsIsoPlay())
      {
        wMsgId = OSD_MSG_MP3;
      }
      else if (fgIsCddaPlay())
      {
        wMsgId = OSD_MSG_PCM;
      }
#else
      wMsgId = OSD_MSG_NULL;
#endif
      break;
  }

  return (wMsgId);
}

// *********************************************************************
// Function : WORD wOsdGetAudChMsg(BYTE bType)
// Description : Audio Channel Config
// Parameter :  bState
// Return    : None
// *********************************************************************
#if defined(AUDIO_IN_EN)
WORD wOsdGetAudChMsg(BYTE bType) large
{
#ifdef DVD_AUDIO_INFO_NO_CHNL
  return (OSD_MSG_NULL);
#else /* !DVD_AUDIO_INFO_NO_CHNL */
  WORD wMsgId = OSD_MSG_NULL;

  switch (bType)
  {
    case SV_A_CH_MN:
    case SV_A_CH_LL:
    case SV_A_CH_RR:
      wMsgId = OSD_MSG_1CH;
      break;

    case SV_A_CH_33_1:
      wMsgId = OSD_MSG_61CH;
      break;

    case SV_A_CH_32_1:
      wMsgId = OSD_MSG_51CH;
      break;

    case SV_A_CH_31_1:
    case SV_A_CH_22_1:
      wMsgId = OSD_MSG_41CH;
      break;

    case SV_A_CH_21_1:
    case SV_A_CH_30_1:
      wMsgId = OSD_MSG_31CH;
      break;

    case SV_A_CH_20_1:
      wMsgId = OSD_MSG_21CH;
      break;

    case SV_A_CH_33_0:
      wMsgId = OSD_MSG_6CH;
      break;

    case SV_A_CH_32_0:
      wMsgId = OSD_MSG_5CH;
      break;

    case SV_A_CH_31_0:
    case SV_A_CH_22_0:
      wMsgId = OSD_MSG_4CH;
      break;

    case SV_A_CH_21_0:
    case SV_A_CH_30_0:
      wMsgId = OSD_MSG_3CH;
      break;

    case SV_A_CH_20_0:
    default:
      wMsgId = OSD_MSG_2CH;
      break;
  }

  return (wMsgId);
#endif /* !DVD_AUDIO_INFO_NO_CHNL */
}
#endif
// *********************************************************************
// Number message table
// *********************************************************************
#if (defined(PLAYER_PROGRAM) || defined(PLAYER_BOOKMARK))
static code WORD pwNum2Msg[24] = {
  OSD_MSG_NUM_01, OSD_MSG_NUM_02, OSD_MSG_NUM_03, OSD_MSG_NUM_04,
  OSD_MSG_NUM_05, OSD_MSG_NUM_06, OSD_MSG_NUM_07, OSD_MSG_NUM_08,
  OSD_MSG_NUM_09, OSD_MSG_NUM_10, OSD_MSG_NUM_11, OSD_MSG_NUM_12,
  OSD_MSG_NUM_13, OSD_MSG_NUM_14, OSD_MSG_NUM_15, OSD_MSG_NUM_16,
  OSD_MSG_NUM_17, OSD_MSG_NUM_18, OSD_MSG_NUM_19, OSD_MSG_NUM_20,
  OSD_MSG_NUM_21, OSD_MSG_NUM_22, OSD_MSG_NUM_23, OSD_MSG_NUM_24
};

WORD wOsdGetNumMsg(BYTE bNum) large
{
  if ((bNum == 0) || (bNum > 24))
  {
    return (OSD_MSG_NULL);
  }

  return (pwNum2Msg[bNum-1]);
}
#endif /* PLAYER_PROGRAM || PLAYER_BOOKMARK */

⌨️ 快捷键说明

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