📄 remotechannelconfig.cpp
字号:
m_piccfg[m_nCopyChanNum].strHideAlarm.dwEnableHideAlarm = m_bHideAlarm;
}
m_piccfg[m_nCopyChanNum].dwShowChanName = m_bChanname;
m_piccfg[m_nCopyChanNum].wShowNameTopLeftX = m_channame_x;
m_piccfg[m_nCopyChanNum].wShowNameTopLeftY = m_channame_y;
m_piccfg[m_nCopyChanNum].dwShowOsd = m_bOsd;
m_piccfg[m_nCopyChanNum].wOSDTopLeftX = m_osd_x;
m_piccfg[m_nCopyChanNum].wOSDTopLeftY = m_osd_y;
m_piccfg[m_nCopyChanNum].byDispWeek = m_bDispWeek;
m_piccfg[m_nCopyChanNum].byOSDAttrib = m_OsdAttrib.GetCurSel()+1;
m_piccfg[m_nCopyChanNum].byOSDType = m_OsdType.GetCurSel();
m_piccfg[m_nCopyChanNum].dwShowLogo = m_bLogo;
m_piccfg[m_nCopyChanNum].wLOGOTopLeftX = m_logo_x;
m_piccfg[m_nCopyChanNum].wLOGOTopLeftY = m_logo_y;
m_piccfg[m_nCopyChanNum].byLogoAttrib = m_LogoAttrib.GetCurSel()+1;
//复制视频参数
m_piccfg[m_nCopyChanNum].byBrightness = m_piccfg[m_nChanSel].byBrightness;
m_piccfg[m_nCopyChanNum].byContrast = m_piccfg[m_nChanSel].byContrast;
m_piccfg[m_nCopyChanNum].byHue = m_piccfg[m_nChanSel].byHue;
m_piccfg[m_nCopyChanNum].bySaturation = m_piccfg[m_nChanSel].bySaturation;
bSetChannelPara[m_nCopyChanNum] = TRUE;
}
}
void CRemoteChannelConfig::OnButmotion()
{
// TODO: Add your control notification handler code here
CRemoteDetectConfig DetectCfgDlg;
lpMotionDetect = &(m_piccfg[m_nChanSel].struMotion);
DetectCfgDlg.m_iChannel = m_nChanNum;
DetectCfgDlg.m_lServerID = m_lServerID;
DetectCfgDlg.m_dwAlarmOutNum = m_dwAlarmOutNum;
DetectCfgDlg.m_iChannelnumber = m_iChannelnumber;
if(DetectCfgDlg.DoModal() == IDOK)
bSetChannelPara[m_nChanSel] = TRUE;
}
void CRemoteChannelConfig::OnButrecord()
{
// TODO: Add your control notification handler code here
CRemoteRecordPlanConfig dlg;
dlg.serverrecordplan = &(m_record[m_nChanSel]);
if(dlg.DoModal() == IDOK)
bSetChannelPara[m_nChanSel] = TRUE;
}
void CRemoteChannelConfig::OnChkrecord()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bRecord)
GetDlgItem(IDC_BUTRECORD)->EnableWindow(TRUE);
else
GetDlgItem(IDC_BUTRECORD)->EnableWindow(FALSE);
}
void CRemoteChannelConfig::OnButhide()
{
// TODO: Add your control notification handler code here
CRemoteHideConfig Dlg;
Dlg.m_wHideX = m_piccfg[m_nChanSel].wHideAreaTopLeftX;
Dlg.m_wHideY = m_piccfg[m_nChanSel].wHideAreaTopLeftY;
Dlg.m_wHideWidth = m_piccfg[m_nChanSel].wHideAreaWidth;
Dlg.m_wHideHeight = m_piccfg[m_nChanSel].wHideAreaHeight;
Dlg.m_iChannel = m_nChanNum;
Dlg.m_lServerID = m_lServerID;
if(Dlg.DoModal() == IDOK)
{
m_piccfg[m_nChanSel].wHideAreaTopLeftX = Dlg.m_wHideX;
m_piccfg[m_nChanSel].wHideAreaTopLeftY = Dlg.m_wHideY;
m_piccfg[m_nChanSel].wHideAreaWidth = Dlg.m_wHideWidth;
m_piccfg[m_nChanSel].wHideAreaHeight = Dlg.m_wHideHeight;
bSetChannelPara[m_nChanSel] = TRUE;
}
}
void CRemoteChannelConfig::OnChkhidearea()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bHide)
GetDlgItem(IDC_BUTHIDE)->EnableWindow(TRUE);
else
GetDlgItem(IDC_BUTHIDE)->EnableWindow(FALSE);
}
void CRemoteChannelConfig::OnChkosd()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
EnableOsd(m_bOsd);
}
void CRemoteChannelConfig::OnChklogo()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
EnableLogo(m_bLogo);
}
void CRemoteChannelConfig::OnChkchanname()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
EnableChanname(m_bChanname);
}
void CRemoteChannelConfig::EnableOsd(BOOL bEnable)
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_OSD_X)->EnableWindow(bEnable);
GetDlgItem(IDC_OSD_Y)->EnableWindow(bEnable);
GetDlgItem(IDC_OSDATTRIB)->EnableWindow(bEnable);
GetDlgItem(IDC_OSDTYPE)->EnableWindow(bEnable);
GetDlgItem(IDC_CHKDISPWEEK)->EnableWindow(bEnable);
}
void CRemoteChannelConfig::EnableLogo(BOOL bEnable)
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_LOGO_X)->EnableWindow(bEnable);
GetDlgItem(IDC_LOGO_Y)->EnableWindow(bEnable);
GetDlgItem(IDC_LOGOATTRIB)->EnableWindow(bEnable);
}
void CRemoteChannelConfig::EnableChanname(BOOL bEnable)
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_CHANNAME_X)->EnableWindow(bEnable);
GetDlgItem(IDC_CHANNAME_Y)->EnableWindow(bEnable);
}
void CRemoteChannelConfig::OnSelchangeComchan()
{
// TODO: Add your control notification handler code here
char cTemp[100];
m_nChanSel = m_ChannelCtrl.GetCurSel();
m_nChanNum = m_nChanSel+m_lStartChannel;
if(!bGetChannelPara[m_nChanSel])
{
if(GetChanPara(m_nChanSel))
{
bGetChannelPara[m_nChanSel] = TRUE;
}
else
{
GetDlgItem(IDCHANCFGOK)->EnableWindow(FALSE);
CString sTemp;
sTemp.Format("获取%d通道参数失败!",m_nChanSel);
AfxMessageBox(sTemp);
return;
}
}
if((m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate >> 31) && 0x01)
{
GetDlgItem(IDC_EDITBITRATE)->EnableWindow(TRUE);
m_BitRateCtrl.SetCurSel(24); //自定义码流
m_BitRate = m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate & 0x7fffffff;
}
else
{
m_BitRateCtrl.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate);
m_BitRate = 0;
GetDlgItem(IDC_EDITBITRATE)->EnableWindow(FALSE);
}
m_ResolutionCtrl.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.byResolution);
m_StreamTypeCtrl.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.byStreamType);
m_ImageQualityCtrl.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.byPicQuality);
m_BitRateTypeCtrl.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.byBitrateType);
m_FrameRateCtrl.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.dwVideoFrameRate);
m_bRecord = m_record[m_nChanSel].dwRecord;
GetDlgItem(IDC_BUTRECORD)->EnableWindow(m_bRecord);
m_DelayCtrl.SetCurSel(m_record[m_nChanSel].dwRecordTime);
m_PreRecordTime.SetCurSel(m_record[m_nChanSel].dwPreRecordTime);
ZeroMemory(cTemp, 100);
memcpy(cTemp, m_piccfg[m_nChanSel].sChanName, NAME_LEN);
m_ChannelName.Format("%s",cTemp);
m_bHide = m_piccfg[m_nChanSel].dwEnableHide;
GetDlgItem(IDC_BUTHIDE)->EnableWindow(m_bHide);
m_bMotion = m_piccfg[m_nChanSel].struMotion.byEnableHandleMotion;
GetDlgItem(IDC_BUTMOTION)->EnableWindow(m_bMotion);
if(m_piccfg[m_nChanSel].strHideAlarm.dwEnableHideAlarm > 0)
{
m_bHideAlarm = TRUE;
}
else
{
m_bHideAlarm = FALSE;
}
GetDlgItem(IDC_BUTHIDEALARM)->EnableWindow(m_bHideAlarm);
m_bChanname = m_piccfg[m_nChanSel].dwShowChanName;
m_channame_x = m_piccfg[m_nChanSel].wShowNameTopLeftX;
m_channame_y = m_piccfg[m_nChanSel].wShowNameTopLeftY;
m_bOsd = m_piccfg[m_nChanSel].dwShowOsd;
m_osd_x = m_piccfg[m_nChanSel].wOSDTopLeftX;
m_osd_y = m_piccfg[m_nChanSel].wOSDTopLeftY;
m_bDispWeek = m_piccfg[m_nChanSel].byDispWeek;
m_OsdAttrib.SetCurSel(m_piccfg[m_nChanSel].byOSDAttrib-1);
m_OsdType.SetCurSel(m_piccfg[m_nChanSel].byOSDType);
m_bLogo = m_piccfg[m_nChanSel].dwShowLogo;
m_logo_x = m_piccfg[m_nChanSel].wLOGOTopLeftX;
m_logo_y = m_piccfg[m_nChanSel].wLOGOTopLeftY;
TRACE("LOGO属性: %d", m_piccfg[m_nChanSel].byLogoAttrib);
m_LogoAttrib.SetCurSel(m_piccfg[m_nChanSel].byLogoAttrib-1);
GetDlgItem(IDCHANCFGOK)->EnableWindow(TRUE);
if(bRemoteRecord[m_nChanSel])
{
GetDlgItem(IDC_REMOTERECORD)->SetWindowText("停止录像");
}
else
{
GetDlgItem(IDC_REMOTERECORD)->SetWindowText("远程录像");
}
UpdateData(FALSE);
}
void CRemoteChannelConfig::OnSelchangeCombocopychan()
{
// TODO: Add your control notification handler code here
m_nCopyChanNum = m_CopyChannelCtrl.GetCurSel() - 1;
}
void CRemoteChannelConfig::OnChancfgok()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int nTemp = 0;
memcpy(m_piccfg[m_nChanSel].sChanName,m_ChannelName,NAME_LEN);
m_compressioncfg[m_nChanSel].struRecordPara.byStreamType = m_StreamTypeCtrl.GetCurSel();
m_compressioncfg[m_nChanSel].struRecordPara.byPicQuality = m_ImageQualityCtrl.GetCurSel();
if(m_BitRateCtrl.GetCurSel() == 24) //自定义码流
{
nTemp = m_BitRate;
nTemp |= 0x80000000;
m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate = nTemp;
}
else
{
m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate = m_BitRateCtrl.GetCurSel();
}
m_compressioncfg[m_nChanSel].struRecordPara.byResolution = m_ResolutionCtrl.GetCurSel();
m_compressioncfg[m_nChanSel].struRecordPara.dwVideoFrameRate = m_FrameRateCtrl.GetCurSel();
m_compressioncfg[m_nChanSel].struRecordPara.byBitrateType = m_BitRateTypeCtrl.GetCurSel();
m_record[m_nChanSel].dwRecord = m_bRecord;
m_record[m_nChanSel].dwRecordTime = m_DelayCtrl.GetCurSel();
m_record[m_nChanSel].dwPreRecordTime = m_PreRecordTime.GetCurSel();
m_piccfg[m_nChanSel].dwEnableHide = m_bHide;
m_piccfg[m_nChanSel].struMotion.byEnableHandleMotion = m_bMotion;
if(!m_bHideAlarm)
{
m_piccfg[m_nChanSel].strHideAlarm.dwEnableHideAlarm = m_bHideAlarm;
}
m_piccfg[m_nChanSel].dwShowChanName = m_bChanname;
m_piccfg[m_nChanSel].wShowNameTopLeftX = m_channame_x;
m_piccfg[m_nChanSel].wShowNameTopLeftY = m_channame_y;
m_piccfg[m_nChanSel].dwShowOsd = m_bOsd;
m_piccfg[m_nChanSel].wOSDTopLeftX = m_osd_x;
m_piccfg[m_nChanSel].wOSDTopLeftY = m_osd_y;
m_piccfg[m_nChanSel].byDispWeek = m_bDispWeek;
m_piccfg[m_nChanSel].byOSDAttrib = m_OsdAttrib.GetCurSel()+1;
m_piccfg[m_nChanSel].byOSDType = m_OsdType.GetCurSel();
m_piccfg[m_nChanSel].dwShowLogo = m_bLogo;
m_piccfg[m_nChanSel].wLOGOTopLeftX = m_logo_x;
m_piccfg[m_nChanSel].wLOGOTopLeftY = m_logo_y;
m_piccfg[m_nChanSel].byLogoAttrib = m_LogoAttrib.GetCurSel()+1;
bSetChannelPara[m_nChanSel] = TRUE;
GetDlgItem(IDC_BUTCHANCOPY)->EnableWindow(TRUE);
}
void CRemoteChannelConfig::OnChancfgexit()
{
// TODO: Add your control notification handler code here
for(int i=0; i<m_iChannelnumber; i++)
{
bSetChannelPara[i] = FALSE;
}
}
void CRemoteChannelConfig::OnCancel()
{
// TODO: Add extra cleanup here
//CDialog::OnCancel();
}
void CRemoteChannelConfig::OnRemoterecord()
{
// TODO: Add your control notification handler code here
m_nChanSel = m_ChannelCtrl.GetCurSel();
m_nChanNum = m_nChanSel+m_lStartChannel;
if(!bRemoteRecord[m_nChanSel])
{
if(NET_DVR_StartDVRRecord(m_lServerID, m_nChanNum, 0))
{
GetDlgItem(IDC_REMOTERECORD)->SetWindowText("停止录像");
bRemoteRecord[m_nChanSel] = TRUE;
}
}
else
{
if(NET_DVR_StopDVRRecord(m_lServerID, m_nChanNum))
{
GetDlgItem(IDC_REMOTERECORD)->SetWindowText("远程录像");
bRemoteRecord[m_nChanSel] = FALSE;
}
}
}
void CRemoteChannelConfig::OnChkmotion()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bMotion)
GetDlgItem(IDC_BUTMOTION)->EnableWindow(TRUE);
else
GetDlgItem(IDC_BUTMOTION)->EnableWindow(FALSE);
}
void CRemoteChannelConfig::OnChkhidealarm()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_bHideAlarm)
GetDlgItem(IDC_BUTHIDEALARM)->EnableWindow(TRUE);
else
GetDlgItem(IDC_BUTHIDEALARM)->EnableWindow(FALSE);
}
void CRemoteChannelConfig::OnButhidealarm()
{
// TODO: Add your control notification handler code here
CRemoteHideAlarm Dlg;
lpHideAlarm = &(m_piccfg[m_nChanSel].strHideAlarm);
Dlg.m_iChannel = m_nChanNum;
Dlg.m_lServerID = m_lServerID;
Dlg.m_dwAlarmOutNum = m_dwAlarmOutNum;
if(Dlg.DoModal() == IDOK)
{
bSetChannelPara[m_nChanSel] = TRUE;
}
}
void CRemoteChannelConfig::OnSelchangeCombobitrate()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_BitRateCtrl.GetCurSel() == 24) //自定义码流
{
GetDlgItem(IDC_EDITBITRATE)->EnableWindow(TRUE);
}
else
{
GetDlgItem(IDC_EDITBITRATE)->EnableWindow(FALSE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -