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

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

?? netsdkdemodlg.cpp

?? 它是一個可以實時交互的嵌入式軟件系統
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
   // NetSDKDemoDlg.cpp : implementation file

#include "stdafx.h"
#include "NetSDKDemo.h"
#include "NetSDKDemoDlg.h"
#include "splitinfodlg.h"
#include "adddevicedlg.h"
#include "searchrecord.h"
#include "systemconfig.h"
#include "dhextptzctrl.h"
#include "dhptzmenu.h"
#include "transcom.h"
#include "recordctrldlg.h"
#include "deviceworkstate.h"
#include "alarmctrldlg.h"
#include "cyclemonitor.h"
#include "systemcfg.h"
#include "direct.h"
#include "playbackbytime.h"
#include "downloadbytime.h"
#include "NetUpgrade.h"
#include "DDNS_QueryIP.h"
#include "IrDlg.h"
#include  "Winsock2.h" 
/*
/////////////////////////////////////////
//console
////////////////////////////////////////
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include <iostream>
#include <fstream>
*/


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CNetSDKDemoApp theApp;
#pragma data_seg("sharesec")
__declspec (allocate("sharesec")) HWND g_share_hWnd = NULL;
#pragma comment(linker,"/SECTION:sharesec,RWS")


#define CUR_MAXCHAN 16
#define	CUR_SPLIT	SPLIT16

extern CNetSDKDemoApp theApp;
UserInfo *g_userinfo_main[10];
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

/*

using namespace std;

static const WORD MAX_CONSOLE_LINES = 500;

void RedirectIOToConsole()
{
	int hConHandle;
	long lStdHandle;
	
	CONSOLE_SCREEN_BUFFER_INFO coninfo; // 控制臺信息
	FILE *fp;
	
	// allocate a console for this app
	AllocConsole();  // 打開一個控制臺
	
	// set the screen buffer to be big enough to let us scroll text
	GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
	
	// 設置控制臺參數
	coninfo.dwSize.Y = MAX_CONSOLE_LINES;
	SetConsoleScreenBufferSize(
		GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);
	
	// redirect unbuffered STDOUT to the console
	lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE); 
	hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); 
	
	fp = _fdopen(hConHandle, "w" );
	*stdout = *fp; // 為全局c變量stdout賦值,使用自己打開的控制臺.
	setvbuf(stdout, NULL, _IONBF, 0);
	
	// redirect unbuffered STDIN to the console
	lStdHandle = (long)GetStdHandle(STD_INPUT_HANDLE);
	hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
	fp = _fdopen( hConHandle, "r");
	*stdin = *fp;
	setvbuf(stdin, NULL, _IONBF, 0);
	
	// redirect unbuffered STDERR to the console
	lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE);
	hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
	fp = _fdopen(hConHandle, "w");
	*stderr = *fp;
	setvbuf(stderr, NULL, _IONBF, 0);
	
	// make cout, wcout, cin, wcin, wcerr, cerr, wclog and clog 
	// point to console as well
	ios::sync_with_stdio();
}
*/

inline void dbg_print_ex(int level, const char *msg, ...)
{
	char buf[256];
	
	va_list ap;
	va_start(ap, msg); // use variable arg list
	vsprintf(buf, msg, ap);
	va_end( ap );
	
	OutputDebugString(buf);
}
extern CNetSDKDemoApp theApp;
class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNetSDKDemoDlg dialog

CNetSDKDemoDlg::CNetSDKDemoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CNetSDKDemoDlg::IDD, pParent)
{
	m_connectwaittime = 3000;
	m_myBrush.CreateSolidBrush(RGB(255,255,255));
	//{{AFX_DATA_INIT(CNetSDKDemoDlg)
	m_ptz_data = 5;
	m_play_frame = 0;
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = 0;//AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CNetSDKDemoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNetSDKDemoDlg)
	DDX_Control(pDX, IDC_BUTTON_DOWN, m_btn_down);
	DDX_Control(pDX, IDC_BUTTON_CNL, m_btn_cnl);
	DDX_Control(pDX, IDC_BUTTON_VOD, m_btn_vod);
	DDX_Control(pDX, IDC_BUTTON_UP, m_btn_up);
	DDX_Control(pDX, IDC_BUTTON_RIGHT, m_btn_right);
	DDX_Control(pDX, IDC_BUTTON_OK, m_btn_ok);
	DDX_Control(pDX, IDC_BUTTON_LEFT, m_btn_left);
	DDX_Control(pDX, IDC_BUTTON_FOS, m_btn_fos);
	DDX_Control(pDX, IDC_BUTTON_DVR, m_btn_dvr);
	DDX_Control(pDX, IDC_BUTTON_PZT, m_btn_ptz);
	DDX_Control(pDX, IDC_BUTTON_SETUP, m_btn_setup);
	DDX_Control(pDX, IDC_BUTTON_MIN, m_btn_min);
	DDX_Control(pDX, IDC_BUTTON_CLOSE, m_btn_close);
	DDX_Control(pDX, IDC_LOGO, m_logopic);
	DDX_Control(pDX, IDC_STATICTOP, m_toppic);
	DDX_Control(pDX, IDC_STATICRIGHT, m_rightpic);
	DDX_Control(pDX, IDC_STATICLEFT, m_leftpic);
	DDX_Control(pDX, IDC_STATICRMTCTL, m_rmtctl);
	DDX_Control(pDX, IDC_TREE_DEVICELIST, m_devicelist);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CNetSDKDemoDlg, CDialog)
	//{{AFX_MSG_MAP(CNetSDKDemoDlg)
	ON_MESSAGE(WM_IR_RECIEVE, OnIRRecieve) 
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_WM_CLOSE()
	ON_WM_TIMER()
	ON_WM_CTLCOLOR()
	ON_NOTIFY(NM_DBLCLK, IDC_TREE_DEVICELIST, OnDblclkTreeDevicelist)
	ON_WM_SIZE()
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_BUTTON_CLOSE, OnCloseWindow)
	ON_BN_CLICKED(IDC_BUTTON_MIN, OnWindowMin)
	ON_BN_CLICKED(IDC_BUTTON_SETUP, OnButtonSetup)
	ON_NOTIFY(TVN_KEYDOWN, IDC_TREE_DEVICELIST, OnKeydownTreeDevicelist)
	ON_BN_CLICKED(IDC_BUTTON_DVR, OnButtonDvr)
	ON_BN_CLICKED(IDC_BUTTON_CNL, OnButtonCnl)
	ON_BN_CLICKED(IDC_BUTTON_UP, OnButtonUp)
	ON_BN_CLICKED(IDC_BUTTON_DOWN, OnButtonDown)
	ON_BN_CLICKED(IDC_BUTTON_LEFT, OnButtonLeft)
	ON_BN_CLICKED(IDC_BUTTON_RIGHT, OnButtonRight)
	ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
	ON_BN_CLICKED(IDC_BUTTON_FOS, OnButtonFos)
	ON_BN_CLICKED(IDC_BUTTON_VOD, OnButtonVod)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////初始化回調相關的函數////////////////////////////////////////////////
//設備斷開時回調函數,可以用來處理斷開后設備列表的更新及設備的刪除操作
void CALLBACK DisConnectFunc(LONG lLoginID, char *pchDVRIP, LONG nDVRPort, DWORD dwUser)
{
	if(dwUser == 0)
	{
		return;
	}
	CNetSDKDemoDlg *dlg = (CNetSDKDemoDlg *)dwUser;
	dlg->DeviceDisConnect(lLoginID, pchDVRIP,nDVRPort);
}

//設備斷開處理
void CNetSDKDemoDlg::DeviceDisConnect(LONG lLoginID, char *sDVRIP,LONG nDVRPort)
{
	DeviceNode node;
	int r = CDevMgr::GetDevMgr().GetDev(lLoginID, node);
	if (r < 0)
	{
		return ;
	}

	/*
	DeviceNode *nDev=(DeviceNode *)FindDeviceInfo(lLoginID, sDVRIP,nDVRPort);
	if(nDev == NULL)
	{
		return;
	}
	*/
	CString nStr;
	nStr.Format("%s device disconnect ",node.IP);

	ProcessDeleteDevice(&node, true, true);
	UpdateDeviceList();
	UpdateCurScreenInfo();
	
	MessageBox(nStr);
	UpdateScreen(m_normalBtnPannel.GetSplit());
//	Invalidate(true);
}

//消息回調處理函數,是對整個sdk應用的回調
BOOL CALLBACK MessCallBack(LONG lCommand, LONG lLoginID, char *pBuf, DWORD dwBufLen, 
						   char *pchDVRIP, LONG nDVRPort, DWORD dwUser)
{
	if(!dwUser) return FALSE;

	CNetSDKDemoDlg *dlg = (CNetSDKDemoDlg *)dwUser;
	return dlg ->ReceiveMessage(lLoginID, lCommand, pchDVRIP, nDVRPort,pBuf, dwBufLen);
}

//接收到設備消息的處理,目前只定義了報警消息回調
BOOL CNetSDKDemoDlg::ReceiveMessage(LONG lLoginID, LONG lCommand, char *pchDVRIP, LONG nDVRPort, 
		char *pBuf, DWORD dwBufLen)
{
//	EnterCriticalSection(&g_csAlarm);
//	CCSLock lk(g_cs);
/*
		if (!m_bShowStatus) 
		{
			return false;
		}*/
	int nRet = CDevMgr::GetDevMgr().SetAlarmInfo(lLoginID, lCommand, pchDVRIP, nDVRPort, 
		pBuf, dwBufLen);
	return nRet<0?FALSE:TRUE;
/*
	DeviceNode node;
	int r = CDevMgr::GetDevMgr().GetDev(lLoginID, node);
	if (r < 0)
	{
		LeaveCriticalSection(&g_csAlarm);
		return false;
	}

	DeviceNode *nDev = &node;

	DeviceNode *nDev = (DeviceNode *)FindDeviceInfo(lLoginID, pchDVRIP,nDVRPort );
	
	if(nDev == NULL)
	{
		goto e_exit;
	}
	

	switch(lCommand) {
	case COMM_ALARM:
	{
	 
					NET_CLIENT_STATE *ClientState = (NET_CLIENT_STATE *)pBuf;
					
					if(ClientState == NULL)
					{
						return FALSE;
					}
					
					printf("alarm infomation:\n");
					
					CString str;
					
					for(int i=0; i<ClientState->channelcount; i++)
					{
						CString strTemp;
						strTemp.Format("%d ", ClientState->record[i]);
						str += strTemp;
					}
					
					printf("alarm: Recording Status-- %s\n", str.GetBuffer(0));
					
					for(i=0; i<ClientState->alarminputcount; i++)
					{
						CString strTemp;
						strTemp.Format("%d ", ClientState->alarm[i]);
						str += strTemp;
					}
					
					printf("alarm: Extern Alarm-- %s\n", str.GetBuffer(0));
					
					
					for(i=0; i<ClientState->channelcount; i++)
					{
						CString strTemp;
						strTemp.Format("%d ", ClientState->motiondection[i]);
						str += strTemp;
					}
					
					printf("alarm: Motion Detect-- %s\n", str.GetBuffer(0));
					
					for(i=0; i<ClientState->channelcount; i++)
					{
						CString strTemp;
						strTemp.Format("%d ", ClientState->videolost[i]);
						str += strTemp;
					}
					
					printf("alarm: Video Lost-- %s\n", str.GetBuffer(0));
		
		}
		UpdateDeviceState(nDev, pBuf, dwBufLen);
		//m_ClientStateDlg.UpdateState(nDev,pBuf, dwBufLen);
		if(!m_ClientStateDlg.m_isNoMoreShow)
		{
			m_ClientStateDlg.ShowWindow(SW_SHOW);
		}
		break;
	default : 
		goto e_exit;
	}

//	LeaveCriticalSection(&g_csAlarm);
	return true;
e_exit:
//	LeaveCriticalSection(&g_csAlarm);
	return false;
	*/
/*

	DeviceNode *nDev = (DeviceNode *)FindDeviceInfo(lLoginID, pchDVRIP,nDVRPort );

	if(nDev == NULL)
	{
		m_bShowStatus = FALSE;
		return false;
	}
	switch(lCommand) {
	case COMM_ALARM:
		UpdateDeviceState(nDev, pBuf, dwBufLen);
		m_ClientStateDlg.UpdateState(nDev,pBuf, dwBufLen);
		if(!m_ClientStateDlg.m_isNoMoreShow)
		{
			m_ClientStateDlg.ShowWindow(SW_SHOW);
		}
		break;
	default : 
		m_bShowStatus = FALSE;
		return false;
	}
	m_bShowStatus = FALSE;
	return true;*/

}

