📄 channelconfig.cpp
字号:
{
GetDlgItem(IDC_APPLY)->EnableWindow(FALSE);
GetDlgItem(IDC_RESTORE)->EnableWindow(FALSE);
CString sTemp;
sTemp.Format("%d",m_nChanSel + 1);
sTemp = MSG_CHANNELCFG_GETCHANNELCFGFAILED + sTemp;
AfxMessageBox(sTemp);
return;
}
}
if((m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate >> 31) && 0x01)
{
GetDlgItem(IDC_RATECTRL)->EnableWindow(TRUE);
m_rec_ratectrlsel.SetCurSel(22); //自定义码流
m_rec_ratectrl = m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate & 0x7fffffff;
}
else
{
m_rec_ratectrlsel.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate-2);
m_rec_ratectrl = 0;
GetDlgItem(IDC_RATECTRL)->EnableWindow(FALSE);
}
m_rec_imgsizesel.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.byResolution);
m_rec_streamtypesel.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.byStreamType);
m_rec_imgqualitysel.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.byPicQuality - 1);
m_rec_ratetypesel.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.byBitrateType);
m_rec_frameratesel.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.dwVideoFrameRate);
//双码流中网传参数
if ((m_compressioncfg[m_nChanSel].struNetPara.dwVideoBitrate >> 31) && 0x01)
{
GetDlgItem(IDC_RATECTRL2)->EnableWindow(TRUE);
m_net_ratectrlsel.SetCurSel(22); //自定义码流
m_net_ratectrl = m_compressioncfg[m_nChanSel].struNetPara.dwVideoBitrate & 0x7fffffff;
}
else
{
m_net_ratectrlsel.SetCurSel(m_compressioncfg[m_nChanSel].struNetPara.dwVideoBitrate-2);
m_net_ratectrl = 0;
GetDlgItem(IDC_RATECTRL2)->EnableWindow(FALSE);
}
m_net_imgsizesel.SetCurSel(m_compressioncfg[m_nChanSel].struNetPara.byResolution-1);
m_net_streamtypesel.SetCurSel(m_compressioncfg[m_nChanSel].struNetPara.byStreamType);
m_net_imgqualitysel.SetCurSel(m_compressioncfg[m_nChanSel].struNetPara.byPicQuality - 1);
m_net_ratetypesel.SetCurSel(m_compressioncfg[m_nChanSel].struNetPara.byBitrateType);
m_net_frameratesel.SetCurSel(m_compressioncfg[m_nChanSel].struNetPara.dwVideoFrameRate);
m_bTimingRecord = m_record[m_nChanSel].dwRecord;
// GetDlgItem(IDC_SETTIMINGRECORD)->EnableWindow(m_bTimingRecord);
m_recorddelaysel.SetCurSel(m_record[m_nChanSel].dwRecordTime);
m_prerecordsel.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_SETHIDE)->EnableWindow(m_bHide);
m_bMotion = m_piccfg[m_nChanSel].struMotion.byEnableHandleMotion;
GetDlgItem(IDC_SETMOTION)->EnableWindow(m_bMotion);
if(m_piccfg[m_nChanSel].struHideAlarm.dwEnableHideAlarm > 0)
{
m_bHideAlarm = TRUE;
}
else
{
m_bHideAlarm = FALSE;
}
GetDlgItem(IDC_SETHIDEALARM)->EnableWindow(m_bHideAlarm);
m_bChannelName = m_piccfg[m_nChanSel].dwShowChanName;
m_channelname_X = m_piccfg[m_nChanSel].wShowNameTopLeftX;
m_channelname_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_bOSDWeek = m_piccfg[m_nChanSel].byDispWeek;
m_osd_distypesel.SetCurSel(m_piccfg[m_nChanSel].byOSDAttrib-1);
m_osd_timeformatsel.SetCurSel(m_piccfg[m_nChanSel].byOSDType);
EnableChanname(m_bChannelName);
EnableOSD(m_bOSD);
m_bVLostAlarm = m_piccfg[m_nChanSel].struVILost.byEnableHandleVILost;
GetDlgItem(IDC_SETVLOSTALARM)->EnableWindow(m_bVLostAlarm);
if(bRemoteRecord[m_nChanSel])
{
GetDlgItem(IDC_SETTIMINGRECORD)->SetWindowText(NAME_CHANNELCFG_STOPREC);
}
else
{
GetDlgItem(IDC_SETTIMINGRECORD)->SetWindowText(NAME_CHANNELCFG_STARTREC);
}
GetDlgItem(IDC_APPLY)->EnableWindow(TRUE);
GetDlgItem(IDC_RESTORE)->EnableWindow(TRUE);
UpdateData(FALSE);
}
void CChannelConfig::SetDevice (DeviceNode *nDev)
{
m_Device = nDev;
}
void CChannelConfig::OnApply()
{
if(!UpdateData(TRUE))
{
return;
}
int nTemp = 0;
char ctemp[NAME_LEN];
memset(ctemp,0,NAME_LEN);
strcpy(ctemp,m_channelname.GetBuffer(0));
memcpy(m_piccfg[m_nChanSel].sChanName,ctemp,NAME_LEN);
m_compressioncfg[m_nChanSel].dwSize = sizeof(NET_DEV_COMPRESSIONCFG);
m_compressioncfg[m_nChanSel].struRecordPara.byStreamType = m_rec_streamtypesel.GetCurSel();
m_compressioncfg[m_nChanSel].struRecordPara.byPicQuality = m_rec_imgqualitysel.GetCurSel() + 1;
if(m_rec_ratectrlsel.GetCurSel() == 22) //自定义码流
{
nTemp = m_rec_ratectrl;
if(nTemp < 32*1024)
nTemp = 32*1024;
if(nTemp > 8192*1024)
nTemp = 8192*1024;
nTemp |= 0x80000000;
m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate = nTemp;
}
else
{
m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate = m_rec_ratectrlsel.GetCurSel()+2;
}
m_compressioncfg[m_nChanSel].struRecordPara.byResolution = m_rec_imgsizesel.GetCurSel();
m_compressioncfg[m_nChanSel].struRecordPara.dwVideoFrameRate = m_rec_frameratesel.GetCurSel();
m_compressioncfg[m_nChanSel].struRecordPara.byBitrateType = m_rec_ratetypesel.GetCurSel();
//2005-07-08 网传参数
m_compressioncfg[m_nChanSel].struNetPara.byStreamType = m_net_streamtypesel.GetCurSel();
m_compressioncfg[m_nChanSel].struNetPara.byPicQuality = m_net_imgqualitysel.GetCurSel() + 1;
if (m_net_ratectrlsel.GetCurSel() == 22) //自定义码流
{
nTemp = m_net_ratectrl;
if (nTemp < 32*1024)
nTemp = 32*1024;
if (nTemp > 8192*1024)
nTemp = 8192*1024;
nTemp |= 0x80000000;
m_compressioncfg[m_nChanSel].struNetPara.dwVideoBitrate = nTemp;
}
else
{
m_compressioncfg[m_nChanSel].struNetPara.dwVideoBitrate = m_net_ratectrlsel.GetCurSel()+2;
}
m_compressioncfg[m_nChanSel].struNetPara.byResolution = m_net_imgqualitysel.GetCurSel();
m_compressioncfg[m_nChanSel].struNetPara.dwVideoFrameRate = m_net_frameratesel.GetCurSel();
m_compressioncfg[m_nChanSel].struNetPara.byBitrateType = m_net_ratetypesel.GetCurSel();
m_record[m_nChanSel].dwSize = sizeof(NET_DEV_RECORD);
m_record[m_nChanSel].dwRecord = m_bTimingRecord;
m_record[m_nChanSel].dwRecordTime = m_recorddelaysel.GetCurSel();
m_record[m_nChanSel].dwPreRecordTime = m_prerecordsel.GetCurSel();
m_piccfg[m_nChanSel].dwSize = sizeof(NET_DEV_PICCFG);
m_piccfg[m_nChanSel].dwEnableHide = m_bHide;
m_piccfg[m_nChanSel].struMotion.byEnableHandleMotion = m_bMotion;
if(!m_bHideAlarm)
{
m_piccfg[m_nChanSel].struHideAlarm.dwEnableHideAlarm = m_bHideAlarm;
}
m_piccfg[m_nChanSel].dwShowChanName = m_bChannelName;
m_piccfg[m_nChanSel].wShowNameTopLeftX = m_channelname_X;
m_piccfg[m_nChanSel].wShowNameTopLeftY = m_channelname_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_bOSDWeek;
m_piccfg[m_nChanSel].byOSDAttrib = m_osd_distypesel.GetCurSel()+1;
m_piccfg[m_nChanSel].byOSDType = m_osd_timeformatsel.GetCurSel();
m_piccfg[m_nChanSel].struVILost.byEnableHandleVILost = m_bVLostAlarm;
bSetChannelPara[m_nChanSel] = TRUE;
GetDlgItem(IDC_APPLY)->EnableWindow(TRUE);
GetDlgItem(IDC_RESTORE)->EnableWindow(TRUE);
for(int i=0; i<m_Device->Info.byChanNum; i++)
{
int m_nChanNum = i;
if(bSetChannelPara[i])
{
if(!CLIENT_SetDevConfig(m_Device->LoginID, DEV_SET_PICCFG, m_nChanNum,&(m_piccfg[i]), sizeof(NET_DEV_PICCFG)))
{
AfxMessageBox("channel config save failed!");
return ;
}
if(!CLIENT_SetDevConfig(m_Device->LoginID,DEV_SET_COMPRESSCFG, m_nChanNum,&(m_compressioncfg[i]), sizeof(NET_DEV_COMPRESSIONCFG)))
{
AfxMessageBox("channel config save failed!");
return ;
}
if(!CLIENT_SetDevConfig(m_Device->LoginID,DEV_SET_RECORDCFG, m_nChanNum,&(m_record[i]), sizeof(NET_DEV_RECORD)))
{
AfxMessageBox("channel config save failed!");
return ;
}
bSetChannelPara[i] = FALSE;
}
}
}
void CChannelConfig::OnSettimingrecord()
{
CTimingRecord dlg;
dlg.SetRecordInfo(&(m_record[m_nChanSel]));
if(dlg.DoModal() == IDOK)
bSetChannelPara[m_nChanSel] = TRUE;
}
void CChannelConfig::OnTimingrecordCheck()
{
if (!UpdateData(TRUE))
{
return;
}
GetDlgItem(IDC_SETTIMINGRECORD)->EnableWindow(m_bTimingRecord);
}
void CChannelConfig::OnHideCheck()
{
if (!UpdateData(TRUE))
{
return;
}
GetDlgItem(IDC_SETHIDE)->EnableWindow(m_bHide);
}
void CChannelConfig::OnMotionCheck()
{
if (!UpdateData(TRUE))
{
return;
}
GetDlgItem(IDC_SETMOTION)->EnableWindow(m_bMotion);
}
void CChannelConfig::OnHidealarmCheck()
{
if (!UpdateData(TRUE))
{
return;
}
GetDlgItem(IDC_SETHIDEALARM)->EnableWindow(m_bHideAlarm);
}
void CChannelConfig::OnVlostalarmCheck()
{
if (!UpdateData(TRUE))
{
return;
}
GetDlgItem(IDC_SETVLOSTALARM)->EnableWindow(m_bVLostAlarm);
}
void CChannelConfig::OnOsdCheck()
{
if (!UpdateData(TRUE))
{
return;
}
EnableOSD(m_bOSD);
}
void CChannelConfig::OnChannelnameCheck()
{
if (!UpdateData(TRUE))
{
return;
}
EnableChanname(m_bChannelName);
}
void CChannelConfig::OnSethide()
{
CSetHide Dlg;
int i = 0;
for(i=0; i<MAX_SHELTERNUM; i++)
{
Dlg.SetShelter(i, &m_piccfg[ m_nChanSel].struShelter[i]);
}
// Dlg.m_iChannel = m_nChanNum;
// Dlg.m_lServerID = m_lServerID;
if(Dlg.DoModal() == IDOK)
{
for(i=0; i<MAX_SHELTERNUM; i++)
{
Dlg.GetShelter(i, &m_piccfg[m_nChanSel].struShelter[i]);
}
bSetChannelPara[m_nChanSel] = TRUE;
}
}
void CChannelConfig::OnRestore()
{
OnInitDialog();
}
void CChannelConfig::OnSelchangeRatectrlsel()
{
if(m_rec_ratectrlsel.GetCurSel() == 22) //自定义码流
{
GetDlgItem(IDC_RATECTRL)->EnableWindow(TRUE);
}
else
{
GetDlgItem(IDC_RATECTRL)->EnableWindow(FALSE);
}
}
void CChannelConfig::OnSelchangeRatectrlsel2()
{
if(m_net_ratectrlsel.GetCurSel() == 22) //自定义码流
{
GetDlgItem(IDC_RATECTRL2)->EnableWindow(TRUE);
}
else
{
GetDlgItem(IDC_RATECTRL2)->EnableWindow(FALSE);
}
}
void CChannelConfig::OnSavechannelname()
{
UpdateData();
char *buf = new char[512];
memset(buf, 0 , 512);
strcpy((char *)m_piccfg[m_nChanSel].sChanName, m_channelname.GetBuffer(0));
for(int i = 0; i < 16; i ++)
{
memcpy(buf + 32*i, (char *)m_piccfg[i].sChanName, 32);
}
BOOL ret = CLIENT_SetupChannelName(m_Device->LoginID, buf, 512);
if (!ret)
{
((CNetSDKDemoDlg *)GetParent())->LastError();//Zhengdh 06.11.24
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -