⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playback.cpp

📁 SDK DVR/DVS HIKVISION
💻 CPP
字号:
// PlayBack.cpp : implementation file
//

#include "stdafx.h"
#include "newclient.h"
#include "PlayBack.h"

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

extern CRect g_rcWindow;
extern DWORD g_dwOldDeviceNum;
extern DWORD g_dwScreenWidth;
extern DWORD g_dwScreenHeight;

/////////////////////////////////////////////////////////////////////////////
// CPlayBack dialog


CPlayBack::CPlayBack(CWnd* pParent /*=NULL*/)
	: CDialog(CPlayBack::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPlayBack)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CPlayBack::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPlayBack)
	DDX_Control(pDX, IDC_TABPLAYBACK, m_PlayTab);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPlayBack, CDialog)
	//{{AFX_MSG_MAP(CPlayBack)
	ON_NOTIFY(TCN_SELCHANGE, IDC_TABPLAYBACK, OnSelchangeTabplayback)
	ON_NOTIFY(TCN_SELCHANGING, IDC_TABPLAYBACK, OnSelchangingTabplayback)
	ON_BN_CLICKED(IDEXIT, OnExit)
	ON_WM_MOVE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPlayBack message handlers
BOOL CPlayBack::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_lSelTab = 0;
	m_PlayTab.InsertItem(0,"Remote File");
	m_RemotePlayDlg.Create(IDD_SUBDLG_REMOTEFILE,&m_PlayTab);
	m_RemotePlayDlg.ShowWindow(SW_SHOW);
	
	m_PlayTab.InsertItem(1,"Local File");
	m_LocalPlayDlg.Create(IDD_SUBDLG_LOCALFILE,&m_PlayTab);
	m_LocalPlayDlg.ShowWindow(SW_HIDE);
	
	m_PlayTab.InsertItem(2,"Playback by Time");
	m_RemoteTimePlayDlg.Create(IDD_SUBDLG_REMOTETIME, &m_PlayTab);
	m_RemoteTimePlayDlg.ShowWindow(SW_HIDE);
	
	HWND hParentWnd[2]={m_hWnd,m_PlayTab.m_hWnd};
	m_LocalPlayDlg.SetParentWnd(hParentWnd, 2);
	m_RemotePlayDlg.SetParentWnd(hParentWnd, 2);
	m_RemoteTimePlayDlg.SetParentWnd(hParentWnd, 2);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CPlayBack::OnSelchangeTabplayback(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	m_lSelTab = m_PlayTab.GetCurSel();
	switch(m_lSelTab)
	{
	case 0:
		m_RemotePlayDlg.ShowWindow(SW_SHOW);
		m_LocalPlayDlg.ShowWindow(SW_HIDE);
		m_RemoteTimePlayDlg.ShowWindow(SW_HIDE);
		break;
	case 1:
		m_RemotePlayDlg.ShowWindow(SW_HIDE);
		m_LocalPlayDlg.ShowWindow(SW_SHOW);
		m_RemoteTimePlayDlg.ShowWindow(SW_HIDE);
		break;
	case 2:
		m_RemotePlayDlg.ShowWindow(SW_HIDE);
		m_LocalPlayDlg.ShowWindow(SW_HIDE);
		m_RemoteTimePlayDlg.ShowWindow(SW_SHOW);
		break;
	default:
		break;
	}
	*pResult = 0;
}

void CPlayBack::OnSelchangingTabplayback(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	switch(m_PlayTab.GetCurSel())
	{
	case 0:
		m_RemotePlayDlg.ShowWindow(SW_SHOW);
		m_LocalPlayDlg.ShowWindow(SW_HIDE);
		m_RemoteTimePlayDlg.ShowWindow(SW_HIDE);
		break;
	case 1:
		m_RemotePlayDlg.ShowWindow(SW_HIDE);
		m_LocalPlayDlg.ShowWindow(SW_SHOW);
		m_RemoteTimePlayDlg.ShowWindow(SW_HIDE);
		break;
	case 2:
		m_RemotePlayDlg.ShowWindow(SW_HIDE);
		m_LocalPlayDlg.ShowWindow(SW_HIDE);
		m_RemoteTimePlayDlg.ShowWindow(SW_SHOW);
		break;
	default:
		break;
	}
	*pResult = 0;
}



void CPlayBack::OnExit() 
{
	// TODO: Add your control notification handler code here
	m_RemotePlayDlg.F_Exit();
	m_LocalPlayDlg.F_Stop();
	m_RemoteTimePlayDlg.F_StopPlay();
	CDialog::OnCancel();
}

void CPlayBack::OnCancel() 
{
	// TODO: Add extra cleanup here
	
//	CDialog::OnCancel();
}

void CPlayBack::OnOK() 
{
	// TODO: Add extra cleanup here
	
	//	CDialog::OnOK();
}

void CPlayBack::OnMove(int x, int y) 
{
	CDialog::OnMove(x, y);
	
	// TODO: Add your message handler code here
	DWORD dwNewDeviceNum;
#if (WINVER > 0x0400)
	DWORD nVal;
	int temp;
#endif

	switch(m_lSelTab)
	{
	case 0://remote file
		if (m_RemotePlayDlg.m_nPlayHandle == -1)
		{
			return;		
		}	
		GetWindowRect(&g_rcWindow);
		if(g_rcWindow.left < 0)
			return;
		if( ((DWORD)g_rcWindow.right + (DWORD)g_rcWindow.left > 2 * g_dwScreenWidth )||((DWORD)g_rcWindow.top + (DWORD)g_rcWindow.bottom > 2 * g_dwScreenHeight))
		{
			dwNewDeviceNum = 1;
		}
		else
		{
			dwNewDeviceNum = 0;	
		}
		if(dwNewDeviceNum != g_dwOldDeviceNum)
		{
#if (WINVER > 0x0400)
			nVal = PlayM4_GetDDrawDeviceTotalNums();
			//nVal = NET_DVR_GetDDrawDeviceTotalNums();
			if (m_RemotePlayDlg.m_nPlayHandle == -1)
			{
				break;				
			}
			temp = NET_DVR_GetPlayBackPlayerIndex(m_RemotePlayDlg.m_nPlayHandle);
			TRACE("temp is %d\n", temp);
			//NET_DVR_SetDDrawDevice(temp, dwNewDeviceNum + 1);
			PlayM4_SetDDrawDevice(temp, dwNewDeviceNum + 1);
#endif
			g_dwOldDeviceNum = dwNewDeviceNum;		
		}
		break;
	case 1://local
		GetWindowRect(&g_rcWindow);
		if(g_rcWindow.left < 0)
			return;
		if( ((DWORD)g_rcWindow.right + (DWORD)g_rcWindow.left > 2 * g_dwScreenWidth )||((DWORD)g_rcWindow.top + (DWORD)g_rcWindow.bottom > 2 * g_dwScreenHeight))
		{
			dwNewDeviceNum = 1;
		}
		else
		{
			dwNewDeviceNum = 0;	
		}
		if(dwNewDeviceNum != g_dwOldDeviceNum)
		{
#if (WINVER > 0x0400)
			nVal = PlayM4_GetDDrawDeviceTotalNums();
			TRACE("nVal is %d\n", nVal);
			PlayM4_SetDDrawDevice(99, dwNewDeviceNum + 1);	
#endif
			g_dwOldDeviceNum = dwNewDeviceNum;		
		}
		break;
	case 2://play back by time
		if (m_RemoteTimePlayDlg.lHandle == -1)
		{
			return;
		}
		GetWindowRect(&g_rcWindow);
		if(g_rcWindow.left < 0)
			return;
		if( ((DWORD)g_rcWindow.right + (DWORD)g_rcWindow.left > 2 * g_dwScreenWidth )||((DWORD)g_rcWindow.top + (DWORD)g_rcWindow.bottom > 2 * g_dwScreenHeight))
		{
			dwNewDeviceNum = 1;
		}
		else
		{
			dwNewDeviceNum = 0;	
		}
		if(dwNewDeviceNum != g_dwOldDeviceNum)
		{
#if (WINVER > 0x0400)
			//nVal = NET_DVR_GetDDrawDeviceTotalNums();
			nVal = PlayM4_GetDDrawDeviceTotalNums();
			if (m_RemoteTimePlayDlg.lHandle == -1)
			{
				break;
			}
			temp = NET_DVR_GetPlayBackPlayerIndex(m_RemoteTimePlayDlg.lHandle);
			TRACE("temp is %d\n", temp);
			
			//NET_DVR_SetDDrawDevice(temp, dwNewDeviceNum + 1);			
			PlayM4_SetDDrawDevice(temp, dwNewDeviceNum + 1);			
#endif
			g_dwOldDeviceNum = dwNewDeviceNum;		
		}
		break;
	default:
		break;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -