📄 rightlocal.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 + -