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

📄 netctlrecsetdlg.cpp

📁 TM8000硬盘录像机客户端编程文档和Demo源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
   if(Con_pDVRPara!=NULL)
   {
	  Con_pDVRPara->nRecordRateVarySmart=m_RecRateVarySmart;				
	  Con_pDVRPara->nRecordRateVaryTime=m_RecRateVarySpeed;	
	  Con_pDVRPara->nWDMethod=m_DiskCovery;
	  Con_pDVRPara->nRecordDateChar=m_DatePrint;

	 if(portno!=0)
	  {
#ifndef USE_83V605
		  Con_pDVRPara->PortConfigEx[portno-1].IFrameInterval=m_IFrameInterval;
#endif		  
		  if(m_IsCodeRateContinue)
		  {
			  Con_pDVRPara->PortConfig[portno-1].nImageQuality=m_RecQuality;
		  }
		  else		   
			  Con_pDVRPara->PortConfig[portno-1].nImageQuality=pCom->GetCurSel();
		  Con_pDVRPara->PortConfig[portno-1].nImageFrame=m_RecFrames;
          Con_pDVRPara->PortConfig[portno-1].nAudio=m_Audio;
	  }
	  else
      {
		  for(short j=0;j<Con_pDVRPara->nPortNo;j++)
		  {
#ifndef USE_83V605
			  Con_pDVRPara->PortConfigEx[j].IFrameInterval=m_IFrameInterval;
#endif
			  if(m_IsCodeRateContinue)
			  {
				  Con_pDVRPara->PortConfig[j].nImageQuality=m_RecQuality;
			  }
			  else		   
				  Con_pDVRPara->PortConfig[j].nImageQuality=pCom->GetCurSel();
		      Con_pDVRPara->PortConfig[j].nImageFrame=m_RecFrames;
              Con_pDVRPara->PortConfig[j].nAudio=m_Audio;
		  }
	  }
   }	
}

