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

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

?? selmenu.c

?? mtk1389L latest sourcecode enjoy
?? C
?? 第 1 頁 / 共 3 頁
字號:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 07/04/09 11:49a   $       ****************/
/***************  $Revision:: 3                $       ****************/
/***************                                       ****************/
/***************   Description : Program State         ****************/
/***************                 Machine               ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer : Sung-Ching Lin        ****************/
/**********************************************************************/

#include "general.h"

#pragma NOAREGS

#ifdef PLAYER_PROGRAM

#define PROGRAM_KEY_EXIT
#define PROGRAM_STOP_CLEAR

// *********************************************************************
// Local Define
// *********************************************************************
/* for program state */
enum {
  PROG_STATE_EXIT,
  PROG_STATE_SELECT,
  PROG_STATE_PREV,
  PROG_STATE_NEXT,
  PROG_STATE_START_STOP,
  PROG_STATE_INPUT,
  PROG_STATE_INPUT_1
};

#define PROG_ITEM_TYPE_TIME     0
#define PROG_ITEM_TYPE_TT_CH    1

typedef struct structSelMenu
{
  /* BYTE 1 */
  BYTE bState:3;
  BYTE bHili:4;
  BYTE bPage:1;
  /* BYTE 2 */
  BYTE bSelNoValid:4;
  BYTE fgPrevValid:1;
  BYTE fgNextValid:1;
  BYTE fgExitValid:1;
  BYTE fgStartStopValid:1;
  /* BYTE 3 */
  BYTE bItemType:1;
  BYTE fgWaitProgStop:1;
  BYTE fgListValid:1;
  BYTE bReserve:5;
  /* BYTE 4 */
  BYTE bSelNoMax;
} strucSelMenu;

static xdata strucSelMenu _rSelMenu;

static code BYTE pbSelMenuHiliState[14] = {
  PROG_STATE_SELECT,      /*  0 */
  PROG_STATE_SELECT,      /*  1 */
  PROG_STATE_SELECT,      /*  2 */
  PROG_STATE_SELECT,      /*  3 */
  PROG_STATE_SELECT,      /*  4 */
  PROG_STATE_SELECT,      /*  5 */
  PROG_STATE_SELECT,      /*  6 */
  PROG_STATE_SELECT,      /*  7 */
  PROG_STATE_SELECT,      /*  8 */
  PROG_STATE_SELECT,      /*  9 */
  PROG_STATE_PREV,        /* 10 */
  PROG_STATE_EXIT,        /* 11 */
  PROG_STATE_START_STOP,  /* 12 */
  PROG_STATE_NEXT         /* 13 */
};

#define bSelMenuHiliState(bHili) (pbSelMenuHiliState[bHili])

#ifdef HILI_USE_OSD
BYTE _bSelMenuFromStop;
#endif /* HILI_USE_OSD */
// *********************************************************************
// Macros
// *********************************************************************
BYTE bSelMenuHiliItemNo(BYTE bPage, BYTE bHili) large
{
  BYTE bSelNo;

  bSelNo = bPage * SELMENU_PAGE_SIZE;

  if (bHili >= SELMENU_PAGE_SIZE)
  {
    bSelNo += (SELMENU_PAGE_SIZE - 1);
  }
  else
  {
    bSelNo += bHili;
  }
  
  return (bSelNo);
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vSelMenuReset(void) large
{
  vSetSharedInfo(SI_USR_PROGRAM_TYPE, SV_PROGRAM_NONE_ITEM);
  /* vSetSharedInfo(SI_USR_PROGRAM_NO, 0); */
  vSetSharedInfo(SI_USR_PROGRAM_NS, 0);
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
BYTE bSelMenuReadItem(BYTE bItemIdx, BYTE *pbTime) large
{
  if (bItemIdx >= SV_PROGRAM_MAX_ITEM)
  {
    return (0);
  }

  if (pbTime != 0)
  {
    pbTime[0] = bSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE + 1);
    pbTime[1] = bSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE + 2);
    pbTime[2] = bSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE + 3);
  }

  return (bSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE));
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static void vSelMenuSetItem(BYTE bItemIdx, BYTE bSelNo, BYTE *pbTime) large
{
  if (bItemIdx >= SV_PROGRAM_MAX_ITEM)
  {
    return;
  }

  vSetSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE, bSelNo);

  if (pbTime != 0)
  {
    vSetSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE + 1, pbTime[0]);
    vSetSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE + 2, pbTime[1]);
    vSetSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE + 3, pbTime[2]);
  }
  else
  {
    vSetSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE + 1, 0);
    vSetSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE + 2, 0);
    vSetSharedInfo(SI_USR_PROGRAM_ITEM_1 + bItemIdx * SV_PROGRAM_ITEM_SIZE + 3, 0);
  }

  
  /* notify here ? */
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static void vSelMenuResetItem(void) large
{
  BYTE i;

  vSetSharedInfo(SI_USR_PROGRAM_NS, 0);
  vSetSharedInfo(SI_USR_PROGRAM_NO, 0);

  for (i = 0; i < SV_PROGRAM_MAX_ITEM; i++)
  {
    /* clear all item's slected number to 0 */
    vSetSharedInfo(SI_USR_PROGRAM_ITEM_1 + i * SV_PROGRAM_ITEM_SIZE, 0);
  }

  _rSelMenu.fgListValid = FALSE;
}

