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

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

?? childfrm.cpp

?? 基于SDK的圖像采集程序
?? CPP
字號:
// ChildFrm.cpp : implementation of the CChildFrame class
//

#include "stdafx.h"
#include "Multicard.h"
#include "ChildFrm.h"

#include "PropertyDlg.h"
#include "ConfigDlg.h"
#include "LogoDlg.h"
#include "ShowStreamDlg.h"
#include "FourwayDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

typedef struct tagSTREAMNOTIFYPARAME
{
	int iDlgCount;
	CShowStreamDlg * pDlgArray;
} STREAMNOTIFYPARAME;

//數據流回調函數
void __stdcall StreamNotify(const BYTE* pDIBHead, const BYTE* pDIBits, LPVOID pParam)
{
	STREAMNOTIFYPARAME * pSNP = (STREAMNOTIFYPARAME *) pParam;

	if(!pSNP || !pDIBHead || !pDIBits)
		return;
   
   BITMAPINFO *curHead=(BITMAPINFO*)pDIBHead;
   int wth=curHead->bmiHeader.biWidth;
   int hgt=curHead->bmiHeader.biHeight;
   int fmsz=curHead->bmiHeader.biSizeImage;
   //BYTE *pLastFrame=new BYTE[wth*hgt*bts/8];
//   memcpy(plastFrame,pDIBits,wth*hgt*bts/8);
   //HGLOBAL HNDL=GlobalHandle(pDIBits);
   //只有當前已經處理過了,才能將上一覆蓋
                                            //pLastFrame 應為全局變量,有待完成
   ///for(int i=0;i)
   


pSNP->pDlgArray[0].DisplayGrayImage((BITMAPINFO*)pDIBHead,pDIBits);
  /* for(int i=0;i<4;i++)
pSNP->pDlgArray[i].GrayShow((BITMAPINFO*)pDIBHead,pDIBits);//,fmsz,pSNP);
*/
	//memcpy(pLastFrame,pDIBits,wth*hgt*bts/8);
		//不在這里進行兩幀的轉換,應該在ProcessImage中,為Cshowstreamdlg的全局兩
//	pSNP->pDlgArray[0].ShowStream((BITMAPINFO*)pDIBHead,pFrame2Dsp);
		

//	delete [] pLastFrame;
}

/////////////////////////////////////////////////////////////////////////////
// CChildFrame

IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)

BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
	//{{AFX_MSG_MAP(CChildFrame)
		ON_COMMAND(ID_FILE_CLOSE, OnFileClose)
		ON_WM_CREATE()
	ON_WM_SIZE()
	ON_COMMAND(ID_NORMALSIZE, OnNormalSize)
	ON_COMMAND(ID_PROPERTYDIALOG, OnPropertyDialog)
	ON_COMMAND(ID_CONFIGDIALOG, OnConfigDialog)
	ON_COMMAND(ID_LISTALLFILTER, OnListAllFilter)
	ON_COMMAND(ID_LOGODIALOG, OnLogoDialog)
	ON_COMMAND(ID_SAVEBMP, OnSaveBmp)
	ON_COMMAND(ID_SAVEJPG, OnSaveJpg)
	ON_COMMAND(ID_STARTCAPTURE, OnStartCapture)
	ON_COMMAND(ID_STOPCAPTURE, OnStopCapture)
	ON_UPDATE_COMMAND_UI(ID_STARTCAPTURE, OnUpdateStartCapture)
	ON_UPDATE_COMMAND_UI(ID_STOPCAPTURE, OnUpdateStopCapture)
	ON_COMMAND(ID_CAPTUREAUDIO, OnCaptureAudio)
	ON_UPDATE_COMMAND_UI(ID_CAPTUREAUDIO, OnUpdateCaptureAudio)
	ON_COMMAND(ID_STATE_RUN, OnStateRun)
	ON_UPDATE_COMMAND_UI(ID_STATE_RUN, OnUpdateStateRun)
	ON_COMMAND(ID_STATE_STOP, OnStateStop)
	ON_UPDATE_COMMAND_UI(ID_STATE_STOP, OnUpdateStateStop)
	ON_COMMAND(ID_STATE_PAUSE, OnStatePause)
	ON_UPDATE_COMMAND_UI(ID_STATE_PAUSE, OnUpdateStatePause)
	ON_COMMAND(ID_STARTSHOWSTREAM, OnStartShowStream)
	ON_UPDATE_COMMAND_UI(ID_STARTSHOWSTREAM, OnUpdateStartShowStream)
	ON_COMMAND(ID_STOPSHOWSTREAM, OnStopShowStream)
	ON_UPDATE_COMMAND_UI(ID_STOPSHOWSTREAM, OnUpdateStopShowStream)
	ON_COMMAND(ID_OVERLAY, OnOverlay)
	ON_UPDATE_COMMAND_UI(ID_OVERLAY, OnUpdateOverlay)
	ON_COMMAND(ID_FOURWAYDLG, OnFourwayDlg)
	//}}AFX_MSG_MAP
	ON_MESSAGE(UM_VIDEO_ERROR_NOTIFY, OnVideoErrorNotify)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CChildFrame construction/destruction

CChildFrame::CChildFrame()
{
	// TODO: add member initialization code here
	m_iCardID = -1;
	m_bOverlay = FALSE;

}

CChildFrame::~CChildFrame()
{
//======== Add for ver5.2, begin =================
extern 	bool SaveParame(int);
	//保存卡的當前屬性,以備下次連接時重新設回
	SaveParame(m_iCardID);
//======== Add for ver5.2, end ===================

	//釋放對卡的連接
	DSStream_DisconnectDevice(m_iCardID);
}

BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	if( !CMDIChildWnd::PreCreateWindow(cs) )
		return FALSE;

	cs.style &= ~FWS_ADDTOTITLE;
	cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
	cs.lpszClass = AfxRegisterWndClass(0);

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CChildFrame diagnostics

#ifdef _DEBUG
void CChildFrame::AssertValid() const
{
	CMDIChildWnd::AssertValid();
}

void CChildFrame::Dump(CDumpContext& dc) const
{
	CMDIChildWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CChildFrame message handlers
void CChildFrame::OnFileClose() 
{
	// To close the frame, just send a WM_CLOSE, which is the equivalent
	// choosing close from the system menu.

	SendMessage(WM_CLOSE);
}

int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	for(int i=0; i<4; i++)
		m_ShowStreamDlg[i].Create(IDD_SHOWSTREAM, this);

	return 0;
}

void CChildFrame::OnSize(UINT nType, int cx, int cy) 
{
	CMDIChildWnd::OnSize(nType, cx, cy);
	
	//設置視頻窗口的位置
	RECT rc;
	GetClientRect(&rc);
	DSStream_SetWindowPos(m_iCardID, rc);
}

//將視頻窗口調整為標準大小
void CChildFrame::OnNormalSize() 
{
	VIDEOSTREAMINFO vsi;
	HRESULT hr;
	RECT rcFrame, rcView;
	long w, h;
	long width, height;

	//如果窗口是最大化的,先還原它
	DWORD style = GetWindowLong(m_hWnd, GWL_STYLE);
	if(style & WS_MAXIMIZE)
		ShowWindow(SW_RESTORE);

	hr = DSStream_GetVideoInfo(m_iCardID, &vsi, PREVIEW);
	if(FAILED(hr))
		return;

	GetWindowRect(&rcFrame);
	GetClientRect(&rcView);

	w = (rcFrame.right-rcFrame.left) - (rcView.right-rcView.left);
	h = (rcFrame.bottom-rcFrame.top) - (rcView.bottom-rcView.top);

	width = vsi.bmiHeader.biWidth + w;
	height = vsi.bmiHeader.biHeight + h;

	SetWindowPos(NULL, -1, -1, width, height, SWP_NOZORDER|SWP_NOMOVE);
}

//顯示對話框,枚舉各項屬性
void CChildFrame::OnPropertyDialog() 
{
	CPropertyDlg dlg(m_iCardID);
	dlg.DoModal();

//======== Add for ver5.2, begin =================
	if( ::IsWindowVisible(m_ShowStreamDlg[0].m_hWnd) )
	{
		SendMessage(WM_COMMAND, ID_STOPSHOWSTREAM, NULL);
		SendMessage(WM_COMMAND, ID_STARTSHOWSTREAM, NULL);
	}
//======== Add for ver5.2, end ===================
}

//顯示對話框,配置視頻參數
void CChildFrame::OnConfigDialog() 
{
	CConfigDlg dlg(m_iCardID, this);
	dlg.DoModal();

//======== Add for ver5.2, begin =================
	if( ::IsWindowVisible(m_ShowStreamDlg[0].m_hWnd) )
	{
		SendMessage(WM_COMMAND, ID_STOPSHOWSTREAM, NULL);
		SendMessage(WM_COMMAND, ID_STARTSHOWSTREAM, NULL);
	}
//======== Add for ver5.2, end ===================
}

//顯示對話框,配置Logo、Time、Date
void CChildFrame::OnLogoDialog() 
{
	CLogoDlg dlg(m_iCardID);
	dlg.DoModal();
}

//得到Filter信息,輸出到文件C:\Filter1.log、Filter2.log... ...
void CChildFrame::OnListAllFilter() 
{
	char szFileName[20];
	sprintf(szFileName, "C:\\Filter%d.log", m_iCardID);
	DSStream_ListAllFilter(m_iCardID, szFileName);
}

//快照:存為bmp格式
void CChildFrame::OnSaveBmp() 
{
	char szFile[20];
	HRESULT hr;

	sprintf(szFile, "C:\\Test_No%d.bmp", m_iCardID);
	hr = DSStream_SaveToBmpFile(m_iCardID, szFile);
	if(FAILED(hr))
		MessageBox("快照失敗!");
}

//快照:存為jpg格式
void CChildFrame::OnSaveJpg() 
{
	char szFile[20];
	HRESULT hr;

	sprintf(szFile, "C:\\Test_No%d.jpg", m_iCardID);
	hr = DSStream_SaveToJpgFile(m_iCardID, szFile, 65/*圖像質量 0-100*/);
	if(FAILED(hr))
		MessageBox("快照失敗!");
}

//開始錄像
void CChildFrame::OnStartCapture() 
{
	CMenu *pMainMenu = NULL, *pMenu = NULL;
	char szFile[20];
	BOOL ok;

	sprintf(szFile, "C:\\Test_No%d.avi", m_iCardID);
	DSStream_SetCaptureFile(m_iCardID, szFile);
	DSStream_StartCapture(m_iCardID);
	DSStream_IsCapturing(m_iCardID, &ok);
	if(!ok)
	{
		MessageBox("錄像失敗!");
		return;
	}
}

//停止錄像
void CChildFrame::OnStopCapture() 
{
	BOOL bCapturing;

	DSStream_StopCapture(m_iCardID);
	DSStream_IsCapturing(m_iCardID, &bCapturing);
	if(bCapturing)
	{
		MessageBox("無法停止錄像!");
		return;
	}
}

//是否捕捉音頻
void CChildFrame::OnCaptureAudio() 
{
	int iAudioState;
	BOOL bCaptureAudio;

	DSStream_WhoIsCapturingAudio(&iAudioState);

	if(iAudioState == AUDIO_DEVICE_NO_EXIST)
		return;
	
	bCaptureAudio = (iAudioState!=m_iCardID);
	DSStream_SetCaptureAudio(m_iCardID, &bCaptureAudio);
}

//RUN
void CChildFrame::OnStateRun() 
{
	DSStream_SetStreamStatus(m_iCardID, RUN);
}

//PAUSE
void CChildFrame::OnStatePause() 
{
	DSStream_SetStreamStatus(m_iCardID, PAUSE);
}

//STOP
void CChildFrame::OnStateStop() 
{
	DSStream_SetStreamStatus(m_iCardID, STOP);
}

//視頻發生錯誤時的回調消息
void CChildFrame::OnVideoErrorNotify(WPARAM wparam, LPARAM lparam)
{
	DSStreamError errorCode = (DSStreamError) (lparam & 0x0000FFFFL);
	int iCardID = (lparam>>16) & 0x0000FFFFL;
	char szErrorInfo[300];

	switch(errorCode)
	{
		case Error_FirstNotifyMsg: //收到這個錯誤,必須調用 DSStream_ManageNotifyMessage()
			DSStream_ManageNotifyMessage(iCardID);
			break;
		case Error_DiskFull:
			sprintf(szErrorInfo, "%d號卡", iCardID);
			MessageBox("磁盤已滿,按“確定”停止錄像", szErrorInfo);
			SendMessage(WM_COMMAND, ID_STOPCAPTURE);
			break;
		case Error_VideoSizeChange:
			sprintf(szErrorInfo, "%d號卡:%d x %d", iCardID, LOWORD(wparam), HIWORD(wparam));
			SetWindowText(szErrorInfo);
			break;
		case Error_StreamStatusChange:
			//視頻流狀態改變。不過,無法獲得“停止”狀態 ^_^
			break;
		case Error_CaptureError:
			sprintf(szErrorInfo, "%d號卡錄像異常:0x%08X \n 按“確定”停止錄像",
					iCardID, wparam);
			MessageBox(szErrorInfo);
			SendMessage(WM_COMMAND, ID_STOPCAPTURE);
			break;
		default:
			break;
	}
}

//開始數據流回調
void CChildFrame::OnStartShowStream() 
{
	static STREAMNOTIFYPARAME snp;
	snp.pDlgArray = m_ShowStreamDlg;
	

	if( !IsWindow(m_ShowStreamDlg[0].m_hWnd) )
		return;

	if(Is4WayCard())
	{
		snp.iDlgCount = 4;
		for(int i=0; i<4; i++)
		{
			m_ShowStreamDlg[i].ShowWindow(SW_SHOW);
			m_ShowStreamDlg[i].SetShowWay(m_iCardID, true, i);
		}
	}
	else
	{
		snp.iDlgCount = 1;
		m_ShowStreamDlg[0].ShowWindow(SW_SHOW);
		m_ShowStreamDlg[0].SetShowWay(m_iCardID, false, 0);
	}
  
	HRESULT hr = DSStream_GetVideoStream(m_iCardID, StreamNotify, &snp);
	if(FAILED(hr))
	{
		MessageBox("開始數據流回調失敗!");
		return;
	}
}

//停止數據流回調
void CChildFrame::OnStopShowStream() 
{
	if( !IsWindow(m_ShowStreamDlg[0].m_hWnd) )
		return;

	HRESULT hr = DSStream_GetVideoStream(m_iCardID, NULL, NULL);
	if(FAILED(hr))
	{
		MessageBox("無法停止數據流回調!");
		return;
	}

	for(int i=0; i<4; i++)
		m_ShowStreamDlg[i].ShowWindow(SW_HIDE);
}

//Overlay <===> Preview
void CChildFrame::OnOverlay() 
{
	m_bOverlay = !m_bOverlay;

	RECT rc;
	GetClientRect(&rc);

	//先斷開,再連接
	DSStream_DisconnectDevice(m_iCardID);
	HRESULT hr = DSStream_ConnectDevice(m_iCardID, m_bOverlay, m_hWnd);
	if(FAILED(hr))
	{
		MessageBox("連接設備失敗!");
		return;
	}

	DSStream_SetWindowPos(m_iCardID, rc);
	DSStream_SetMessageDrain(m_iCardID, m_hWnd);
	DSStream_SetNotifyWindow(m_iCardID, m_hWnd, UM_VIDEO_ERROR_NOTIFY);

	SendMessage(WM_COMMAND, ID_NORMALSIZE);
}

//四路卡特性
void CChildFrame::OnFourwayDlg() 
{
	CFourwayDlg dlg(m_iCardID);
	dlg.DoModal();
}

void CChildFrame::OnUpdateStartCapture(CCmdUI* pCmdUI) 
{
	BOOL bCapturing;
	DSStream_IsCapturing(m_iCardID, &bCapturing);

	pCmdUI->Enable(!bCapturing);
}

void CChildFrame::OnUpdateStopCapture(CCmdUI* pCmdUI) 
{
	BOOL bCapturing;
	DSStream_IsCapturing(m_iCardID, &bCapturing);

	pCmdUI->Enable(bCapturing);
}

void CChildFrame::OnUpdateCaptureAudio(CCmdUI* pCmdUI) 
{
	int iAudioState;
	DSStream_WhoIsCapturingAudio(&iAudioState);

	if(iAudioState == AUDIO_DEVICE_NO_EXIST)
		pCmdUI->Enable(FALSE);
	else if(iAudioState == m_iCardID)
		pCmdUI->SetCheck(1);
	else
		pCmdUI->SetCheck(0);
}

void CChildFrame::OnUpdateStateRun(CCmdUI* pCmdUI) 
{
	int iState;
	HRESULT hr;

	hr = DSStream_GetStreamStatus(m_iCardID, &iState);
	if(SUCCEEDED(hr))
	{
		pCmdUI->SetRadio( iState==RUN );
	}
}

void CChildFrame::OnUpdateStatePause(CCmdUI* pCmdUI) 
{
	int iState;
	HRESULT hr;

	hr = DSStream_GetStreamStatus(m_iCardID, &iState);
	if(SUCCEEDED(hr))
	{
		pCmdUI->SetRadio( iState==PAUSE );
	}
}

void CChildFrame::OnUpdateStateStop(CCmdUI* pCmdUI) 
{
	int iState;
	HRESULT hr;

	hr = DSStream_GetStreamStatus(m_iCardID, &iState);
	if(SUCCEEDED(hr))
	{
		pCmdUI->SetRadio( iState==STOP );
	}
}

void CChildFrame::OnUpdateStartShowStream(CCmdUI* pCmdUI) 
{
	if( !IsWindow(m_ShowStreamDlg[0].m_hWnd) )
		pCmdUI->Enable(FALSE);

	BOOL bShow = m_ShowStreamDlg[0].IsWindowVisible();
	pCmdUI->Enable(!bShow);
}

void CChildFrame::OnUpdateStopShowStream(CCmdUI* pCmdUI) 
{
	if( !IsWindow(m_ShowStreamDlg[0].m_hWnd) )
		pCmdUI->Enable(FALSE);

	BOOL bShow = m_ShowStreamDlg[0].IsWindowVisible();
	pCmdUI->Enable(bShow);
}

void CChildFrame::OnUpdateOverlay(CCmdUI* pCmdUI) 
{
	if(m_bOverlay)
		pCmdUI->SetText("切換到 Preview 模式");
	else
		pCmdUI->SetText("切換到 Overlay 模式");
}

//當前是否處于四路同屏模式
bool CChildFrame::Is4WayCard()
{
	long source = 0;
	DSStream_WhatInPinRouteToOutPin(m_iCardID, 0, &source);
	return (source==4);
}











?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色狠狠一区二区三区香蕉| 日韩一区二区中文字幕| 欧美日韩另类国产亚洲欧美一级| 精品久久一区二区三区| 国产成人免费在线观看不卡| 欧美一级高清片| av不卡在线观看| 亚洲私人影院在线观看| 91搞黄在线观看| 欧美区在线观看| 一区二区三区欧美日韩| 欧美日韩亚洲另类| 久久99最新地址| 亚洲第一福利一区| 奇米一区二区三区av| 99久久久精品| 国产亚洲精品超碰| 日本三级亚洲精品| 欧美人体做爰大胆视频| 亚洲精品乱码久久久久久日本蜜臀| 狠狠色狠狠色综合系列| 日韩午夜电影在线观看| 天天操天天综合网| 色播五月激情综合网| 国产精品久久久久影院| 国产丶欧美丶日本不卡视频| 精品美女一区二区| 久久激五月天综合精品| 欧美一二区视频| 久久综合综合久久综合| 日韩欧美一区二区在线视频| 丝袜美腿亚洲综合| 欧美一区二区福利在线| 日本在线播放一区二区三区| 欧美日韩国产经典色站一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 成人av网址在线观看| 国产精品久久久久久久蜜臀| 成人国产精品视频| 综合久久国产九一剧情麻豆| 一本一道综合狠狠老| 一区二区三区中文免费| 欧美日韩亚洲不卡| 美女任你摸久久| 久久美女艺术照精彩视频福利播放| 国产一区二区三区美女| 国产精品麻豆视频| 91免费国产在线| 亚洲午夜久久久久久久久久久| 欧美三级日韩在线| 日本不卡一二三| 国产视频一区在线观看| eeuss国产一区二区三区| 亚洲综合色噜噜狠狠| 欧美人与性动xxxx| 精品福利二区三区| 国产成人鲁色资源国产91色综| 国产精品另类一区| 在线免费观看成人短视频| 日韩高清欧美激情| 久久久国产精品麻豆| 91丨porny丨首页| 日韩中文字幕一区二区三区| 久久综合九色综合97_久久久| jizzjizzjizz欧美| 午夜精品免费在线| 精品欧美一区二区久久| 一本色道亚洲精品aⅴ| 美女视频黄频大全不卡视频在线播放| 国产日韩欧美一区二区三区综合| 色吧成人激情小说| 精品一区免费av| 樱花草国产18久久久久| 日韩精品影音先锋| 欧洲精品一区二区| 国产精品亚洲成人| 亚洲妇熟xx妇色黄| 中国色在线观看另类| 欧美日韩国产片| 国产成人精品亚洲午夜麻豆| 亚洲成av人综合在线观看| 亚洲精品在线电影| 欧美日本精品一区二区三区| 成人黄动漫网站免费app| 日韩一区精品字幕| 亚洲色图一区二区| 国产亚洲自拍一区| 正在播放亚洲一区| 91麻豆视频网站| 高清国产一区二区| 久草这里只有精品视频| 亚洲一区二区视频在线观看| 中国av一区二区三区| 精品88久久久久88久久久| 欧美精品乱人伦久久久久久| 一道本成人在线| av毛片久久久久**hd| 国产不卡免费视频| 另类小说综合欧美亚洲| 亚洲成人动漫在线观看| 亚洲女性喷水在线观看一区| 国产日韩欧美不卡在线| 日韩片之四级片| 91精品福利在线一区二区三区| 色偷偷久久人人79超碰人人澡| 国产高清成人在线| 国产精品亚洲а∨天堂免在线| 麻豆精品视频在线观看免费| 丝袜美腿亚洲色图| 午夜精品久久久久久久久| 一区二区三区毛片| 亚洲精品国产第一综合99久久 | 欧美日韩国产电影| 色www精品视频在线观看| 99久久免费视频.com| 成人av动漫网站| 成人av免费观看| 91在线精品一区二区| 99精品欧美一区| 裸体健美xxxx欧美裸体表演| 亚洲一区二区三区四区的| 国产精品电影一区二区| 国产精品网站在线观看| 国产精品大尺度| 国产精品国产三级国产aⅴ原创| 国产精品久久777777| 国产精品日日摸夜夜摸av| 国产精品久久久久久久久搜平片| 国产精品国产三级国产有无不卡 | 亚洲无人区一区| 亚洲夂夂婷婷色拍ww47| 亚洲成av人片在线| 日韩中文字幕亚洲一区二区va在线| 久久久www成人免费无遮挡大片| 日韩黄色免费电影| 免费人成黄页网站在线一区二区| 亚洲不卡在线观看| 毛片av一区二区三区| 国产精品中文欧美| 不卡高清视频专区| 欧美三级电影一区| 欧美三片在线视频观看| 日韩欧美国产电影| 中文字幕乱码亚洲精品一区 | 久久久亚洲国产美女国产盗摄| 日韩午夜激情免费电影| 国产人成亚洲第一网站在线播放| 日韩一区日韩二区| 日韩高清在线电影| 国产成人激情av| 欧美三级电影一区| 久久影院电视剧免费观看| 亚洲天天做日日做天天谢日日欢| 亚洲自拍偷拍图区| 国产又粗又猛又爽又黄91精品| 91视频com| 欧美大尺度电影在线| 中文字幕一区二区三区四区不卡 | 欧洲色大大久久| 久久综合久久综合久久| 亚洲午夜久久久久中文字幕久| 国产一区二区三区在线看麻豆| 欧美丝袜自拍制服另类| 国产精品私房写真福利视频| 日韩精品福利网| 99精品视频在线观看免费| 日韩女优制服丝袜电影| 亚洲欧美自拍偷拍| 国内不卡的二区三区中文字幕| 欧美性色黄大片手机版| 久久九九99视频| 麻豆91在线播放免费| 欧美日韩国产色站一区二区三区| 国产精品久久免费看| 激情综合一区二区三区| 777色狠狠一区二区三区| 国产精品久久久久久久久晋中| 久久99久国产精品黄毛片色诱| 在线观看不卡一区| 国产精品电影院| 国产91精品一区二区麻豆亚洲| 日韩欧美黄色影院| 午夜国产精品影院在线观看| 日本韩国精品在线| 中文字幕在线一区免费| 国产精品白丝jk白祙喷水网站| 日韩一级欧美一级| 蜜臀久久99精品久久久画质超高清| 91免费看`日韩一区二区| 中文字幕在线免费不卡| 国产一区二区伦理| 久久久久久免费网| 久久精品国产亚洲aⅴ| 日韩视频一区在线观看| 日韩电影在线看| 91精品在线免费观看| 视频一区二区三区中文字幕| 欧洲一区在线电影| 亚洲综合在线第一页| 日本福利一区二区|