新增SV200E视频卡多通道测试

This commit is contained in:
TAO Cheng
2013-05-29 17:00:47 +08:00
parent 6af2627d32
commit 11bbcb77bb
8 changed files with 62 additions and 10 deletions
@@ -736,3 +736,23 @@ Init:Open device succeed .
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
@@ -386,12 +386,15 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSM
CAPTION "SV2000视频卡"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "彩色图像",IDC_RADIO_SV2000E_RGB,"Button",BS_AUTORADIOBUTTON,435,37,48,10
CONTROL "彩色图像",IDC_RADIO_SV2000E_RGB,"Button",BS_AUTORADIOBUTTON | WS_GROUP,435,37,48,10
CONTROL "黑白图像",IDC_RADIO_SV2000E_GRAY,"Button",BS_AUTORADIOBUTTON,435,58,48,10
CONTROL "垂直镜像",IDC_CHECK_SV2000E_MIRROR_VERTICALLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,435,85,48,10
PUSHBUTTON "保存图片",IDC_BUTTON_SV2000E_SAVEFILE,435,115,50,14
DEFPUSHBUTTON "开始",IDOK,372,298,50,14
PUSHBUTTON "退出",IDCANCEL,435,298,50,14
GROUPBOX "通道选择",IDC_STATIC,439,140,42,61
CONTROL "1",IDC_RADIO_SV2000E_CHANNEL1,"Button",BS_AUTORADIOBUTTON | WS_GROUP,450,160,23,10
CONTROL "2",IDC_RADIO_SV2000E_CHANNEL2,"Button",BS_AUTORADIOBUTTON,450,182,26,10
END
IDD_SO7_UTIL_SETUP_CONFIGURE DIALOGEX 0, 0, 476, 451
@@ -251,9 +251,9 @@ void CVideocard_SDK3000::ConvertVideoSubType(const Image_Buffer& _ImageBuffer, B
{
lCnt1=0;
if(_bMirror)
pDstData=(BYTE*)_ImageBuffer.ScanLine[479-y];
else
pDstData=(BYTE*)_ImageBuffer.ScanLine[y];
else
pDstData=(BYTE*)_ImageBuffer.ScanLine[479-y];
for(x=0;x<640*3;x+=3)
{
switch(_type)
@@ -50,6 +50,8 @@ BEGIN_MESSAGE_MAP(CVideocard_SV2000E, CDialog)
ON_BN_CLICKED(IDC_BUTTON_SV2000E_SAVEFILE, &CVideocard_SV2000E::OnBnClickedButtonSv2000eSavefile)
ON_BN_CLICKED(IDCANCEL, &CVideocard_SV2000E::OnBnClickedCancel)
ON_BN_CLICKED(IDOK, &CVideocard_SV2000E::OnBnClickedOk)
ON_BN_CLICKED(IDC_RADIO_SV2000E_CHANNEL1, &CVideocard_SV2000E::OnBnClickedRadioSv2000eChannel1)
ON_BN_CLICKED(IDC_RADIO_SV2000E_CHANNEL2, &CVideocard_SV2000E::OnBnClickedRadioSv2000eChannel2)
END_MESSAGE_MAP()
@@ -80,6 +82,10 @@ BOOL CVideocard_SV2000E::OnInitDialog()
}
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_RGB))->SetCheck(TRUE);
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_GRAY))->SetCheck(FALSE);
m_Channel=1;
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_CHANNEL1))->SetCheck(TRUE);
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_CHANNEL2))->SetCheck(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
@@ -93,6 +99,7 @@ void CVideocard_SV2000E::OnBnClickedOk()
//===================================================
void CVideocard_SV2000E::OnBnClickedCancel()
{
KillTimer(1);
UnloadVideocard();
CDialog::OnCancel();
}
@@ -138,7 +145,20 @@ void CVideocard_SV2000E::OnBnClickedButtonSv2000eSavefile()
delete fdlg;
m_bSaveFile=TRUE;
}
//===================================================
void CVideocard_SV2000E::OnBnClickedRadioSv2000eChannel1()
{
UnloadVideocard();
m_Channel=1;
LoadVideocard();
}
//===================================================
void CVideocard_SV2000E::OnBnClickedRadioSv2000eChannel2()
{
UnloadVideocard();
m_Channel=2;
LoadVideocard();
}
//=======================================
BOOL CVideocard_SV2000E::LoadVideocard()
{
@@ -170,7 +190,7 @@ BOOL CVideocard_SV2000E::LoadVideocard()
DXDeviceRun(m_device);
m_dwCard=2;
m_status=DXSetVideoSource(m_device, 1);
m_status=DXSetVideoSource(m_device, m_Channel);
//==============================消除隔行=========================================
m_status=DXSetVideoPara(m_device,standard,colorspace,width,height,framerate);
@@ -215,9 +235,9 @@ void CVideocard_SV2000E::ConvertVideoSubType(const Image_Buffer& _ImageBuffer, B
{
lCnt1=0;
if(_bMirror)
pDstData=(BYTE*)_ImageBuffer.ScanLine[479-y];
else
pDstData=(BYTE*)_ImageBuffer.ScanLine[y];
else
pDstData=(BYTE*)_ImageBuffer.ScanLine[479-y];
for(x=0;x<640*3;x+=3)
{
switch(_type)
@@ -455,3 +475,6 @@ unsigned CALLBACK SVAPrcVidCapCallBack(unsigned char* buffer, unsigned colorSpac
memcpy(g_DataBuffer,(BYTE*)buffer,width*height*2);
return 0;
}
@@ -37,10 +37,13 @@ protected:
BOOL m_bMirror;
BOOL m_bSaveFile;
CString m_SaveFile;
unsigned int m_Channel;
public:
BOOL LoadVideocard();
BOOL UnloadVideocard();
void ConvertVideoSubType(const Image_Buffer& _ImageBuffer, BYTE *pSrcData,ConvertColorType _type,BOOL _bMirror);
BOOL SaveBitmapToFile(const CBitmap& bitmap, CString lpFileName);
afx_msg void OnBnClickedRadioSv2000eChannel1();
afx_msg void OnBnClickedRadioSv2000eChannel2();
};
@@ -250,9 +250,9 @@ void CVideocard_TC4000::ConvertVideoSubType(const Image_Buffer& _ImageBuffer, BY
{
lCnt1=0;
if(_bMirror)
pDstData=(BYTE*)_ImageBuffer.ScanLine[479-y];
else
pDstData=(BYTE*)_ImageBuffer.ScanLine[y];
else
pDstData=(BYTE*)_ImageBuffer.ScanLine[479-y];
for(x=0;x<640*3;x+=3)
{
switch(_type)
@@ -665,6 +665,9 @@
#define IDC_RADIO_TC4000_CHANNEL2 1567
#define IDC_RADIO_TC4000_CHANNEL3 1568
#define IDC_RADIO_TC4000_CHANNEL4 1569
#define IDC_RADIO1 1570
#define IDC_RADIO_SV2000E_CHANNEL1 1570
#define IDC_RADIO_SV2000E_CHANNEL2 1571
// Next default values for new objects
//
@@ -672,7 +675,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 166
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1570
#define _APS_NEXT_CONTROL_VALUE 1572
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif