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

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

?? qwsmouse_qws.cpp

?? 基于LINUX2.6.9觸摸鼠標驅(qū)動QT3.0
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
		

	}

		MyoldMousePos=mousePos;
	//	qDebug("oldmouse.x == %d  oldmouse.y==%d\n",MyoldMousePos.x(),MyoldMousePos.y());
		//qDebug("oldmouse.x == %d  oldmouse.y==%d\n",MyoldMousePos.x(),MyoldMousePos.y());
	stepx = prevPoint.x()-samp.x;
	stepy = prevPoint.y()-samp.y;
	pressure=samp.pressure;
	qDebug("point***************prev.x=%d prev.y=%d samp.x=%d samp.y=%d prePressure=%d \n",prevPoint.x(),prevPoint.y(),samp.x,samp.y,prevPressure);
	if (QABS(pressure-prevPressure)>200 ) 
	{
		qDebug("pressure outarea********** pressure=%d  prePressure=%d\n",pressure,prevPressure);
//		
//		return;
	}
	
	if (QABS(stepx)<10 &&QABS(stepy)<10) 
	{
		ignoreCount ++ ;
		if (ignoreCount>=3&&samp.pressure<0x90) 
		{
			prevPoint.setX(samp.x);
			prevPoint.setY(samp.y);
			prevPressure=samp.pressure;
			mouseChanged(mousePos,Qt::LeftButton);
			ignoreCount=0;
		}
		
		return; 
	}
    ///if (QABS(stepx)>200 || QABS(stepy)>200)
	//	return;
	qDebug("OK********** stepx=%d  stepy=%d presure=%d\n",stepx,stepy,(prevPressure+samp.pressure)/2);

	stepx=(stepx/7.5)*2;
	
		stepy=(stepy/15.5)*2;
	//if (QABS(stepx)>40) return;
	//if (QABS(stepy)>20) return;
	pressure = (prevPressure+samp.pressure)/2;
	prevPoint.setX(samp.x);
	prevPoint.setY(samp.y);
	prevPressure=samp.pressure;

	if (stepx>0) currXdir = X_POSITIVE_DIRE;
	else if (stepx==0) currXdir=X_ZERO_DIRE;
	   else currXdir=X_NEGATIVE_DIRE;
	
	if (stepy>0) currYdir = Y_POSITIVE_DIRE;
	   else if (stepy==0) currYdir=Y_ZERO_DIRE;
	   else currYdir=Y_NEGATIVE_DIRE;

    qDebug("Direct********** currXdir=%d  currYdir=%d xDirect=%d  yDirect=%d\n",currXdir,currYdir,xDirect,yDirect);
	qDebug("ignoreCount=%d\n",ignoreCount);

