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

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

?? tst.c

?? mtk1389L latest sourcecode enjoy
?? C
字號:
/*
 *      $(CUSTOM_DEMO)/tst/tst.c
 *
 *      Module: Tester
 */
#include "../general.h"

#ifdef MT8302_MANUFACTURE_TEST
#include "../fslist/flcmd.h"
#include "../fslist/flcomm.h"
#include "tst.h"


/*
 *  Internal definition
 */
#define TST_LAST_CARD_NO    2
#define TST_VER_NO          '0', '1'
#define TST_END_PROMPT_STR  {16, 'M', 'T', '8', '3', '0', '2', ' ', \
                                 'T', 'e', 's', 't', ' ', 'D', 'o', 'n', 'e'}
#define TST_VERSION_STR {7, 'V', 'E', 'R', ':', ' ', TST_VER_NO}


/*
 *  Enumerator of tester::state
 */
enum {
  TST_STT_INIT,     /* tester is just inited */
  TST_STT_READY,    /* tester is ready to trigger next play */
  TST_STT_PLAYING,  /* testing item is under playing */
  TST_STT_END       /* test is done */
};


/*
 *  Member declaration
 */
static BYTE xdata _bTstKey;     /* tester::key */
static BYTE xdata _bTstState;   /* tester::state */
static BYTE xdata _bTstCardNo;  /* tester::card_counter */


/*
 *  Internal method
 */

#define TST_INT_KEY_ISSUE(key)  {_bTstKey = key;}
#define TST_INT_KEY_CLEAR       {_bTstKey = IR_NONE;}
#define TST_IS_KEY_PENDING      fgFlClIsLock()
#define TST_KEEP_PLAYING_TIME   5   /* in sec */

#if 0
/**
 *  tester::begine_prompt
 */
static void vTstBeginPrompt(void) large
{
  return;
}
#endif //0

/**
 *  tester::end_prompt
 */
static void vTstEndPrompt(void) large
{
  BYTE pbStr[] = TST_END_PROMPT_STR;
  BYTE pbStr1[] = TST_VERSION_STR;
               
  /* disable the file menu */
  wFlMnLeave(FALSE);

  /* show the message */
  vCreateWB(WB_SELMENU, TRUE);
  vSetWBTcColor(WB_SELMENU);

  vSetTcPal(WB_SELMENU, 2, BLEND_3, TRUECOLOR_BLUE);
  vSetTcPal(WB_SELMENU, 0, BLEND_3, TRUECOLOR_BLUE);
  vSetMsgCol4(WB_SELMENU, 0, 2, 2, 3);
  vOsdShowStrXY(160, 65, WB_SELMENU, pbStr);
  vOsdShowStrXY(210, 115, WB_SELMENU, pbStr1);
  vEnableWB(WB_SELMENU);

  return;
}

/**
 *  tester::evthdr_on_enter_item
 *
 *  des:
 *  redraw screen is done
 *  @tester_state_inited:
 *      press IR_PROGRAM to switch to disc list, ->tester_state_ready
 *  @tester_state_ready:
 *      press IR_ENTER to play the first item, ->tester_state_playing
 *  @tester_state_playing:
 *      press IR_DOWN to next item ->tester_state_ready
 */
static void vTstEvtHdrOnEnterItem(BYTE bArg1, BYTE bArg2, BYTE bArg3) large
{
  switch (_bTstState) {
  case TST_STT_INIT:
    _bTstKey = IR_PROGRAM;
    _bTstState = TST_STT_READY;
    break;
  case TST_STT_READY:
    TST_INT_KEY_ISSUE(IR_ENTER);
    _bTstState = TST_STT_PLAYING;
    break;
  case TST_STT_PLAYING:
    TST_INT_KEY_ISSUE(IR_DOWN);
    _bTstState = TST_STT_READY;
    break;
  default:
    /* exception handle */
    break;
  }

  return;
}

/**
 *  tester::evthdr_on_play_item_done
 *
 *  des:
 *  play item is done.
 *  @tester_state_playing:
 *      press IR_DOWN to next item. ->tester_state_ready
 */
static void vTstEvtHdrOnPlayItemDone(BYTE bArg1, BYTE bArg2, BYTE bArg3) large
{
  switch (_bTstState) {
  case TST_STT_PLAYING:
    TST_INT_KEY_ISSUE(IR_DOWN);
    _bTstState = TST_STT_READY;
    break;
  default:
    /* exception handle */
    break;
  }

  return;
}

/**
 *  tester::evthdr_on_no_more_item
 *
 *  des:
 *  there is no more item on this card
 *  @ current card is not the last one.
 *      press IR_MUTE to switch to next card, ->tester_state_inited
 *  @ current card is the last one.
 *      show the ending prompt.
 */
static void vTstEvtHdrOnNoMoreItem(BYTE bArg1, BYTE bArg2, BYTE bArg3) large
{
  if (_bTstCardNo < TST_LAST_CARD_NO) {
    /* there is some more item, move to next card */
    _bTstCardNo ++;
    TST_INT_KEY_ISSUE(IR_MUTE);
    _bTstState = TST_STT_INIT;
  } else {
    /* on the last card, testing is done */
    vTstEndPrompt();
  }

  return;
}

/**
 *  tester::evthdr_on_playing_time_update
 *
 *  des:
 *  the playing time is updated.
 *  @tester_state_playing
 *      check if we have to change to stop the current playback.
 */
static void vTstEvtHdrOnPlayingTimeUpdate(BYTE bArg1, BYTE bArg2, BYTE bArg3) large
{
  switch (_bTstState) {
  case TST_STT_PLAYING:
    if (bArg3 > TST_KEEP_PLAYING_TIME) {    /* we consider second only */
      TST_INT_KEY_ISSUE(IR_STOP);
    }
    break;
  default:
    break;
  }
  return;
}


/*
 *  Exported interfaces
 */

/**
 *  tester::init
 *
 *  Init module "Tester"
 */
void vTstInit(void) large
{
#if 0
  vTstBeginPrompt();
#endif //0

  TST_INT_KEY_CLEAR;
  _bTstState = TST_STT_INIT;
  _bTstCardNo = 0;

  return;
}

/**
 *  tester::post_event
 *
 *  Event handler of module "Tester".
 */
void vTstPostEvt(BYTE bEvt, BYTE bArg1, BYTE bArg2, BYTE bArg3) large
{
  switch (bEvt) {
  case TST_EVT_ENTER_ITEM:
    vTstEvtHdrOnEnterItem(bArg1, bArg2, bArg3);
    break;
  case TST_EVT_PLAY_ITEM_DONE:
    vTstEvtHdrOnPlayItemDone(bArg1, bArg2, bArg3);
    break;
  case TST_EVT_NO_MORE_ITEM:
    vTstEvtHdrOnNoMoreItem(bArg1, bArg2, bArg3);
    break;
  case TST_EVT_PLAYING_TIME_UPDATE:
    vTstEvtHdrOnPlayingTimeUpdate(bArg1, bArg2, bArg3);
    break;
  default:
    /* exception handler */
    break;
  }

  return;
}

/**
 *  tester::peek_key
 */
BYTE bTstPeekKey(void) large
{
  if (TST_IS_KEY_PENDING)
    return IR_NONE;
  else
    return _bTstKey;
}

/**
 *  tester::get_key
 */
