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

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

?? ir_recv.c

?? 一個(gè)非常重要的紅外遙控接收的軟件程序
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 03/01/13 4:49p    $       ****************/
/***************  $Revision:: 27               $       ****************/
/***************                                       ****************/
/*************** Description : IR receive module       ****************/
/***************                                       ****************/
/***************     Company : MediaTek Inc.           ****************/
/***************  Programmer :                         ****************/
/**********************************************************************/

#define _IR_RECV_C_

#pragma NOAREGS
#include "general.h"

#ifndef PLAYER_NO_IR

#include "./custom/demo/irkey.c"
#ifdef DVD_RECEIVER
extern xdata BYTE _bSysMode;
extern xdata BYTE  _bKeyTimCnt;

 xdata BYTE  _bkeyPressCount;
 
 
#include "./custom/demo/receiver/tuner.h"
#define VFD_DELAY_KEY_TIME 60
#endif
bit is_panel_key;
//extern void vOsdShowHex(BYTE bnum1,BYTE bnum2,BYTE bnum3,BYTE bnum4 ) large;
// *********************************************************************
// Function : void vIrInit(void)
// Description : Called when system initial, to reset IR and UI
// Parameter : None
// Return    : None
// *********************************************************************
void IrInit(void) large
{
  // reset IR related variable
  _fgIRKeyValid = FALSE;
  _bIRStatus = 0; /* IR_WAIT_NEW_CODE */
  _bIRBitCnt = 0;
  _bIRKeyBuf = 0;

#ifdef PLAYER_POWERDOWN
  #ifdef PLAYER_ACON_STANDBY
  if (_testbit_(_fgPowerOffTrayIn))
  {
    _bPlayPostKey = IR_POWER;
  }
  else
  #endif /* PLAYER_ACON_STANDBY */
#endif
  {
    _bPlayPostKey = IR_NONE;
  }

  _bIRKey =  IR_NONE;
  _bIRKey0 = IR_NONE;

#ifdef IR_SUPPORT_SHIFT_KEY
  _fgIRShiftKey = FALSE;
#endif

#ifdef IR_CHECK_KEY_LOCK
  sFlagIR.fgKeyLock = FALSE;
  _bIRKeyPressCnt = 0;
  _bIRKeyReleaseCnt = 0;
#endif

#ifdef IR_USE_RC6
  /* clear IR */
  WriteBIM(BIM_CRBSY, CRIR);
#endif

  return;
}

#define IR_WAIT_NEW_CODE        0
#define IR_WAIT_LEAD_CODE       1
#define IR_READ_CUSTOM_CODE     2
#define IR_READ_SUB_CUSTOM_CODE 3
#define IR_READ_DATA_CODE       4
#define IR_READ_DATA_CODE_INV   5
#define IR_READ_REPEAT_CODE     6

#define IR_CUSTOM_LENGHT        8
#define IR_SUB_CUSTOM_LENGHT    8
#define IR_DATA_LENGTH          8

#ifndef IR_CHECK_KEY_LOCK
  #define IR_REAPEAT_CNT_LENGTH   2
#else
  #define IR_REAPEAT_CNT_LENGTH   1

  #define IR_KEY_PRESS_TIMEOUT    100 // 20ms base, 2 seconds
  #define IR_KEY_RELEASE_TIMEOUT  25  // 20ms base, 500ms
#endif

#ifndef IR_USE_HW /* original routine */

#define IR_OVERFLOW            250  /* 38 ms */
#define IR_LEAD_CENTER         23   /* 3.37 ms */
#define IR_REPEAT_CENTER       14   /* 2.25 ms */
#define IR_DATA_CENTER         8    /* 1.21 ms */

#define IR_LEAD_MAX            30
#define IR_LEAD_MIN            28
#define IR_DATA1_MAX           12
#define IR_DATA1_MIN           10
#define IR_DATA0_MAX            6
#define IR_DATA0_MIN            2
#define IR_REPEAT_MIN          13
#define IR_REPEAT_MAX          15

/************************************************************************
     Function : 
  Description : 
    Parameter : 
    Return    : 
************************************************************************/
void vHwIrInit(void)
{
  BYTE bTmp;

  /* setup H/W IR */
  WriteBIM(BIM_IR_CFGH, IR_END_15 + IR_IGSYN + IR_HW);
  
  /* clear IR */
  WriteBIM(BIM_CRBSY, CRIR);

  /* setup S/W IR */
  WriteBIM(BIM_IR_CFGH, 0);

  /* read clear IR */
  bTmp = bReadBIM(BIM_IRH);
}

/************************************************************************
     Function : 
  Description : 
    Parameter : 
    Return    : 
************************************************************************/
void vIrRecv(BYTE bIRH)
{
  if (bIRH > IR_LEAD_CENTER)
  {
#ifdef IR_USE_REPEAT
    if ((bIRH > IR_OVERFLOW) && (_bIRStatus == IR_READ_REPEAT_CODE))
    {
      /* only allow overflow when read repeat code */
      return;
    }
    else
#endif
    {
      _bIRStatus = IR_WAIT_LEAD_CODE;
#ifdef IR_CHECK_KEY_LOCK
      sFlagIR.fgKeyLock = FALSE;
      _bIRKeyPressCnt = 0;
      _bIRKeyReleaseCnt = 0;
#endif
    }
  }

  switch (_bIRStatus)
  {
    case IR_WAIT_NEW_CODE:
    {
      /* dummy case */
      break;
    }

    case IR_WAIT_LEAD_CODE:
    {
      /* why do not check the lead code length? */
      _bIRStatus = IR_READ_CUSTOM_CODE;
      _bIRBitCnt = IR_CUSTOM_LENGHT;
      _bIRKeyBuf = 0;
#ifdef IR_CHECK_DATA_CODE_INV
      _bIRKeyBufInv = 0;
#endif
      break;
    }

    case IR_READ_CUSTOM_CODE:
    {
#ifdef IR_STRICT_TIMING
      if ((bIRH >= IR_DATA1_MIN) && (bIRH <= IR_DATA1_MAX))
      {
  #ifdef IR_BIT_REVERSE
        _bIRKeyBuf |= 0x01;
  #else
        _bIRKeyBuf |= 0x80;
  #endif
      }
      else if ((bIRH < IR_DATA0_MIN) || (bIRH > IR_DATA0_MAX))
      {
        /* not 1 neither 0, sequence fail! */
        _bIRStatus = IR_WAIT_NEW_CODE;
        break;
      }
#else
      if (bIRH > IR_DATA_CENTER)
      {
  #ifdef IR_BIT_REVERSE
        _bIRKeyBuf |= 0x01;
  #else
        _bIRKeyBuf |= 0x80;
  #endif
      }
#endif

      _bIRBitCnt--;

      if (_bIRBitCnt == 0)
      {
        if (_bIRKeyBuf != IR_CUSTOM_CODE)
        {
          _bIRStatus = IR_WAIT_NEW_CODE;
        }
        else
        {
          _bIRStatus = IR_READ_SUB_CUSTOM_CODE;
          _bIRBitCnt = IR_SUB_CUSTOM_LENGHT;
          _bIRKeyBuf = 0;
          break;
        }
      }
      else
      {
#ifdef IR_BIT_REVERSE
         _bIRKeyBuf <<= 1;
#else
         _bIRKeyBuf >>= 1;
#endif
      }

      break;
    }

    case IR_READ_SUB_CUSTOM_CODE:
    {
#ifdef IR_STRICT_TIMING
      if ((bIRH >= IR_DATA1_MIN) && (bIRH <= IR_DATA1_MAX))
      {
  #ifdef IR_BIT_REVERSE
        _bIRKeyBuf |= 0x01;
  #else
        _bIRKeyBuf |= 0x80;
  #endif
      }
      else if ((bIRH < IR_DATA0_MIN) || (bIRH > IR_DATA0_MAX))
      {
        /* not 1 neither 0, sequence fail! */
        _bIRStatus = IR_WAIT_NEW_CODE;
        break;
      }
#else
      if (bIRH > IR_DATA_CENTER)
      {
  #ifdef IR_BIT_REVERSE
        _bIRKeyBuf |= 0x01;
  #else
        _bIRKeyBuf |= 0x80;
  #endif
      }
#endif

      _bIRBitCnt--;

      if (_bIRBitCnt == 0)
      {
        if (_bIRKeyBuf != IR_CUSTOM_SUB_CODE)
        {
          _bIRStatus = IR_WAIT_NEW_CODE;
        }
        else
        {
          _bIRStatus = IR_READ_DATA_CODE;
          _bIRBitCnt = IR_DATA_LENGTH;
          _bIRKeyBuf = 0;
        }
      }
      else
      {
#ifdef IR_BIT_REVERSE
        _bIRKeyBuf <<= 1;
#else
        _bIRKeyBuf >>= 1;
#endif
      }

      break;
    }

    case IR_READ_DATA_CODE:
    {
#ifdef IR_STRICT_TIMING
      if ((bIRH >= IR_DATA1_MIN) && (bIRH <= IR_DATA1_MAX))
      {
  #ifdef IR_BIT_REVERSE
        _bIRKeyBuf |= 0x01;
  #else
        _bIRKeyBuf |= 0x80;
  #endif
      }
      else if ((bIRH < IR_DATA0_MIN) || (bIRH > IR_DATA0_MAX))
      {
        /* not 1 neither 0, sequence fail! */
        _bIRStatus = IR_WAIT_NEW_CODE;
        break;
      }
#else
      if (bIRH > IR_DATA_CENTER)
      {
  #ifdef IR_BIT_REVERSE
        _bIRKeyBuf |= 0x01;
  #else
        _bIRKeyBuf |= 0x80;
  #endif
      }
#endif

      _bIRBitCnt--;

      if (_bIRBitCnt == 0)
      {
        _bIRStatus = IR_READ_DATA_CODE_INV;
        _bIRBitCnt = IR_DATA_LENGTH;
        /* don't clear _bIRKeyBuf */
      }
      else
      {
#ifdef IR_BIT_REVERSE
        _bIRKeyBuf <<= 1;
#else
        _bIRKeyBuf >>= 1;
#endif
      }

      break;
    }

    case IR_READ_DATA_CODE_INV:
    {
#ifdef IR_CHECK_DATA_CODE_INV
  #ifdef IR_STRICT_TIMING
      if ((bIRH >= IR_DATA1_MIN) && (bIRH <= IR_DATA1_MAX))
      {
    #ifdef IR_BIT_REVERSE
        _bIRKeyBufInv |= 0x01;
    #else
        _bIRKeyBufInv |= 0x80;
    #endif
      }
      else if ((bIRH < IR_DATA0_MIN) || (bIRH > IR_DATA0_MAX))
      {
        /* not 1 neither 0, sequence fail! */
        _bIRStatus = IR_WAIT_NEW_CODE;
        break;
      }
  #else
      if (bIRH > IR_DATA_CENTER)
      {
    #ifdef IR_BIT_REVERSE
        _bIRKeyBufInv |= 0x01;
    #else
        _bIRKeyBufInv |= 0x80;
    #endif
      }
  #endif
#endif

      _bIRBitCnt--;

      /* all bit transfered, convert the IR key to internal key */
      if (_bIRBitCnt == 0)
      {
#ifdef IR_CHECK_DATA_CODE_INV
        if (_bIRKeyBufInv != (~_bIRKeyBuf))
        {
          _bIRKeyBufInv = 0;
          _bIRStatus = IR_WAIT_NEW_CODE;
          break;
        }
        else
        {
          _bIRKeyBufInv = 0;
        }
#endif
#if (IR_KEY_GAP_SIZE > 0)
        if (_bIRKeyBuf >= IR_KEY_GAP_START)
        {
          _bIRKeyBuf -= IR_KEY_GAP_SIZE;
        }
#endif

        if (_bIRKeyBuf < IR_KEY_TBL_SIZE)
        {
          /* look up the mapping table */
          _bIRKeyBuf = _pbIRKeyTbl[_bIRKeyBuf];

#ifdef IR_SUPPORT_SHIFT_KEY
          if (_fgIRShiftKey)
          {
            if (_bIRKeyBuf <= IR_SHIFT_KEY_MAX)
            {
              _bIRKeyBuf = _pbShiftIRKeyTbl[_bIRKeyBuf];
            }
          }
#endif

          /* put the received key */
          if (_bIRKeyBuf != IR_NONE)
          {
            /* assume IR interrupt priority is the highest */
            _fgIRKeyValid = TRUE;
            _bIRKey0 = _bIRKeyBuf;

#ifdef IR_USE_REPEAT
  #ifdef IR_CHECK_KEY_LOCK
            sFlagIR.fgKeyLock = TRUE;
            _bIRKeyPressCnt = IR_KEY_PRESS_TIMEOUT;
            _bIRKeyReleaseCnt = IR_KEY_RELEASE_TIMEOUT;
  #endif
            _bIRStatus = IR_READ_REPEAT_CODE;
            _bIRBitCnt = IR_REAPEAT_CNT_LENGTH;
            break;
#endif
          }
        } /* valid key */

        _bIRStatus = IR_WAIT_NEW_CODE;
      }
#ifdef IR_CHECK_DATA_CODE_INV
      else
      {
  #ifdef IR_BIT_REVERSE
        _bIRKeyBufInv <<= 1;
  #else
        _bIRKeyBufInv >>= 1;
  #endif
      }
#endif

      break;
    }

#ifdef IR_USE_REPEAT
    case IR_READ_REPEAT_CODE:
    {
  #if 0
      if (bIRH == IR_REPEAT_CENTER)
  #else
      if ((bIRH >= IR_REPEAT_MIN) && (bIRH <= IR_REPEAT_MAX))
  #endif
      {
        if (_bIRKey0 != IR_NONE)
        {
          if (_bIRBitCnt == 0)
          {
            _fgIRKeyValid = TRUE;
  #ifdef IR_CHECK_KEY_LOCK
            sFlagIR.fgKeyLock = TRUE;
            _bIRKeyReleaseCnt = IR_KEY_RELEASE_TIMEOUT;
  #endif
            _bIRBitCnt = IR_REAPEAT_CNT_LENGTH;
          }
          else
          {
            _bIRBitCnt--;
          }
          break;
        }
      }

      _bIRStatus = IR_WAIT_NEW_CODE;
  #ifdef IR_CHECK_KEY_LOCK
      sFlagIR.fgKeyLock = FALSE;
      _bIRKeyPressCnt = 0;
      _bIRKeyReleaseCnt = 0;
  #endif
      break;
    }
#endif /* IR_USE_REPEAT */

    default:
      _bIRStatus = IR_WAIT_NEW_CODE;
#ifdef IR_CHECK_KEY_LOCK
      sFlagIR.fgKeyLock = FALSE;
      _bIRKeyPressCnt = 0;
      _bIRKeyReleaseCnt = 0;
#endif
      break;
  } /* switch (_bIRStatus) */
}

#else /* IR_USE_HW */
  #ifdef IR_USE_RC6

#define IR_SA_PERIOD           46  /* 446us/9.5us = 46 */

#define IR_BIT_CNT             30 /* for IR_END_15, 22+8=30 */

/************************************************************************
     Function : 
  Description : 
    Parameter : 
    Return    : 
************************************************************************/
void vHwIrInit(void)
{
  /* setup H/W IR */
  WriteBIM(BIM_IR_CFGH, IR_END_15 + IR_IGSYN + IR_ORDI + IR_RC5 + IR_HW);
  
  /* sampling frequency */
  WriteBIM(BIM_IR_CFGL, IR_SA_PERIOD);
  
  /* IR 0/1 threshold */
  WriteBIM(BIM_IRTHD, 1); /* greater than */
  
  /* clear IR */
  WriteBIM(BIM_CRBSY, CRIR);
}

/************************************************************************
     Function : 
  Description : 
    Parameter : bIRH: the first pulse width
    Return    : 
************************************************************************/
void vIrRecv(BYTE bIRVal)
{ 
  /* we don't care first pulse */

  switch (_bIRStatus)
  {
    case IR_WAIT_NEW_CODE:
    case IR_WAIT_LEAD_CODE:
#ifdef IR_USE_REPEAT
    case IR_READ_REPEAT_CODE:
#endif
    {
      /* check bit count first */
      if (bReadBIM(BIM_IR_CNT) != IR_BIT_CNT)
      {
        break;
      }

      /* read out 2nd pulse width */
      bIRVal = bReadBIM(BIM_IR_VAL);

      /* check leading code */
      bIRVal = bReadBIM(BIM_IR_VAL);
      _bIRKeyBuf = (bIRVal & 0x03);
      bIRVal &= 0xFC;
      if ((bIRVal != 0x84) && (bIRVal != 0x88))
      {
        _bIRStatus = IR_WAIT_NEW_CODE;
        break;        
      }

      /* get control code */
      _bIRBitCnt |= (bIRVal & 0x0f);

      /* check system code */
      bIRVal = bReadBIM(BIM_IR_VAL);
      _bIRKeyBuf <<= 6;
      _bIRKeyBuf |= (bIRVal >> 2);
      if (_bIRKeyBuf != IR_CUSTOM_CODE)
      {
        _bIRStatus = IR_WAIT_NEW_CODE;
        break;
      }

      /* get key code */
      _bIRKeyBuf = (bIRVal << 6);
      bIRVal = bReadBIM(BIM_IR_VAL);
      _bIRKeyBuf |= (bIRVal >> 2);

      /* look up the mapping table */
      _bIRKeyBuf = _pbIRKeyTbl[_bIRKeyBuf];

      /* check previous key and control bit */
      if ((_bIRBitCnt & 0x0f) == (_bIRBitCnt >> 4))
      {
        _bIRBitCnt <<= 4;

#ifdef IR_USE_REPEAT
        if ((_bIRStatus != IR_READ_REPEAT_CODE) ||
            (_bIRKey0 != _bIRKeyBuf))
        {
          // error condition
          _bIRStatus = IR_WAIT_NEW_CODE;
          _bIRBitCnt = 0;
          break;
        }
#else /* not define IR_USE_REPEAT */
        if (_bIRKey0 == _bIRKeyBuf)
        {
          _bIRStatus = IR_WAIT_NEW_CODE;
          break;
        }
#endif /* not define IR_USE_REPEAT */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产老妇另类xxxxx| 欧美日韩精品综合在线| 国产一区二区三区在线看麻豆| 香蕉久久一区二区不卡无毒影院| 一区二区三区在线免费观看| 一区二区三区在线观看欧美| 亚洲你懂的在线视频| 日韩毛片精品高清免费| 综合婷婷亚洲小说| 亚洲综合激情另类小说区| 一级做a爱片久久| 夜夜嗨av一区二区三区四季av | 秋霞成人午夜伦在线观看| 午夜精品一区二区三区三上悠亚| 亚洲成人7777| 日韩黄色免费网站| 视频在线观看91| 狠狠色丁香婷婷综合| 国产精品夜夜嗨| 成人黄色电影在线| 成人性生交大片免费看视频在线| 99精品欧美一区| 在线一区二区观看| 欧美精品aⅴ在线视频| 91精品国产一区二区三区香蕉| 9191久久久久久久久久久| 日韩一区二区在线看| 久久综合色综合88| 国产精品网站在线| 亚洲黄色免费网站| 日本亚洲电影天堂| 国产精品原创巨作av| 波多野结衣在线aⅴ中文字幕不卡| 色综合久久九月婷婷色综合| 欧美精品一卡二卡| 久久伊99综合婷婷久久伊| 国产精品嫩草影院av蜜臀| 夜夜精品浪潮av一区二区三区| 奇米精品一区二区三区在线观看 | 日本在线不卡视频| 国产成人在线色| 91成人国产精品| xnxx国产精品| 一区二区三区欧美| 九九九久久久精品| 色综合久久天天| 26uuu国产一区二区三区| 亚洲男人电影天堂| 久久99国产精品尤物| 色综合咪咪久久| 26uuuu精品一区二区| 一区二区三区精密机械公司| 麻豆精品在线观看| 91亚洲精品一区二区乱码| 日韩一区二区电影网| 亚洲视频一区在线| 精品一区二区免费| 欧美无砖专区一中文字| 久久久久久免费网| 天天综合网天天综合色| 成人av影视在线观看| 日韩亚洲欧美在线| 洋洋av久久久久久久一区| 国产高清不卡一区二区| 欧美日韩1234| 日韩伦理免费电影| 国产一区二区伦理片| 欧美二区乱c少妇| 中文字幕亚洲电影| 久久精品国产99国产| 欧美色网站导航| 国产精品久久久久9999吃药| 麻豆成人综合网| 欧美色图片你懂的| 中文字幕亚洲区| 国产成人av电影免费在线观看| 欧美日本国产一区| 亚洲乱码日产精品bd| 风间由美一区二区三区在线观看| 91麻豆精品国产91久久久久久久久 | 一区二区三区欧美久久| 福利一区二区在线观看| 日韩欧美激情在线| 亚洲一区二区在线免费看| 成人av电影在线观看| 2017欧美狠狠色| 久久91精品国产91久久小草| 欧美日韩久久久| 亚洲第一成年网| 欧美自拍偷拍一区| 亚洲欧洲精品一区二区精品久久久| 国产精品自在在线| 久久影院午夜论| 国产一区二区三区黄视频| 日韩一区二区在线看片| 免费在线观看成人| 欧美一区午夜精品| 日韩电影在线观看一区| 欧美日韩电影在线| 亚洲高清在线精品| 欧美午夜在线一二页| 亚洲综合成人网| 欧美日韩你懂的| 亚洲成人综合在线| 欧美蜜桃一区二区三区| 无码av中文一区二区三区桃花岛| 欧美日韩一区二区在线观看| 亚洲影院久久精品| 欧美片在线播放| 三级一区在线视频先锋 | 久久久久久综合| 国产精品99久久久久久似苏梦涵 | 一区二区在线观看视频在线观看| 99国产精品99久久久久久| 中文字幕五月欧美| 欧美在线三级电影| 无码av免费一区二区三区试看| 884aa四虎影成人精品一区| 日韩精品亚洲专区| 日韩精品一区二区三区在线 | 精品国产凹凸成av人导航| 黑人巨大精品欧美黑白配亚洲| 国产亚洲短视频| 成人av电影在线| 亚洲精品欧美专区| 欧美日韩高清一区| 久久精品国产亚洲aⅴ| 久久―日本道色综合久久| 成人综合婷婷国产精品久久蜜臀 | 久久久久久免费网| 成人国产在线观看| 亚洲精品中文在线观看| 欧美人狂配大交3d怪物一区 | 777午夜精品视频在线播放| 久久爱另类一区二区小说| 国产亚洲精品7777| 日本高清不卡一区| 青椒成人免费视频| 久久精子c满五个校花| 91日韩在线专区| 五月婷婷欧美视频| 久久亚洲一级片| 91麻豆免费看片| 免费视频一区二区| 国产日韩欧美精品综合| 日本高清不卡一区| 狠狠色丁香婷婷综合久久片| 亚洲免费在线观看视频| 欧美一级精品在线| 成人网男人的天堂| 亚洲成人你懂的| 久久理论电影网| 欧美在线观看一区| 国产成人亚洲精品青草天美| 亚洲狠狠爱一区二区三区| 久久综合五月天婷婷伊人| 日本韩国欧美一区二区三区| 狠狠色狠狠色综合系列| 一区二区三区 在线观看视频| 欧美www视频| 91福利在线观看| 国产高清成人在线| 日韩不卡免费视频| 1024亚洲合集| 久久青草欧美一区二区三区| 欧美亚洲国产一区在线观看网站 | 精品久久久久久久一区二区蜜臀| 色综合天天视频在线观看 | 日韩欧美一区二区不卡| 97久久久精品综合88久久| 久久99精品一区二区三区| 亚洲最大的成人av| 欧美国产亚洲另类动漫| 欧美精品丝袜中出| 成人激情校园春色| 老司机精品视频导航| 亚洲人成影院在线观看| 精品国产三级a在线观看| 欧美日韩一区二区三区免费看| 久久国产剧场电影| 一区二区三区国产| 在线观看av一区二区| 丁香亚洲综合激情啪啪综合| 午夜欧美2019年伦理| 国产精品美女久久福利网站| 91精品综合久久久久久| 99久久伊人网影院| 91久久精品国产91性色tv| 国产91精品露脸国语对白| 五月婷婷色综合| 国产日韩欧美激情| 亚洲精品一区二区三区影院 | 国产欧美久久久精品影院| 91精品啪在线观看国产60岁| 99久久99精品久久久久久| 国产精品456| 老色鬼精品视频在线观看播放| 亚洲在线观看免费视频| 亚洲欧美国产三级| 国产欧美一区二区精品仙草咪 |