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

📄 channelconfig.cpp

📁 用大华sdk
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		{
			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 + -