亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? osdshow.c

?? mtk1389L latest sourcecode enjoy
?? C
?? 第 1 頁 / 共 3 頁
字號:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 07/05/03 2:15p    $       ****************/
/***************  $Revision:: 7                $       ****************/
/***************                                       ****************/
/***************   Description : OSD                   ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer : Peter Huang           ****************/
/**********************************************************************/

#define _OSDSHOW_C_

#if defined(PC_EMULATION)
#define _C_MAIN_
#endif

#pragma NOAREGS

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

// *********************************************************************
// Position table
// *********************************************************************
#define _OSDSHOW_MAIN_C_

#include "posi.h"
#ifdef SUPPORT_USB_COPY //yan 070409
#include ".\show\usbshow.h"
#endif
#include ".\show\progshow.h"
#include ".\show\markshow.h"
#include ".\show\dgstshow.h"
#include ".\show\gotoshow.h"
#include ".\show\upgshow.h"
#include ".\show\ainshow.h"

#ifdef PLAYER_FLMENU // temp method, should be provided by FLMENU modufle
  //#include ".\fslist\flspec.h"
  #include ".\fslist\fslist.h"
#else
  #define OSD_POS_FS_MAX    0
  #define pwPosFsInfo       0
#endif

typedef struct
{
  BYTE bTblSz;
  strucOsdPos *prPosTbl;
}
structOsdPosTbl;

static code structOsdPosTbl prOsdPosTbl[OSD_POS_TBL_MAX] = {
  { OSD_POS_LAYER1_MAX, pwPosLayer1 },   /* 0:OSD_POS_TBL_LAYER1 */
  { OSD_POS_LAYER2_MAX, pwPosLayer2 },   /* 1:OSD_POS_TBL_LAYER2 */
  { OSD_POS_PROG_MAX,   pwPosProg },     /* 2:OSD_POS_TBL_PROG   */
  { OSD_POS_MARK_MAX,   pwPosMark },     /* 3:OSD_POS_TBL_MARK   */
  { OSD_POS_DGST_MAX,   pwPosDgst },     /* 4:OSD_POS_TBL_DGST   */
  { OSD_POS_UPG_MAX,    pwPosUpg },      /* 5:OSD_POS_TBL_UPG    */
  { OSD_POS_AIN_MAX,    pwPosAin },      /* 6:OSD_POS_TBL_AIN    */
  { OSD_POS_FS_MAX,     pwPosFsInfo },   /* 7:OSD_POS_TBL_FLMENU */
  { OSD_POS_GOTO_MAX,   pwPosGoto }      /* 8:OSD_POS_TBL_GOTO   */
  #ifdef SUPPORT_USB_COPY //yan 070409
  ,{ OSD_POS_USB_MAX,   pwPosUSB }       /* 9: OSD_POS_TAL_USB  */
  #endif

};

// *********************************************************************
// Position Table Related Macros
// *********************************************************************
#define fgIsPosValid(wPos)         ((bOsdPosTbl(wPos) < OSD_POS_TBL_MAX) && \
                                    (bOsdPosIdx(wPos) < (prOsdPosTbl[bOsdPosTbl(wPos)]).bTblSz))

#define bPosWB(wPos)               (((prOsdPosTbl[bOsdPosTbl(wPos)]).prPosTbl[bOsdPosIdx(wPos)]).bWB)
#define wPosX(wPos)                (((prOsdPosTbl[bOsdPosTbl(wPos)]).prPosTbl[bOsdPosIdx(wPos)]).wX)
#define wPosY(wPos)                (((prOsdPosTbl[bOsdPosTbl(wPos)]).prPosTbl[bOsdPosIdx(wPos)]).wY)
#define wPosH(wPos)                (((prOsdPosTbl[bOsdPosTbl(wPos)]).prPosTbl[bOsdPosIdx(wPos)]).wHeight)
#define wPosW(wPos)                (((prOsdPosTbl[bOsdPosTbl(wPos)]).prPosTbl[bOsdPosIdx(wPos)]).wWidth)


extern xdata BYTE _bCreatedWB[5];

// *********************************************************************
// Function : void vOsdSetInputField(WORD wPosIndex)
// Description : not export outside this module
// Parameter : None
// Return    : None
// *********************************************************************
void vOsdSetInputField(WORD wPosIndex) large
{
  BYTE bWB;

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

  bWB = bPosWB(wPosIndex);

#ifdef NUI_OSD_STYLE
  vSetInputMsgCol4(bWB, 0, 3, 3, 2);
#else
  vSetInputMsgCol4(bWB, 0, 15, 15, 3);
#endif

  if (fgOsdCoreChgColEn(wPosIndex, bWB) == TRUE)
  {
    vInMsgColEn(bWB);
  }
}

// *********************************************************************
// Function : void vOsdClearInputField(WORD bPosIndex)
// Description : not export outside this module
//               assume this is called before paste and show command
// Parameter : None
// Return    : None
// *********************************************************************
void vOsdClearInputField(WORD wPosIndex) large
{
  BYTE bWB;

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

  bWB = bPosWB(wPosIndex);

  if (fgOsdCoreChgColDis(wPosIndex, bWB) == TRUE)
  {
    vInMsgColDis(bWB);
  }
}


// *********************************************************************
// Function : void vOsdPosClear(WORD wPosIndex) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
void vOsdPosClear(WORD wPosIndex) large
{
  BYTE bWb;

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

  bWb = bPosWB(wPosIndex);

#ifdef POS_CLEAR_DISABLE_WB
  if (fgIsLayer1(wPosIndex))
  {
    vDisableWB(bWb);
  }
#endif

  vOsdClearPosXY(wPosX(wPosIndex), wPosY(wPosIndex), bWb,
                 wPosW(wPosIndex), LINE_HEIGHT);

#ifdef POS_CLEAR_DISABLE_WB
  if (fgIsLayer1(wPosIndex))
  {
    vOsdCoreLayer1WbRestore(bWb);
  }
#endif

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

// *********************************************************************
// Function : void vOsdPosShow(BYTE bMsgIndex)
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
void vOsdPosShow(WORD wPosIndex, WORD wMsgIndex, BYTE bTime) large
{
  WORD wTmp;

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

  wTmp = bPosWB(wPosIndex);
  if (!(_bCreatedWB[wTmp / 8] & (0x01 << (wTmp % 8))))
  {
    vCreateWBEx(wTmp);
  }

  vWaitBusy();
  vBeginWriteSharedGrp(SI_OSD_CMD_PRM_GRP, OSD_CMD_SHOW_MSG);
  vWriteNextSharedItem(bPosWB(wPosIndex));
  wTmp = wPosX(wPosIndex);
  vWriteNextSharedItem(bLoByte(wTmp));
  vWriteNextSharedItem(bHiByte(wTmp));
  wTmp = wPosY(wPosIndex);
  vWriteNextSharedItem(bLoByte(wTmp));
  vWriteNextSharedItem(bHiByte(wTmp));
  vWriteNextSharedItem(bLoByte(wMsgIndex));
  vWriteNextSharedItem(bHiByte(wMsgIndex));
  vWriteNextSharedItem(bTime);
  vWriteNextSharedItem(0);
  vSendOsdCmd();

  if (fgIsLayer2(wPosIndex)
#ifdef PLAYER_GOTO
      && !fgIsInGoto()
#endif
     )
  {
    vSetSharedInfo(SH_OSD_TIMER_START + wPosIndex - OSD_POS_LAYER2_LINE1, bTime);
    vSetLayer2Change(TRUE);
  }
}

// *********************************************************************
// Function : void vOsdPosPaste(WORD wPosIndex, WORD wMsgIndex)
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
void vOsdPosPaste(WORD wPosIndex, WORD wMsgIndex) large
{
  WORD wTmp;

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

  vWaitBusy();
  vBeginWriteSharedGrp(SI_OSD_CMD_PRM_GRP, OSD_CMD_PASTE_MSG);
  vWriteNextSharedItem(bPosWB(wPosIndex));
  wTmp = wPosX(wPosIndex);
  vWriteNextSharedItem(bLoByte(wTmp));
  vWriteNextSharedItem(bHiByte(wTmp));
  wTmp = wPosY(wPosIndex);
  vWriteNextSharedItem(bLoByte(wTmp));
  vWriteNextSharedItem(bHiByte(wTmp));
  vWriteNextSharedItem(bLoByte(wMsgIndex));
  vWriteNextSharedItem(bHiByte(wMsgIndex));
  vSendOsdCmd();

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

// *********************************************************************
// Function : void vOsdPosShow(BYTE bMsgIndex)
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
void vOsdPosShowArg(WORD wPosIndex, WORD wMsgIndex, BYTE bTime, BYTE *pbStr) large
{
  WORD wTmp;
  BYTE i;

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

  wTmp = bPosWB(wPosIndex);
  if (!(_bCreatedWB[wTmp / 8] & (0x01 << (wTmp % 8))))
  {
    vCreateWBEx(wTmp);
  }

  vWaitBusy();
  vBeginWriteSharedGrp(SI_OSD_CMD_PRM_GRP, OSD_CMD_SHOW_MSG);
  vWriteNextSharedItem(bPosWB(wPosIndex));
  wTmp = wPosX(wPosIndex);
  vWriteNextSharedItem(bLoByte(wTmp));
  vWriteNextSharedItem(bHiByte(wTmp));
  wTmp = wPosY(wPosIndex);
  vWriteNextSharedItem(bLoByte(wTmp));
  vWriteNextSharedItem(bHiByte(wTmp));
  vWriteNextSharedItem(bLoByte(wMsgIndex));
  vWriteNextSharedItem(bHiByte(wMsgIndex));
  vWriteNextSharedItem(bTime);
  if (pbStr[0])
  {
    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, bTime);
    vSetLayer2Change(TRUE);
  }
}

// *********************************************************************
// Function : void vOsdPosPasteArg(WORD wPosIndex, WORD wMsgIndex, BYTE *pbStr, BYTE bOffset)
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
void vOsdPosPasteArg(WORD wPosIndex, WORD wMsgIndex, BYTE *pbStr, BYTE bOffset) large
{
  WORD wTmp;
  BYTE i;

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

  vWaitBusy();
  vBeginWriteSharedGrp(SI_OSD_CMD_PRM_GRP, OSD_CMD_PASTE_MSG);
  vWriteNextSharedItem(bPosWB(wPosIndex));
  wTmp = wPosX(wPosIndex) + bOffset * EFONT_WIDTH;
  vWriteNextSharedItem(bLoByte(wTmp));
  vWriteNextSharedItem(bHiByte(wTmp));
  wTmp = wPosY(wPosIndex);
  vWriteNextSharedItem(bLoByte(wTmp));
  vWriteNextSharedItem(bHiByte(wTmp));
  vWriteNextSharedItem(bLoByte(wMsgIndex));
  vWriteNextSharedItem(bHiByte(wMsgIndex));
  if (pbStr[0])
  {
    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);
  }
}

