新增SV200E视频卡多设备测试
This commit is contained in:
@@ -395,6 +395,8 @@ BEGIN
|
|||||||
GROUPBOX "通道选择",IDC_STATIC,439,140,42,61
|
GROUPBOX "通道选择",IDC_STATIC,439,140,42,61
|
||||||
CONTROL "1",IDC_RADIO_SV2000E_CHANNEL1,"Button",BS_AUTORADIOBUTTON | WS_GROUP,450,160,23,10
|
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
|
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
|
END
|
||||||
|
|
||||||
IDD_SO7_UTIL_SETUP_CONFIGURE DIALOGEX 0, 0, 476, 451
|
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 const long SharpnessDefault = 4;
|
||||||
|
|
||||||
static BYTE g_DataBuffer[640*480*2];
|
static BYTE g_DataBuffer[640*480*2];
|
||||||
|
static BYTE g_DataBuffer_NAV[640*480*2];
|
||||||
|
|
||||||
// CVideocard_SV2000E dialog
|
// CVideocard_SV2000E dialog
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC(CVideocard_SV2000E, CDialog)
|
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(IDOK, &CVideocard_SV2000E::OnBnClickedOk)
|
||||||
ON_BN_CLICKED(IDC_RADIO_SV2000E_CHANNEL1, &CVideocard_SV2000E::OnBnClickedRadioSv2000eChannel1)
|
ON_BN_CLICKED(IDC_RADIO_SV2000E_CHANNEL1, &CVideocard_SV2000E::OnBnClickedRadioSv2000eChannel1)
|
||||||
ON_BN_CLICKED(IDC_RADIO_SV2000E_CHANNEL2, &CVideocard_SV2000E::OnBnClickedRadioSv2000eChannel2)
|
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()
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
|
|
||||||
@@ -82,8 +85,9 @@ BOOL CVideocard_SV2000E::OnInitDialog()
|
|||||||
}
|
}
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_RGB))->SetCheck(TRUE);
|
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_RGB))->SetCheck(TRUE);
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_GRAY))->SetCheck(FALSE);
|
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_GRAY))->SetCheck(FALSE);
|
||||||
|
bInitSdk=123;
|
||||||
m_Channel=1;
|
m_Channel=1;
|
||||||
|
m_OpenDevNo=0;
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_CHANNEL1))->SetCheck(TRUE);
|
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_CHANNEL1))->SetCheck(TRUE);
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_CHANNEL2))->SetCheck(FALSE);
|
((CButton *)GetDlgItem(IDC_RADIO_SV2000E_CHANNEL2))->SetCheck(FALSE);
|
||||||
|
|
||||||
@@ -92,6 +96,7 @@ BOOL CVideocard_SV2000E::OnInitDialog()
|
|||||||
//===================================================
|
//===================================================
|
||||||
void CVideocard_SV2000E::OnBnClickedOk()
|
void CVideocard_SV2000E::OnBnClickedOk()
|
||||||
{
|
{
|
||||||
|
bInitSdk=DXInitialize();
|
||||||
LoadVideocard();
|
LoadVideocard();
|
||||||
SetTimer(1,50,NULL);
|
SetTimer(1,50,NULL);
|
||||||
GetDlgItem(IDOK)->EnableWindow(false);
|
GetDlgItem(IDOK)->EnableWindow(false);
|
||||||
@@ -101,6 +106,7 @@ void CVideocard_SV2000E::OnBnClickedCancel()
|
|||||||
{
|
{
|
||||||
KillTimer(1);
|
KillTimer(1);
|
||||||
UnloadVideocard();
|
UnloadVideocard();
|
||||||
|
DXUninitialize();
|
||||||
CDialog::OnCancel();
|
CDialog::OnCancel();
|
||||||
}
|
}
|
||||||
//===================================================
|
//===================================================
|
||||||
@@ -130,7 +136,7 @@ void CVideocard_SV2000E::OnBnClickedCheckSv2000eMirrorVertically()
|
|||||||
//===================================================
|
//===================================================
|
||||||
void CVideocard_SV2000E::OnBnClickedButtonSv2000eSavefile()
|
void CVideocard_SV2000E::OnBnClickedButtonSv2000eSavefile()
|
||||||
{
|
{
|
||||||
CString CTmpString;
|
CString CTmpString;
|
||||||
CString PathName;
|
CString PathName;
|
||||||
CString path_and_fileName;
|
CString path_and_fileName;
|
||||||
|
|
||||||
@@ -159,11 +165,16 @@ void CVideocard_SV2000E::OnBnClickedRadioSv2000eChannel2()
|
|||||||
m_Channel=2;
|
m_Channel=2;
|
||||||
LoadVideocard();
|
LoadVideocard();
|
||||||
}
|
}
|
||||||
|
//===================================================
|
||||||
|
void CVideocard_SV2000E::OnCbnSelchangeComboSv2000eSelectDevNumber()
|
||||||
|
{
|
||||||
|
m_OpenDevNo=((CComboBox *)GetDlgItem(IDC_COMBO_SV2000E_SELECT_DEV_NUMBER))->GetCurSel();
|
||||||
|
CloseDevice();
|
||||||
|
OpenDevice(m_OpenDevNo);
|
||||||
|
}
|
||||||
//=======================================
|
//=======================================
|
||||||
BOOL CVideocard_SV2000E::LoadVideocard()
|
BOOL CVideocard_SV2000E::LoadVideocard()
|
||||||
{
|
{
|
||||||
unsigned int bInitSdk=DXInitialize();
|
|
||||||
|
|
||||||
DEVICE_TAG devTags[100];
|
DEVICE_TAG devTags[100];
|
||||||
unsigned num = 100;
|
unsigned num = 100;
|
||||||
DXEnumVideoCodecs(devTags, num);
|
DXEnumVideoCodecs(devTags, num);
|
||||||
@@ -173,13 +184,29 @@ BOOL CVideocard_SV2000E::LoadVideocard()
|
|||||||
//DXEnumSoundDevices(devTags, num);
|
//DXEnumSoundDevices(devTags, num);
|
||||||
|
|
||||||
m_nDevNum = DXGetDeviceCount();
|
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))
|
if((bInitSdk!=0)||(m_nDevNum<1)||(m_device==NULL))
|
||||||
{
|
{
|
||||||
::AfxMessageBox(_T("SV2000E卡初始化失败!"));
|
::AfxMessageBox(_T("SV2000E卡初始化失败!"));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
//=======================================
|
||||||
|
void CVideocard_SV2000E::OpenDevice(unsigned int _DevNo)
|
||||||
|
{
|
||||||
|
m_device= DXOpenDevice(_DevNo, NULL);
|
||||||
|
|
||||||
unsigned standard(VideoStandard_PAL_D);
|
unsigned standard(VideoStandard_PAL_D);
|
||||||
unsigned colorspace(cs_yuy2);//cs_rgb24
|
unsigned colorspace(cs_yuy2);//cs_rgb24
|
||||||
unsigned width(640);//640
|
unsigned width(640);//640
|
||||||
@@ -203,11 +230,12 @@ BOOL CVideocard_SV2000E::LoadVideocard()
|
|||||||
|
|
||||||
m_status=DXSetRawVideoCallback(m_device, SVAPrcVidCapCallBack, this);
|
m_status=DXSetRawVideoCallback(m_device, SVAPrcVidCapCallBack, this);
|
||||||
m_status=DXStartRawVideoCallback(m_device,SVAPrcVidCapCallBack,this);
|
m_status=DXStartRawVideoCallback(m_device,SVAPrcVidCapCallBack,this);
|
||||||
return true;
|
};
|
||||||
|
//=======================================
|
||||||
return TRUE;
|
void CVideocard_SV2000E::CloseDevice()
|
||||||
}
|
{
|
||||||
|
UnloadVideocard();
|
||||||
|
};
|
||||||
//=======================================
|
//=======================================
|
||||||
BOOL CVideocard_SV2000E::UnloadVideocard()
|
BOOL CVideocard_SV2000E::UnloadVideocard()
|
||||||
{
|
{
|
||||||
@@ -217,7 +245,6 @@ BOOL CVideocard_SV2000E::UnloadVideocard()
|
|||||||
m_status=DXSetRawVideoCallback(m_device, NULL, NULL);
|
m_status=DXSetRawVideoCallback(m_device, NULL, NULL);
|
||||||
m_status=DXDeviceStop(m_device);
|
m_status=DXDeviceStop(m_device);
|
||||||
DXCloseDevice(m_device);
|
DXCloseDevice(m_device);
|
||||||
DXUninitialize();
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -475,6 +502,16 @@ unsigned CALLBACK SVAPrcVidCapCallBack(unsigned char* buffer, unsigned colorSpac
|
|||||||
memcpy(g_DataBuffer,(BYTE*)buffer,width*height*2);
|
memcpy(g_DataBuffer,(BYTE*)buffer,width*height*2);
|
||||||
return 0;
|
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
|
// CVideocard_SV2000E dialog
|
||||||
unsigned CALLBACK SVAPrcVidCapCallBack(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context);
|
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
|
class CVideocard_SV2000E : public CDialog
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC(CVideocard_SV2000E)
|
DECLARE_DYNAMIC(CVideocard_SV2000E)
|
||||||
@@ -30,6 +32,8 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
unsigned int m_status;
|
unsigned int m_status;
|
||||||
device_handle m_device;
|
device_handle m_device;
|
||||||
|
device_handle m_device_Nav;
|
||||||
|
|
||||||
int m_nDevNum;
|
int m_nDevNum;
|
||||||
DWORD m_dwCard;
|
DWORD m_dwCard;
|
||||||
Image_Buffer m_ImageBuffer;
|
Image_Buffer m_ImageBuffer;
|
||||||
@@ -38,12 +42,17 @@ protected:
|
|||||||
BOOL m_bSaveFile;
|
BOOL m_bSaveFile;
|
||||||
CString m_SaveFile;
|
CString m_SaveFile;
|
||||||
unsigned int m_Channel;
|
unsigned int m_Channel;
|
||||||
|
unsigned int bInitSdk;
|
||||||
|
unsigned int m_OpenDevNo;
|
||||||
public:
|
public:
|
||||||
BOOL LoadVideocard();
|
BOOL LoadVideocard();
|
||||||
BOOL UnloadVideocard();
|
BOOL UnloadVideocard();
|
||||||
|
void OpenDevice(unsigned int _DevNo);
|
||||||
|
void CloseDevice();
|
||||||
void ConvertVideoSubType(const Image_Buffer& _ImageBuffer, BYTE *pSrcData,ConvertColorType _type,BOOL _bMirror);
|
void ConvertVideoSubType(const Image_Buffer& _ImageBuffer, BYTE *pSrcData,ConvertColorType _type,BOOL _bMirror);
|
||||||
BOOL SaveBitmapToFile(const CBitmap& bitmap, CString lpFileName);
|
BOOL SaveBitmapToFile(const CBitmap& bitmap, CString lpFileName);
|
||||||
|
|
||||||
afx_msg void OnBnClickedRadioSv2000eChannel1();
|
afx_msg void OnBnClickedRadioSv2000eChannel1();
|
||||||
afx_msg void OnBnClickedRadioSv2000eChannel2();
|
afx_msg void OnBnClickedRadioSv2000eChannel2();
|
||||||
|
afx_msg void OnCbnSelchangeComboSv2000eSelectDevNumber();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -665,9 +665,10 @@
|
|||||||
#define IDC_RADIO_TC4000_CHANNEL2 1567
|
#define IDC_RADIO_TC4000_CHANNEL2 1567
|
||||||
#define IDC_RADIO_TC4000_CHANNEL3 1568
|
#define IDC_RADIO_TC4000_CHANNEL3 1568
|
||||||
#define IDC_RADIO_TC4000_CHANNEL4 1569
|
#define IDC_RADIO_TC4000_CHANNEL4 1569
|
||||||
#define IDC_RADIO1 1570
|
|
||||||
#define IDC_RADIO_SV2000E_CHANNEL1 1570
|
#define IDC_RADIO_SV2000E_CHANNEL1 1570
|
||||||
#define IDC_RADIO_SV2000E_CHANNEL2 1571
|
#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
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
@@ -675,7 +676,7 @@
|
|||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 166
|
#define _APS_NEXT_RESOURCE_VALUE 166
|
||||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1572
|
#define _APS_NEXT_CONTROL_VALUE 1574
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user