//	if ( currXdir!=xDirect||currYdir!=yDirect)   //// direct changed
//	{
//		if (ignoreCount<3) {ignoreCount++;return;}
//		ignoreCount=0;
//		xDirect=currXdir;
//		yDirect=currYdir;
//	}
    qDebug("Mouse current mouse.x = %d  mouse.y = %d\n",mousePos.x(),mousePos.y());
	mousePos.setX(MyoldMousePos.x()+stepx);
	mousePos.setY(MyoldMousePos.y()+stepy);
	limitToScreen(mousePos);
			 
	
	//if( samp.pressure>200 ) {
	
	//if(pressure>0 &&pressure<0x60) 
	//{
		//mouseChanged(mousePos,Qt::LeftButton);
	//} else
	//{
		mouseChanged(mousePos,0);
	//}
	prevPoint.setX(0xffff);
	prevPoint.setY(0xffff);
	
	
}*/
//#define ABS_X 00
//#define ABS_Y 01
//#define ABS_PRESSURE 0x18
/*
void QLubbockTPanelHandlerPrivate::readMouseData()
{
    struct ts_sample samp;
	struct ts_sample samp1;
	struct input_event ev;
    int ret,ret1,stepx,stepy,pressure;
    QPoint MyoldMousePos;
    if(!qt_screen)
		return;
		ret = read(ts->fd, &ev, sizeof(struct input_event));
     if ( ret == sizeof(struct input_event) && ev.code ==ABS_X)
	 {
		 //qDebug("ev.value---->x = %x\n",ev.value);
		 samp.x=ev.value;

	 }else 
	 {
		 //qDebug("ev.code -------------x%d\n",ev.code);
		 return;
	 }

	 ret = read(ts->fd, &ev, sizeof(struct input_event));
     if ( ret == sizeof(struct input_event)&&ev.code==ABS_Y)
	 {
		 //qDebug("ev.value---->y = %x\n",ev.value);
		 samp.y=ev.value;
		 
	 }else 
	 {
		 //qDebug("ev.code -------------y%d\n",ev.code);
		 return;}

	 ret = read(ts->fd, &ev, sizeof(struct input_event));
     if ( ret == sizeof(struct input_event)&&ev.code==ABS_PRESSURE)
	 {
		 //qDebug("ev.value---->pressure = %x\n",ev.value);
		 samp.pressure=ev.value;
		 
	 }else
	 {
		 //qDebug("ev.code -------------pressure%d\n",ev.code);
		 return;
	 }
	
    //qDebug("the 2nd =========================the 2nd\n");
	ret = read(ts->fd, &ev, sizeof(struct input_event));
	if ( ret == sizeof(struct input_event)&&ev.code==ABS_X)
	{
		//qDebug("ev.value---->x1 = %x\n",ev.value);
		samp1.x=ev.value;
		
	}else
	{
	//	qDebug("ev.code -------------x1%d\n",ev.code);
		return;
	}
	ret = read(ts->fd, &ev, sizeof(struct input_event));
	if ( ret == sizeof(struct input_event)&&ev.code==ABS_Y)
	{
	//	qDebug("ev.value---->y1 = %x\n",ev.value);
		samp1.y=ev.value;
		
	}else
	{
	//	qDebug("ev.code -------------y1%d\n",ev.code);
		return;
	}
	ret = read(ts->fd, &ev, sizeof(struct input_event));
	if ( ret == sizeof(struct input_event)&&ev.code==ABS_PRESSURE)
	{
	//	qDebug("ev.value---->pressure1 = %x\n",ev.value);
		samp1.pressure=ev.value;
		
	}else
	{
	//	qDebug("ev.code -------------pressure1%d\n",ev.code);
		return;
	}

	//qDebug("x===%d  y==%d   x1==%d  y1==%d p==%d\n",samp.x,samp.y,samp1.x,samp1.y,samp.pressure);
	//qDebug("x===%d  y==%d   x1==%d  y1==%d p==%d\n",samp.x,samp.y,samp1.x,samp1.y,samp.pressure);
	
		MyoldMousePos=mousePos;
	//	qDebug("oldmouse.x == %d  oldmouse.y==%d\n",MyoldMousePos.x(),MyoldMousePos.y());
		//qDebug("oldmouse.x == %d  oldmouse.y==%d\n",MyoldMousePos.x(),MyoldMousePos.y());
	stepx = samp.x - samp1.x;
	stepy = samp.y - samp1.y;
	if (QABS(stepx)<22||stepx>60)
		stepx=0;
	if (QABS(stepy)<22||stepy>60)
		stepy=0;
	if (stepx <22)
		stepx/=10;
	else
		stepx/=4;

	if (stepy<20)
		stepy/=10;
	else 
		stepy/=4;

	mousePos.setX(MyoldMousePos.x()+stepx);
	mousePos.setY(MyoldMousePos.y()+stepy);
	limitToScreen(mousePos);
			 
	
	//mousePos.setX( samp.x);
	//mousePos.setY( samp.y );
	//if( samp.pressure>200 ) {
	pressure=samp.pressure+samp1.pressure/2;
	if (pressure>0 &&pressure<50) 
	{
	
	
		mouseChanged(mousePos,Qt::LeftButton);
	} else
	{
		mouseChanged(mousePos,0);
	}
	
}*/
/*
#define MYTS_COUNT     2       //6
#define MY_X_LIMIT    60
#define MY_Y_LIMIT    50
#define MY_PRESSURE_LIMIT  80

void QLubbockTPanelHandlerPrivate::readMouseData()
{
	
    struct ts_sample samp[MYTS_COUNT];   //x,y,pressure
	int stepArray[MYTS_COUNT];
	struct input_event ev;
    int ret,ret1,stepx,stepy,pressure;
	int i,exitFlag=0,x,y;
	int realReadCount=0;
	int totalx,totaly,totalPressure;
    QPoint MyoldMousePos;
    if(!qt_screen)
		return;
	
	do{
		
		
		i=0;
		exitFlag=0;
		for(;;)
		{
				ret = read(ts->fd, &ev, sizeof(struct input_event));
				if (ret!=sizeof(struct input_event)) {exitFlag=1; break;}
				if ( i==0 )
				{
				   if (ev.code ==ABS_X)	
				   {
					   x=ev.value;
					   i++;
				   }
				    else return;
				}else if (i==1)
					{
						if (ev.code == ABS_Y)
						{
							y=ev.value;
							i++;
						}else return;
					}else if (i==2)
						{
						    if (ev.code == ABS_PRESSURE)
							{
								pressure = ev.value;
								break;
							}else return;
						}
					//qDebug("i==================%d\n",i);
		}
		//qDebug("exitflag=%d   realReadCount=%d\n",exitFlag,realReadCount);

		if ( exitFlag )   //no data
		{   
			if (realReadCount<5 ) return;   /// if less than 5 samples, ignore it 
			qDebug("skip while -----------------realReadcount=%d\n",realReadCount);
			break;
		}
			qDebug("x-%d  y-%d  pressure-%d\n",x,y,pressure);
		samp[realReadCount].x=x;
		samp[realReadCount].y=y;
		samp[realReadCount].pressure=pressure;
		if ( realReadCount>0 )
		{
			//if ( QABS(x-samp[realReadCount-1].x)<MY_X_LIMIT && QABS(y-samp[realReadCount-1].y)<MY_Y_LIMIT )
			//	realReadCount++;
			//else
				if (QABS(pressure-samp[realReadCount-1].pressure)>MY_PRESSURE_LIMIT)
					{
				      samp[realReadCount] = samp[realReadCount-1]; //if invalid pressure ,set prev samp pressure
					 // realReadCount++;
					}
				realReadCount++;
		}else realReadCount++;

	}while(realReadCount<MYTS_COUNT);
//	qDebug("Start count =================== realReadCount=%d\n",realReadCount);
	totalx=0;
	totaly=0;
	totalPressure=0;
	qDebug("************%d %d  %d   %d\n",samp[0].x,samp[0].y,samp[1].x,samp[1].y);

	for(i=0;i<realReadCount-1;i++)
	{
		totalx+=samp[i].x-samp[i+1].x;
		totaly+=samp[i].y-samp[i+1].y;
		totalPressure+=samp[i].pressure+samp[i+1].pressure;

	}
	stepx = totalx/(realReadCount-1);
	stepy = totaly/(realReadCount-1);
	pressure=totalPressure/(realReadCount-1);
	qDebug("stepx-----%d   stepy ---- %d  pressure ---- %d \n",stepx,stepy,pressure);
	stepx/=2;
	stepy/=2;
	///qDebug("stepx-----%d   stepy ---- %d  pressure ---- %d \n",stepx,stepy,pressure);
	MyoldMousePos=mousePos;
	mousePos.setX(MyoldMousePos.x()+stepx);
	mousePos.setY(MyoldMousePos.y()+stepy);
	limitToScreen(mousePos);
	if (pressure>0 &&pressure<90) 
	{
		mouseChanged(mousePos,Qt::LeftButton);
	} else
	{
		mouseChanged(mousePos,0);
	}
	
}*/
#endif //QT_QWS_CUSTOMTOUCHPANEL

class QCustomTPanelHandlerPrivate : public QWSMouseHandler {
    Q_OBJECT
public:
    QCustomTPanelHandlerPrivate(MouseProtocol, QString dev);
    ~QCustomTPanelHandlerPrivate();

private:
    int mouseFD;
private slots:
    void readMouseData();

};

#ifdef QT_QWS_CUSTOMTOUCHPANEL
QCustomTPanelHandlerPrivate::QCustomTPanelHandlerPrivate( MouseProtocol, QString )
{
    if ((mouseFD = open( "/dev/ts", O_RDONLY)) < 0) {
	qWarning( "Cannot open /dev/ts (%s)", strerror(errno));
	return;
    } else {
	sleep(1);
    }

    QSocketNotifier *mouseNotifier;
    mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read,
					 this );
    connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData()));
}

QCustomTPanelHandlerPrivate::~QCustomTPanelHandlerPrivate()
{
    if (mouseFD >= 0)
	close(mouseFD);
}

struct CustomTPdata {

  unsigned char status;
  unsigned short xpos;
  unsigned short ypos;

};

void QCustomTPanelHandlerPrivate::readMouseData()
{
    if(!qt_screen)
	return;
    CustomTPdata data;

    unsigned char data2[5];

    int ret;

    ret=read(mouseFD,data2,5);

    if(ret==5) {
	data.status=data2[0];
	data.xpos=(data2[1] << 8) | data2[2];
	data.ypos=(data2[3] << 8) | data2[4];
	QPoint q;
	q.setX(data.xpos);
	q.setY(data.ypos);
	mousePos=q;
	if(data.status & 0x40) {
	    mouseChanged(mousePos,Qt::LeftButton);
	} else {
	    mouseChanged(mousePos,0);
	}
    }
    if(ret<0) {
	qDebug("Error %s",strerror(errno));
    }
}
#endif //QT_QWS_CUSTOMTOUCHPANEL

/*
 * Virtual framebuffer mouse driver
 */

#ifndef QT_NO_QWS_VFB
#include "qvfbhdr.h"
extern int qws_display_id;

QVFbMouseHandlerPrivate::QVFbMouseHandlerPrivate( MouseProtocol, QString mouseDev )
{
    mouseFD = -1;
    if ( mouseDev.isEmpty() )
	mouseDev = QString(QT_VFB_MOUSE_PIPE).arg(qws_display_id);

    if ((mouseFD = open( mouseDev.local8Bit(), O_RDWR | O_NDELAY)) < 0) {
	qDebug( "Cannot open %s (%s)", mouseDev.ascii(),
		strerror(errno));
    } else {
	// Clear pending input
	char buf[2];
	while (read(mouseFD, buf, 1) > 0) { }

	mouseIdx = 0;

	QSocketNotifier *mouseNotifier;
	mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read, this );
	connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData()));
    }
}

QVFbMouseHandlerPrivate::~QVFbMouseHandlerPrivate()
{
    if (mouseFD >= 0)
	close(mouseFD);
}

void QVFbMouseHandlerPrivate::readMouseData()
{
    int n;
    do {
	n = read(mouseFD, mouseBuf+mouseIdx, mouseBufSize-mouseIdx );
	if ( n > 0 )
	    mouseIdx += n;
    } while ( n > 0 );

    int idx = 0;
    while ( mouseIdx-idx >= int(sizeof( QPoint ) + sizeof( int )) ) {
	uchar *mb = mouseBuf+idx;
	QPoint *p = (QPoint *) mb;
	mb += sizeof( QPoint );
	int *bstate = (int *)mb;
	mousePos = *p;
	limitToScreen( mousePos );
	mouseChanged(mousePos, *bstate);
	idx += sizeof( QPoint ) + sizeof( int );
    }

    int surplus = mouseIdx - idx;
    for ( int i = 0; i < surplus; i++ )
	mouseBuf[i] = mouseBuf[idx+i];
    mouseIdx = surplus;
}
#endif //QT_NO_QWS_VFB

/*
 * return a QWSMouseHandler that supports /a spec.
 */

