1395 lines
33 KiB
C++
1395 lines
33 KiB
C++
|
|
/*******************************************************
|
|||
|
|
Copyright 2008-2011 Digital Technology Co., Ltd.
|
|||
|
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> RealPlayDlg.cpp
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD> д<EFBFBD><EFBFBD> shizhiping
|
|||
|
|
<EFBFBD><EFBFBD> <EFBFBD>ڣ<EFBFBD> 2009.5
|
|||
|
|
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʵʱԤ<EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD> <EFBFBD>ģ<EFBFBD>
|
|||
|
|
********************************************************/
|
|||
|
|
|
|||
|
|
#include "stdafx.h"
|
|||
|
|
#include "RealPlay.h"
|
|||
|
|
#include "RealPlayDlg.h"
|
|||
|
|
#include "DlgPTZCruise.h"
|
|||
|
|
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
#define new DEBUG_NEW
|
|||
|
|
#undef THIS_FILE
|
|||
|
|
static char THIS_FILE[] = __FILE__;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// CAboutDlg dialog used for App About
|
|||
|
|
|
|||
|
|
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)
|
|||
|
|
//}}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)
|
|||
|
|
// No message handlers
|
|||
|
|
//}}AFX_MSG_MAP
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
|
|||
|
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// CRealPlayDlg dialog
|
|||
|
|
|
|||
|
|
CRealPlayDlg::CRealPlayDlg(CWnd* pParent /*=NULL*/)
|
|||
|
|
: CDialog(CRealPlayDlg::IDD, pParent)
|
|||
|
|
{
|
|||
|
|
//{{AFX_DATA_INIT(CRealPlayDlg)
|
|||
|
|
// NOTE: the ClassWizard will add member initialization here
|
|||
|
|
//}}AFX_DATA_INIT
|
|||
|
|
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
|
|||
|
|
m_nDevPort = 8000;
|
|||
|
|
m_csUser = _T("admin");
|
|||
|
|
m_csPWD = _T("12345");
|
|||
|
|
m_bIsLogin = FALSE;
|
|||
|
|
// m_lLoginID = -1;;
|
|||
|
|
m_bIsPlaying = FALSE;
|
|||
|
|
m_bIsRecording = FALSE;
|
|||
|
|
m_iCurChanIndex = -1;
|
|||
|
|
m_lPlayHandle = -1;
|
|||
|
|
m_bIsOnCruise = FALSE;
|
|||
|
|
m_bTrackRun = FALSE;
|
|||
|
|
m_bAutoOn = FALSE;
|
|||
|
|
m_bLightOn = FALSE;
|
|||
|
|
m_bWiperOn= FALSE;
|
|||
|
|
m_bFanOn= FALSE;
|
|||
|
|
m_bHeaterOn= FALSE;
|
|||
|
|
m_bAuxOn1= FALSE;
|
|||
|
|
m_bAuxOn2= FALSE;
|
|||
|
|
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CRealPlayDlg::DoDataExchange(CDataExchange* pDX)
|
|||
|
|
{
|
|||
|
|
CDialog::DoDataExchange(pDX);
|
|||
|
|
//{{AFX_DATA_MAP(CRealPlayDlg)
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_JPG_QUALITY, m_coJpgQuality);
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_JPG_SIZE, m_coJpgSize);
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_PIC_TYPE, m_coPicType);
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_SEQ, m_comboSeq);
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_PRESET, m_comboPreset);
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_PTZ_SPEED, m_comboPTZSpeed);
|
|||
|
|
DDX_Control(pDX, IDC_TREE_CHAN, m_ctrlTreeChan);
|
|||
|
|
DDX_Control(pDX, IDC_IPADDRESS_DEV, m_ctrlDevIp);
|
|||
|
|
DDX_Text(pDX, IDC_EDIT_PORT, m_nDevPort);
|
|||
|
|
DDX_Text(pDX, IDC_EDIT_USER, m_csUser);
|
|||
|
|
DDX_Text(pDX, IDC_EDIT_PWD, m_csPWD);
|
|||
|
|
//}}AFX_DATA_MAP
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BEGIN_MESSAGE_MAP(CRealPlayDlg, CDialog)
|
|||
|
|
//{{AFX_MSG_MAP(CRealPlayDlg)
|
|||
|
|
ON_WM_SYSCOMMAND()
|
|||
|
|
ON_WM_PAINT()
|
|||
|
|
ON_WM_QUERYDRAGICON()
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_LOGIN, OnButtonLogin)
|
|||
|
|
ON_NOTIFY(NM_DBLCLK, IDC_TREE_CHAN, OnDblclkTreeChan)
|
|||
|
|
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_CHAN, OnSelchangedTreeChan)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_RECORD, OnButtonRecord)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_CAPTURE, OnButtonCapture)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_PLAY, OnButtonPlay)
|
|||
|
|
ON_CBN_SELCHANGE(IDC_COMBO_PRESET, OnSelchangeComboPreset)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_PRESET_GOTO, OnButtonPresetGoto)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_PRESET_SET, OnButtonPresetSet)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_PRESET_DEL, OnButtonPresetDel)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_SEQ_GOTO, OnButtonSeqGoto)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_SEQ_SET, OnButtonSeqSet)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_TRACK_RUN, OnButtonTrackRun)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_TRACK_START, OnButtonTrackStart)
|
|||
|
|
ON_BN_CLICKED(IDC_BUTTON_TRACK_STOP, OnButtonTrackStop)
|
|||
|
|
ON_BN_CLICKED(IDC_BTN_PTZ_AUTO, OnBtnPtzAuto)
|
|||
|
|
ON_BN_CLICKED(IDC_BTN_AUX_PWRON, OnBtnAuxPwron)
|
|||
|
|
ON_BN_CLICKED(IDC_BTN_FAN_PWRON, OnBtnFanPwron)
|
|||
|
|
ON_BN_CLICKED(IDC_BTN_HEATER_PWRON, OnBtnHeaterPwron)
|
|||
|
|
ON_BN_CLICKED(IDC_BTN_LIGHT_PWRON, OnBtnLightPwron)
|
|||
|
|
ON_BN_CLICKED(IDC_BTN_WIPER_PWRON, OnBtnWiperPwron)
|
|||
|
|
ON_BN_CLICKED(IDC_BTN_AUX_PWRON2, OnBtnAuxPwron2)
|
|||
|
|
ON_CBN_SELCHANGE(IDC_COMBO_PIC_TYPE, OnSelchangeComboPicType)
|
|||
|
|
ON_WM_CLOSE()
|
|||
|
|
//}}AFX_MSG_MAP
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
|
|||
|
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// CRealPlayDlg message handlers
|
|||
|
|
|
|||
|
|
BOOL CRealPlayDlg::OnInitDialog()
|
|||
|
|
{
|
|||
|
|
CDialog::OnInitDialog();
|
|||
|
|
|
|||
|
|
// 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)
|
|||
|
|
{
|
|||
|
|
CString strAboutMenu;
|
|||
|
|
strAboutMenu.LoadString(IDS_ABOUTBOX);
|
|||
|
|
if (!strAboutMenu.IsEmpty())
|
|||
|
|
{
|
|||
|
|
pSysMenu->AppendMenu(MF_SEPARATOR);
|
|||
|
|
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Set the icon for this dialog. The framework does this automatically
|
|||
|
|
// when the application's main window is not a dialog
|
|||
|
|
SetIcon(m_hIcon, TRUE); // Set big icon
|
|||
|
|
SetIcon(m_hIcon, FALSE); // Set small icon
|
|||
|
|
|
|||
|
|
// TODO: Add extra initialization here
|
|||
|
|
//Ĭ<><C4AC>IP
|
|||
|
|
m_ctrlDevIp.SetAddress(172,7,96,7);
|
|||
|
|
|
|||
|
|
//<2F><>̨<EFBFBD>ٶ<EFBFBD>
|
|||
|
|
m_comboPTZSpeed.SetCurSel(5);
|
|||
|
|
|
|||
|
|
//<2F><>̨<EFBFBD><CCA8>ť
|
|||
|
|
m_btnPtzUp.SubclassDlgItem(IDC_BTN_PTZ_UP,this);
|
|||
|
|
m_btnPtzDown.SubclassDlgItem(IDC_BTN_PTZ_DOWN,this);
|
|||
|
|
m_btnPtzLeft.SubclassDlgItem(IDC_BTN_PTZ_LEFT,this);
|
|||
|
|
m_btnPtzRight.SubclassDlgItem(IDC_BTN_PTZ_RIGHT,this);
|
|||
|
|
m_btnZoomOut.SubclassDlgItem(IDC_BTN_ZOOM_OUT,this);
|
|||
|
|
m_btnZoomIn.SubclassDlgItem(IDC_BTN_ZOOM_IN,this);
|
|||
|
|
m_btnFocusNear.SubclassDlgItem(IDC_BTN_FOCUS_NEAR,this);
|
|||
|
|
m_btnFocusFar.SubclassDlgItem(IDC_BTN_FOCUS_FAR,this);
|
|||
|
|
m_btnIrisOpen.SubclassDlgItem(IDC_BTN_IRIS_OPEN,this);
|
|||
|
|
m_btnIrisClose.SubclassDlgItem(IDC_BTN_IRIS_CLOSE,this);
|
|||
|
|
m_btnPtzUpleft.SubclassDlgItem(IDC_BTN_PTZ_UPLEFT,this);
|
|||
|
|
m_btnPtzUpright.SubclassDlgItem(IDC_BTN_PTZ_UPRIGHT,this);
|
|||
|
|
m_btnPtzDownleft.SubclassDlgItem(IDC_BTN_PTZ_DOWNLEFT,this);
|
|||
|
|
m_btnPtzDownright.SubclassDlgItem(IDC_BTN_PTZ_DOWNRIGHT,this);
|
|||
|
|
|
|||
|
|
//ץͼcombo
|
|||
|
|
m_coPicType.SetCurSel(0);
|
|||
|
|
m_coJpgSize.SetCurSel(0);
|
|||
|
|
m_coJpgQuality.SetCurSel(0);
|
|||
|
|
GetDlgItem(IDC_STATIC_JPGPARA)->EnableWindow(FALSE);
|
|||
|
|
m_coJpgSize.EnableWindow(FALSE);
|
|||
|
|
m_coJpgQuality.EnableWindow(FALSE);
|
|||
|
|
|
|||
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CRealPlayDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
|||
|
|
{
|
|||
|
|
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
|||
|
|
{
|
|||
|
|
CAboutDlg dlgAbout;
|
|||
|
|
dlgAbout.DoModal();
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
CDialog::OnSysCommand(nID, lParam);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// If you add a minimize button to your dialog, you will need the code below
|
|||
|
|
// to draw the icon. For MFC applications using the document/view model,
|
|||
|
|
// this is automatically done for you by the framework.
|
|||
|
|
|
|||
|
|
void CRealPlayDlg::OnPaint()
|
|||
|
|
{
|
|||
|
|
if (IsIconic())
|
|||
|
|
{
|
|||
|
|
CPaintDC dc(this); // device context for painting
|
|||
|
|
|
|||
|
|
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
|
|||
|
|
|
|||
|
|
// Center icon in client rectangle
|
|||
|
|
int cxIcon = GetSystemMetrics(SM_CXICON);
|
|||
|
|
int cyIcon = GetSystemMetrics(SM_CYICON);
|
|||
|
|
CRect rect;
|
|||
|
|
GetClientRect(&rect);
|
|||
|
|
int x = (rect.Width() - cxIcon + 1) / 2;
|
|||
|
|
int y = (rect.Height() - cyIcon + 1) / 2;
|
|||
|
|
|
|||
|
|
// Draw the icon
|
|||
|
|
dc.DrawIcon(x, y, m_hIcon);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
CDialog::OnPaint();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// The system calls this to obtain the cursor to display while the user drags
|
|||
|
|
// the minimized window.
|
|||
|
|
HCURSOR CRealPlayDlg::OnQueryDragIcon()
|
|||
|
|
{
|
|||
|
|
return (HCURSOR) m_hIcon;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonLogin
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ע<EFBFBD><EFBFBD>/ע<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ť
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonLogin()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if(!m_bIsLogin) //login
|
|||
|
|
{
|
|||
|
|
if(!DoLogin())
|
|||
|
|
return;
|
|||
|
|
DoGetDeviceResoureCfg(); //<2F><>ȡ<EFBFBD>豸<EFBFBD><E8B1B8>Դ<EFBFBD><D4B4>Ϣ
|
|||
|
|
CreateDeviceTree(); //<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|||
|
|
GetDecoderCfg(); //<2F><>ȡ<EFBFBD><C8A1>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
InitDecoderReferCtrl(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿؼ<D8BF>
|
|||
|
|
GetDlgItem(IDC_BUTTON_LOGIN)->SetWindowText("Logout");
|
|||
|
|
m_bIsLogin = TRUE;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else //logout
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
|
|||
|
|
if(m_bIsPlaying|| m_bIsRecording)
|
|||
|
|
{
|
|||
|
|
MessageBox("Stop Play or record first!");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
NET_DVR_Logout_V30(m_struDeviceInfo.lLoginID);
|
|||
|
|
GetDlgItem(IDC_BUTTON_LOGIN)->SetWindowText("Login");
|
|||
|
|
m_ctrlTreeChan.DeleteAllItems();
|
|||
|
|
m_struDeviceInfo.lLoginID = -1;
|
|||
|
|
m_bIsLogin = FALSE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: DoLogin
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD>豸ע<EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
BOOL CRealPlayDlg::DoLogin()
|
|||
|
|
{
|
|||
|
|
UpdateData(TRUE);
|
|||
|
|
CString DeviceIp;
|
|||
|
|
BYTE nField0,nField1,nField2,nField3;
|
|||
|
|
m_ctrlDevIp.GetAddress(nField0,nField1,nField2,nField3);
|
|||
|
|
DeviceIp.Format("%d.%d.%d.%d",nField0,nField1,nField2,nField3);
|
|||
|
|
|
|||
|
|
NET_DVR_DEVICEINFO_V30 DeviceInfoTmp;
|
|||
|
|
memset(&DeviceInfoTmp,0,sizeof(NET_DVR_DEVICEINFO_V30));
|
|||
|
|
|
|||
|
|
LONG lLoginID = NET_DVR_Login_V30(DeviceIp.GetBuffer(DeviceIp.GetLength()),m_nDevPort, \
|
|||
|
|
m_csUser.GetBuffer(m_csUser.GetLength()),m_csPWD.GetBuffer(m_csPWD.GetLength()),&DeviceInfoTmp);
|
|||
|
|
if(lLoginID == -1)
|
|||
|
|
{
|
|||
|
|
MessageBox("Login to Device failed!\n");
|
|||
|
|
return FALSE;
|
|||
|
|
}
|
|||
|
|
m_struDeviceInfo.lLoginID = lLoginID;
|
|||
|
|
m_struDeviceInfo.iDeviceChanNum = DeviceInfoTmp.byChanNum;
|
|||
|
|
m_struDeviceInfo.iIPChanNum = DeviceInfoTmp.byIPChanNum;
|
|||
|
|
m_struDeviceInfo.iStartChan = DeviceInfoTmp.byStartChan;
|
|||
|
|
m_struDeviceInfo.iIPStartChan = DeviceInfoTmp.byStartDChan;
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: DoGetDeviceResoureCfg
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ȡ<EFBFBD>豸<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::DoGetDeviceResoureCfg()
|
|||
|
|
{
|
|||
|
|
NET_DVR_IPPARACFG_V40 IpAccessCfg;
|
|||
|
|
memset(&IpAccessCfg,0,sizeof(IpAccessCfg));
|
|||
|
|
DWORD dwReturned;
|
|||
|
|
|
|||
|
|
m_struDeviceInfo.bIPRet = NET_DVR_GetDVRConfig(m_struDeviceInfo.lLoginID,NET_DVR_GET_IPPARACFG_V40,0,&IpAccessCfg,sizeof(NET_DVR_IPPARACFG_V40),&dwReturned);
|
|||
|
|
|
|||
|
|
int i;
|
|||
|
|
if(!m_struDeviceInfo.bIPRet) //<2F><>֧<EFBFBD><D6A7>ip<69><70><EFBFBD><EFBFBD>,9000<30><30><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8>֧<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>ģ<EFBFBD><C4A3>ͨ<EFBFBD><CDA8>
|
|||
|
|
{
|
|||
|
|
for(i=0; i<MAX_ANALOG_CHANNUM; i++)
|
|||
|
|
{
|
|||
|
|
if (i < m_struDeviceInfo.iDeviceChanNum)
|
|||
|
|
{
|
|||
|
|
sprintf(m_struDeviceInfo.struChanInfo[i].chChanName,"camera%d",i+m_struDeviceInfo.iStartChan);
|
|||
|
|
m_struDeviceInfo.struChanInfo[i].iChanIndex=i+m_struDeviceInfo.iStartChan; //ͨ<><CDA8><EFBFBD><EFBFBD>
|
|||
|
|
m_struDeviceInfo.struChanInfo[i].bEnable = TRUE;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_struDeviceInfo.struChanInfo[i].iChanIndex = -1;
|
|||
|
|
m_struDeviceInfo.struChanInfo[i].bEnable = FALSE;
|
|||
|
|
sprintf(m_struDeviceInfo.struChanInfo[i].chChanName, "");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else //֧<><D6A7>IP<49><50><EFBFBD>룬9000<30>豸
|
|||
|
|
{
|
|||
|
|
for(i=0; i<MAX_ANALOG_CHANNUM; i++) //ģ<><C4A3>ͨ<EFBFBD><CDA8>
|
|||
|
|
{
|
|||
|
|
if (i < m_struDeviceInfo.iDeviceChanNum)
|
|||
|
|
{
|
|||
|
|
sprintf(m_struDeviceInfo.struChanInfo[i].chChanName,"camera%d",i+m_struDeviceInfo.iStartChan);
|
|||
|
|
m_struDeviceInfo.struChanInfo[i].iChanIndex=i+m_struDeviceInfo.iStartChan;
|
|||
|
|
if(IpAccessCfg.byAnalogChanEnable[i])
|
|||
|
|
{
|
|||
|
|
m_struDeviceInfo.struChanInfo[i].bEnable = TRUE;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_struDeviceInfo.struChanInfo[i].bEnable = FALSE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else//clear the state of other channel
|
|||
|
|
{
|
|||
|
|
m_struDeviceInfo.struChanInfo[i].iChanIndex = -1;
|
|||
|
|
m_struDeviceInfo.struChanInfo[i].bEnable = FALSE;
|
|||
|
|
sprintf(m_struDeviceInfo.struChanInfo[i].chChanName, "");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|||
|
|
for(i=0; i<MAX_IP_CHANNEL; i++)
|
|||
|
|
{
|
|||
|
|
if(IpAccessCfg.struStreamMode[i].uGetStream.struChanInfo.byEnable) //ipͨ<70><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
m_struDeviceInfo.struChanInfo[i+MAX_ANALOG_CHANNUM].bEnable = TRUE;
|
|||
|
|
m_struDeviceInfo.struChanInfo[i+MAX_ANALOG_CHANNUM].iChanIndex = i+IpAccessCfg.dwStartDChan;
|
|||
|
|
sprintf(m_struDeviceInfo.struChanInfo[i+MAX_ANALOG_CHANNUM].chChanName,"IP Camera %d",i+1);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_struDeviceInfo.struChanInfo[i+MAX_ANALOG_CHANNUM].bEnable = FALSE;
|
|||
|
|
m_struDeviceInfo.struChanInfo[i+MAX_ANALOG_CHANNUM].iChanIndex = -1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: CreateDeviceTree
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::CreateDeviceTree()
|
|||
|
|
{
|
|||
|
|
m_hDevItem = m_ctrlTreeChan.InsertItem("Dev");
|
|||
|
|
m_ctrlTreeChan.SetItemData(m_hDevItem,DEVICETYPE*1000);
|
|||
|
|
for(int i=0; i<MAX_CHANNUM_V30; i++)
|
|||
|
|
{
|
|||
|
|
if(m_struDeviceInfo.struChanInfo[i].bEnable) //ͨ<><CDA8><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
HTREEITEM ChanItem = m_ctrlTreeChan.InsertItem(m_struDeviceInfo.struChanInfo[i].chChanName,m_hDevItem);
|
|||
|
|
m_ctrlTreeChan.SetItemData(ChanItem,CHANNELTYPE*1000+i); //Data<74><61>Ӧͨ<D3A6><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
m_ctrlTreeChan.Expand(m_hDevItem,TVE_EXPAND);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnDblclkTreeChan
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ˫<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnDblclkTreeChan(NMHDR* pNMHDR, LRESULT* pResult)
|
|||
|
|
{
|
|||
|
|
HTREEITEM hSelected = m_ctrlTreeChan.GetSelectedItem();
|
|||
|
|
//δѡ<CEB4><D1A1>
|
|||
|
|
if(NULL == hSelected)
|
|||
|
|
return;
|
|||
|
|
DWORD itemData = m_ctrlTreeChan.GetItemData(hSelected);
|
|||
|
|
HTREEITEM hParent = NULL;
|
|||
|
|
int itype = itemData/1000; //
|
|||
|
|
int iIndex = itemData%1000;
|
|||
|
|
|
|||
|
|
switch(itype)
|
|||
|
|
{
|
|||
|
|
case DEVICETYPE:
|
|||
|
|
m_iCurChanIndex = -1;
|
|||
|
|
break;
|
|||
|
|
case CHANNELTYPE:
|
|||
|
|
m_iCurChanIndex = iIndex;
|
|||
|
|
TRACE("select chan: %d\n",iIndex);
|
|||
|
|
DbPlayChannel(iIndex);
|
|||
|
|
OnSelchangeComboPreset();
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
*pResult = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: DbPlayChannel
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ChanIndex-ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::DbPlayChannel(int ChanIndex)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if(!m_bIsPlaying) //Play
|
|||
|
|
{
|
|||
|
|
StartPlay(ChanIndex);
|
|||
|
|
}
|
|||
|
|
else //Stop,play
|
|||
|
|
{
|
|||
|
|
StopPlay();
|
|||
|
|
StartPlay(ChanIndex);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: StartPlay
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼһ·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ChanIndex-ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::StartPlay(int iChanIndex)
|
|||
|
|
{
|
|||
|
|
NET_DVR_CLIENTINFO ClientInfo;
|
|||
|
|
ClientInfo.hPlayWnd = GetDlgItem(IDC_STATIC_PLAY)->m_hWnd;
|
|||
|
|
ClientInfo.lChannel = m_iCurChanIndex+1;
|
|||
|
|
ClientInfo.lLinkMode = 0;
|
|||
|
|
ClientInfo.sMultiCastIP = NULL;
|
|||
|
|
TRACE("Channel number:%d\n",ClientInfo.lChannel);
|
|||
|
|
m_lPlayHandle = NET_DVR_RealPlay_V30(m_struDeviceInfo.lLoginID,&ClientInfo,NULL,NULL,TRUE);
|
|||
|
|
if(-1 == m_lPlayHandle)
|
|||
|
|
{
|
|||
|
|
DWORD err=NET_DVR_GetLastError();
|
|||
|
|
CString m_csErr;
|
|||
|
|
m_csErr.Format("<EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d",err);
|
|||
|
|
MessageBox(m_csErr);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
m_bIsPlaying = TRUE;
|
|||
|
|
GetDlgItem(IDC_BUTTON_PLAY)->SetWindowText("ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: StopPlay
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::StopPlay()
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle != -1)
|
|||
|
|
{
|
|||
|
|
if(m_bIsRecording) //<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ
|
|||
|
|
{
|
|||
|
|
StopRecord();
|
|||
|
|
}
|
|||
|
|
NET_DVR_StopRealPlay(m_lPlayHandle);
|
|||
|
|
m_lPlayHandle=-1;
|
|||
|
|
m_bIsPlaying = FALSE;
|
|||
|
|
GetDlgItem(IDC_STATIC_PLAY)->Invalidate();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnSelchangedTreeChan
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ȡѡ<EFBFBD>е<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnSelchangedTreeChan(NMHDR* pNMHDR, LRESULT* pResult)
|
|||
|
|
{
|
|||
|
|
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
|
|||
|
|
// TODO: Add your control notification handler code here
|
|||
|
|
HTREEITEM hSelected = m_ctrlTreeChan.GetSelectedItem();
|
|||
|
|
//δѡ<CEB4><D1A1>
|
|||
|
|
if(NULL == hSelected)
|
|||
|
|
return;
|
|||
|
|
DWORD itemData = m_ctrlTreeChan.GetItemData(hSelected);
|
|||
|
|
HTREEITEM hParent = NULL;
|
|||
|
|
int itype = itemData/1000; //
|
|||
|
|
int iIndex = itemData%1000;
|
|||
|
|
|
|||
|
|
switch(itype)
|
|||
|
|
{
|
|||
|
|
case DEVICETYPE:
|
|||
|
|
m_iCurChanIndex = -1;
|
|||
|
|
break;
|
|||
|
|
case CHANNELTYPE:
|
|||
|
|
m_iCurChanIndex = iIndex;
|
|||
|
|
OnSelchangeComboPreset();
|
|||
|
|
TRACE("select chan index: %d\n",iIndex);
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
*pResult = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: GetCurChanIndex
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰѡ<EFBFBD>е<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>ǰѡ<EFBFBD>е<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
**************************************************/
|
|||
|
|
int CRealPlayDlg::GetCurChanIndex()
|
|||
|
|
{
|
|||
|
|
return m_iCurChanIndex;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: GetPlayHandle
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ž<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD><EFBFBD>ž<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
**************************************************/
|
|||
|
|
LONG CRealPlayDlg::GetPlayHandle()
|
|||
|
|
{
|
|||
|
|
return m_lPlayHandle;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: GetPTZSpeed
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>̨<EFBFBD>ٶ<EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>̨<EFBFBD>ٶ<EFBFBD>
|
|||
|
|
**************************************************/
|
|||
|
|
int CRealPlayDlg::GetPTZSpeed()
|
|||
|
|
{
|
|||
|
|
return (m_comboPTZSpeed.GetCurSel());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonRecord
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼ/ֹͣ¼<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ť
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonRecord()
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle == -1)
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if(!m_bIsRecording)
|
|||
|
|
{
|
|||
|
|
StartRecord();
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
StopRecord();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: StartRecord
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼ¼<EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::StartRecord()
|
|||
|
|
{
|
|||
|
|
char RecName[256] = {0};
|
|||
|
|
|
|||
|
|
CTime CurTime = CTime::GetCurrentTime();;
|
|||
|
|
sprintf(RecName,"%04d%02d%02d%02d%02d%02d_ch%02d.mp4",CurTime.GetYear(),CurTime.GetMonth(),CurTime.GetDay(), \
|
|||
|
|
CurTime.GetHour(),CurTime.GetMinute(),CurTime.GetSecond(),m_struDeviceInfo.struChanInfo[GetCurChanIndex()].iChanIndex);
|
|||
|
|
|
|||
|
|
if(!NET_DVR_SaveRealData(m_lPlayHandle,RecName))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
m_bIsRecording = TRUE;
|
|||
|
|
GetDlgItem(IDC_BUTTON_RECORD)->SetWindowText("ֹͣ¼<EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: StopRecord
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ֹͣ¼<EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::StopRecord()
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_StopSaveRealData(m_lPlayHandle))
|
|||
|
|
{
|
|||
|
|
MessageBox("ֹͣ¼<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
m_bIsRecording = FALSE;
|
|||
|
|
GetDlgItem(IDC_BUTTON_RECORD)->SetWindowText("¼<EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonCapture
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ץͼ
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonCapture()
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle == -1)
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
UpdateData(TRUE);
|
|||
|
|
|
|||
|
|
char PicName[256] = {0};
|
|||
|
|
|
|||
|
|
int iPicType = m_coPicType.GetCurSel();
|
|||
|
|
if(0 == iPicType) //bmp
|
|||
|
|
{
|
|||
|
|
CTime CurTime = CTime::GetCurrentTime();;
|
|||
|
|
sprintf(PicName,"%04d%02d%02d%02d%02d%02d_ch%02d.bmp",CurTime.GetYear(),CurTime.GetMonth(),CurTime.GetDay(), \
|
|||
|
|
CurTime.GetHour(),CurTime.GetMinute(),CurTime.GetSecond(),m_struDeviceInfo.struChanInfo[GetCurChanIndex()].iChanIndex);
|
|||
|
|
|
|||
|
|
if(NET_DVR_CapturePicture(m_lPlayHandle,PicName))
|
|||
|
|
{
|
|||
|
|
MessageBox("ץͼ<EFBFBD>ɹ<EFBFBD>!");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if(1 == iPicType) //jgp
|
|||
|
|
{
|
|||
|
|
CTime CurTime = CTime::GetCurrentTime();;
|
|||
|
|
sprintf(PicName,"%04d%02d%02d%02d%02d%02d_ch%02d.jpg",CurTime.GetYear(),CurTime.GetMonth(),CurTime.GetDay(), \
|
|||
|
|
CurTime.GetHour(),CurTime.GetMinute(),CurTime.GetSecond(),m_struDeviceInfo.struChanInfo[GetCurChanIndex()].iChanIndex);
|
|||
|
|
|
|||
|
|
//<2F>齨jpg<70>ṹ
|
|||
|
|
NET_DVR_JPEGPARA JpgPara = {0};
|
|||
|
|
JpgPara.wPicSize = (WORD)m_coJpgSize.GetCurSel();
|
|||
|
|
JpgPara.wPicQuality = (WORD)m_coJpgQuality.GetCurSel();
|
|||
|
|
|
|||
|
|
LONG iCurChan = m_struDeviceInfo.struChanInfo[GetCurChanIndex()].iChanIndex;
|
|||
|
|
|
|||
|
|
if(NET_DVR_CaptureJPEGPicture(m_struDeviceInfo.lLoginID, iCurChan, &JpgPara, PicName))
|
|||
|
|
{
|
|||
|
|
MessageBox("ץͼ<EFBFBD>ɹ<EFBFBD>");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonPlay
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonPlay()
|
|||
|
|
{
|
|||
|
|
if(m_iCurChanIndex == -1)
|
|||
|
|
{
|
|||
|
|
MessageBox("ѡ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if(!m_bIsPlaying)
|
|||
|
|
{
|
|||
|
|
StartPlay(m_iCurChanIndex);
|
|||
|
|
m_bIsPlaying = TRUE;
|
|||
|
|
GetDlgItem(IDC_BUTTON_PLAY)->SetWindowText("ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
StopPlay();
|
|||
|
|
m_bIsPlaying = FALSE;
|
|||
|
|
GetDlgItem(IDC_BUTTON_PLAY)->SetWindowText("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: GetDecoderCfg
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::GetDecoderCfg()
|
|||
|
|
{
|
|||
|
|
NET_DVR_DECODERCFG_V30 DecoderCfg;
|
|||
|
|
DWORD dwReturned;
|
|||
|
|
BOOL bRet;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><>ȡͨ<C8A1><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
for(int i=0; i<MAX_CHANNUM_V30; i++)
|
|||
|
|
{
|
|||
|
|
if(m_struDeviceInfo.struChanInfo[i].bEnable)
|
|||
|
|
{
|
|||
|
|
memset(&DecoderCfg,0,sizeof(NET_DVR_DECODERCFG_V30));
|
|||
|
|
bRet = NET_DVR_GetDVRConfig(m_struDeviceInfo.lLoginID,NET_DVR_GET_DECODERCFG_V30 , \
|
|||
|
|
m_struDeviceInfo.struChanInfo[i].iChanIndex,&DecoderCfg,sizeof(NET_DVR_DECODERCFG_V30),&dwReturned);
|
|||
|
|
if(!bRet)
|
|||
|
|
{
|
|||
|
|
TRACE("Get DecderCfg failed,Chan:%d\n",m_struDeviceInfo.struChanInfo[i].iChanIndex);
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
memcpy(&m_struDeviceInfo.struChanInfo[i].struDecodercfg,&DecoderCfg,sizeof(NET_DVR_DECODERCFG_V30));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: InitDecoderReferCtrl
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿؼ<EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::InitDecoderReferCtrl()
|
|||
|
|
{
|
|||
|
|
int i;
|
|||
|
|
CString tmp;
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>Ԥ<EFBFBD>õ<EFBFBD>
|
|||
|
|
for(i=0; i<MAX_PRESET_V30; i++)
|
|||
|
|
{
|
|||
|
|
tmp.Format("%d",i+1); //i+1
|
|||
|
|
m_comboPreset.AddString(tmp);
|
|||
|
|
}
|
|||
|
|
m_comboPreset.SetCurSel(0);
|
|||
|
|
|
|||
|
|
GetDlgItem(IDC_BUTTON_PRESET_GOTO)->EnableWindow(FALSE);
|
|||
|
|
//GetDlgItem(IDC_BUTTON_PRESET_SET)->EnableWindow(FALSE);
|
|||
|
|
GetDlgItem(IDC_BUTTON_PRESET_DEL)->EnableWindow(FALSE);
|
|||
|
|
|
|||
|
|
//Ѳ<><D1B2><EFBFBD>켣
|
|||
|
|
for(i=0; i<MAX_CRUISE_SEQ; i++)
|
|||
|
|
{
|
|||
|
|
tmp.Format("%d",i+1); //i+1
|
|||
|
|
m_comboSeq.AddString(tmp);
|
|||
|
|
}
|
|||
|
|
m_comboSeq.SetCurSel(0);
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnSelchangeComboPreset
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Ԥ<EFBFBD>õ<EFBFBD>combobox<EFBFBD><EFBFBD><EFBFBD>ı䰴ť״̬
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnSelchangeComboPreset()
|
|||
|
|
{
|
|||
|
|
int iIndex = m_comboPreset.GetCurSel();
|
|||
|
|
|
|||
|
|
if(m_struDeviceInfo.struChanInfo[m_iCurChanIndex].struDecodercfg.bySetPreset[iIndex])
|
|||
|
|
{
|
|||
|
|
GetDlgItem(IDC_BUTTON_PRESET_GOTO)->EnableWindow(TRUE);
|
|||
|
|
GetDlgItem(IDC_BUTTON_PRESET_DEL)->EnableWindow(TRUE);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
GetDlgItem(IDC_BUTTON_PRESET_GOTO)->EnableWindow(FALSE);
|
|||
|
|
GetDlgItem(IDC_BUTTON_PRESET_DEL)->EnableWindow(FALSE);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonPresetGoto
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>õ<EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonPresetGoto()
|
|||
|
|
{
|
|||
|
|
int iPreset = m_comboPreset.GetCurSel()+1; //+1
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZPreset(m_lPlayHandle,GOTO_PRESET,iPreset))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>õ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZPreset_Other(m_struDeviceInfo.lLoginID,m_struDeviceInfo.struChanInfo[m_iCurChanIndex].iChanIndex, \
|
|||
|
|
GOTO_PRESET,iPreset))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>õ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonPresetSet
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>õ<EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonPresetSet()
|
|||
|
|
{
|
|||
|
|
int iPreset = m_comboPreset.GetCurSel()+1; //+1
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZPreset(m_lPlayHandle,SET_PRESET,iPreset))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>õ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZPreset_Other(m_struDeviceInfo.lLoginID,m_struDeviceInfo.struChanInfo[m_iCurChanIndex].iChanIndex, \
|
|||
|
|
SET_PRESET,iPreset))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>õ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ӵ<EFBFBD>Ԥ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Ϣ
|
|||
|
|
m_struDeviceInfo.struChanInfo[m_iCurChanIndex].struDecodercfg.bySetPreset[iPreset-1] = TRUE;
|
|||
|
|
//<2F><><EFBFBD>°<EFBFBD>ť״̬
|
|||
|
|
OnSelchangeComboPreset();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonPresetDel
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ɾ<EFBFBD><EFBFBD>Ԥ<EFBFBD>õ<EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonPresetDel()
|
|||
|
|
{
|
|||
|
|
int iPreset = m_comboPreset.GetCurSel()+1; //+1
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZPreset(m_lPlayHandle,CLE_PRESET,iPreset))
|
|||
|
|
{
|
|||
|
|
MessageBox("ɾ<EFBFBD><EFBFBD>Ԥ<EFBFBD>õ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZPreset_Other(m_struDeviceInfo.lLoginID,m_struDeviceInfo.struChanInfo[m_iCurChanIndex].iChanIndex, \
|
|||
|
|
CLE_PRESET,iPreset))
|
|||
|
|
{
|
|||
|
|
MessageBox("ɾ<EFBFBD><EFBFBD>Ԥ<EFBFBD>õ<EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ӵ<EFBFBD>Ԥ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Ϣ
|
|||
|
|
m_struDeviceInfo.struChanInfo[m_iCurChanIndex].struDecodercfg.bySetPreset[iPreset-1] = FALSE;
|
|||
|
|
//<2F><><EFBFBD>°<EFBFBD>ť״̬
|
|||
|
|
OnSelchangeComboPreset();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonSeqGoto
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/ֹͣ Ѳ<EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonSeqGoto()
|
|||
|
|
{
|
|||
|
|
int iSeq = m_comboSeq.GetCurSel()+1; //+1
|
|||
|
|
if(!m_bIsOnCruise)
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZCruise(m_lPlayHandle,RUN_SEQ,iSeq,0,0))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZCruise_Other(m_struDeviceInfo.lLoginID,m_struDeviceInfo.struChanInfo[m_iCurChanIndex].iChanIndex, \
|
|||
|
|
RUN_SEQ,iSeq,0,0))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
m_bIsOnCruise = TRUE;
|
|||
|
|
GetDlgItem(IDC_BUTTON_SEQ_GOTO)->SetWindowText("ֹͣ");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZCruise(m_lPlayHandle,STOP_SEQ,iSeq,0,0))
|
|||
|
|
{
|
|||
|
|
MessageBox("ֹͣѲ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZCruise_Other(m_struDeviceInfo.lLoginID,m_struDeviceInfo.struChanInfo[m_iCurChanIndex].iChanIndex, \
|
|||
|
|
STOP_SEQ,iSeq,0,0))
|
|||
|
|
{
|
|||
|
|
MessageBox("ֹͣѲ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
m_bIsOnCruise = FALSE;
|
|||
|
|
GetDlgItem(IDC_BUTTON_SEQ_GOTO)->SetWindowText("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonSeqSet
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonSeqSet()
|
|||
|
|
{
|
|||
|
|
CDlgPTZCruise Dlg;
|
|||
|
|
Dlg.DoModal();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonTrackRun
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>й켣
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonTrackRun()
|
|||
|
|
{
|
|||
|
|
if(!m_bTrackRun)
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZTrack(m_lPlayHandle,RUN_CRUISE))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD>й켣ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZTrack(m_struDeviceInfo.lLoginID,m_struDeviceInfo.struChanInfo[m_iCurChanIndex].iChanIndex))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD>й켣ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
m_bTrackRun = TRUE;
|
|||
|
|
GetDlgItem(IDC_BUTTON_TRACK_RUN)->SetWindowText("ֹͣ");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD>㷢<EFBFBD><E3B7A2>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZControl(m_lPlayHandle,TILT_UP,1))
|
|||
|
|
{
|
|||
|
|
MessageBox("ֹͣ<EFBFBD>켣ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZControl_Other(m_struDeviceInfo.lLoginID,m_struDeviceInfo.struChanInfo[m_iCurChanIndex].iChanIndex,TILT_UP,1))
|
|||
|
|
{
|
|||
|
|
MessageBox("ֹͣ<EFBFBD>켣ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
m_bTrackRun = FALSE;
|
|||
|
|
GetDlgItem(IDC_BUTTON_TRACK_RUN)->SetWindowText("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonTrackStart
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>¼<EFBFBD>켣
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonTrackStart()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZTrack(m_lPlayHandle,STA_MEM_CRUISE))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>¼<EFBFBD>켣ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZTrack_Other(m_struDeviceInfo.lLoginID,m_struDeviceInfo.struChanInfo[m_iCurChanIndex].iChanIndex,STA_MEM_CRUISE))
|
|||
|
|
{
|
|||
|
|
MessageBox("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>¼<EFBFBD>켣ʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnButtonTrackStop
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ֹͣ<EFBFBD><EFBFBD>¼<EFBFBD>켣
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnButtonTrackStop()
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZTrack(m_lPlayHandle,STO_MEM_CRUISE))
|
|||
|
|
{
|
|||
|
|
MessageBox("ֹͣʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(!NET_DVR_PTZTrack_Other(m_struDeviceInfo.lLoginID,m_struDeviceInfo.struChanInfo[m_iCurChanIndex].iChanIndex,STO_MEM_CRUISE))
|
|||
|
|
{
|
|||
|
|
MessageBox("ֹͣʧ<EFBFBD><EFBFBD>");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnBtnPtzAuto
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD>ʼ/ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ɨ<EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnBtnPtzAuto()
|
|||
|
|
{
|
|||
|
|
int iSpeed = GetPTZSpeed();
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!m_bAutoOn)
|
|||
|
|
{
|
|||
|
|
if(iSpeed >= 1)
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControlWithSpeed(m_lPlayHandle,PAN_AUTO,0,iSpeed);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,PAN_AUTO,0);
|
|||
|
|
}
|
|||
|
|
GetDlgItem(IDC_BTN_PTZ_AUTO)->SetWindowText("ֹͣ");
|
|||
|
|
m_bAutoOn = TRUE;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(iSpeed >= 1)
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControlWithSpeed(m_lPlayHandle,PAN_AUTO,1,iSpeed);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,PAN_AUTO,1);
|
|||
|
|
}
|
|||
|
|
GetDlgItem(IDC_BTN_PTZ_AUTO)->SetWindowText("<EFBFBD>Զ<EFBFBD>");
|
|||
|
|
m_bAutoOn = FALSE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnBtnAuxPwron
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼ/ֹͣ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸1
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnBtnAuxPwron()
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!m_bAuxOn1)
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,AUX_PWRON1,0);
|
|||
|
|
GetDlgItem(IDC_BTN_AUX_PWRON)->SetWindowText("ֹͣ1");
|
|||
|
|
m_bAuxOn1 = TRUE;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,AUX_PWRON1,1);
|
|||
|
|
GetDlgItem(IDC_BTN_AUX_PWRON)->SetWindowText("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1");
|
|||
|
|
m_bAuxOn1 = FALSE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnBtnAuxPwron2
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼ/ֹͣ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸2
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnBtnAuxPwron2()
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!m_bAuxOn2)
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,AUX_PWRON2,0);
|
|||
|
|
GetDlgItem(IDC_BTN_AUX_PWRON2)->SetWindowText("ֹͣ2");
|
|||
|
|
m_bAuxOn2 = TRUE;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,AUX_PWRON2,1);
|
|||
|
|
GetDlgItem(IDC_BTN_AUX_PWRON2)->SetWindowText("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2");
|
|||
|
|
m_bAuxOn2 = FALSE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnBtnFanPwron
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼ/ֹͣ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnBtnFanPwron()
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!m_bFanOn)
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,FAN_PWRON,0);
|
|||
|
|
GetDlgItem(IDC_BTN_FAN_PWRON)->SetWindowText("ͣ<EFBFBD><EFBFBD>");
|
|||
|
|
m_bFanOn = TRUE;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,FAN_PWRON,1);
|
|||
|
|
GetDlgItem(IDC_BTN_FAN_PWRON)->SetWindowText("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
m_bFanOn = FALSE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnBtnHeaterPwron
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼ/ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnBtnHeaterPwron()
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!m_bHeaterOn)
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,HEATER_PWRON,0);
|
|||
|
|
GetDlgItem(IDC_BTN_HEATER_PWRON)->SetWindowText("ֹͣ");
|
|||
|
|
m_bHeaterOn = TRUE;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,HEATER_PWRON,1);
|
|||
|
|
GetDlgItem(IDC_BTN_HEATER_PWRON)->SetWindowText("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
m_bHeaterOn = FALSE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnBtnLightPwron
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>رյƹ<EFBFBD>
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnBtnLightPwron()
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!m_bLightOn)
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,LIGHT_PWRON,0);
|
|||
|
|
GetDlgItem(IDC_BTN_LIGHT_PWRON)->SetWindowText("<EFBFBD>ص<EFBFBD>");
|
|||
|
|
m_bLightOn = TRUE;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,LIGHT_PWRON,1);
|
|||
|
|
GetDlgItem(IDC_BTN_LIGHT_PWRON)->SetWindowText("<EFBFBD>ƹ<EFBFBD>");
|
|||
|
|
m_bLightOn = FALSE;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*************************************************
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: OnBtnWiperPwron
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ʼ/ֹͣ<EFBFBD><EFBFBD>ˢ
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
|
|||
|
|
**************************************************/
|
|||
|
|
void CRealPlayDlg::OnBtnWiperPwron()
|
|||
|
|
{
|
|||
|
|
if(m_lPlayHandle >= 0)
|
|||
|
|
{
|
|||
|
|
if(!m_bWiperOn)
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,WIPER_PWRON,0);
|
|||
|
|
GetDlgItem(IDC_BTN_WIPER_PWRON)->SetWindowText("<EFBFBD><EFBFBD>ͣ");
|
|||
|
|
m_bWiperOn = TRUE;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
NET_DVR_PTZControl(m_lPlayHandle,WIPER_PWRON,1);
|
|||
|
|
GetDlgItem(IDC_BTN_WIPER_PWRON)->SetWindowText("<EFBFBD><EFBFBD>ˢ");
|
|||
|
|
m_bWiperOn = FALSE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CRealPlayDlg::OnSelchangeComboPicType()
|
|||
|
|
{
|
|||
|
|
int iSel = m_coPicType.GetCurSel();
|
|||
|
|
if(0 == iSel) //bmp
|
|||
|
|
{
|
|||
|
|
GetDlgItem(IDC_STATIC_JPGPARA)->EnableWindow(FALSE);
|
|||
|
|
m_coJpgSize.EnableWindow(FALSE);
|
|||
|
|
m_coJpgQuality.EnableWindow(FALSE);
|
|||
|
|
}
|
|||
|
|
else if(1 == iSel) //jpg
|
|||
|
|
{
|
|||
|
|
GetDlgItem(IDC_STATIC_JPGPARA)->EnableWindow(TRUE);
|
|||
|
|
m_coJpgSize.EnableWindow(TRUE);
|
|||
|
|
m_coJpgQuality.EnableWindow(TRUE);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CRealPlayDlg::OnClose()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your message handler code here and/or call default
|
|||
|
|
if (m_bIsLogin)
|
|||
|
|
{
|
|||
|
|
StopPlay();
|
|||
|
|
NET_DVR_Logout_V30(m_struDeviceInfo.lLoginID);
|
|||
|
|
}
|
|||
|
|
CDialog::OnClose();
|
|||
|
|
}
|