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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bookmark.c

?? mtk1389L latest sourcecode enjoy
?? C
字號(hào):
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 07/04/09 11:49a   $       ****************/
/***************  $Revision:: 3                $       ****************/
/***************                                       ****************/
/***************   Description : Bookmark function     ****************/
/***************                 module                ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/

#include "general.h"

#pragma NOAREGS

#ifdef PLAYER_BOOKMARK

#define BOOKMARK_ITEM_INVALID 0
#define BOOKMARK_ITEM_VALID   1

typedef struct structBookmark
{
  /* BYTE 1 */
  BYTE bCurItemNo:4;
  BYTE bCurItemState:2;
  BYTE bItemType:2;
  /* BYTE 2 */
  BYTE bNoMax; /* for error check */
} strucBookmark;

static xdata strucBookmark _rBookmarkState;

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
#define BOOKMARK_ITEM_CLEAR_ALL    0xff

void vBookmarkClearItem(BYTE bItem) large
{
  BYTE bIdx;

  if (bItem == BOOKMARK_ITEM_CLEAR_ALL)
  {
    for (bIdx = 0; bIdx < SV_BOOKMARK_ITEM_SIZE * BOOKMARK_NS; bIdx++)
    {
      vSetSharedInfo(SI_USR_BOOKMARK_ITEM_1 + bIdx, 0xff);
    }
  }
  else if (bItem < BOOKMARK_NS)
  {
    for (bIdx = 0; bIdx < SV_BOOKMARK_ITEM_SIZE; bIdx++)
    {
      vSetSharedInfo(SI_USR_BOOKMARK_ITEM_1 + bItem * SV_BOOKMARK_ITEM_SIZE + bIdx, 0xff);
    }
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vBookmarkReset(void) large
{
  _rBookmarkState.bItemType = SV_BOOKMARK_NONE_ITEM;

  vBookmarkClearItem(BOOKMARK_ITEM_CLEAR_ALL);
}

// *********************************************************************
// Function :
// Description : This will be called in this module and from digest!
// Parameter :
// Return    :
// *********************************************************************
BOOL fgIsBookmarkItemValid(BYTE bCurItem) large
{
  BYTE bTmp1, bTmp2, bCnt;
  BOOL fgRet = TRUE;

  if (bCurItem == BOOKMARK_ITEM_NO)
  {
    bCnt = BOOKMARK_NS;
    bCurItem = BOOKMARK_NS;
  }
  else if (bCurItem >= BOOKMARK_NS)
  {
    return (FALSE);
  }
  else
  {
    bCurItem++;
    bCnt = 1;
  }

  do {
    bCnt--;
    bCurItem--;

    bTmp1 = bSharedInfo(SI_USR_BOOKMARK_ITEM_1 + bCurItem * SV_BOOKMARK_ITEM_SIZE);

    if ((bTmp1 == 0xff) || (bTmp1 > _rBookmarkState.bNoMax))
    {
      fgRet = FALSE;
      continue;
    }

    if (_rBookmarkState.bItemType == SV_BOOKMARK_TT_CH_ITEM)
    {
      bTmp2 = bSharedInfo(SI_USR_BOOKMARK_ITEM_1 + bCurItem * SV_BOOKMARK_ITEM_SIZE + 1);
      if ((bTmp2 == 0) || (bTmp2 > bSharedInfo(SI_DVD_TT_CH + bTmp1 - 1)))
      {
        fgRet = FALSE;
        continue;
      }
    }

    fgRet = TRUE;
  } while ((bCnt > 0) && (fgRet == FALSE));

  return (fgRet);
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vBookmarkShowList(void) large
{
  BYTE bIdx;

  for (bIdx = 0; bIdx < BOOKMARK_NS; bIdx++)
  {
    if (fgIsBookmarkItemValid(bIdx))
    {
      vOsdShowMarkItem(bIdx, OSD_MARK_ITEM_VALID);
    }
    else
    {
      vOsdShowMarkItem(bIdx, OSD_MARK_ITEM_INVALID);
    }
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
#define BOOKMARK_INFO_CLEAR 0xff

void vBookmarkShowInfo(BYTE bCurItem) large
{
  WORD wSi;

  if (bCurItem >= BOOKMARK_NS)
  {
    if (_rBookmarkState.bItemType == SV_BOOKMARK_TRACK_ITEM)
    {
      vOsdShowMarkTrack(OSD_MARK_INFO_CLEAR, 0, 0);
    }
    else if (_rBookmarkState.bItemType == SV_BOOKMARK_TT_CH_ITEM)
    {
      vOsdShowMarkTtCh(OSD_MARK_INFO_CLEAR, 0, 0, 0, 0);
    }
    return;
  }

  wSi = SI_USR_BOOKMARK_ITEM_1 + bCurItem * SV_BOOKMARK_ITEM_SIZE;

  if (_rBookmarkState.bItemType == SV_BOOKMARK_TRACK_ITEM)
  {
    vOsdShowMarkTrack(bSharedInfo(wSi + 0),  /* track */
                      bSharedInfo(wSi + 5),  /* min */
                      bSharedInfo(wSi + 6)); /* sec */
  }
  else if (_rBookmarkState.bItemType == SV_BOOKMARK_TT_CH_ITEM)
  {
    vOsdShowMarkTtCh(bSharedInfo(wSi + 0),  /* title */
                     bSharedInfo(wSi + 1),  /* chapter */
                     bSharedInfo(wSi + 4),  /* hour */
                     bSharedInfo(wSi + 5),  /* min */
                     bSharedInfo(wSi + 6)); /* sec */
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
#define BOOKMARK_MSG_CLEAR  0x00
#define BOOKMARK_MSG_MARK   0x01
#define BOOKMARK_MSG_PLAY   0x02

void vBookmarkShowMessage(BYTE bType) large
{
  vOsdPosClear(OSD_POS_MARK_MSG_1);
  vOsdPosClear(OSD_POS_MARK_MSG_2);

  if (bType == BOOKMARK_MSG_CLEAR)
  {
    return;
  }
  else if (bType == BOOKMARK_MSG_PLAY)
  {
    vOsdPosPaste(OSD_POS_MARK_MSG_1, OSD_MSG_PLAY_KEY_PLAY);
    vOsdPosPaste(OSD_POS_MARK_MSG_2, OSD_MSG_CLEAR_KEY_CLEAN);
  }
  else if (bType == BOOKMARK_MSG_MARK)
  {
    vOsdPosPaste(OSD_POS_MARK_MSG_1, OSD_MSG_PLAY_KEY_MARK);
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vBookmarkGotoItem(BYTE bItem) large
{
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);

  if (bItem >= BOOKMARK_NS)
  {
    return;
  }

  _rBookmarkState.bCurItemNo = bItem;

  if (fgIsBookmarkItemValid(bItem))
  {
    _rBookmarkState.bCurItemState = BOOKMARK_ITEM_VALID;
    vOsdShowMarkItem(bItem, OSD_MARK_ITEM_VALID | OSD_MARK_ITEM_HILI);
    vBookmarkShowInfo(bItem);
    vBookmarkShowMessage(BOOKMARK_MSG_PLAY);
  }
  else
  {
    _rBookmarkState.bCurItemState = BOOKMARK_ITEM_INVALID;
    vOsdShowMarkItem(bItem, OSD_MARK_ITEM_INVALID | OSD_MARK_ITEM_HILI);
    vBookmarkShowInfo(BOOKMARK_INFO_CLEAR);
    if (fgIsDiscPlay(bPbcState)) /* only in play state could mark */
    {
      if (fgIsDvdPlay())
      {
        if (bSharedInfo(SI_DVD_DOM) == SV_VTSTT_DOM)
        {
          /* if is DVD, it must in the VTS domain */
          vBookmarkShowMessage(BOOKMARK_MSG_MARK);
        }
      }
      else
      {
        vBookmarkShowMessage(BOOKMARK_MSG_MARK);
      }
    }
    else // when disc is not playing
    {
      vBookmarkShowMessage(BOOKMARK_MSG_CLEAR);
    }
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vBookmarkInit(BYTE fgInit) large
{
  /* chnage OSD mode to user mode */
  vOsdShowWb(OSD_WB_USER);

  /* set hilight color */
#ifndef HILI_USE_OSD  
  vSetHLCol(HL_1, 0x0000); /* green */
#endif

  if (fgIsDvdPlay())
  {
    _rBookmarkState.bItemType = SV_BOOKMARK_TT_CH_ITEM;
    _rBookmarkState.bNoMax = bSharedInfo(SI_TT_NS);
  }
  else if (fgIsVcdPlay())
  {
    _rBookmarkState.bItemType = SV_BOOKMARK_TRACK_ITEM;
    _rBookmarkState.bNoMax = bSharedInfo(SI_TRACK_NS);
  }
  else if (fgIsIsoPlay())
  {
    /* only support max 255 files */
    _rBookmarkState.bItemType = SV_BOOKMARK_TRACK_ITEM;
    if (bSharedInfo(SI_FILE_NS_HI))
    {
      _rBookmarkState.bNoMax = 255;
    }
    else
    {
      _rBookmarkState.bNoMax = bSharedInfo(SI_FILE_NS_LO);
    }

    vDisableWB(FSMENU_OSD_WBIDX_BASIC);
    vDisableWB(FSMENU_OSD_WBIDX_SEC);
  }
  else if (fgIsCddaPlay())
  {
    _rBookmarkState.bItemType = SV_BOOKMARK_TRACK_ITEM;
    _rBookmarkState.bNoMax = bSharedInfo(SI_TT_NS);
  }
  else
  {
    vSetExitInputState();
    return;
  }

  if (_rBookmarkState.bNoMax == 0)
  {
    _rBookmarkState.bItemType = SV_BOOKMARK_NONE_ITEM;
  }

#ifdef ALL_WB_USE_TRUECOLOR
  vCreateWB(WB_MARK, TRUE);
  vSetWBTcColor(WB_MARK);
#else
  vCreateWB(WB_MARK, FALSE);
#endif
#ifdef FONT_NO_BORDER
  vSetMsgCol4(WB_MARK, 0, 1, 1, 3);
#else
  #ifdef HILI_USE_OSD
    vSetMsgCol4(WB_MARK, 0, 0, 2, 3);
  #else
  vSetMsgCol4(WB_MARK, 0, 1, 2, 3);
#endif
#endif
  vEnableWB(WB_MARK);

  vDrawBorderWB(WB_MARK, 0);
  vOsdPosPaste(OSD_POS_MARK_LABEL, OSD_MSG_BOOKMARK);

  vBookmarkShowList();
  vBookmarkGotoItem(0);
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vBookmarkExit(void) large
{
  vDeleteWB(WB_MARK);
  vOsdPosHili(OSD_POS_HILI_CLEAR, 0, 0);

  /* restore OSD mode */
  vOsdShowWb(OSD_WB_RESTORE);

  if (fgIsIsoPlay())
  {
#ifdef SUPPORT_DATA_DISC
  #ifdef PLAYER_FLMENU
    vFlRecover();
  #else
    vFsMenuRecoverMenus();
  #endif
#endif
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
BOOL fgBookmarkState(void) large
{
  BOOL fgRet = TRUE;
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);

  switch (_bIRKey)
  {
#ifdef SUPPORT_DEVMNG
    case IR_MUTE:
    {
      if (bSharedInfo(SI_EMD_ATTACH) || bSharedInfo(SI_MCR_ATTACH) ||
          bSharedInfo(SI_DEVMNG_SWITCH_MODE) != SV_DEVMNG_SWITCH_DEFAULT)
      {
        vSetExitInputState();
        fgRet = FALSE;
      }
      break;
    }
#endif
    case IR_UP:
      if (_rBookmarkState.bCurItemNo >= BOOKMARK_LINE_SIZE)
      {
        vBookmarkGotoItem(_rBookmarkState.bCurItemNo - BOOKMARK_LINE_SIZE);
      }
      break;

    case IR_LEFT:
      if (_rBookmarkState.bCurItemNo > 0)
      {
        vBookmarkGotoItem(_rBookmarkState.bCurItemNo - 1);
      }
      break;

    case IR_RIGHT:
      if (_rBookmarkState.bCurItemNo + 1 < BOOKMARK_NS)
      {
        vBookmarkGotoItem(_rBookmarkState.bCurItemNo + 1);
      }
      break;

    case IR_DOWN:
      if (_rBookmarkState.bCurItemNo + 6 < BOOKMARK_NS)
      {
        vBookmarkGotoItem(_rBookmarkState.bCurItemNo +6 );
      }
      break;

    case IR_ENTER:
    case IR_PLAY:
    case IR_PLAY_ENTER:
    case IR_PLAY_PAUSE:
    {
      /* mark the point or play the marked point */
      if (_rBookmarkState.bCurItemState == BOOKMARK_ITEM_VALID)
      {
        if (fgIsBookmarkItemValid(_rBookmarkState.bCurItemNo))
        {
          vSendUopCmd(UOP_BOOKMARK, SV_BOOKMARK_PLAY, _rBookmarkState.bCurItemNo, 0);
          /* escape bookmark menu */
          vSetExitInputState();
        }
        else
        {
          /* error! */
          _rBookmarkState.bCurItemState = BOOKMARK_ITEM_INVALID;
        }
      }
      else if (_rBookmarkState.bCurItemState == BOOKMARK_ITEM_INVALID)
      {
        if (fgIsDiscPlay(bPbcState)) /* only in play state could mark */
        {
          vSendUopCmd(UOP_BOOKMARK, SV_BOOKMARK_MARK, _rBookmarkState.bCurItemNo, 0);
        }
        /* don't update the item state here */
      }
      break;
    }

    case IR_CLEAR:
    {
      if (_rBookmarkState.bCurItemState == BOOKMARK_ITEM_VALID)
      {
        _rBookmarkState.bCurItemState = BOOKMARK_ITEM_INVALID;
        vSendUopCmd(UOP_BOOKMARK, SV_BOOKMARK_CLEAR, _rBookmarkState.bCurItemNo, 0);
      }
      break;
    }

    case IR_MARK:
    {
      /* escape bookmark menu */
      vSetExitInputState();
      break;
    }

    default:
    {
      if (fgIsAVContrlKey(_bIRKey))
      {
        /* pass the A/V control key */
        fgRet = FALSE;
      }
      break;
    }
  } /* switch (_bIRKey) */

  return (fgRet);
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vBookmarkUpdate(void) large
{
  if (fgIsInputStateValid(INPUT_STATE_BOOKMARK))
  {
    vBookmarkShowList();
    vBookmarkGotoItem(_rBookmarkState.bCurItemNo);
  }
}

#else /* PLAYER_BOOKMARK dummy function */

void vBookmarkInit(BYTE fgInit) large { return; }
BOOL fgBookmarkState(void) large { return (FALSE); }
void vBookmarkExit(void) large { return; }

void vBookmarkReset(void) large { return; }
void vBookmarkUpdate(void) large { return; }

  #ifdef PLAYER_DIGEST
BOOL fgIsBookmarkItemValid(BYTE bCurItem) large { return (FALSE); }
  #endif

#endif /* PLAYER_BOOKMARK */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人快播电影网| 成人性生交大合| 亚洲电影一级片| 亚洲欧美国产毛片在线| 国产精品久久久久久亚洲毛片| 久久精品网站免费观看| 国产午夜精品理论片a级大结局 | 国产精品久久久久久久久搜平片 | 国产传媒久久文化传媒| 老司机精品视频线观看86| 久久精品免费观看| 国产一区在线观看视频| 国产一区二区三区av电影| 国产成人丝袜美腿| 91色乱码一区二区三区| 欧美日韩一本到| 欧美一区二区三区视频免费播放 | 中文字幕一区在线观看| 亚洲美女偷拍久久| 亚洲成人www| 精品午夜久久福利影院| 国产精品夜夜嗨| 成人国产精品免费观看| 91成人看片片| 欧美一区二区美女| 久久久久久久久久久电影| 亚洲欧洲日韩在线| 亚洲va欧美va人人爽| 久久激五月天综合精品| 精品人在线二区三区| 国产网站一区二区三区| 亚洲日本欧美天堂| 日本不卡在线视频| 国产成人综合网站| 欧美视频第二页| 欧美一区二区在线播放| 国产午夜精品福利| 亚洲制服丝袜av| 蜜臀久久久久久久| 99视频精品全部免费在线| 欧美色区777第一页| 2021久久国产精品不只是精品| 亚洲婷婷在线视频| 免费的国产精品| 99精品欧美一区二区三区小说| 欧美人与z0zoxxxx视频| 国产欧美一区二区精品仙草咪| 亚洲黄一区二区三区| 久久91精品久久久久久秒播| youjizz国产精品| 91精品国产综合久久小美女| 中文在线资源观看网站视频免费不卡 | 亚洲天堂av一区| 精品在线观看免费| 色婷婷综合久久久久中文| 欧美一区二区福利在线| 亚洲人成在线观看一区二区| 免费在线欧美视频| 日本精品一级二级| 国产午夜精品美女毛片视频| 日本一不卡视频| 成人禁用看黄a在线| 日韩欧美卡一卡二| 亚洲永久精品大片| www.欧美.com| 久久久久久久性| 日韩精品亚洲专区| 日本国产一区二区| 欧美国产日韩亚洲一区| 麻豆91在线看| 欧美日韩精品福利| 亚洲美女区一区| 成人一区二区三区中文字幕| 精品国产污污免费网站入口| 亚洲福利电影网| av不卡免费电影| 日本一区二区电影| 激情成人综合网| 欧美一二三区精品| 亚洲电影中文字幕在线观看| 欧美精品一区视频| 天天综合日日夜夜精品| 在线一区二区三区做爰视频网站| 久久久久国产精品麻豆ai换脸| 天天影视色香欲综合网老头| 欧美在线影院一区二区| 18欧美亚洲精品| aaa欧美日韩| 中文字幕在线不卡国产视频| 成人做爰69片免费看网站| 久久久噜噜噜久噜久久综合| 韩国欧美国产1区| 欧美tickling挠脚心丨vk| 青娱乐精品在线视频| 欧美日韩国产电影| 丝袜亚洲另类欧美综合| 欧美男人的天堂一二区| 亚洲成人tv网| 3d动漫精品啪啪一区二区竹菊 | av资源网一区| 国产精品天干天干在观线| 国产69精品久久久久777| 国产亚洲成aⅴ人片在线观看| 国产乱淫av一区二区三区 | 欧美a一区二区| 欧美一区二区视频在线观看2020 | 日日摸夜夜添夜夜添国产精品| 欧美性一区二区| 日韩中文字幕不卡| 欧美一级精品在线| 久久国产精品色婷婷| 久久久.com| 成人黄动漫网站免费app| 中文字幕一区二区在线观看| 色综合欧美在线视频区| 亚洲国产三级在线| 日韩欧美综合一区| 国产一区二区福利| 国产欧美日本一区视频| 91在线观看下载| 亚洲美女视频在线观看| 欧美日韩在线不卡| 麻豆91小视频| 中文字幕av一区二区三区免费看| eeuss鲁一区二区三区| 亚洲激情在线激情| 91精品国产综合久久精品麻豆 | 日本道色综合久久| 成人黄色电影在线| 一区二区三区不卡视频| 欧美情侣在线播放| 国产一区二区在线免费观看| 国产精品你懂的在线| 在线免费不卡视频| 日本欧美一区二区在线观看| 久久精品男人天堂av| 91蝌蚪国产九色| 日韩av一区二区在线影视| 久久蜜臀精品av| 91丨九色porny丨蝌蚪| 日韩成人免费电影| 国产蜜臀av在线一区二区三区| 在线观看视频一区| 久久成人免费电影| 亚洲私人黄色宅男| 日韩欧美在线观看一区二区三区| 成人免费视频caoporn| 亚洲成a人片在线不卡一二三区| 久久亚洲二区三区| 欧美性生活一区| 国产成人免费在线观看不卡| 亚洲一卡二卡三卡四卡| 国产清纯白嫩初高生在线观看91| 91高清在线观看| 韩国v欧美v亚洲v日本v| 亚洲一区二区三区四区五区黄| 337p日本欧洲亚洲大胆精品| 欧美色精品在线视频| 高清国产一区二区| 99久久免费精品| 久久99久久99| 一区二区在线观看视频在线观看| 久久综合久久久久88| 欧美日韩在线免费视频| 99久久婷婷国产综合精品电影 | 欧美日产在线观看| 成人免费毛片app| 人人狠狠综合久久亚洲| 亚洲一区二区视频在线观看| 国产欧美一区二区精品久导航| 欧美一区二区三区日韩视频| 91老司机福利 在线| 国产成人亚洲综合a∨婷婷图片| 日韩制服丝袜先锋影音| 一区二区三区在线观看国产| 中文字幕精品一区| 久久这里只有精品首页| 欧美久久免费观看| 色综合天天做天天爱| 国产高清不卡一区二区| 麻豆精品视频在线观看免费| 亚洲不卡一区二区三区| 亚洲免费资源在线播放| 国产欧美日韩久久| 久久麻豆一区二区| 日韩一区二区三区精品视频| 欧美日韩在线三级| 在线欧美一区二区| 91女厕偷拍女厕偷拍高清| 成人av免费在线观看| 国产ts人妖一区二区| 在线成人免费视频| 91国产成人在线| 91极品视觉盛宴| 91激情五月电影| 欧美午夜免费电影| 欧美性一级生活| 欧美日韩在线播放一区| 欧美三区在线观看| 欧美视频一区二区三区四区|