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

📄 rightlocal.cpp

📁 实时监控
💻 CPP
字号:
// RightLocal.cpp : implementation file
//

#include "stdafx.h"
#include "..\dvrmanager.h"
#include "RightLocal.h"
#include "../utils/common.h"
#include "reg.h"
#include "msgbox.h"

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

/////////////////////////////////////////////////////////////////////////////
// CRightLocal dialog

LPCTSTR rvSnapshot = _T("SnapshotPath");
LPCTSTR rvRender = _T("RenderMethod");
LPCTSTR rkVWTitle = _T("Settings\\VWTitle");
LPCTSTR rvVideoLogo = _T("VideoLogo");
LPCTSTR rvStartupLogo = _T("StartupLogo");
LPCTSTR rvBackground = _T("Background");
LPCTSTR rvCloseOnExit = _T("CloseAllOnExit");
LPCTSTR rvCloseRemote = _T("CloseRemote");
LPCTSTR rvwindowpoll = _T("windowpoll");
LPCTSTR rvwindowpolltime = _T("windowpolltime");
LPCTSTR rvMem = _T("VideoMem");

//##ModelId=3F90BAB3002E
CRightLocal* CRightLocal::self = NULL;
//##ModelId=3F90BAB30067
CRightLocal* CRightLocal::the_one(){return self;}

void add_backslash(CString& str)
{
	if( str.Right(1) != _T("\\") )
		str+= _T("\\");
}
void remove_backslash(CString& str)
{
	if( str.Right(1) == _T("\\") )
		str.TrimRight(_T('\\'));
}

//##ModelId=3F90BAB3005D
CRightLocal::CRightLocal(CWnd* pParent /*=NULL*/)
	: baseclass(CRightLocal::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRightLocal)
	m_snappath = _T("");
	m_drawing = csYUY2;
	m_close_on_exit = FALSE;
	m_close_remote = FALSE;
	m_mem = -1;
	//}}AFX_DATA_INIT

	m_snappath = read_string(rkSettings, rvSnapshot);
	if( m_snappath.IsEmpty() )
		m_snappath.LoadString(IDS_SNAP_DEF_PATH);
	
	add_backslash(m_snappath);
	self = this;

	m_drawing = read_dword(rkSettings, rvRender, csYUY2);
	m_close_on_exit = read_dword(rkSettings, rvCloseOnExit, 1);
	m_close_remote = read_dword(rkSettings, rvCloseRemote, 1);
	m_window_poll=read_dword(rkSettings, rvwindowpoll, 0);
    m_polltime=read_dword(rkSettings, rvwindowpolltime, 0);
	m_mem = read_dword(rkSettings, rvMem, 0);
}

//##ModelId=3F90BAB302F2
void CRightLocal::DoDataExchange(CDataExchange* pDX)
{
	if( IsWindow(m_hWnd) )
	{
	baseclass::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRightLocal)
	DDX_Control(pDX, ID_10, m_10);
	DDX_Control(pDX, IDRD_VIDEO_MEM, m_mem1);
	DDX_Control(pDX, IDRD_VIDEO_MEM2, m_mem2);
	DDX_Control(pDX, IDC_WINDOWPOLLSET, m_window_pollset);
	DDX_Control(pDX, IDCK_WINDOW_POLL, m_window_pollck);
	DDX_Control(pDX, IDCK_CLOSE_REMOTE, m_ck_close_remote);
	DDX_Control(pDX, IDCK_CLOSE_ON_EXIT, m_ckclose);
	DDX_Control(pDX, IDBTN_BROWSE_SL, m_sl);
	DDX_Control(pDX, IDBTN_BROWSE_VL, m_vl);
	DDX_Control(pDX, IDBTN_BROWSE_BK, m_bbk);
	DDX_Control(pDX, IDC_POLLTIME,m_polltimectl);
	DDX_Control(pDX, ID_11, m_11);
	DDX_Control(pDX, ID_9, m_9);
	DDX_Control(pDX, ID_8, m_8);
	DDX_Control(pDX, ID_7, m_7);
	DDX_Control(pDX, ID_4, m_4);
	DDX_Control(pDX, ID_12, m_12);
	DDX_Control(pDX, ID_6, m_6);
	DDX_Control(pDX, ID_NOTE, m_note);
	DDX_Control(pDX, IDRD_VIDEO_RENDER8, m_rd8);
	DDX_Control(pDX, IDRD_VIDEO_RENDER7, m_rd7);
	DDX_Control(pDX, IDRD_VIDEO_RENDER6, m_rd6);
	DDX_Control(pDX, IDRD_VIDEO_RENDER5, m_rd5);
	DDX_Control(pDX, IDRD_VIDEO_RENDER4, m_rd4);
	DDX_Control(pDX, IDRD_VIDEO_RENDER3, m_rd3);
	DDX_Control(pDX, IDRD_VIDEO_RENDER, m_rd1);
	DDX_Control(pDX, ID_5, m_5);
	DDX_Control(pDX, ID_13, m_13);
	DDX_Control(pDX, ID_S, m_s);
	DDX_Control(pDX, ID_TITLE, m_title);
	DDX_Control(pDX, IDBTN_DEFAULT, m_btn_def);
	DDX_Control(pDX, IDED_SNAP_PATH, m_ed_snap_path);
	DDX_Control(pDX, IDBTN_BROWSE, m_btn_browse);
	DDX_Text(pDX, IDED_SNAP_PATH, m_snappath);
	DDX_Text(pDX, IDC_POLLTIME, m_polltime);
	DDX_Radio(pDX, IDRD_VIDEO_RENDER, m_drawing);
	DDX_Check(pDX, IDCK_CLOSE_ON_EXIT, m_close_on_exit);
	DDX_Check(pDX, IDCK_CLOSE_REMOTE, m_close_remote);
	DDX_Check(pDX, IDCK_WINDOW_POLL, m_window_poll);
	DDX_Radio(pDX, IDRD_VIDEO_MEM2, m_mem);
	//}}AFX_DATA_MAP
	}
	if( !pDX->m_bSaveAndValidate )
	{
		write_dword(rkSettings, rvRender, m_drawing);
	}
    m_polltimectl.EnableWindow(m_window_poll);
	//m_polltimectl.EnableWindow(false);
	//m_window_pollck.EnableWindow(false);
}


BEGIN_MESSAGE_MAP(CRightLocal, baseclass)
	//{{AFX_MSG_MAP(CRightLocal)
	ON_BN_CLICKED(IDBTN_BROWSE, OnBrowse)
	ON_BN_CLICKED(IDBTN_DEFAULT, OnDefault)
	ON_EN_CHANGE(IDED_SNAP_PATH, OnChangeSnapPath)
	ON_BN_CLICKED(IDBTN_BROWSE_VL, OnBrowseVl)
	ON_BN_CLICKED(IDBTN_BROWSE_SL, OnBrowseSl)
	ON_BN_CLICKED(IDBTN_BROWSE_BK, OnBrowseBk)
	ON_BN_CLICKED(IDCK_CLOSE_ON_EXIT, OnCloseOnExit)
	ON_BN_CLICKED(IDCK_CLOSE_REMOTE, OnCloseRemote)
	ON_BN_CLICKED(IDRD_VIDEO_MEM, OnVideoMem)
	ON_BN_CLICKED(IDRD_VIDEO_MEM2, OnVideoMem2)
	ON_BN_CLICKED(IDC_WINDOWPOLLSET, onwindow_pollset)
	ON_BN_CLICKED(IDCK_WINDOW_POLL, onwindow_poll)
	//}}AFX_MSG_MAP
	ON_COMMAND_RANGE(IDRD_VIDEO_RENDER, IDRD_VIDEO_RENDER8, on_renderer)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRightLocal message handlers

//##ModelId=3F90BAB30310
BOOL CRightLocal::OnInitDialog() 
{
	baseclass::OnInitDialog();
	
	init_title(m_title);
	init_label(m_note);

	init_label(m_4);
	init_label(m_7);
	init_label(m_8);
	init_label(m_9);
	init_label(m_11);

	m_10.set_cl(RGB(255,255,255));
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

#include "../utils/FolderDlg.h"
//##ModelId=3F90BAB3031A
void CRightLocal::onwindow_pollset()
{
	UpdateData();
	if(m_polltime<10) 
	{
		AfxMessageBox(IDS_TELL_VALUE_LOW);
		m_polltime=30;
		UpdateData(false);
		return;
	}
	write_dword(rkSettings, rvwindowpoll, m_window_poll);
	write_dword(rkSettings, rvwindowpolltime, m_polltime);
	write_log(IDS_WINDOW_POLL_SET);	
    
}
void CRightLocal::onwindow_poll()
{
	UpdateData();
}
void CRightLocal::OnBrowse() 
{
	UpdateData();

	CString str;
	str.LoadString(IDS_SNAP_PATH);

	CFolderDialog dlg(str, m_snappath, this);
	if( IDOK != dlg.DoModal() )
		return;

	m_snappath = dlg.GetFolderPath();
	UpdateData(FALSE);
	OnChangeSnapPath();

	CString m_logfile;
    m_logfile.Format(IDS_SNAP_PHOTONE_DIRECTORY,m_snappath);
    write_log_file(m_logfile);
}

//##ModelId=3F90BAB30324
void CRightLocal::OnDefault() 
{
	if( IDOK != msgbox(IDS_SET_DEFAULT, IDS_SET_DEFAULT_TITLE, MB_OKCANCEL | MB_ICONQUESTION, this ) )
		return;

	set_default();
	write_log(IDS_DEFAULT_SETTING);
	UpdateData(FALSE);	// save settings
}

//##ModelId=3F90BAB30071
void CRightLocal::set_default()
{
	m_snappath.LoadString(IDS_SNAP_DEF_PATH);
	m_drawing = 0;

	write_string(rkSettings, rvSnapshot, m_snappath);
	write_dword(rkSettings, rvRender, m_drawing);
	write_string(rkSettings, rvBackground, _T("back.jpg"));
	write_string(rkSettings, rvStartupLogo, _T("splash.jpg"));
	write_string(rkSettings, rvVideoLogo, _T("video.jpg"));
	write_dword(rkSettings, rvwindowpoll, FALSE);
	write_dword(rkSettings, rvwindowpolltime, 30);
	write_dword(rkSettings, rvMem, TRUE);	// TRUE:默认视频内存
	
	for( int i=0; i<25; i++ )
	{
		CString k;
		CString str;
		str.Format(IDS_CHNL_FMT, i+1);
		k.Format(_T("%02d"), i+1);
		write_string(rkVWTitle, k, str);
	}
}

//##ModelId=3F90BAB3032E
void CRightLocal::OnChangeSnapPath() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the baseclass::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	UpdateData();
	add_backslash(m_snappath);
	write_string(rkSettings, rvSnapshot, m_snappath);
	UpdateData(FALSE);
}

//##ModelId=3F90BAB30376
void CRightLocal::on_renderer(UINT x)
{
	if( !confirm_change() )
		return;
    write_log(IDS_VIDEO_SHOW_WAY);
	UpdateData();
	UpdateData(FALSE);
}

void CRightLocal::write_log(UINT m_unit)
{
  CString m_logfile;
  m_logfile.Format(m_unit);
  write_log_file(m_logfile);
}
//##ModelId=3F90BAB3003F
bool CRightLocal::browse_image(LPCTSTR regkey)
{
	CString str;
	CFileDialog fd(TRUE, NULL, NULL, OFN_HIDEREADONLY,
		IDString(IDS_IMG_FMT), this);

	if( IDOK != fd.DoModal() )
		return false;

	write_string(rkSettings, regkey, fd.GetPathName());
	HRESULT result=msgbox(IDS_SETTINGS_CHANGED, IDS_INFO, MB_OK | MB_ICONINFORMATION, this);
    if(result==IDOK) write_log(IDS_BACKGROUD);
	return true;
}

/*
 *	选择视频窗口的图片
 */
//##ModelId=3F90BAB30339
void CRightLocal::OnBrowseVl() 
{
	browse_image(rvVideoLogo);
	// TODO:
	// 更新Video logo
}

/*
 *	选择开始图片
 */
//##ModelId=3F90BAB30342
void CRightLocal::OnBrowseSl() 
{
	browse_image(rvStartupLogo);
	// TODO:
	// 更新Video logo
}

/*
 *	选择背景图
 */
//##ModelId=3F90BAB3034C
void CRightLocal::OnBrowseBk() 
{
	browse_image(rvBackground);
	// TODO:
	// 更新Video logo
}

//##ModelId=3F90BAB30356
void CRightLocal::OnCloseOnExit() 
{
	UpdateData();
	write_dword(rkSettings, rvCloseOnExit, m_close_on_exit);
	write_log(IDS_CLOSE_ALL_WINDOW_QUIT);
}

//##ModelId=3F90BAB30360
void CRightLocal::OnCloseRemote() 
{
	UpdateData();
	write_dword(rkSettings, rvCloseRemote, m_close_remote);
	write_log(IDS_CLOSE_DVR_VIDEO);
}

//##ModelId=3F90BAB3004A
void CRightLocal::on_join()
{
}

//##ModelId=3F90BAB30054
void CRightLocal::on_leave()
{

}

//##ModelId=3F90BAB3036A
void CRightLocal::OnVideoMem() 
{
	if( !confirm_change() )
		return;
    
	UpdateData();
	write_dword(rkSettings, rvMem, m_mem);
	write_log(IDS_VIDEO_SHOW_WAY);
}

//##ModelId=3F90BAB30374
void CRightLocal::OnVideoMem2() 
{
	if( !confirm_change() )
		return;

	UpdateData();
	write_dword(rkSettings, rvMem, m_mem);
	write_log(IDS_VIDEO_SHOW_WAY);
}

bool CRightLocal::confirm_change()
{
	if( IDOK != msgbox(IDS_CONFIRM_CHANGE_RENDERER, IDS_CHANGE_RENDERER_TITLE, MB_OKCANCEL|MB_ICONWARNING, this) )
	{
		UpdateData(FALSE);
		return false;
	}

	msgbox(IDS_PROMPT_RESTART, IDS_INFO, MB_OK|MB_ICONINFORMATION, this);

	return true;
}

⌨️ 快捷键说明

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