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

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

?? ir_recv.c

?? 一個非常重要的紅外遙控接收的軟件程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/***************    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 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91女神在线视频| 精品久久久网站| 精品国产123| 亚洲曰韩产成在线| 国产精品资源网| 欧美精选一区二区| 欧美激情中文不卡| 日本欧美肥老太交大片| 日韩欧美国产综合| 亚洲色图都市小说| 粉嫩av一区二区三区| 日韩视频一区二区在线观看| 亚洲伦在线观看| 国产精品91xxx| 精品少妇一区二区| 日韩福利视频导航| 欧美夫妻性生活| 亚洲免费观看高清完整版在线| 国产另类ts人妖一区二区| 69成人精品免费视频| 一区二区三区蜜桃网| 成人黄动漫网站免费app| 久久久久免费观看| 国产专区综合网| 精品91自产拍在线观看一区| 日韩精品一区第一页| 在线视频国产一区| 亚洲区小说区图片区qvod| 成人综合婷婷国产精品久久蜜臀 | 波多野结衣在线一区| 精品福利在线导航| 久久99国产精品尤物| 欧美电影免费观看高清完整版在线观看| 亚洲第四色夜色| 欧洲视频一区二区| 亚洲电影中文字幕在线观看| 91美女福利视频| 亚洲一区二区三区国产| 欧美午夜在线观看| 午夜精品久久久久影视| 欧美日韩精品欧美日韩精品| 手机精品视频在线观看| 欧美高清视频在线高清观看mv色露露十八 | 精品一区二区三区在线观看国产| 91精品一区二区三区久久久久久| 日韩在线播放一区二区| 日韩一区二区免费视频| 日韩不卡一二三区| 精品国产1区二区| 国产成人精品aa毛片| 中文字幕视频一区| 欧美在线视频你懂得| 视频一区二区欧美| 欧美成人精品福利| 粉嫩一区二区三区在线看| 亚洲天堂精品在线观看| 欧美日韩一二三区| 极品少妇一区二区| 日本一区二区免费在线| 日本国产一区二区| 久久精品国产亚洲a| 中文字幕欧美三区| 欧美丝袜第三区| 国产在线播放一区三区四| 中文在线一区二区| 欧美美女bb生活片| 国产成人免费在线视频| 亚洲精品视频一区二区| 日韩一区二区三免费高清| 福利电影一区二区| 亚洲成人av中文| 国产女主播一区| 欧美妇女性影城| 成人小视频在线| 日韩专区中文字幕一区二区| 国产亚洲1区2区3区| 欧美日韩三级视频| www.欧美精品一二区| 午夜久久久久久电影| 国产欧美日韩综合| 欧美精品 日韩| av电影天堂一区二区在线观看| 日日欢夜夜爽一区| 亚洲日本欧美天堂| 国产女人aaa级久久久级| 欧美日韩免费在线视频| 成人综合婷婷国产精品久久| 午夜视频一区在线观看| 国产精品视频一二三| 日韩欧美一二三四区| 99久久久无码国产精品| 狠狠色综合播放一区二区| 亚洲图片欧美视频| 国产精品成人免费精品自在线观看| 欧美高清性hdvideosex| 色综合天天综合色综合av| 国产伦精品一区二区三区免费迷 | 丝袜美腿成人在线| 亚洲天堂成人在线观看| 欧美国产视频在线| 欧美mv日韩mv国产网站| 欧美一级在线观看| 欧美福利视频导航| 欧美日韩综合不卡| 色综合天天综合狠狠| 成人丝袜18视频在线观看| 国产麻豆成人传媒免费观看| 久久er精品视频| 日韩电影在线免费看| 亚洲综合小说图片| 亚洲老妇xxxxxx| 亚洲图片欧美激情| ㊣最新国产の精品bt伙计久久| 国产日韩在线不卡| 国产日产欧美精品一区二区三区| 精品国产一区二区三区不卡| 91精品福利在线一区二区三区 | 国产毛片精品视频| 国产伦精一区二区三区| 国内精品久久久久影院一蜜桃| 久草在线在线精品观看| 免费成人在线播放| 蜜臀精品一区二区三区在线观看| 日韩av一级片| 免费看日韩a级影片| 捆绑紧缚一区二区三区视频| 久草在线在线精品观看| 黄色日韩网站视频| 成人黄色av网站在线| 91丨porny丨最新| 在线免费不卡电影| 欧美日韩大陆一区二区| 日韩欧美中文字幕公布| 亚洲精品一区二区三区在线观看| 久久欧美中文字幕| 一色屋精品亚洲香蕉网站| 国产精品国产三级国产aⅴ中文| 亚洲欧美乱综合| 五月婷婷激情综合网| 精品无人码麻豆乱码1区2区| 国产美女主播视频一区| 99re成人精品视频| 欧美天天综合网| 26uuu国产在线精品一区二区| 国产精品美日韩| 亚洲一区二区三区三| 日韩成人精品在线观看| 黑人精品欧美一区二区蜜桃| 不卡视频一二三| 欧美色图在线观看| 国产亚洲一区二区三区在线观看| 亚洲天堂精品视频| 免费观看成人鲁鲁鲁鲁鲁视频| 高清在线不卡av| 欧美顶级少妇做爰| 国产清纯白嫩初高生在线观看91| 亚洲一区二区三区四区在线观看 | 欧美亚洲国产bt| 久久综合99re88久久爱| 亚洲精品免费在线播放| 麻豆91免费观看| 91视频在线观看| 精品动漫一区二区三区在线观看| 亚洲色图另类专区| 国产精品综合一区二区三区| 91久久精品日日躁夜夜躁欧美| 欧美一区二区成人| 亚洲天堂av一区| 国产精品一区二区久激情瑜伽| 欧美日本精品一区二区三区| 久久精品日产第一区二区三区高清版| 亚洲午夜免费电影| 成人黄色大片在线观看| 精品久久人人做人人爰| 一级日本不卡的影视| 国产不卡视频在线播放| 精品欧美乱码久久久久久1区2区| 亚洲精品国产第一综合99久久| 精品在线你懂的| 51久久夜色精品国产麻豆| 亚洲免费资源在线播放| 成人免费高清视频在线观看| 日韩精品专区在线影院重磅| 亚洲一区二区偷拍精品| av不卡免费电影| 国产日韩亚洲欧美综合| 国产一区二区美女诱惑| 91精品国产综合久久国产大片| 一区二区三区四区在线免费观看| 国产aⅴ综合色| 久久久久久久久久电影| 精品一区二区三区免费| 欧美一区二区视频网站| 三级欧美在线一区| 欧美久久久影院| 日韩国产欧美视频| 欧美日韩国产首页| 午夜精品一区在线观看| 欧美精选午夜久久久乱码6080| 一级精品视频在线观看宜春院 |