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

📄 remotetimeplay.cpp

📁 SDK DVR/DVS HIKVISION
💻 CPP
📖 第 1 页 / 共 2 页
字号:
BOOL CRemoteTimePlay::IsInWnd(CPoint point)
{
	CRect rc;
	GetDlgItem(IDC_WND)->GetWindowRect(&rc);
	ScreenToClient(&rc);
	if(PtInRect(&rc,point))
		return TRUE;
	else
		return FALSE;
}

void CRemoteTimePlay::F_ShowFullScreen()
{
	F_EnableFlashWnd(FALSE);

	CRect rc,rcClient;
	::GetWindowRect(m_hPareDlgWnd,m_rcPareDlg);

	::GetWindowRect(m_hPareTabWnd,m_rcPareTab);
	::ScreenToClient(m_hPareDlgWnd,(POINT*)(&m_rcPareTab));
	::ScreenToClient(m_hPareDlgWnd,(POINT*)(&m_rcPareTab)+1);

	::GetWindowRect(m_hWnd,m_rcParent);
	::ScreenToClient(m_hPareTabWnd,(POINT*)(&m_rcParent));
	::ScreenToClient(m_hPareTabWnd,(POINT*)(&m_rcParent)+1);

	
	::SetWindowPos(m_hPareDlgWnd,NULL,m_rcScreen.left-SCREEN_EDGE,m_rcScreen.top-SCREEN_EDGE,m_rcScreen.Width()+2*SCREEN_EDGE,m_rcScreen.Height()+2*SCREEN_EDGE,SWP_SHOWWINDOW);

	::GetClientRect(m_hPareDlgWnd,rc);
	::SetWindowPos(m_hPareTabWnd,NULL,rc.left,rc.top,rc.Width(),rc.Height(),SWP_SHOWWINDOW);

	::GetClientRect(m_hPareTabWnd,rc);
	::SetWindowPos(m_hWnd,NULL,rc.left,rc.top,rc.Width(),rc.Height(),SWP_SHOWWINDOW);
	
	GetDlgItem(IDC_WND)->GetClientRect(rcClient);
	GetDlgItem(IDC_WND)->GetWindowRect(rc);
	int iEdge=(rc.Width()-rcClient.Width())/2;
	rc=m_rcScreen;
	rc.left-=iEdge;
	rc.right+=iEdge;
	rc.top-=iEdge;
	rc.bottom+=iEdge;
	this->ScreenToClient(rc);
	::SetWindowPos(GetDlgItem(IDC_WND)->m_hWnd,NULL,rc.left,rc.top,rc.Width(),rc.Height(),SWP_SHOWWINDOW);
	Invalidate(FALSE);
	UpdateWindow();
}

void CRemoteTimePlay::F_EnableFlashWnd(BOOL bEnable)
{
	if(bEnable)
	{
		//THE same to multiplay
		GetDlgItem(IDC_COMBOSERVER)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_COMBOPORT)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_DATESTART)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_DATESTOP)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_TIMESTOP)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_TIMESTART)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_PLAY_TIME)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_STOP)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_SLOW)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_FAST)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_CAPPIC)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_SOUND)->ModifyStyle(0,WS_VISIBLE,0);
		GetDlgItem(IDC_VOLUME_SLIDER)->ModifyStyle(0,WS_VISIBLE,0);
	}
	else
	{
		//THE same to multiplay
		GetDlgItem(IDC_COMBOSERVER)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_COMBOPORT)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_DATESTART)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_DATESTOP)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_TIMESTOP)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_TIMESTART)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_PLAY_TIME)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_STOP)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_SLOW)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_FAST)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_CAPPIC)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_SOUND)->ModifyStyle(WS_VISIBLE,0,0);
		GetDlgItem(IDC_VOLUME_SLIDER)->ModifyStyle(WS_VISIBLE,0,0);
	}
}

void CRemoteTimePlay::F_InitUI()
{
	CButton *pButton;
	
	pButton = (CButton *)GetDlgItem(IDC_PLAY_TIME);
	pButton->SetIcon(m_hPlayEnableIcon);
	pButton->EnableWindow(TRUE);
	
	pButton = (CButton *)GetDlgItem(IDC_STOP);
	pButton->SetIcon(m_hStopDisableIcon);
	pButton->EnableWindow(FALSE);
	
	pButton = (CButton *)GetDlgItem(IDC_FAST);
	pButton->SetIcon(m_hFastDisableIcon);
	pButton->EnableWindow(FALSE);
	
	pButton = (CButton *)GetDlgItem(IDC_SLOW);
	pButton->SetIcon(m_hSlowDisableIcon);
	pButton->EnableWindow(FALSE);
	
	pButton = (CButton *)GetDlgItem(IDC_CAPPIC);
	pButton->SetIcon(m_hCaptureIcon);
	pButton->EnableWindow(FALSE);
	
	pButton = (CButton *)GetDlgItem(IDC_SOUND);
	pButton->SetIcon(m_hSoundStopIcon);
	pButton->EnableWindow(FALSE);
}

void CRemoteTimePlay::F_SetPlayState()
{
	m_ctlVolume.EnableWindow(TRUE);
	
	CButton *pButton;
	
	pButton = (CButton *)GetDlgItem(IDC_PLAY_TIME);
	pButton->SetIcon(m_hPauseEnableIcon);
	pButton->EnableWindow(TRUE);
	
	pButton = (CButton *)GetDlgItem(IDC_STOP);
	pButton->SetIcon(m_hStopEnableIcon);
	pButton->EnableWindow(TRUE);
	
	pButton = (CButton *)GetDlgItem(IDC_FAST);
	pButton->SetIcon(m_hFastEnableIcon);
	pButton->EnableWindow(TRUE);
	
	pButton = (CButton *)GetDlgItem(IDC_SLOW);
	pButton->SetIcon(m_hSlowEnableIcon);
	pButton->EnableWindow(TRUE);
	
	pButton = (CButton *)GetDlgItem(IDC_CAPPIC);
	pButton->SetIcon(m_hCaptureIcon);
	pButton->EnableWindow(TRUE);
	
	pButton = (CButton *)GetDlgItem(IDC_SOUND);
	if(m_bSound)
		pButton->SetIcon(m_hSoundStartIcon);
	else
		pButton->SetIcon(m_hSoundStopIcon);
	pButton->EnableWindow(TRUE);
}

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

void CRemoteTimePlay::OnSelchangeComboserver() 
{
	// TODO: Add your control notification handler code here
	int iSelServer = m_ServerName.GetCurSel() - 1;
	if(iSelServer < 0)
		return;
	ServerID = serverinfo[iSelServer].m_lServerID;
	m_lStartChan = serverinfo[iSelServer].m_lStartChannel;
	int m_iChanNum = serverinfo[iSelServer].m_iServerChannelNumber;
	m_ChannelName.ResetContent();
	CString sTemp;
	for(int i=0; i<m_iChanNum; i++)
	{
		sTemp.Format("%d", i+m_lStartChan);
		m_ChannelName.AddString(sTemp);
	}
	iChannel = 0;
	m_ChannelName.SetCurSel(iChannel);
}

void CRemoteTimePlay::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	DWORD nPos;
	if(nIDEvent == PLAYBYTIME_TIMER)
	{
		if(lHandle >= 0)
		{
			NET_DVR_PlayBackControl(lHandle, NET_DVR_PLAYGETPOS, 0, &nPos);
			if(nPos > 100)		//Playback or download exception
			{
				F_StopPlay();
				AfxMessageBox("Playback exception!");
			}
			if(nPos == 100)
			{				
				F_StopPlay();
				AfxMessageBox("Playback completed!");
			}		
		}
		
	}
	else if(nIDEvent == DOWNBYTIME_TIMER)
	{
		if(m_bDown)
		{
			NET_DVR_PlayBackControl(m_lLoadHandle, NET_DVR_PLAYGETPOS, 0, &nPos);
			if(nPos > 100)
			{
				m_bDown=FALSE;				
				NET_DVR_StopGetFile(m_lLoadHandle);				
				GetDlgItem(IDC_BUTTONDOWNLOAD)->SetWindowText("Download");
				AfxMessageBox("Download exception!");
			}
			if(nPos == 100)
			{
				m_bDown=FALSE;				
				NET_DVR_StopGetFile(m_lLoadHandle);
				GetDlgItem(IDC_BUTTONDOWNLOAD)->SetWindowText("Download");
				AfxMessageBox("Download completed!");
			}		
		}	
	}	
	CDialog::OnTimer(nIDEvent);
}

void CRemoteTimePlay::OnButtondownload() 
{
	// TODO: Add your control notification handler code here
	CString csFileName;
	CString csStartTime, csStopTime;
	CString csTemp,csDir;
	char nFileName[256];
	
	UpdateData(TRUE);
	if(!m_bDown)
	{
		if(m_ServerName.GetCurSel() == 0)
		{
			AfxMessageBox("Please select DVR!");
			return;
		}
		int iSelServer = m_ServerName.GetCurSel() - 1;
		iChannel = m_ChannelName.GetCurSel()+m_lStartChan;
	
		csStartTime.Format("%04d%02d%02d%02d%02d%02d",m_ctDateStart.GetYear(),m_ctDateStart.GetMonth(), m_ctDateStart.GetDay(), m_ctTimeStart.GetHour(), m_ctTimeStart.GetMinute(), m_ctTimeStart.GetSecond());
		csStopTime.Format("%04d%02d%02d%02d%02d%02d",m_ctDateStop.GetYear(),m_ctDateStop.GetMonth(), m_ctDateStop.GetDay(), m_ctTimeStop.GetHour(), m_ctTimeStop.GetMinute(), m_ctTimeStop.GetSecond());
		
		csDir.Format("%s\\",ClientParam.m_csDownLoadPath);
		sprintf(nFileName,"%s%s_%02d_D%s_%sTime.mp4",csDir,serverinfo[iSelServer].m_csServerIP, iChannel,csStartTime,csStopTime);
		TRACE("Download file name: %s \n", nFileName);
		NET_DVR_TIME StartTime,StopTime;
		UpdateData(TRUE);
		
		StartTime.dwYear = m_ctDateStart.GetYear();
		StartTime.dwMonth = m_ctDateStart.GetMonth();
		StartTime.dwDay = m_ctDateStart.GetDay();
		StartTime.dwHour = m_ctTimeStart.GetHour();
		StartTime.dwMinute = m_ctTimeStart.GetMinute();
		StartTime.dwSecond = m_ctTimeStart.GetSecond();
		StopTime.dwYear = m_ctDateStop.GetYear();
		StopTime.dwMonth = m_ctDateStop.GetMonth();
		StopTime.dwDay = m_ctDateStop.GetDay();
		StopTime.dwHour = m_ctTimeStop.GetHour();
		StopTime.dwMinute = m_ctTimeStop.GetMinute();
		StopTime.dwSecond = m_ctTimeStop.GetSecond();

		m_lLoadHandle = NET_DVR_GetFileByTime(ServerID,iChannel, &StartTime, &StopTime, nFileName);
		if(m_lLoadHandle >= 0)
		{
			NET_DVR_PlayBackControl(m_lLoadHandle, NET_DVR_PLAYSTART, 0, NULL);
			GetDlgItem(IDC_BUTTONDOWNLOAD)->SetWindowText("Stop Download");
			m_bDown=TRUE;
			SetTimer(DOWNBYTIME_TIMER,1000,NULL);
		}
		else
		{
			AfxMessageBox("Download failed!");
			CString sTemp;
			sTemp.Format("ERROR: NET_DVR_GetFileByTime = %d",NET_DVR_GetLastError());
			TRACE(sTemp);
			return;
		}
	}
	else 
	{
		NET_DVR_StopGetFile(m_lLoadHandle);
		m_bDown=FALSE;
		GetDlgItem(IDC_BUTTONDOWNLOAD)->SetWindowText("Download");
		KillTimer(DOWNBYTIME_TIMER);
		Invalidate(TRUE);
	}
	UpdateData(FALSE);
}