//自定義畫板回調,可以用來顯示通道信息
void CALLBACK ChannelAutoDraw(LONG lLoginID, LONG lPlayHandle, HDC hDC, DWORD dwUser)
{
	if(!dwUser) return;

	CNetSDKDemoDlg *dlg = (CNetSDKDemoDlg *)dwUser;
	dlg->AddDisplayInfo(lLoginID, lPlayHandle, hDC);
}

//疊加字符或圖片
void CNetSDKDemoDlg::AddDisplayInfo(LONG lLoginID, LONG lPlayHandle, HDC hDC)
{
	DeviceNode *pDev;
	CString str;

	//取得窗口號
	int i = GetHandleSplit(lPlayHandle);
	if(i < 0)
	{
		return;
	}

	SplitInfoNode siNode;
	memset(&siNode, 0, sizeof(siNode));
	BOOL ret = GetSplitInfo_Main(i, &siNode);
	if (!ret)
	{
		return;
	}

	switch(siNode.Type) 
	{
	case SPLIT_TYPE_MONITOR:
		{
			SplitMonitorParam *mParam = (SplitMonitorParam *)siNode.Param;
			if (mParam)
			{
				pDev = mParam->pDevice;
				str.Format(" %02d",  mParam->iChannel + 1);
				str = MSG_DEMODLG_MONITOR + str;
			//	for(int j = 0; j < pDev->State.channelcount; j++)
			//	{
					if(*(pDev->State.motiondection + mParam->iChannel))
					{
						CString almstr;
						almstr.Format("! ALARM !");
						SetTextColor(hDC, RGB(255,0,0));
						CRect rect;
						//m_playWnd[i].GetClientRect(&rect);
						CWnd* pWnd = m_screenPannel.GetPage(i);
						if (!pWnd)
						{
							MessageBox("unexpected error!!");
						}
						pWnd->GetClientRect(&rect);
						if (pWnd && ::IsWindow(pWnd->GetSafeHwnd()))
						{
							TextOut(hDC, rect.right / 3, rect.bottom / 2, almstr.GetBuffer(0), almstr.GetLength());
						}
					//	break;
					}
			//	}
			}
		}
		break;
	case SPLIT_TYPE_MULTIPLAY:
		pDev = (DeviceNode *)siNode.Param;
		str.Format(" %s[%s]", pDev->Name,  pDev->IP);
		str = MSG_DEMODLG_PREVIEW + str;
		break;

	case SPLIT_TYPE_NETPLAY:
		{
			SplitNetPlayParam *nParam = (SplitNetPlayParam *)siNode.Param; 
			pDev = nParam->pFileInfo->pDevice;
			str.Format(" %s[%s]%02d", pDev->Name, pDev->IP, 
				nParam->pFileInfo->fileinfo.ch + 1);
			str = MSG_DEMODLG_PLAYBACKCHL + str;
		}
		break;
	case SPLIT_TYPE_PBBYTIME:
		{
			break;
		}
	case SPLIT_TYPE_CYCLEMONITOR:
		{
			SplitCycleParam *cParam = (SplitCycleParam *)siNode.Param;
			CycleChannelInfo *cci = 0;
			POSITION pos = cParam->pChannelList->GetHeadPosition();
			for (int counter = 0; counter <= cParam->iCurPosition; counter++)
			{
				cci = (CycleChannelInfo *)cParam->pChannelList->GetNext(pos);
			}
			pDev = (DeviceNode *)cci->dwDeviceID;
			str.Format(" %s[%s](%02d)", pDev->Name, pDev->IP, cci->iChannel + 1);
			str = MSG_DEMODLG_CYCLEMONITOR + str;
			break;
		}
	default :
		return;
	}

	SetBkMode(hDC, TRANSPARENT);
	SetTextColor(hDC, RGB(255,255,0));
	TextOut(hDC, 0, 0, str.GetBuffer(0), str.GetLength());
	
}
// CNetSDKDemoDlg message handlers
BOOL CNetSDKDemoDlg::OnInitDialog()
{
//	RedirectIOToConsole();
	if(g_share_hWnd)
	{
		AfxMessageBox(_T("Only one process allowed"));
		CWnd* pWnd = CWnd::FromHandle(g_share_hWnd);
		if(pWnd)
		{
			if (pWnd->IsIconic())
			{
				pWnd->ShowWindow(SW_RESTORE);
			}
			pWnd->SetForegroundWindow(); 
		}
		exit(0);
	}
	else
	{
		g_share_hWnd = m_hWnd;
	}
	CDialog::OnInitDialog();
	g_SetWndStaticText(this);
	
	char tmpDir[1000];
	_getcwd(tmpDir, 1000);
	g_strWorkDir.Format("%s", tmpDir);

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品无人码麻豆乱码1区2区| 久久久久久久久免费| 亚洲男人的天堂av| 色偷偷88欧美精品久久久| 亚洲视频免费在线| 欧美天堂亚洲电影院在线播放| 亚洲国产精品欧美一二99| 欧美少妇bbb| 免费观看一级欧美片| 久久香蕉国产线看观看99| 成人网男人的天堂| 樱花影视一区二区| 欧美另类变人与禽xxxxx| 视频在线观看91| 日韩欧美精品在线| 国产成人啪午夜精品网站男同| 中文字幕亚洲综合久久菠萝蜜| 91极品美女在线| 免费日韩伦理电影| 欧美国产精品一区| 欧美日韩五月天| 美腿丝袜亚洲一区| 国产精品久久久久精k8| 欧美三级视频在线| 国产一区二区精品久久91| 亚洲国产成人自拍| 欧美日韩国产另类不卡| 狠狠色狠狠色合久久伊人| 亚洲少妇屁股交4| 日韩三级中文字幕| 99国产精品国产精品久久| 青青国产91久久久久久 | 国模冰冰炮一区二区| 成人欧美一区二区三区白人| 欧美人与禽zozo性伦| 风间由美性色一区二区三区| 亚洲国产精品久久一线不卡| 国产三级精品在线| 91麻豆精品国产91久久久资源速度 | 精品精品国产高清a毛片牛牛| 风间由美一区二区av101| 日本午夜精品视频在线观看 | 精品一区二区三区久久| 亚洲视频图片小说| 欧美精品一区二区三区视频| 色网综合在线观看| 国产成人精品影院| 美洲天堂一区二卡三卡四卡视频| 亚洲男人都懂的| 欧美国产亚洲另类动漫| 欧美日韩国产天堂| 99久久精品免费精品国产| 国产一区二区在线影院| 亚洲电影一级片| 亚洲乱码中文字幕| 国产欧美一区二区在线| 日韩精品综合一本久道在线视频| 色综合色狠狠综合色| 成人精品一区二区三区中文字幕| 久久国产精品第一页| 日韩av网站免费在线| 亚洲主播在线观看| 亚洲人成人一区二区在线观看| 久久精品亚洲国产奇米99| 欧美成人激情免费网| 日韩一级片网站| 91精品国产手机| 777午夜精品视频在线播放| 欧美午夜在线观看| 处破女av一区二区| 国产成人精品一区二| 国产麻豆精品在线| 国产一区二区不卡在线| 国产另类ts人妖一区二区| 激情欧美一区二区三区在线观看| 欧美aaaaaa午夜精品| 日韩激情在线观看| 美女高潮久久久| 麻豆国产精品官网| 久久成人羞羞网站| 久久超级碰视频| 国产一区在线精品| 粉嫩一区二区三区性色av| 波多野结衣欧美| 色综合久久天天| 欧美色中文字幕| 91精品蜜臀在线一区尤物| 欧美成人a在线| 亚洲精品在线三区| 亚洲国产激情av| 伊人色综合久久天天人手人婷| 亚洲欧美成人一区二区三区| 一区二区三区四区在线| 亚洲成人午夜电影| 久久99国产精品尤物| 久久99精品网久久| 处破女av一区二区| 色欧美片视频在线观看在线视频| 在线一区二区三区| 在线不卡中文字幕| 久久久精品国产免大香伊| 最新日韩在线视频| 亚洲一区二区三区四区五区中文| 调教+趴+乳夹+国产+精品| 九一九一国产精品| 成人avav影音| 91精选在线观看| 国产精品三级av在线播放| 亚洲精品国产第一综合99久久| 三级一区在线视频先锋| 国产成人精品免费看| 在线精品观看国产| 精品久久人人做人人爰| 亚洲天堂精品在线观看| 日韩电影在线免费观看| 国产成人99久久亚洲综合精品| 在线精品视频一区二区| 久久亚洲春色中文字幕久久久| 亚洲男人的天堂在线aⅴ视频| 免费看精品久久片| 91麻豆精东视频| 26uuu欧美| 一区二区三区不卡在线观看 | 亚洲美女淫视频| 久久99这里只有精品| 一本在线高清不卡dvd| 精品久久久影院| 亚洲一区二区在线播放相泽| 国产高清在线精品| 欧美顶级少妇做爰| 亚洲欧美日韩电影| 国产乱子轮精品视频| 欧美日韩中文另类| 亚洲视频在线一区观看| 日本一区二区动态图| 精品处破学生在线二十三| 中文字幕一区二区三| 寂寞少妇一区二区三区| 欧美无砖专区一中文字| 国产精品久久久久一区| 麻豆国产精品官网| 欧美日韩国产片| 亚洲视频在线观看一区| 国产一区二区精品久久99| 欧美顶级少妇做爰| 亚洲国产日韩综合久久精品| 成人黄色免费短视频| 国产亚洲精久久久久久| 免费av成人在线| 欧美日本高清视频在线观看| 一区二区三区欧美| 成人免费福利片| 国产午夜亚洲精品理论片色戒| 日韩电影免费在线| 欧美日韩一区三区四区| 一区二区三区四区在线播放 | 国产美女娇喘av呻吟久久| 这里是久久伊人| 亚洲va天堂va国产va久| 在线观看国产日韩| 亚洲乱码中文字幕综合| 91在线看国产| 综合电影一区二区三区| www.久久久久久久久| 国产精品视频第一区| 成人黄动漫网站免费app| 欧美激情一区二区三区四区| 国产麻豆9l精品三级站| 欧美精品一区二区蜜臀亚洲| 精品一区二区三区在线观看国产| 欧美一区二区三区免费观看视频| 亚洲444eee在线观看| 91精品国模一区二区三区| 日韩二区三区在线观看| 日韩欧美在线网站| 国产乱码精品一区二区三| 久久精品亚洲乱码伦伦中文| 国产福利91精品| 国产女人18毛片水真多成人如厕| 高清国产一区二区三区| 国产精品欧美综合在线| 色偷偷久久一区二区三区| 亚洲在线视频免费观看| 在线观看91精品国产麻豆| 久久超级碰视频| 亚洲国产电影在线观看| 91福利国产精品| 免费黄网站欧美| 国产日韩av一区| 91免费版pro下载短视频| 亚洲第一主播视频| 精品少妇一区二区三区在线播放| 久久99精品国产.久久久久| 国产欧美日韩不卡免费| 在线中文字幕不卡| 久久成人免费电影| 国产精品视频线看| 51精品久久久久久久蜜臀| 国产麻豆精品95视频| 有坂深雪av一区二区精品|