QWSMouseHandler* QWSServer::newMouseHandler(const QString& spec)
{
    static int init=0;
    if ( !init && qt_screen ) {
	init = 1;
	//	mousePos = QPoint(qt_screen->width()/2,
	//			  qt_screen->height()/2);
    }

    int c = spec.find(':');
    QString mouseProto;
    QString mouseDev;
    if ( c >= 0 ) {
	mouseProto = spec.left(c);
	mouseDev = spec.mid(c+1);
    } else {
	mouseProto = spec;
    }

    MouseProtocol mouseProtocol = Unknown;

    int idx = 0;
    while (mouseProtocol == Unknown && mouseConfig[idx].name) {
	if (mouseProto == QString(mouseConfig[idx].name)) {
	    mouseProtocol = mouseConfig[idx].id;
	}
	idx++;
    }


    QWSMouseHandler *handler = 0;

#ifdef QT_QWS_CUSTOMTOUCHPANEL
    handler=new QCustomTPanelHandlerPrivate(mouseProtocol,mouseDev);
#endif

#ifdef QT_QWS_LUBBOCK
    handler=new QLubbockTPanelHandlerPrivate(mouseProtocol,mouseDev);
#endif

#ifdef QT_QWS_YOPY
    handler=new QYopyTPanelHandlerPrivate(mouseProtocol,mouseDev);
#endif

#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX)
    handler=new QTPanelHandlerPrivate(mouseProtocol,mouseDev);
#endif

#ifdef Q_OS_QNX6
    handler=new QQnxMouseHandlerPrivate(mouseProtocol, mouseDev );
#else
#ifndef QWS_CUSTOMTOUCHPANEL
#if !defined(QT_QWS_IPAQ) && !defined(QT_QWS_EBX)
    switch ( mouseProtocol ) {
#ifndef QT_NO_QWS_MOUSE_AUTO
    case Auto:
	handler = new QAutoMouseHandlerPrivate();
	break;
#endif
#ifndef QT_NO_QWS_MOUSE_MANUAL
    case MouseMan:
    case IntelliMouse:
    case Microsoft:
    case BusMouse:
	handler = new QWSMouseHandlerPrivate( mouseProtocol, mouseDev );
	break;
#endif
#ifndef QT_NO_QWS_VFB
    case QVFBMouse:
	handler = new QVFbMouseHandlerPrivate( mouseProtocol, mouseDev );
	break;
#endif
#ifdef QT_QWS_CASSIOPEIA
    case TPanel:
	handler = new QVrTPanelHandlerPrivate( mouseProtocol, mouseDev );
	break;
#endif
    default:
	qDebug( "Mouse type %s unsupported", spec.latin1() );
    }
#endif
#endif
#endif //Q_OS_QNX6

    return handler;
}

/*!
  \fn QWSMouseHandler::clearCalibration()
  This method is reimplemented in the calibrated mouse handler
  to clear calibration information. This version does nothing.
*/

/*!
  \fn QWSMouseHandler::calibrate(QWSPointerCalibrationData * )

  This method is reimplemented in the calibrated mouse handler
  to set calibration information (from, for instance, the QPE
  calibration screen). This version does nothing.
*/






















?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美麻豆| 中文字幕一区二区三区在线不卡 | 色综合欧美在线| 奇米在线7777在线精品| 国产精品久久久爽爽爽麻豆色哟哟| 欧美主播一区二区三区| 国产很黄免费观看久久| 日韩黄色小视频| 亚洲卡通动漫在线| 国产亚洲一二三区| 欧美一级高清片| 欧美性xxxxxxxx| 成人国产精品免费观看视频| 美日韩一区二区| 午夜精品影院在线观看| 亚洲成人激情社区| 亚洲欧美乱综合| 国产精品免费视频一区| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美日韩国产高清一区二区三区 | 92国产精品观看| 国产激情精品久久久第一区二区| 午夜av一区二区| 亚洲成人黄色影院| 亚洲国产人成综合网站| 17c精品麻豆一区二区免费| 久久久久久久久99精品| 337p亚洲精品色噜噜噜| 欧美日韩精品高清| 欧美日韩亚洲综合| 欧美三级韩国三级日本一级| 色综合久久天天综合网| gogogo免费视频观看亚洲一| 成人性视频免费网站| 国产一区二区三区在线观看精品| 极品少妇一区二区三区精品视频| 免费在线成人网| 久久精品99久久久| 麻豆91精品91久久久的内涵| 奇米影视在线99精品| 蜜臀av一区二区在线免费观看| 五月综合激情网| 青椒成人免费视频| 久久99精品一区二区三区三区| 日本sm残虐另类| 久久精工是国产品牌吗| 九色|91porny| 国产盗摄精品一区二区三区在线| 国产酒店精品激情| 国产精品亚洲人在线观看| 国产mv日韩mv欧美| 成人av在线一区二区三区| 97精品国产97久久久久久久久久久久 | www.久久久久久久久| 99国产精品一区| 欧美三级乱人伦电影| 日韩一区二区麻豆国产| 26uuuu精品一区二区| 中文字幕一区二区在线观看| 亚洲一二三区视频在线观看| 日韩va亚洲va欧美va久久| 精品一区二区影视| 成人听书哪个软件好| 一本色道亚洲精品aⅴ| 欧美日本乱大交xxxxx| 欧美成人猛片aaaaaaa| 中文在线一区二区| 亚洲国产综合在线| 久久精品噜噜噜成人88aⅴ| 国产不卡视频一区二区三区| 色综合色狠狠综合色| 日韩一二三区视频| 国产精品久久综合| 五月开心婷婷久久| 国产高清不卡一区| 91成人国产精品| 精品国产一区a| 亚洲人成人一区二区在线观看| 日韩不卡手机在线v区| 成人动漫av在线| 91精品国产综合久久福利软件| 久久久国产精品午夜一区ai换脸| 亚洲女爱视频在线| 久久精品99国产精品日本| 91色视频在线| 欧美精品一区二区三区在线| 亚洲老妇xxxxxx| 国产又黄又大久久| 欧美日韩在线免费视频| 久久久久久久综合狠狠综合| 一区二区三区视频在线看| 久久99国产乱子伦精品免费| 在线观看免费成人| 国产校园另类小说区| 日韩专区在线视频| 99久久伊人久久99| 欧美大肚乱孕交hd孕妇| 亚洲综合成人网| 成人免费精品视频| 久久综合色之久久综合| 日韩精品免费专区| 97超碰欧美中文字幕| 精品久久人人做人人爽| 亚洲国产cao| 91视视频在线观看入口直接观看www | 精品理论电影在线| 亚洲电影一区二区| 99久久国产综合精品女不卡| 日韩免费视频一区二区| 亚洲成人免费影院| 欧美日本一区二区| 亚洲欧美在线aaa| 国产福利一区二区| 2021中文字幕一区亚洲| 日本怡春院一区二区| 色婷婷亚洲精品| 国产精品成人免费在线| 国产a区久久久| 久久老女人爱爱| 久久爱www久久做| 欧美一区二区三区四区在线观看| 亚洲一区二区三区四区五区黄 | 国产精品的网站| 国产a视频精品免费观看| 久久综合久久99| 美女精品一区二区| 91精品国产福利| 强制捆绑调教一区二区| 日韩一二在线观看| 免费久久精品视频| 精品噜噜噜噜久久久久久久久试看 | 精品嫩草影院久久| 麻豆91精品视频| 精品盗摄一区二区三区| 久草这里只有精品视频| 亚洲精品一区二区三区香蕉| 韩国欧美国产一区| 久久噜噜亚洲综合| 国产成人在线免费| 中文字幕免费一区| a在线播放不卡| 亚洲欧美一区二区不卡| 在线观看日韩毛片| 天堂一区二区在线| 日韩一区二区三区电影| 国产一区二区三区免费看| 国产欧美日韩在线视频| va亚洲va日韩不卡在线观看| 亚洲欧美成aⅴ人在线观看| 欧美在线一区二区| 日本女人一区二区三区| 欧美精品一区二区三区蜜臀| 成人免费高清视频在线观看| 亚洲精品国产高清久久伦理二区| 欧美三级一区二区| 久久国产成人午夜av影院| 国产日产亚洲精品系列| 日本久久电影网| 麻豆91精品视频| 国产精品私人自拍| 欧日韩精品视频| 久久国产麻豆精品| 国产精品不卡在线| 欧美三级三级三级爽爽爽| 秋霞国产午夜精品免费视频| 国产日韩精品一区二区三区在线| 一本到高清视频免费精品| 视频一区二区欧美| 久久久久亚洲综合| 91久久香蕉国产日韩欧美9色| 亚洲成人午夜电影| 久久精品亚洲国产奇米99| jvid福利写真一区二区三区| 日韩电影一区二区三区四区| 国产欧美精品一区二区色综合朱莉| 91碰在线视频| 久久97超碰国产精品超碰| 亚洲免费观看在线视频| 欧美一级片在线观看| 91亚洲男人天堂| 久久国产精品免费| 一级女性全黄久久生活片免费| 精品入口麻豆88视频| 欧洲精品中文字幕| 国产成人鲁色资源国产91色综| 亚洲综合精品自拍| 欧美精彩视频一区二区三区| 欧美精品一二三| 成人短视频下载| 精品一区二区三区影院在线午夜| 亚洲精品免费视频| 久久―日本道色综合久久| 欧美三区在线视频| www..com久久爱| 国产一区二区三区免费| 婷婷综合另类小说色区| 亚洲精品视频一区二区| 欧美国产日本韩| 久久久综合网站| 日韩免费性生活视频播放|