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

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

?? selmenu.c

?? mtk1389L latest sourcecode enjoy
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/**********************************************************************/
/***************    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 :

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人精品在线| 国内成人免费视频| 欧美午夜免费电影| 一区二区三区资源| 色狠狠综合天天综合综合| 亚洲天堂福利av| eeuss鲁片一区二区三区在线观看| 久久久久久黄色| 国产成人夜色高潮福利影视| 久久久不卡网国产精品一区| 国产做a爰片久久毛片| 久久综合狠狠综合久久综合88| 久久精品国产精品亚洲综合| 日韩精品一区二区三区swag| 精品一区二区三区av| 久久精品水蜜桃av综合天堂| 狠狠色综合日日| 国产农村妇女毛片精品久久麻豆| 丰满亚洲少妇av| 国产精品高潮呻吟久久| 色综合久久久久综合99| 亚洲影院理伦片| 91麻豆精品国产91久久久久久| 日韩福利视频导航| 久久免费视频一区| 成人污污视频在线观看| 亚洲免费在线观看视频| 欧美日韩久久久| 蜜桃视频一区二区三区在线观看| 2019国产精品| av一区二区久久| 亚洲一区二区高清| 91精品国产综合久久久久久久久久| 青青草97国产精品免费观看| 久久久精品2019中文字幕之3| 99久久伊人网影院| 亚洲香蕉伊在人在线观| 欧美一区二区黄色| 国产高清久久久久| 亚洲免费成人av| 91精品一区二区三区在线观看| 国产一区二区三区香蕉| 亚洲视频网在线直播| 欧美日韩五月天| 国产主播一区二区| 亚洲精品国产无天堂网2021| 欧美一级搡bbbb搡bbbb| 粉嫩aⅴ一区二区三区四区 | 欧美在线影院一区二区| 日韩和欧美一区二区| 久久久精品影视| 在线免费不卡视频| 韩国av一区二区三区四区| 亚洲欧洲色图综合| 欧美一区二区三区在| 成人美女视频在线看| 亚洲国产另类精品专区| 久久午夜电影网| 欧美性感一类影片在线播放| 精品在线你懂的| 亚洲电影激情视频网站| 日本特黄久久久高潮 | 久久精品国内一区二区三区| 中文字幕一区日韩精品欧美| 欧美撒尿777hd撒尿| 国产一级精品在线| 亚洲一区中文日韩| 国产网红主播福利一区二区| 精品视频色一区| 国产成人福利片| 日韩中文字幕区一区有砖一区| 国产精品热久久久久夜色精品三区| 欧美日韩国产在线播放网站| 床上的激情91.| 日本欧美加勒比视频| 亚洲欧洲成人自拍| 欧美一区二区三区公司| 99精品在线免费| 国内偷窥港台综合视频在线播放| 一区二区三区美女| 欧美国产1区2区| 欧美本精品男人aⅴ天堂| 色诱亚洲精品久久久久久| 国产美女娇喘av呻吟久久| 亚洲国产精品久久久男人的天堂 | 亚洲伊人色欲综合网| 国产免费成人在线视频| 日韩欧美123| 欧美视频精品在线观看| 成人一级视频在线观看| 日本 国产 欧美色综合| 一区二区三区欧美久久| 中文字幕+乱码+中文字幕一区| 日韩精品专区在线| 欧美区在线观看| 99精品偷自拍| 成人a免费在线看| 国产一区二区伦理片| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲一区二区在线免费看| 亚洲欧美影音先锋| 欧美高清在线精品一区| www国产精品av| 日韩一级二级三级| 欧美精品 国产精品| 色94色欧美sute亚洲线路二 | 欧美体内she精视频| 99re视频这里只有精品| 粉嫩久久99精品久久久久久夜| 九九**精品视频免费播放| 婷婷开心激情综合| 亚洲成人精品一区二区| 亚洲国产精品久久久久秋霞影院| 亚洲男人的天堂在线观看| 日韩美女视频一区二区| 亚洲欧洲av在线| 国产精品国产三级国产aⅴ入口| 久久你懂得1024| 久久久另类综合| 久久免费精品国产久精品久久久久| 欧美成人精品二区三区99精品| 8x8x8国产精品| 日韩一区二区三区四区| 日韩视频一区二区三区在线播放 | 欧美一级生活片| 91精品国产一区二区人妖| 4438亚洲最大| 日韩精品自拍偷拍| 2023国产精品| 日本一区二区三区高清不卡 | 国产精品三级电影| 欧美国产日韩在线观看| 国产精品麻豆视频| 亚洲免费伊人电影| 亚洲一区二区三区四区中文字幕| 94色蜜桃网一区二区三区| av亚洲产国偷v产偷v自拍| 91在线视频播放地址| 在线观看日产精品| 欧美色图天堂网| 欧美一区二区三区免费在线看| 日韩免费电影网站| 国产亚洲精品精华液| 中文字幕一区免费在线观看| 综合婷婷亚洲小说| 亚洲一级二级三级在线免费观看| 五月综合激情日本mⅴ| 久久99国产精品免费网站| 国产麻豆精品视频| av网站一区二区三区| 欧美手机在线视频| 欧美一区二区三区四区高清| 欧美成人aa大片| 国产精品色婷婷久久58| 一区二区三区欧美在线观看| 三级久久三级久久久| 国产一区二区免费看| 91小视频免费观看| 欧美精品欧美精品系列| 精品久久国产97色综合| 国产精品天天看| 亚洲成人在线免费| 国产一区二区三区综合| 91一区二区在线| 91精品国产综合久久久蜜臀粉嫩| 久久综合久久综合九色| 亚洲色图清纯唯美| 日本强好片久久久久久aaa| 国产一区二区视频在线| 色综合网色综合| 宅男在线国产精品| 国产精品乱码久久久久久| 亚洲精品免费看| 久久狠狠亚洲综合| 亚洲一区在线电影| 国产精选一区二区三区| 蜜臀精品一区二区三区在线观看| 亚洲素人一区二区| 亚洲一区二区视频在线| 蜜桃精品在线观看| 老司机免费视频一区二区三区| 99精品视频一区二区| 99久久精品99国产精品| 91精品福利在线一区二区三区| 国产午夜亚洲精品理论片色戒| 一区二区欧美在线观看| 国产精一区二区三区| 一本高清dvd不卡在线观看| 精品久久久久香蕉网| 亚洲欧洲av在线| 久久成人久久鬼色| 在线观看91视频| 亚洲精品日韩综合观看成人91| 国产蜜臀av在线一区二区三区| 亚洲大片精品永久免费| 国产**成人网毛片九色 | 51精品国自产在线| 亚洲欧美中日韩| 久久 天天综合| 欧美探花视频资源|