亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
成人午夜又粗又硬又大| 3atv在线一区二区三区| 性欧美大战久久久久久久久| 日韩一区和二区| 日韩精品资源二区在线| 国产精品久久久久久亚洲毛片 | 久久国产综合精品| 91小视频免费看| 制服视频三区第一页精品| 中文字幕中文字幕一区| 亚洲精品国产无套在线观| 精品系列免费在线观看| 在线观看免费视频综合| 中文字幕一区二区三区色视频| 日韩精品每日更新| 91麻豆国产福利在线观看| 国产午夜精品一区二区| 蓝色福利精品导航| 欧美一区午夜精品| 首页欧美精品中文字幕| 欧美日韩视频在线观看一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟 | 99久久精品免费看| 欧美一级日韩免费不卡| 国产欧美日韩视频在线观看| 免费成人av在线| 欧美一区二区三区不卡| 蜜桃在线一区二区三区| 日韩一区二区在线免费观看| 日韩电影在线免费看| 555www色欧美视频| 久久精品国产亚洲5555| 久久中文字幕电影| 国产成人免费在线| 自拍偷拍亚洲激情| 国产成人福利片| 亚洲欧美国产77777| 99国内精品久久| 日韩国产欧美视频| 天天操天天干天天综合网| 欧美优质美女网站| 色偷偷88欧美精品久久久 | 国产成人精品免费视频网站| 亚洲人成网站在线| 久久精品一区八戒影视| 亚洲h在线观看| 日韩精品免费视频人成| 欧美日本精品一区二区三区| 狠狠久久亚洲欧美| 亚洲一二三四在线观看| 色94色欧美sute亚洲线路二| 亚洲大片在线观看| 欧洲人成人精品| 亚洲欧美一区二区三区孕妇| 色偷偷88欧美精品久久久| 奇米777欧美一区二区| 亚洲色图欧洲色图| 国产日韩精品久久久| 4438x亚洲最大成人网| 国产一区二区导航在线播放| 国产精品视频九色porn| 欧美亚洲丝袜传媒另类| 国产成人精品三级麻豆| 日韩av成人高清| 国产精品入口麻豆原神| 欧美精品久久天天躁| 欧美图片一区二区三区| 国产成人精品午夜视频免费| 久久久久久黄色| 欧美日韩免费观看一区二区三区| 一区二区久久久| 亚洲欧洲日韩在线| 综合久久一区二区三区| 亚洲欧洲av在线| 91精品国产色综合久久| 欧美精品v日韩精品v韩国精品v| 成人av一区二区三区| 国产一区三区三区| 国产一区 二区| 成人免费电影视频| 成人精品视频.| 日本久久电影网| 欧美日韩国产经典色站一区二区三区| 色综合天天综合网天天狠天天| 9久草视频在线视频精品| 91成人免费在线视频| 色八戒一区二区三区| 99久久er热在这里只有精品15| caoporm超碰国产精品| 欧洲视频一区二区| 中文字幕成人av| 日本aⅴ免费视频一区二区三区| 亚洲国产乱码最新视频| 日韩午夜在线影院| 国产人伦精品一区二区| 日韩理论在线观看| 99精品久久只有精品| 免费成人结看片| 在线精品视频一区二区三四| 久久九九久久九九| 国产99精品视频| 26uuu国产日韩综合| 亚洲日本欧美天堂| 精油按摩中文字幕久久| 成人精品一区二区三区四区| 日韩欧美综合一区| 亚洲一区免费观看| 国产成人午夜电影网| 日韩欧美一二区| 亚洲精品国产a| 成人妖精视频yjsp地址| 日韩亚洲欧美中文三级| 亚洲一区二区在线视频| 色综合一区二区| 国产人妖乱国产精品人妖| 人妖欧美一区二区| 欧美一级理论性理论a| 中文字幕一区二区三区在线观看| 久久91精品国产91久久小草| 欧美日韩视频在线观看一区二区三区| 亚洲乱码国产乱码精品精的特点 | 日本丶国产丶欧美色综合| 欧美精品一区二区三区高清aⅴ | 毛片一区二区三区| 欧美久久久久久久久久| 一区二区三区.www| 色婷婷一区二区| 亚洲综合色婷婷| 欧美中文字幕一区二区三区| 一区二区三区91| 欧美日韩中文一区| 日韩电影在线一区二区三区| 欧美成人精品二区三区99精品| 另类综合日韩欧美亚洲| 国产免费久久精品| 欧美一区二区三区在| 91麻豆国产精品久久| 另类调教123区 | 奇米色一区二区| 亚洲女厕所小便bbb| 色狠狠综合天天综合综合| 亚洲观看高清完整版在线观看 | 国产精品水嫩水嫩| 欧美三级电影精品| 精品亚洲国内自在自线福利| 久久综合九色综合97婷婷| 91丨九色丨黑人外教| 天天操天天色综合| 国产精品久久久一本精品| 欧美日韩亚洲不卡| 国产电影一区在线| 裸体一区二区三区| 亚洲综合免费观看高清完整版| 欧美大片在线观看一区二区| 91捆绑美女网站| 国产福利精品一区| 免费欧美日韩国产三级电影| 国产精品毛片久久久久久| 日韩欧美高清dvd碟片| 欧美三级午夜理伦三级中视频| 不卡电影一区二区三区| 国产精品影音先锋| 久色婷婷小香蕉久久| 天堂va蜜桃一区二区三区| 亚洲午夜久久久| 亚洲精选免费视频| 亚洲精品乱码久久久久久黑人| 国产欧美一区二区精品久导航| 欧美一区二区免费观在线| 91麻豆精品国产91久久久 | 亚洲成人综合视频| 亚洲一区二区三区四区在线 | 欧美日韩日日摸| 欧美日韩视频在线观看一区二区三区 | 成人午夜免费电影| gogo大胆日本视频一区| 91麻豆6部合集magnet| 欧洲亚洲精品在线| 欧美电影精品一区二区| 国产日韩成人精品| 亚洲欧美日本韩国| 亚洲国产精品一区二区久久恐怖片| 婷婷中文字幕一区三区| 毛片av一区二区| 国产成+人+日韩+欧美+亚洲| 成av人片一区二区| 在线91免费看| 国产精品福利一区二区三区| 亚洲国产精品尤物yw在线观看| 美女视频黄 久久| av一区二区三区四区| 日韩亚洲欧美综合| 亚洲免费色视频| 激情久久久久久久久久久久久久久久| 丁香啪啪综合成人亚洲小说 | 亚洲一区二区在线免费观看视频 | 2020日本不卡一区二区视频| 一区二区三区在线不卡| 国产美女视频91| 欧美日本一道本在线视频|