// *********************************************************************
// Function : void vSelMenuShowBar(void) large
// Description :
// Parameter : 
// Return    : None
// Note      : 
// *********************************************************************
static void vSelMenuShowBar(void) large
{
  BYTE bStartStop;

  if (bSharedInfo(SI_USR_PBC_CTRL) == SV_PROGRAM)
  {
    bStartStop = SV_PROGRAM_STOP;
  }
  else
  {
    bStartStop = SV_PROGRAM_START;
  }

  vOsdPosPaste(OSD_POS_PROG_BAR_2, OSD_MSG_EXIT);
#ifdef HILI_USE_OSD
  if (_bSelMenuFromStop == 0x77 && !_rSelMenu.fgListValid)
  {
	  vOsdPosHili(OSD_POS_HILI_SHOW, OSD_POS_PROG_BAR_2, 0);
	  _bSelMenuFromStop = 0;
  }
#endif /* HILI_USE_OSD */
  _rSelMenu.fgExitValid = TRUE; /* always valid */
  
  if (_rSelMenu.bPage > 0)
  {
    vOsdPosPaste(OSD_POS_PROG_BAR_1, OSD_MSG_PREV_PAGE);
    _rSelMenu.fgPrevValid = TRUE;
  }
  else
  {
    vOsdPosClear(OSD_POS_PROG_BAR_1);
    _rSelMenu.fgPrevValid = FALSE;
  }

  if (_rSelMenu.bPage < SELMENU_PAGE_NS - 1)
  {
    vOsdPosPaste(OSD_POS_PROG_BAR_4, OSD_MSG_NEXT_PAGE);
    _rSelMenu.fgNextValid = TRUE;
  }
  else
  {
    vOsdPosClear(OSD_POS_PROG_BAR_4);
    _rSelMenu.fgNextValid = FALSE;
  }

  vOsdPosClear(OSD_POS_PROG_BAR_3);
  if ((bSharedInfo(SI_USR_PROGRAM_NS) > 0) &&
      (bSharedInfo(SI_USR_PROGRAM_TYPE) != SV_PROGRAM_NONE_ITEM))
  {
    if (bStartStop == SV_PROGRAM_START)
    {
      vOsdPosPaste(OSD_POS_PROG_BAR_3, OSD_MSG_START);
    }
    else /* if (bStartStop == SV_PROGRAM_STOP) */
    {
      vOsdPosPaste(OSD_POS_PROG_BAR_3, OSD_MSG_STOP);
    }
    _rSelMenu.fgStartStopValid = TRUE;
  }
  else
  {
    _rSelMenu.fgStartStopValid = FALSE;
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
BYTE bSelMenuGetBarNextValid(BYTE bCurrState) large
{
  BYTE bState;
  
  switch (bCurrState)
  {
    case PROG_STATE_SELECT:
      if (_rSelMenu.fgPrevValid)
      {
        bState = PROG_STATE_PREV;
        break;
      }
    case PROG_STATE_PREV:
      if (_rSelMenu.fgExitValid)
      {
        bState = PROG_STATE_EXIT;
        break;
      }
    case PROG_STATE_EXIT:
      if (_rSelMenu.fgStartStopValid)
      {
        bState = PROG_STATE_START_STOP;
        break;
      }
    case PROG_STATE_START_STOP:
      if (_rSelMenu.fgNextValid)
      {
        bState = PROG_STATE_NEXT;
        break;
      }      
    case PROG_STATE_NEXT:
    default:
      bState = PROG_STATE_SELECT;
      break;
  }

  return (bState);
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
BYTE bSelMenuGetBarPrevValid(BYTE bCurrState) large
{
  BYTE bState;
  
  switch (bCurrState)
  {
    case PROG_STATE_SELECT:
      if (_rSelMenu.fgNextValid)
      {
        bState = PROG_STATE_NEXT;
        break;
      }
    case PROG_STATE_NEXT:
      if (_rSelMenu.fgStartStopValid)
      {
        bState = PROG_STATE_START_STOP;
        break;
      }
    case PROG_STATE_START_STOP:
      if (_rSelMenu.fgExitValid)
      {
        bState = PROG_STATE_EXIT;
        break;
      }
    case PROG_STATE_EXIT:
      if (_rSelMenu.fgPrevValid)
      {
        bState = PROG_STATE_PREV;
        break;
      }
    case PROG_STATE_PREV:
    default:
      bState = PROG_STATE_SELECT;
      break;
  }

  return (bState);
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static void vSelMenuShowPage(BYTE bPageIdx, BYTE bHeader) large
{
  BYTE i;
  BYTE bTmp = bSharedInfo(SI_USR_PROGRAM_TYPE);
  BYTE pbTime[3];

  if (bPageIdx >= SELMENU_PAGE_NS)
  {
    return;
  }

  if (bHeader)
  {
    bHeader = OSD_PROG_ITEM_HEADER;
  }
  else
  {
    bHeader = OSD_PROG_ITEM_NORMAL;
  }

  if (bTmp == SV_PROGRAM_NONE_ITEM)
  {
    for(i = bPageIdx * SELMENU_PAGE_SIZE; i < (bPageIdx + 1) * SELMENU_PAGE_SIZE; i++)
    {
      if (_rSelMenu.bItemType == PROG_ITEM_TYPE_TT_CH)
      {
         vOsdShowProgItemTtCh(i, bHeader, 0, 0);
      }
      else /* if (_rSelMenu.bItemType == PROG_ITEM_TYPE_TIME) */
      {
        vOsdShowProgItemTime(i, bHeader, 0, 0);
      }
    }
  }
  else
  {
    for(i = bPageIdx * SELMENU_PAGE_SIZE; i < (bPageIdx + 1) * SELMENU_PAGE_SIZE; i++)
    {
      bTmp = bSelMenuReadItem(i, pbTime);
      
      if (_rSelMenu.bItemType == PROG_ITEM_TYPE_TT_CH)
      {
        if ((bTmp > 0) && (bTmp <= _rSelMenu.bSelNoMax) &&
            (pbTime[0] <= bSharedInfo(SI_DVD_TT_CH + bTmp - 1)))
        {
          vOsdShowProgItemTtCh(i, bHeader, bTmp, pbTime[0]);
        }
        else
        {
          vOsdShowProgItemTtCh(i, bHeader, 0, 0);
        }
      }
      else /* if (_rSelMenu.bItemType == PROG_ITEM_TYPE_TIME) */
      {
        if ((bTmp > 0) && (bTmp <= _rSelMenu.bSelNoMax))
        {
          if ((pbTime[0] <= 9) && (bBCDToHEX(pbTime[1]) <= 59) &&
                                  (bBCDToHEX(pbTime[2]) <= 59))
          {
            vOsdShowProgItemTime(i, bHeader, bTmp, pbTime);
          }
          else
          {
            vOsdShowProgItemTime(i, bHeader, bTmp, 0);
          }
        }
        else
        {
          vOsdShowProgItemTime(i, bHeader, 0, 0);
        }
      } /* _rSelMenu.bItemType */
    }
  }

  vSelMenuShowBar();
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static void vSelMenuGotoBar(BYTE bState) large
{ 
#ifdef HILI_USE_OSD
  // - Clear all item.
  vOsdPosHili(OSD_POS_HILI_CLEAR, OSD_POS_PROG_ITEM_1, 0);
#endif    
  switch (bState)
  {
    case PROG_STATE_EXIT:
      vOsdPosHili(OSD_POS_HILI_SHOW, OSD_POS_PROG_BAR_2, 0);
      break;
    
    case PROG_STATE_PREV:
      vOsdPosHili(OSD_POS_HILI_SHOW, OSD_POS_PROG_BAR_1, 0);
      break;

    case PROG_STATE_NEXT:
      vOsdPosHili(OSD_POS_HILI_SHOW, OSD_POS_PROG_BAR_4, 0);
      break;

    case PROG_STATE_START_STOP:
      vOsdPosHili(OSD_POS_HILI_SHOW, OSD_POS_PROG_BAR_3, 0);
      break;
          
    case PROG_STATE_SELECT:
    case PROG_STATE_INPUT:
    case PROG_STATE_INPUT_1:
    default:
      break;
  }

  _rSelMenu.bState = bState;
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static void vSelMenuGotoItem(BYTE bItemIdx) large
{
  BYTE bPage;
  
  if (bItemIdx >= (SELMENU_PAGE_SIZE * SELMENU_PAGE_NS))
  {
    return;
  }

  bPage = 0;

  while (bItemIdx >= SELMENU_PAGE_SIZE)
  {
    bItemIdx -= SELMENU_PAGE_SIZE;
    bPage++;
  }

  if (bPage != _rSelMenu.bPage)
  {
    _rSelMenu.bPage = bPage;
    vSelMenuShowPage(bPage, OSD_PROG_ITEM_HEADER); 
  }

  _rSelMenu.bHili = bItemIdx;
  #ifdef HILI_USE_OSD
  // - Clear all item.
  vOsdPosHili(OSD_POS_HILI_CLEAR, OSD_POS_PROG_ITEM_1, 0);
  #endif
  vOsdPosHili(OSD_POS_HILI_SHOW, OSD_POS_PROG_ITEM_1 + bItemIdx, 0);

  _rSelMenu.bState = bSelMenuHiliState(_rSelMenu.bHili);
}

// *********************************************************************
// Function :
// Description :
// Parameter :

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区免费网站| 丁香激情综合国产| 日本韩国欧美在线| 中文字幕一区av| 丁香啪啪综合成人亚洲小说 | 色天天综合久久久久综合片| 欧美国产一区在线| 91碰在线视频| 亚洲国产日韩a在线播放| 欧美高清一级片在线| 亚州成人在线电影| 久久免费电影网| 成人h版在线观看| 水野朝阳av一区二区三区| 日韩欧美电影一区| 成人美女视频在线观看18| 综合久久给合久久狠狠狠97色 | 555夜色666亚洲国产免| 欧美美女一区二区三区| 久久国产精品99久久人人澡| 精品国产91亚洲一区二区三区婷婷| 国产精品一区二区在线播放| 国产精品精品国产色婷婷| 精品福利视频一区二区三区| 久久综合色播五月| 狠狠色2019综合网| 亚洲综合激情网| 亚洲国产va精品久久久不卡综合| 免费看日韩精品| 成人性视频免费网站| 成人精品一区二区三区中文字幕 | 欧美在线一区二区三区| 欧美videossexotv100| 国产欧美一区二区精品婷婷| 亚洲综合久久久| 国产裸体歌舞团一区二区| 欧美性三三影院| 日本一区二区三级电影在线观看 | 日韩一区二区三区免费看 | 制服丝袜在线91| 国产精品福利一区| 国产专区欧美精品| 欧美丰满美乳xxx高潮www| 国产精品色眯眯| 国产一区二区在线观看视频| 欧美精品丝袜久久久中文字幕| 国产精品美女久久久久av爽李琼 | 国产成人综合自拍| 欧美喷潮久久久xxxxx| 亚洲午夜羞羞片| 97se亚洲国产综合在线| 中文字幕在线免费不卡| 国产一区在线不卡| 精品国产一区二区三区不卡| 三级亚洲高清视频| 欧美亚洲一区二区在线观看| 亚洲欧美日韩国产手机在线| 91美女在线视频| 亚洲视频你懂的| 99re66热这里只有精品3直播| 国产精品久久国产精麻豆99网站| 国产麻豆精品一区二区| 久久亚洲春色中文字幕久久久| 国内精品写真在线观看| 国产女人18水真多18精品一级做| 国产suv精品一区二区6| 欧美激情艳妇裸体舞| 99热这里都是精品| 亚洲尤物在线视频观看| 欧美一二三四在线| 国产成人精品www牛牛影视| 亚洲国产精华液网站w| 91一区二区在线观看| 亚洲一区二区精品视频| 日韩欧美一二三四区| 国产馆精品极品| 一区二区免费视频| 欧美成人午夜电影| av亚洲精华国产精华| 亚洲国产成人va在线观看天堂| 日韩一级完整毛片| 国产精一区二区三区| 亚洲午夜日本在线观看| 精品久久久影院| 在线一区二区视频| 久久疯狂做爰流白浆xx| 欧美国产乱子伦| 欧美一区二区在线观看| 国产suv一区二区三区88区| 亚洲国产一区在线观看| 精品国产不卡一区二区三区| 色婷婷狠狠综合| 成人午夜精品在线| 蜜桃视频在线观看一区二区| 亚洲天堂精品视频| 国产午夜精品在线观看| 亚洲精品一区二区三区在线观看 | 狠狠v欧美v日韩v亚洲ⅴ| 一区二区三区.www| 国产精品久久久久久户外露出| 亚洲精品一区二区三区在线观看| 91丨九色丨尤物| 成人午夜私人影院| 国产91丝袜在线播放0| 蜜臀av性久久久久av蜜臀妖精| 一区二区三区四区av| 亚洲视频免费观看| 亚洲天堂免费看| 亚洲色图欧美在线| 最新欧美精品一区二区三区| 中文字幕精品一区二区精品绿巨人 | 欧美一区二区国产| 欧美一区午夜精品| 日韩视频免费直播| 精品国产乱码久久久久久夜甘婷婷| 欧美日韩高清一区二区| 欧美美女一区二区三区| 91精品免费在线观看| 日韩欧美另类在线| 久久久不卡影院| 国产精品麻豆欧美日韩ww| 成人欧美一区二区三区| 亚洲一二三专区| 亚洲风情在线资源站| 尤物av一区二区| 天天影视涩香欲综合网| 久久精品72免费观看| 国产成人久久精品77777最新版本| 成人深夜在线观看| 精品视频一区 二区 三区| 日韩小视频在线观看专区| 国产喂奶挤奶一区二区三区| 亚洲精品视频在线看| 免费xxxx性欧美18vr| 国产91富婆露脸刺激对白| 在线欧美日韩国产| 久久久久久影视| 亚洲成av人片| 成人动漫一区二区三区| 制服丝袜日韩国产| 中文字幕一区二区三区视频 | 欧美一区二区日韩| 国产精品久久久久久久久免费相片 | 亚洲不卡av一区二区三区| 国产一区二区三区免费播放| 精品视频资源站| 亚洲欧美一区二区三区国产精品| 日韩va亚洲va欧美va久久| 色美美综合视频| 国产精品久久久久婷婷| 激情欧美一区二区三区在线观看| 在线观看亚洲精品视频| 中文字幕亚洲视频| 国产电影一区在线| 欧美精品一区二区三区高清aⅴ | 亚洲一区二区av在线| 色婷婷综合久久久| 国产精品美女视频| 日韩av一区二区在线影视| 亚洲午夜日本在线观看| 国产成人av福利| 中文字幕一区二区三区不卡| 欧美日韩精品二区第二页| 九九九久久久精品| 中文字幕一区在线观看视频| 欧美日韩中字一区| 日韩精品国产精品| 日韩一区和二区| 国产资源在线一区| 国产精品拍天天在线| 成人黄色大片在线观看| 伊人色综合久久天天人手人婷| 精品视频在线免费看| 美腿丝袜亚洲三区| 久久精品欧美日韩| 成人三级伦理片| 亚洲成人免费在线| 26uuu色噜噜精品一区| 99精品视频在线观看| 午夜精品一区二区三区免费视频| 欧美一区二区在线看| 国产精品资源网| 亚洲不卡一区二区三区| 国产日产欧美一区| 欧美三级电影网站| 成人一区二区三区视频在线观看| 一区二区三区四区激情| 欧美丰满少妇xxxxx高潮对白| 黄色日韩网站视频| 日韩和欧美一区二区| 亚洲男人的天堂在线aⅴ视频| 久久综合色综合88| 日韩欧美久久久| 欧美美女网站色| 色偷偷一区二区三区| 国产999精品久久久久久| 精品一区二区三区免费毛片爱| 亚洲第一福利一区| 亚洲精品老司机| 亚洲女性喷水在线观看一区|