BYTE bTstGetKey(void) large
{
  BYTE bTmpKey;

  if (TST_IS_KEY_PENDING) {
    return IR_NONE;
  }

  bTmpKey = _bTstKey;
  TST_INT_KEY_CLEAR;

  return bTmpKey;
}
#endif  /* MT8302_MANUFACTURE_TEST */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品综合网| 久久精品国产精品青草| 中文字幕av一区二区三区高 | 亚洲男女毛片无遮挡| 蜜桃91丨九色丨蝌蚪91桃色| 久久综合色婷婷| 成人综合在线视频| 国产色产综合产在线视频| 亚洲精品一二三四区| 91黄色免费版| 日本麻豆一区二区三区视频| 中文字幕成人网| 欧美精品丝袜中出| av不卡一区二区三区| 欧美成人伊人久久综合网| 麻豆视频一区二区| 色婷婷久久综合| 狠狠色狠狠色综合系列| a美女胸又www黄视频久久| 亚洲第一成人在线| 色美美综合视频| 日韩三级视频在线观看| 一本久久精品一区二区| 韩国午夜理伦三级不卡影院| 中文字幕一区不卡| 精品sm在线观看| 在线视频一区二区三区| 中文字幕亚洲不卡| 成人高清伦理免费影院在线观看| 久久久噜噜噜久久人人看| 国产一区视频导航| 久久毛片高清国产| 国产黄色91视频| 国产欧美日韩久久| 成人午夜在线播放| 国产精品天美传媒沈樵| 99精品视频免费在线观看| 亚洲人吸女人奶水| 欧美制服丝袜第一页| 亚洲成在线观看| 欧美一级片在线观看| 久久精品国产成人一区二区三区| 久久亚洲二区三区| 国产成人免费在线观看| 最新国产成人在线观看| 91国偷自产一区二区三区成为亚洲经典 | 久久疯狂做爰流白浆xx| 久久人人97超碰com| 成人午夜看片网址| 亚洲综合一区二区精品导航| 欧美日韩亚洲综合一区 | 亚洲精品视频免费观看| 欧美日韩专区在线| 免费三级欧美电影| 国产精品色眯眯| 日本道精品一区二区三区| 日本一区中文字幕 | 在线不卡的av| 国产风韵犹存在线视精品| 日韩理论电影院| 欧美另类高清zo欧美| 国产一区二区三区美女| 亚洲精品乱码久久久久| 欧美成人午夜电影| 91国产丝袜在线播放| 国内成人免费视频| 亚洲精品视频在线观看网站| 日韩视频不卡中文| 91猫先生在线| 久久国产精品无码网站| 亚洲六月丁香色婷婷综合久久 | 色丁香久综合在线久综合在线观看| 亚洲成人av在线电影| 欧美国产综合色视频| 欧美日韩国产不卡| 成人av免费在线观看| 麻豆精品视频在线观看免费| 亚洲欧美一区二区三区国产精品 | 久国产精品韩国三级视频| 亚洲欧美在线另类| xvideos.蜜桃一区二区| 欧美日韩在线免费视频| 成人国产精品免费网站| 麻豆一区二区三| 亚洲va韩国va欧美va| 国产精品久久免费看| 欧美成人a∨高清免费观看| 在线观看91视频| caoporn国产一区二区| 激情综合网最新| 亚洲电影第三页| 亚洲图片欧美激情| 久久久久9999亚洲精品| 日韩欧美亚洲一区二区| 欧美色爱综合网| 色av成人天堂桃色av| 国产成人精品免费| 国产一区二区中文字幕| 青青草97国产精品免费观看无弹窗版 | 92国产精品观看| 成人免费av资源| 国产成人aaaa| 国产福利精品一区| 国产综合色精品一区二区三区| 奇米精品一区二区三区在线观看| 亚洲一区二区中文在线| 亚洲三级电影全部在线观看高清| 国产精品久久久久久亚洲毛片 | 91精品国产91久久久久久一区二区| 91麻豆免费看| 色综合天天综合网天天狠天天| 福利一区福利二区| 成人深夜视频在线观看| 国产成人高清在线| 成人一区二区三区| 成人h动漫精品一区二区| 国产电影精品久久禁18| 国产成人h网站| 成人app在线| 91麻豆精品秘密| 欧美午夜影院一区| 欧美男男青年gay1069videost| 欧美性三三影院| 日韩一区二区三区在线| 精品国产一区二区三区av性色 | 一区二区三区四区视频精品免费 | 日韩免费看网站| 精品捆绑美女sm三区| 国产日韩欧美制服另类| 综合色中文字幕| 五月婷婷欧美视频| 免费观看在线综合色| 麻豆视频观看网址久久| 国产成人在线免费| 91小视频在线观看| 欧美精品在线视频| 精品99999| 亚洲色大成网站www久久九九| 亚洲国产日日夜夜| 精品一区二区三区免费播放| 成人黄色av网站在线| 欧美三区在线观看| 精品欧美一区二区久久| 国产精品传媒在线| 五月综合激情网| 国产99久久久国产精品潘金网站| 91猫先生在线| 26uuu亚洲综合色| 亚洲欧美二区三区| 精品一区二区成人精品| 成人18精品视频| 日韩一区二区麻豆国产| 国产精品久久久久婷婷| 免费观看在线综合| 91日韩精品一区| 日韩欧美在线123| 亚洲精品水蜜桃| 国产成人自拍网| 欧美网站大全在线观看| 国产日产欧美一区二区三区| 午夜精品在线视频一区| 成人动漫精品一区二区| 日韩视频免费直播| 一二三区精品视频| 国产一区二区导航在线播放| 欧美在线看片a免费观看| 欧美韩日一区二区三区| 美女精品自拍一二三四| 日本韩国精品在线| 国产精品美日韩| 久久99精品久久久久久动态图| 欧美性大战久久久久久久蜜臀| 国产色产综合色产在线视频 | 欧美电影精品一区二区| 一区二区三区四区中文字幕| 盗摄精品av一区二区三区| 欧美电影免费提供在线观看| 亚洲一区二区三区四区在线观看| 国产成人精品影视| 欧美一级高清片| 日韩精品久久理论片| 欧美曰成人黄网| 一区二区三区波多野结衣在线观看| 懂色av中文字幕一区二区三区| 精品国产成人系列| 肉肉av福利一精品导航| 欧美日韩精品欧美日韩精品一| 一区二区在线观看免费| 色婷婷精品大在线视频| 亚洲天堂2016| 99re亚洲国产精品| 国产精品高潮呻吟| 国产91综合网| 国产精品―色哟哟| www.爱久久.com| 中文字幕日本不卡| 一本大道av一区二区在线播放| 亚洲色图一区二区| 日本丶国产丶欧美色综合| 亚洲美女免费在线|