void CNetCtlRecSetDlg::OnSelchangePortCombo() 
{
	// TODO: Add your control notification handler code here
	CString strFrames;
	char * l_quality;
	char * l_qualityOld;
	char * l_Quality[8];
	char * l_QualityOld[4];

	int DVRHardWareType;
	
	TM8100_NET_NODE*pCur;
	pCur = pNetNodeHead;
	while(pCur!=NULL)
	{
		if(pCur->ipAddr!=pNetRemoteCtlDlg->m_nIpAddr)
			pCur = pCur->next;
		else
		{
            DVRHardWareType = pCur->DVRHardWareType;
		      pCur = pCur->next;
		} 
	}
	if(ENGLISH)	
	{
		l_quality=_T("BitRate Stream:");
//		l_Quality[0]=_T("1536K");
		l_Quality[0]=_T("1152K");
		l_Quality[1]=_T("768K");
		l_Quality[2]=_T("512K");
		l_Quality[3]=_T("384K");
		l_Quality[4]=_T("256K");
		l_Quality[5]=_T("128K");
		l_Quality[6]=_T("64K");
		l_Quality[7]=_T("32K");

		l_qualityOld=_T("Quality:");
		l_QualityOld[0]=_T("Best");
		l_QualityOld[1]=_T("Good");
		l_QualityOld[2]=_T("Preferable");
		l_QualityOld[3]=_T("Normal");
	}
	else
	{
		l_quality=_T("码流调整:");
//		l_Quality[0]=_T("1536K");
		l_Quality[0]=_T("1152K");
		l_Quality[1]=_T("768K");
		l_Quality[2]=_T("512K");
		l_Quality[3]=_T("384K");
		l_Quality[4]=_T("256K");
		l_Quality[5]=_T("128K");
		l_Quality[6]=_T("64K");
		l_Quality[7]=_T("32K");

		l_qualityOld=_T("录像质量:");
		l_QualityOld[0]=_T("最好");
		l_QualityOld[1]=_T("好");
		l_QualityOld[2]=_T("较好");
		l_QualityOld[3]=_T("普通");
	}
	
	if(DVRHardWareType==1)
	{
		l_Quality[0]=_T("2.5M");
		l_Quality[1]=_T("2M");
		l_Quality[2]=_T("1.5M");
		l_Quality[3]=_T("1M");
		l_Quality[4]=_T("768K");
		l_Quality[5]=_T("512K");
		l_Quality[6]=_T("384K");
		l_Quality[7]=_T("256K");
		l_Quality[8]=_T("128K");						
	}
	CComboBox *pCom = (CComboBox*)GetDlgItem(IDC_COMBORECQUALITY);
	pCom->ResetContent();
	for (int i=0;i<8;i++)
	{
		pCom->InsertString(i,l_Quality[i]) ;
	}

	if (pNetRemoteCtlDlg->m_nDVRType <= 0) 
	{
		
		BYTE portno;	
		portno=m_PortCombo.GetCurSel();

		pCom->SetCurSel(DVRHardWareType==1?Con_pDVRPara->PortConfig[portno].nImageQuality-1:Con_pDVRPara->PortConfig[portno].nImageQuality);
		strFrames.Format("%d",Con_pDVRPara->PortConfig[portno].nImageFrame);
		
		m_RecFrames = atoi(strFrames);		
		m_Audio = Con_pDVRPara->PortConfig[portno].nAudio;
		m_RecRateVarySmart = Con_pDVRPara->nRecordRateVarySmart;
		m_RecRateVarySpeed = Con_pDVRPara->nRecordRateVaryTime;
		m_DiskCovery = Con_pDVRPara->nWDMethod;
		m_DatePrint = Con_pDVRPara->nRecordDateChar;
		m_RecQuality = Con_pDVRPara->PortConfig[portno].nImageQuality;
		CString cTempRecQuality;
        cTempRecQuality.Format("%d",m_RecQuality);
		CEdit*pedit1=(CEdit*)GetDlgItem(IDC_RREC_QUALITY);
		pedit1->SetWindowText(cTempRecQuality);
	}
	else
	{
		pCom->ResetContent();
		for (int i=0;i<8;i++)
		{
			pCom->AddString(l_Quality[i]) ;
		}
		int portno;	
		portno=m_PortCombo.GetCurSel();
		pNetRemoteCtlDlg->GetDvrParam(portno+1,0,PARA_TYPE_RECORD,&m_RecSetParam,sizeof(RecSetParam));
		if(portno<MAXPORTNO)
		{
			CComboBox*pcom = (CComboBox*)GetDlgItem(IDC_COMBORECQUALITY);
			pcom->SetCurSel(m_RecSetParam.CodeRate);
			strFrames.Format("%d",m_RecSetParam.FrameCount);
			m_RecFrames = atoi(strFrames);
			m_Audio = m_RecSetParam.Audio;
		}
		m_RecRateVarySmart = m_RecSetParam.RecSensitivity;			
		m_RecRateVarySpeed = m_RecSetParam.RecRate;
		m_DiskCovery = m_RecSetParam.RecOverMethod;
		m_RecQuality = m_RecSetParam.CodeRate;
		m_IFrameInterval = m_RecSetParam.IFrameInterval;		
		m_DatePrint = m_RecSetParam.RecDateSplice;
		ZeroMemory(&m_RecSetParam,sizeof(RecSetParam));		
	}
	UpdateData(FALSE);
}

void CNetCtlRecSetDlg::OnEditchangePortCombo() 
{
	// TODO: Add your control notification handler code here
	
}

BOOL CNetCtlRecSetDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	DWORD t1=0;
	DWORD t2=0;

    t1=pMsg->message;
	t2=(DWORD)pMsg->wParam;
	if(t1==WM_KEYDOWN&&(t2==VK_RETURN||t2==VK_ESCAPE))
       return true;

	return CDialog::PreTranslateMessage(pMsg);
}