#ifdef PLAYER_GOTO
// *********************************************************************
// 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();
}
#endif

#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;
  BYTE i;

#ifndef HILI_USE_OSD
  vHideHL(HL_1);
#endif

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

  bWB = bPosWB(wPosIndex);
  if (bMode == OSD_POS_HILI_CLEAR)
  {
#ifdef HILI_USE_OSD
    switch(bWB)
    {
      case WB_DGST_DISP1:
      case WB_DGST_DISP2:
      case WB_DGST_DISP3:
        if(fgIsInputStateValid(INPUT_STATE_DIGEST))
        {
          for(i=0;i<3;i++)
          {
            if (bWidth == 0)
            {
              wEndX = wPosX(wPosIndex+i) + wPosW(wPosIndex+i);
            }
            else
            {
              wEndX = wPosX(wPosIndex+i) + bWidth * EFONT_WIDTH;
            }
            _wStartX = wPosX(wPosIndex+i);
            _wStartY = wPosY(wPosIndex+i);
            _wEndX = wEndX;
            _wEndY = wPosY(wPosIndex+i) + LINE_HEIGHT - 1;
            vChgColRep(bWB, 2, 1);
          }
        }
        break;

      case WB_MARK: // WB_DGST_TYPE, WB_SELMENU,
        if(fgIsInputStateValid(INPUT_STATE_BOOKMARK))
        {
          for(i=0;i<BOOKMARK_NS;i++)
          {
            if (bWidth == 0)
            {
              wEndX = wPosX(OSD_POS_MARK_ITEM_1+i) + wPosW(OSD_POS_MARK_ITEM_1+i);
            }
            else
            {
              wEndX = wPosX(OSD_POS_MARK_ITEM_1+i) + bWidth * EFONT_WIDTH;
            }
            _wStartX = wPosX(OSD_POS_MARK_ITEM_1+i);
            _wStartY = wPosY(OSD_POS_MARK_ITEM_1+i);
            _wEndX = wEndX;
            _wEndY = wPosY(OSD_POS_MARK_ITEM_1+i) + LINE_HEIGHT - 1;
            vChgColRep(bWB, 7, 0);
          }
          break;
        }

        if(fgIsInputStateValid(INPUT_STATE_DIGEST))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区剧情av在线| 国产精品五月天| 亚洲国产美国国产综合一区二区| 99国产精品99久久久久久| 国产精品久久久久aaaa| 91在线观看免费视频| 一区二区三区四区乱视频| 欧美午夜一区二区| 视频一区国产视频| 精品久久久久久久久久久久久久久 | 亚洲欧美激情一区二区| 91极品美女在线| 婷婷久久综合九色综合绿巨人| 欧美日韩国产综合久久| 精品亚洲国内自在自线福利| 久久久久国产精品免费免费搜索| 成人一区在线观看| 亚洲国产精品久久久男人的天堂| 日韩一级精品视频在线观看| 九九久久精品视频| 国产精品久久午夜| 欧美伦理视频网站| 国产丶欧美丶日本不卡视频| 亚洲人成精品久久久久久| 91精品国产高清一区二区三区蜜臀| 精品中文av资源站在线观看| 中文字幕一区二| 4438亚洲最大| www.日韩av| 五月天婷婷综合| 中文字幕久久午夜不卡| 在线中文字幕一区二区| 久久99久久99小草精品免视看| 中文字幕制服丝袜成人av| 在线播放中文字幕一区| 国产91在线观看| 午夜精品久久一牛影视| 中文无字幕一区二区三区| 欧美日韩国产欧美日美国产精品| 国产美女精品在线| 日韩激情一区二区| 亚洲欧洲另类国产综合| 91精品国产麻豆| 91免费在线播放| 国内精品久久久久影院色| 亚洲欧美视频一区| 久久久午夜精品| 欧美一区午夜精品| 91农村精品一区二区在线| 国产成人精品免费| 青青草国产精品亚洲专区无| 一区二区三区四区激情| 中文久久乱码一区二区| 久久精品亚洲精品国产欧美kt∨ | 亚洲成人免费电影| 中文字幕亚洲一区二区av在线| 日韩视频中午一区| 色8久久精品久久久久久蜜| 粉嫩av一区二区三区粉嫩| 麻豆一区二区三| 五月天一区二区| 亚洲最大色网站| 成人欧美一区二区三区1314| 久久久综合九色合综国产精品| 日韩一区二区影院| 欧美麻豆精品久久久久久| 欧美午夜寂寞影院| 色综合久久久久网| www..com久久爱| 国产成人av网站| 国产传媒一区在线| 国产综合成人久久大片91| 免费观看成人鲁鲁鲁鲁鲁视频| 午夜精品福利一区二区蜜股av| 亚洲综合一二三区| 亚洲国产成人va在线观看天堂| 日韩美女视频一区| 国产精品久久毛片av大全日韩| 2024国产精品| 久久久99免费| 久久久久久久久久看片| 久久亚洲欧美国产精品乐播| 久久免费午夜影院| 久久久精品免费网站| 国产午夜精品久久久久久久 | 宅男噜噜噜66一区二区66| 欧美日韩在线播放三区| 欧美日韩精品欧美日韩精品一 | 亚洲一区二区三区四区不卡| 亚洲最大色网站| 日韩专区中文字幕一区二区| 丝袜亚洲另类欧美| 人人狠狠综合久久亚洲| 狠狠色狠狠色综合系列| 极品瑜伽女神91| 成人免费视频播放| 一本久久a久久精品亚洲| 欧美专区在线观看一区| 91精品国产色综合久久久蜜香臀| 久久香蕉国产线看观看99| 中文字幕精品三区| 一区二区三区在线视频观看 | 免费av成人在线| 国产在线麻豆精品观看| 成人综合在线网站| 在线日韩一区二区| 日韩一卡二卡三卡| 中文字幕av一区 二区| 亚洲欧美一区二区三区久本道91| 午夜精品久久久久久久久久久| 麻豆国产91在线播放| 成人在线视频首页| 欧美伊人精品成人久久综合97| 日韩欧美在线123| 国产拍欧美日韩视频二区| 亚洲综合自拍偷拍| 精品一区二区影视| 91激情五月电影| 亚洲精品一线二线三线无人区| 国产精品美日韩| 天堂一区二区在线免费观看| 国产jizzjizz一区二区| 欧美伊人精品成人久久综合97| 欧美精品一区二区三区视频| 亚洲三级在线看| 国产一区二区女| 在线免费不卡视频| 久久久久亚洲蜜桃| 亚洲午夜激情av| 大陆成人av片| 日韩欧美成人激情| 亚洲一区二区影院| 国产二区国产一区在线观看| 欧美日韩午夜在线| 亚洲欧洲一区二区三区| 秋霞影院一区二区| 色综合天天视频在线观看| 91精品在线观看入口| 亚洲青青青在线视频| 狠狠色综合色综合网络| 欧美日韩三级一区二区| 国产精品理论片| 国产乱理伦片在线观看夜一区 | 99免费精品在线观看| 欧美xxx久久| 亚洲3atv精品一区二区三区| 粉嫩绯色av一区二区在线观看| 精品sm在线观看| 久草精品在线观看| 91精品国产丝袜白色高跟鞋| 亚洲精品大片www| 国产成人99久久亚洲综合精品| 日韩一二三区视频| 天天操天天综合网| 欧洲一区二区三区在线| 中文字幕一区二区三区在线不卡 | 亚洲午夜精品17c| 色天天综合色天天久久| 国产精品拍天天在线| 国产一区在线看| 欧美videos中文字幕| 美女一区二区在线观看| 欧美一级在线视频| 日日夜夜一区二区| 337p亚洲精品色噜噜| 香蕉加勒比综合久久| 精品视频在线免费观看| 亚洲黄网站在线观看| 在线视频国内自拍亚洲视频| 亚洲三级在线免费观看| 色8久久精品久久久久久蜜| 亚洲色图.com| 欧美午夜电影网| 丝袜美腿亚洲色图| 欧美一区二区三区免费大片| 日本不卡一区二区三区| 日韩欧美中文字幕精品| 卡一卡二国产精品| 精品国产凹凸成av人导航| 黄色日韩三级电影| 中文一区二区在线观看| av在线播放不卡| 亚洲欧美日韩在线| 欧美三级欧美一级| 欧美aaaaaa午夜精品| 久久婷婷久久一区二区三区| 国产成a人亚洲| 青青草国产成人av片免费| 日韩一级免费观看| 国产精品88av| 亚洲精品va在线观看| 91麻豆精品国产自产在线观看一区| 日韩高清不卡一区二区| 欧美精品一区二| 成人av在线观| 婷婷成人综合网| 精品剧情v国产在线观看在线| 国产成人99久久亚洲综合精品| 亚洲美女免费视频| 欧美一二三四在线|