新增SV200E视频卡多设备测试
This commit is contained in:
@@ -395,6 +395,8 @@ BEGIN
|
||||
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
|
||||
GROUPBOX "设备选择",IDC_STATIC,438,207,42,61
|
||||
COMBOBOX IDC_COMBO_SV2000E_SELECT_DEV_NUMBER,443,222,31,35,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||
END
|
||||
|
||||
IDD_SO7_UTIL_SETUP_CONFIGURE DIALOGEX 0, 0, 476, 451
|
||||
|
||||
@@ -17,6 +17,8 @@ static const long HueDefault = 5000;
|
||||
static const long SharpnessDefault = 4;
|
||||
|
||||
static BYTE g_DataBuffer[640*480*2];
|
||||
static BYTE g_DataBuffer_NAV[640*480*2];
|
||||
|
||||
// CVideocard_SV2000E dialog
|
||||
|
||||
IMPLEMENT_DYNAMIC(CVideocard_SV2000E, CDialog)
|
||||
@@ -52,6 +54,7 @@ BEGIN_MESSAGE_MAP(CVideocard_SV2000E, CDialog)
|
||||
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)
|
||||
ON_CBN_SELCHANGE(IDC_COMBO_SV2000E_SELECT_DEV_NUMBER, &CVideocard_SV2000E::OnCbnSelchangeComboSv2000eSelectDevNumber)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
@@ -82,8 +85,9 @@ BOOL CVideocard_SV2000E::OnInitDialog()
|
||||
}
|
||||
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_RGB))->SetCheck(TRUE);
|
||||
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_GRAY))->SetCheck(FALSE);
|
||||
|
||||
bInitSdk=123;
|
||||
m_Channel=1;
|
||||
m_OpenDevNo=0;
|
||||
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_CHANNEL1))->SetCheck(TRUE);
|
||||
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_CHANNEL2))->SetCheck(FALSE);
|
||||
|
||||
@@ -92,6 +96,7 @@ BOOL CVideocard_SV2000E::OnInitDialog()
|
||||
//===================================================
|
||||
void CVideocard_SV2000E::OnBnClickedOk()
|
||||
{
|
||||
bInitSdk=DXInitialize();
|
||||
LoadVideocard();
|
||||
SetTimer(1,50,NULL);
|
||||
GetDlgItem(IDOK)->EnableWindow(false);
|
||||
@@ -101,6 +106,7 @@ void CVideocard_SV2000E::OnBnClickedCancel()
|
||||
{
|
||||
KillTimer(1);
|
||||
UnloadVideocard();
|
||||
DXUninitialize();
|
||||
CDialog::OnCancel();
|
||||
}
|
||||
//===================================================
|
||||
@@ -130,7 +136,7 @@ void CVideocard_SV2000E::OnBnClickedCheckSv2000eMirrorVertically()
|
||||
//===================================================
|
||||
void CVideocard_SV2000E::OnBnClickedButtonSv2000eSavefile()
|
||||
{
|
||||
CString CTmpString;
|
||||
CString CTmpString;
|
||||
CString PathName;
|
||||
CString path_and_fileName;
|
||||
|
||||
@@ -159,11 +165,16 @@ void CVideocard_SV2000E::OnBnClickedRadioSv2000eChannel2()
|
||||
m_Channel=2;
|
||||
LoadVideocard();
|
||||
}
|
||||
//===================================================
|
||||
void CVideocard_SV2000E::OnCbnSelchangeComboSv2000eSelectDevNumber()
|
||||
{
|
||||
m_OpenDevNo=((CComboBox *)GetDlgItem(IDC_COMBO_SV2000E_SELECT_DEV_NUMBER))->GetCurSel();
|
||||
CloseDevice();
|
||||
OpenDevice(m_OpenDevNo);
|
||||
}
|
||||
//=======================================
|
||||
BOOL CVideocard_SV2000E::LoadVideocard()
|
||||
{
|
||||
unsigned int bInitSdk=DXInitialize();
|
||||
|
||||
DEVICE_TAG devTags[100];
|
||||
unsigned num = 100;
|
||||
DXEnumVideoCodecs(devTags, num);
|
||||
@@ -173,13 +184,29 @@ BOOL CVideocard_SV2000E::LoadVideocard()
|
||||
//DXEnumSoundDevices(devTags, num);
|
||||
|
||||
m_nDevNum = DXGetDeviceCount();
|
||||
m_device= DXOpenDevice(0, NULL);
|
||||
CString csTmp=_T("");
|
||||
((CComboBox *)GetDlgItem(IDC_COMBO_SV2000E_SELECT_DEV_NUMBER))->ResetContent();
|
||||
for(int i=0;i<m_nDevNum;i++)
|
||||
{
|
||||
csTmp.Format(_T("%d"),i+1);
|
||||
((CComboBox *)GetDlgItem(IDC_COMBO_SV2000E_SELECT_DEV_NUMBER))->InsertString(i,csTmp);
|
||||
}
|
||||
((CComboBox *)GetDlgItem(IDC_COMBO_SV2000E_SELECT_DEV_NUMBER))->SetCurSel(0);
|
||||
m_OpenDevNo=0;
|
||||
OpenDevice(m_OpenDevNo);
|
||||
if((bInitSdk!=0)||(m_nDevNum<1)||(m_device==NULL))
|
||||
{
|
||||
::AfxMessageBox(_T("SV2000E卡初始化失败!"));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
//=======================================
|
||||
void CVideocard_SV2000E::OpenDevice(unsigned int _DevNo)
|
||||
{
|
||||
m_device= DXOpenDevice(_DevNo, NULL);
|
||||
|
||||
unsigned standard(VideoStandard_PAL_D);
|
||||
unsigned colorspace(cs_yuy2);//cs_rgb24
|
||||
unsigned width(640);//640
|
||||
@@ -203,11 +230,12 @@ BOOL CVideocard_SV2000E::LoadVideocard()
|
||||
|
||||
m_status=DXSetRawVideoCallback(m_device, SVAPrcVidCapCallBack, this);
|
||||
m_status=DXStartRawVideoCallback(m_device,SVAPrcVidCapCallBack,this);
|
||||
return true;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
};
|
||||
//=======================================
|
||||
void CVideocard_SV2000E::CloseDevice()
|
||||
{
|
||||
UnloadVideocard();
|
||||
};
|
||||
//=======================================
|
||||
BOOL CVideocard_SV2000E::UnloadVideocard()
|
||||
{
|
||||
@@ -217,7 +245,6 @@ BOOL CVideocard_SV2000E::UnloadVideocard()
|
||||
m_status=DXSetRawVideoCallback(m_device, NULL, NULL);
|
||||
m_status=DXDeviceStop(m_device);
|
||||
DXCloseDevice(m_device);
|
||||
DXUninitialize();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@@ -475,6 +502,16 @@ unsigned CALLBACK SVAPrcVidCapCallBack(unsigned char* buffer, unsigned colorSpac
|
||||
memcpy(g_DataBuffer,(BYTE*)buffer,width*height*2);
|
||||
return 0;
|
||||
}
|
||||
//==================================SV2000E=====================================
|
||||
unsigned CALLBACK SVAPrcVidCapCallBackNav(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(colorSpace);
|
||||
UNREFERENCED_PARAMETER(context);
|
||||
UNREFERENCED_PARAMETER(bytesWidth);
|
||||
memcpy(g_DataBuffer_NAV,(BYTE*)buffer,width*height*2);
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
// CVideocard_SV2000E dialog
|
||||
unsigned CALLBACK SVAPrcVidCapCallBack(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context);
|
||||
unsigned CALLBACK SVAPrcVidCapCallBackNav(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context);
|
||||
|
||||
class CVideocard_SV2000E : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(CVideocard_SV2000E)
|
||||
@@ -30,6 +32,8 @@ public:
|
||||
protected:
|
||||
unsigned int m_status;
|
||||
device_handle m_device;
|
||||
device_handle m_device_Nav;
|
||||
|
||||
int m_nDevNum;
|
||||
DWORD m_dwCard;
|
||||
Image_Buffer m_ImageBuffer;
|
||||
@@ -38,12 +42,17 @@ protected:
|
||||
BOOL m_bSaveFile;
|
||||
CString m_SaveFile;
|
||||
unsigned int m_Channel;
|
||||
unsigned int bInitSdk;
|
||||
unsigned int m_OpenDevNo;
|
||||
public:
|
||||
BOOL LoadVideocard();
|
||||
BOOL UnloadVideocard();
|
||||
void OpenDevice(unsigned int _DevNo);
|
||||
void CloseDevice();
|
||||
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();
|
||||
afx_msg void OnCbnSelchangeComboSv2000eSelectDevNumber();
|
||||
};
|
||||
|
||||
@@ -665,9 +665,10 @@
|
||||
#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
|
||||
#define IDC_COMBO_SV200E 1573
|
||||
#define IDC_COMBO_SV2000E_SELECT_DEV_NUMBER 1573
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
@@ -675,7 +676,7 @@
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 166
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1572
|
||||
#define _APS_NEXT_CONTROL_VALUE 1574
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user