void CNetCtlRecSetDlg::Refresh()
{
	char * l_Port;//=_T("Camera");
	if(ENGLISH)	
		l_Port=_T("Channel");
	else
		l_Port=_T("通道");
// 刷新界面
	if ((pNetRemoteCtlDlg->m_nDVRType == 3) ||
		(pNetRemoteCtlDlg->m_nDVRType == 6) ||
		(pNetRemoteCtlDlg->m_nDVRType == 7))
	{// YWT主机码率调整采用连续码率
		m_IsCodeRateContinue=TRUE;
		UpdateData(FALSE);
		OnCheckiscoderatecontinue();
		//((CButton *)GetDlgItem(IDC_CHECKISCODERATECONTINUE))->ShowWindow(FALSE);
	}
	else
	{
		m_IsCodeRateContinue=FALSE;
		UpdateData(FALSE);
		OnCheckiscoderatecontinue();
		//((CButton *)GetDlgItem(IDC_CHECKISCODERATECONTINUE))->ShowWindow(FALSE);
		
	}
	if (pNetRemoteCtlDlg->m_nDVRType <= 0)
	{//83V6.05无获取I帧间隔的功能
		((CStatic *)GetDlgItem(IDC_STATICIFRAMEINTERVAL))->ShowWindow(FALSE);
		((CEdit *)GetDlgItem(IDC_RREC_IFRAME_INTERVAL))->ShowWindow(FALSE);
		((CStatic *)GetDlgItem(IDC_STATIC_MS))->ShowWindow(FALSE);		
	}
	else
	{
		((CStatic *)GetDlgItem(IDC_STATICIFRAMEINTERVAL))->ShowWindow(TRUE);
		((CEdit *)GetDlgItem(IDC_RREC_IFRAME_INTERVAL))->ShowWindow(TRUE);
		((CStatic *)GetDlgItem(IDC_STATIC_MS))->ShowWindow(TRUE);
	}
	m_PortCombo.ResetContent() ;
	if (pNetRemoteCtlDlg->m_nDVRType <= 0) 
	{
		if(Con_pDVRPara->nStandard==0)
			m_MaxFrames=25;
		else
			m_MaxFrames=30;
   		for (int i=0;i<Con_pDVRPara->nPortNo ;i++)
		{
			CString   str ;
			str.Format("%s%02d",l_Port,i+1) ;
			m_PortCombo.AddString(str) ;
		}
	}
	else
	{
		if(m_LoginParam.nStandard==0)
			m_MaxFrames=25;
		else
			m_MaxFrames=30;
   		for (int i=0;i<m_LoginParam.ChannelCount;i++)
		{
			CString   str ;
			str.Format("%s%02d",l_Port,i+1) ;
			m_PortCombo.AddString(str) ;
		}
	}
	m_PortCombo.SetCurSel(0);
	
	OnSelchangePortCombo();
}

void CNetCtlRecSetDlg::OnDeltaposSpinFrames(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
	// TODO: Add your control notification handler code here

	UpdateData(TRUE) ;
	if (pNMUpDown->iDelta > 0) //向下
	{
		if (m_RecFrames > 1)
			m_RecFrames-- ;
	}
	else
	{
		if (m_RecFrames < m_MaxFrames)
			m_RecFrames++ ;
	}
	UpdateData(FALSE) ;
	
	*pResult = 0;
}

void CNetCtlRecSetDlg::OnChangeRrecFramenumEdit() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
/*	UpdateData(TRUE);
	if(m_RecFrames<1)
		m_RecFrames=1;
	else if(m_RecFrames>m_MaxFrames)
		m_RecFrames=m_MaxFrames;
	UpdateData(FALSE);*/
	// TODO: Add your control notification handler code here
	
}

void CNetCtlRecSetDlg::OnCheckiscoderatecontinue() 
{
	UpdateData(TRUE);

	if(!m_IsCodeRateContinue)
	{
		CWnd *pWnd1 =(CWnd*)GetDlgItem(IDC_COMBORECQUALITY);
		pWnd1->ShowWindow(TRUE);
		CWnd *pWnd2 =(CWnd*)GetDlgItem(IDC_RREC_QUALITY);
		pWnd2->ShowWindow(FALSE);
		CWnd *pWnd3 =(CWnd*)GetDlgItem(IDC_STATICKBS);
		pWnd3->ShowWindow(FALSE);

	}
	else
	{
		CWnd *pWnd1 =(CWnd*)GetDlgItem(IDC_COMBORECQUALITY);
		pWnd1->ShowWindow(FALSE);
		CWnd *pWnd2 =(CWnd*)GetDlgItem(IDC_RREC_QUALITY);
		pWnd2->ShowWindow(TRUE);
        CWnd *pWnd3 =(CWnd*)GetDlgItem(IDC_STATICKBS);
		pWnd3->ShowWindow(TRUE);
	}
		
}

⌨️ 快捷键说明

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