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

📄 remotechannelconfig.cpp

📁 SDK DVR/DVS HIKVISION
💻 CPP
📖 第 1 页 / 共 3 页
字号:
				m_compressioncfg[i].struRecordPara.wIntervalFrameI = m_FrameI;
				break;
			case 1:
				m_compressioncfg[i].struNetPara.byStreamType = m_StreamTypeCtrl.GetCurSel();
				m_compressioncfg[i].struNetPara.byPicQuality = m_ImageQualityCtrl.GetCurSel();
				if(m_BitRateCtrl.GetCurSel() == 22)	//self-define bitrate
				{
					nTemp = m_BitRate;
					nTemp |= 0x80000000;
					m_compressioncfg[i].struNetPara.dwVideoBitrate = nTemp;
				}
				else
				{
					m_compressioncfg[i].struNetPara.dwVideoBitrate = m_BitRateCtrl.GetCurSel()+2;
				}
				m_compressioncfg[i].struNetPara.byResolution = m_ResolutionCtrl.GetCurSel();
				m_compressioncfg[i].struNetPara.dwVideoFrameRate = m_FrameRateCtrl.GetCurSel();
				m_compressioncfg[i].struNetPara.byBitrateType = m_BitRateTypeCtrl.GetCurSel();
				m_compressioncfg[i].struNetPara.byIntervalBPFrame = m_BPIntervalCtrl.GetCurSel();
				m_compressioncfg[i].struNetPara.wIntervalFrameI = m_FrameI;
				break;
			case 2:
				m_compressioncfg_new[i].struRecordPara.byStreamType = m_StreamTypeCtrl.GetCurSel();
				m_compressioncfg_new[i].struRecordPara.byPicQuality = m_ImageQualityCtrl.GetCurSel();
				if(m_BitRateCtrl.GetCurSel() == 22)	//self-define bitrate
				{
					nTemp = m_BitRate;
					nTemp |= 0x80000000;
					m_compressioncfg_new[i].struRecordPara.dwVideoBitrate = nTemp;
				}
				else
				{
					m_compressioncfg_new[i].struRecordPara.dwVideoBitrate = m_BitRateCtrl.GetCurSel()+2;
				}
				m_compressioncfg_new[i].struRecordPara.byResolution = m_ResolutionCtrl.GetCurSel();
				m_compressioncfg_new[i].struRecordPara.dwVideoFrameRate = m_FrameRateCtrl.GetCurSel();
				m_compressioncfg_new[i].struRecordPara.byBitrateType = m_BitRateTypeCtrl.GetCurSel();
				break;
			default:
				break;
			}
			
			m_record[i].dwRecord = m_bRecord;
			m_record[i].dwRecordTime = m_DelayCtrl.GetCurSel();
			m_record[i].dwPreRecordTime = m_PreRecordTime.GetCurSel();
			//copy record schedule
			for(int k=0; k<MAX_DAYS; k++)
			{
				memcpy(&(m_record[i].struRecAllDay[k]), &(m_record[m_nChanSel].struRecAllDay[k]), sizeof(NET_DVR_RECORDDAY));
				for(int j=0; j<MAX_TIMESEGMENT; j++)
				{
					memcpy(&m_record[i].struRecordSched[k][j],&m_record[m_nChanSel].struRecordSched[k][j],sizeof(NET_DVR_RECORDSCHED));				
				}
			}

			m_piccfg[i].dwEnableHide = m_bHide;
			m_piccfg[i].struMotion.byEnableHandleMotion = m_bMotion;			
			if(!m_bHideAlarm)
			{
				m_piccfg[i].struHideAlarm.dwEnableHideAlarm = m_bHideAlarm;
			}
			m_piccfg[i].dwShowChanName = m_bChanname;
			m_piccfg[i].wShowNameTopLeftX = m_channame_x;
			m_piccfg[i].wShowNameTopLeftY = m_channame_y;
			m_piccfg[i].dwShowOsd = m_bOsd;
			m_piccfg[i].wOSDTopLeftX = m_osd_x;
			m_piccfg[i].wOSDTopLeftY = m_osd_y;
			m_piccfg[i].byDispWeek = m_bDispWeek;
			m_piccfg[i].byOSDAttrib = m_OsdAttrib.GetCurSel()+1;
			m_piccfg[i].byOSDType = m_OsdType.GetCurSel();

			m_piccfg[i].struVILost.byEnableHandleVILost = m_bVideoLost;
			
			//copy video parameters
			m_piccfg[i].byBrightness = m_piccfg[m_nChanSel].byBrightness;
			m_piccfg[i].byContrast = m_piccfg[m_nChanSel].byContrast;
			m_piccfg[i].byHue = m_piccfg[m_nChanSel].byHue;
			m_piccfg[i].bySaturation = m_piccfg[m_nChanSel].bySaturation;
			
			bSetChannelPara[i] = TRUE;
		}		
	}
	else
	{
		int sel = m_CompressCombo.GetCurSel();
		switch(sel) {
		case 0:
			m_compressioncfg[m_nCopyChanNum].struRecordPara.byStreamType = m_StreamTypeCtrl.GetCurSel();
			m_compressioncfg[m_nCopyChanNum].struRecordPara.byPicQuality = m_ImageQualityCtrl.GetCurSel();
			if(m_BitRateCtrl.GetCurSel() == 22)	//self-define bitrate
			{
				nTemp = m_BitRate;
				nTemp |= 0x80000000;
				m_compressioncfg[m_nCopyChanNum].struRecordPara.dwVideoBitrate = nTemp;
			}
			else
			{
				m_compressioncfg[m_nCopyChanNum].struRecordPara.dwVideoBitrate = m_BitRateCtrl.GetCurSel()+2;
			}
			m_compressioncfg[m_nCopyChanNum].struRecordPara.byResolution = m_ResolutionCtrl.GetCurSel();
			m_compressioncfg[m_nCopyChanNum].struRecordPara.dwVideoFrameRate = m_FrameRateCtrl.GetCurSel();
			m_compressioncfg[m_nCopyChanNum].struRecordPara.byBitrateType = m_BitRateTypeCtrl.GetCurSel();
			m_compressioncfg[m_nCopyChanNum].struRecordPara.byIntervalBPFrame = m_BPIntervalCtrl.GetCurSel();
			m_compressioncfg[m_nCopyChanNum].struRecordPara.wIntervalFrameI = m_FrameI;
			break;
		case 1:
			m_compressioncfg[m_nCopyChanNum].struNetPara.byStreamType = m_StreamTypeCtrl.GetCurSel();
			m_compressioncfg[m_nCopyChanNum].struNetPara.byPicQuality = m_ImageQualityCtrl.GetCurSel();
			if(m_BitRateCtrl.GetCurSel() == 22)	//self-define bitrate
			{
				nTemp = m_BitRate;
				nTemp |= 0x80000000;
				m_compressioncfg[m_nCopyChanNum].struNetPara.dwVideoBitrate = nTemp;
			}
			else
			{
				m_compressioncfg[m_nCopyChanNum].struNetPara.dwVideoBitrate = m_BitRateCtrl.GetCurSel()+2;
			}
			m_compressioncfg[m_nCopyChanNum].struNetPara.byResolution = m_ResolutionCtrl.GetCurSel();
			m_compressioncfg[m_nCopyChanNum].struNetPara.dwVideoFrameRate = m_FrameRateCtrl.GetCurSel();
			m_compressioncfg[m_nCopyChanNum].struNetPara.byBitrateType = m_BitRateTypeCtrl.GetCurSel();
			m_compressioncfg[m_nCopyChanNum].struNetPara.byIntervalBPFrame = m_BPIntervalCtrl.GetCurSel();
			m_compressioncfg[m_nCopyChanNum].struNetPara.wIntervalFrameI = m_FrameI;
			break;
		case 2:
			m_compressioncfg_new[m_nCopyChanNum].struRecordPara.byStreamType = m_StreamTypeCtrl.GetCurSel();
			m_compressioncfg_new[m_nCopyChanNum].struRecordPara.byPicQuality = m_ImageQualityCtrl.GetCurSel();
			if(m_BitRateCtrl.GetCurSel() == 22)	//self-define bitrate
			{
				nTemp = m_BitRate;
				nTemp |= 0x80000000;
				m_compressioncfg_new[m_nCopyChanNum].struRecordPara.dwVideoBitrate = nTemp;
			}
			else
			{
				m_compressioncfg_new[m_nCopyChanNum].struRecordPara.dwVideoBitrate = m_BitRateCtrl.GetCurSel()+2;
			}
			m_compressioncfg_new[m_nCopyChanNum].struRecordPara.byResolution = m_ResolutionCtrl.GetCurSel();
			m_compressioncfg_new[m_nCopyChanNum].struRecordPara.dwVideoFrameRate = m_FrameRateCtrl.GetCurSel();
			m_compressioncfg_new[m_nCopyChanNum].struRecordPara.byBitrateType = m_BitRateTypeCtrl.GetCurSel();
			break;
		default:
			break;
		}
		
		m_record[m_nCopyChanNum].dwRecord = m_bRecord;
		m_record[m_nCopyChanNum].dwRecordTime = m_DelayCtrl.GetCurSel();
		m_record[m_nCopyChanNum].dwPreRecordTime = m_PreRecordTime.GetCurSel();
		
		//copy schedule
		for(int k=0; k<MAX_DAYS; k++)
		{
			memcpy(&(m_record[m_nCopyChanNum].struRecAllDay[k]), &(m_record[m_nChanSel].struRecAllDay[k]), sizeof(NET_DVR_RECORDDAY));
			for(int j=0; j<MAX_TIMESEGMENT; j++)
			{
				memcpy(&m_record[m_nCopyChanNum].struRecordSched[k][j],&m_record[m_nChanSel].struRecordSched[k][j],sizeof(NET_DVR_RECORDSCHED));				
			}
		}
		m_piccfg[m_nCopyChanNum].dwEnableHide = m_bHide;
		m_piccfg[m_nCopyChanNum].struMotion.byEnableHandleMotion = m_bMotion;
		if(!m_bHideAlarm)
		{
			m_piccfg[m_nCopyChanNum].struHideAlarm.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].struVILost.byEnableHandleVILost = m_bVideoLost;
		
		//copy video parameters
		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;
	int i = 0;
	
	for(i=0; i<MAX_SHELTERNUM; i++)
	{
		memcpy(&(Dlg.struShelter[i]), &(m_piccfg[m_nChanSel].struShelter[i]),sizeof(NET_DVR_SHELTER));
	}
	Dlg.m_iChannel = m_nChanNum;
	Dlg.m_lServerID = m_lServerID;
	if(Dlg.DoModal() == IDOK)
	{
		for(i=0; i<MAX_SHELTERNUM; i++)
		{
			memcpy(&(m_piccfg[m_nChanSel].struShelter[i]), &(Dlg.struShelter[i]),sizeof(NET_DVR_SHELTER));
		}
		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::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::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("Get channel%d parameters failed!",m_nChanSel);
			AfxMessageBox(sTemp);
			return;
		}
	}
	

	m_CompressCombo.SetCurSel(0);
	m_ResolutionCtrl.ResetContent();
	m_ResolutionCtrl.AddString("DCIF");
	m_ResolutionCtrl.AddString("CIF");
	m_ResolutionCtrl.AddString("QCIF");
	m_ResolutionCtrl.AddString("4CIF");
	m_ResolutionCtrl.AddString("2CIF");
	GetDlgItem(IDC_CHECKEVENT)->ShowWindow(SW_HIDE);

	GetDlgItem(IDC_COMBOSTREAMTYPE)->EnableWindow(TRUE);
	GetDlgItem(IDC_COMBORESOLUTION)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDITFRAMEI)->EnableWindow(TRUE);
	GetDlgItem(IDC_COMBOBPINTERVAL)->EnableWindow(TRUE);
	
	if((m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate >> 31) && 0x01)
	{
		GetDlgItem(IDC_EDITBITRATE)->EnableWindow(TRUE);
		m_BitRateCtrl.SetCurSel(22);		//self-define bitrate
		m_BitRate = m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate & 0x7fffffff;
	}
	else
	{
		m_BitRateCtrl.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.dwVideoBitrate-2);			
		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_BPIntervalCtrl.SetCurSel(m_compressioncfg[m_nChanSel].struRecordPara.byIntervalBPFrame);	
	m_FrameI = m_compressioncfg[m_nChanSel].struRecordPara.wIntervalFrameI;		
		
	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].struHideAlarm.dwEnableHideAlarm > 0)

⌨️ 快捷键说明

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