void CRemoteTimePlay::OnButtonloadsave() 
{
	// TODO: Add your control notification handler code here
	// 2005-01-04
	if(!m_bTimeSave)
	{
		static char szFilter[]="All File(*.*)|*.*||";
		char m_sFile[256] = "c:\\SavefileByTime.mp4";
		CString csFile;
		CFileDialog dlg(FALSE,"*.mp4","SavefileByTime.mp4",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
			szFilter);
		if(dlg.DoModal()==IDOK)
		{
			csFile = dlg.GetPathName();
			UpdateData(FALSE);
			sprintf(m_sFile, "%s", csFile);
			
			if(NET_DVR_PlayBackSaveData(lHandle, m_sFile))
			{
				m_bTimeSave = TRUE;
				GetDlgItem(IDC_BUTTONLOADSAVE)->SetWindowText("Stop Save");
			}
		}
	}
	else
	{
		NET_DVR_StopPlayBackSave(lHandle);
		m_bTimeSave = FALSE;
		GetDlgItem(IDC_BUTTONLOADSAVE)->SetWindowText("Save");
	}
}
//2005-01-04
//DEL void CRemoteTimePlay::OnButplay() 
//DEL {
//DEL 	// TODO: Add your control notification handler code here
//DEL 	NET_DVR_TIME StartTime,StopTime;
//DEL 	UpdateData(TRUE);
//DEL 
//DEL 	if(m_ServerName.GetCurSel() == 0)
//DEL 	{
//DEL 		AfxMessageBox("Please select DVR!");
//DEL 		return;
//DEL 	}
//DEL 		
//DEL 	iChannel = m_ChannelName.GetCurSel()+m_lStartChan;
//DEL 	StartTime.dwYear = m_ctDateStart.GetYear();
//DEL 	StartTime.dwMonth = m_ctDateStart.GetMonth();
//DEL 	StartTime.dwDay = m_ctDateStart.GetDay();
//DEL 	StartTime.dwHour = m_ctTimeStart.GetHour();
//DEL 	StartTime.dwMinute = m_ctTimeStart.GetMinute();
//DEL 	StartTime.dwSecond = m_ctTimeStart.GetSecond();
//DEL 	StopTime.dwYear = m_ctDateStop.GetYear();
//DEL 	StopTime.dwMonth = m_ctDateStop.GetMonth();
//DEL 	StopTime.dwDay = m_ctDateStop.GetDay();
//DEL 	StopTime.dwHour = m_ctTimeStop.GetHour();
//DEL 	StopTime.dwMinute = m_ctTimeStop.GetMinute();
//DEL 	StopTime.dwSecond = m_ctTimeStop.GetSecond();
//DEL //	if(NET_DVR_PlayBackByTimeLocDisplay(ServerID, iChannel, &StartTime, &StopTime))
//DEL 	{
//DEL 		TRACE("Remote control DVR local playback!");
//DEL 	}
//DEL }

//DEL void CRemoteTimePlay::OnButstop() 
//DEL {
//DEL 	// TODO: Add your control notification handler code here
//DEL //	if(NET_DVR_StopLocDisplayPlay(ServerID))
//DEL 	{
//DEL 		TRACE("Stop remote control DVR local playback!");
//DEL 	}
//DEL }

void CRemoteTimePlay::OnGotostart() 
{
	// TODO: Add your control notification handler code here
	
}

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

⌨️ 快捷键说明

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