newclientdlg.cpp

来自「SDK DVR/DVS HIKVISION」· C++ 代码 · 共 2,307 行 · 第 1/5 页

CPP
2,307
字号

void CNewclientDlg::ArrayWindow(WORD iPos, WORD iNumber)
{
	int i = 0;
	CRect crect;
	GetClientRect(&crect);
	WORD iWidth,iHeight;
	NET_DVR_DISPLAY_PARA displaypara;
	
	for (i = 0;i < MAXVIEWNUM;i++)
	{
	   myoutput[i].ShowWindow(SW_HIDE);
	}
	
	switch(iNumber)
	{
	case 4:
		if(ClientParam.m_bMultiScreen)
		{
			iWidth = 510;
			iHeight = 383;
			MYVIEW_LEFT = 0;
			MYVIEW_TOP = 0;
		}
		else
		{
			MYVIEW_LEFT = 20;
			MYVIEW_TOP = 20;
			iWidth = 354;
			iHeight = 290;
		}		
		bLargeWnd = FALSE;
		for(i = 0; i < 2; i++)
		{
			myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*3,MYVIEW_TOP,iWidth,iHeight,true);
			myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*3/*-2*/;
			myoutput[i].m_display_para.nTop = MYVIEW_TOP;
			myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
			myoutput[i].m_display_para.nHeight = iHeight;
			
			myoutput[i].ShowWindow(SW_SHOW);
		}
		for(i = 2; i < 4; i++)
		{
			myoutput[i].MoveWindow(MYVIEW_LEFT+(i-2)*iWidth+(i-2)*3,MYVIEW_TOP+iHeight+2,iWidth,iHeight,true);
			myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-2)*iWidth+(i-2)*3/*-2*/;
			myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
			myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
			myoutput[i].m_display_para.nHeight = iHeight;
			myoutput[i].ShowWindow(SW_SHOW);
		}
		break;
	case 9:
		if(ClientParam.m_bMultiScreen)
		{
			iWidth = 339;
			iHeight = 254;
			MYVIEW_LEFT = 0;
			MYVIEW_TOP = 0;
		}
		else
		{
			iWidth = 234;
			iHeight = 192;
			MYVIEW_LEFT = 20;
			MYVIEW_TOP = 20;
		}
	
		bLargeWnd = FALSE;
		for (i=0;i<3;i++)
		{
			myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*3,MYVIEW_TOP,iWidth,iHeight,true);
			myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*3/*-2*/;
			myoutput[i].m_display_para.nTop = MYVIEW_TOP;
			myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
			myoutput[i].m_display_para.nHeight = iHeight;
			myoutput[i].ShowWindow(SW_SHOW);
		}
		for (i=3;i<6;i++)
		{
			myoutput[i].MoveWindow(MYVIEW_LEFT+(i-3)*iWidth+(i-3)*3,MYVIEW_TOP+iHeight+2,iWidth,iHeight,true);
			myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-3)*iWidth+(i-3)*3/*-2*/;
			myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
			myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
			myoutput[i].m_display_para.nHeight = iHeight;
			myoutput[i].ShowWindow(SW_SHOW);
		}
		for (i=6;i<9;i++)
		{
			myoutput[i].MoveWindow(MYVIEW_LEFT+(i-6)*iWidth+(i-6)*3,MYVIEW_TOP+2*iHeight+4,iWidth,iHeight,true);
			myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-6)*iWidth+(i-6)*3/*-2*/;
			myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*2;
			myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
			myoutput[i].m_display_para.nHeight = iHeight;
			myoutput[i].ShowWindow(SW_SHOW);
		}
		break;
	case 16:
		if(ClientParam.m_bMultiScreen)
		{
			iWidth = 254;
			iHeight = 190;
			MYVIEW_LEFT = 0;
			MYVIEW_TOP = 0;
		}
		else
		{
			MYVIEW_LEFT = 20;
			MYVIEW_TOP = 20;
			iWidth = 178;//176;
			iHeight = 146;//144;
		}
		bLargeWnd = FALSE;
		for(i = 0; i < 4; i++)
		{
			myoutput[i].MoveWindow(MYVIEW_LEFT+i*iWidth+i*3, MYVIEW_TOP, iWidth, iHeight, true);
			myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+i*iWidth+i*3/*-2*/;
			myoutput[i].m_display_para.nTop = MYVIEW_TOP;
			myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
			myoutput[i].m_display_para.nHeight = iHeight;
			myoutput[i].ShowWindow(SW_SHOW);
		}
		for(i = 4; i < 8; i++)
		{
			myoutput[i].MoveWindow(MYVIEW_LEFT+(i-4)*iWidth+(i-4)*3, MYVIEW_TOP+iHeight+2, iWidth, iHeight, true);
			myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-4)*iWidth+(i-4)*3/*-2*/;
			myoutput[i].m_display_para.nTop = MYVIEW_TOP+iHeight+2;
			myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
			myoutput[i].m_display_para.nHeight = iHeight;
			myoutput[i].ShowWindow(SW_SHOW);
		}
		for(i = 8; i < 12; i++)
		{
			myoutput[i].MoveWindow(MYVIEW_LEFT+(i-8)*iWidth+(i-8)*3, MYVIEW_TOP+iHeight*2+4, iWidth, iHeight, true);
			myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-8)*iWidth+(i-8)*3/*-2*/;
			myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*2;
			myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
			myoutput[i].m_display_para.nHeight = iHeight;
			myoutput[i].ShowWindow(SW_SHOW);
		}
		for(i = 12; i < 16; i++)
		{
			myoutput[i].MoveWindow(MYVIEW_LEFT+(i-12)*iWidth+(i-12)*3, MYVIEW_TOP+iHeight*3+6, iWidth, iHeight, true);
			myoutput[i].m_display_para.nLeft = MYVIEW_LEFT+(i-12)*iWidth+(i-12)*3/*-2*/;
			myoutput[i].m_display_para.nTop = MYVIEW_TOP+(iHeight+2)*3;
			myoutput[i].m_display_para.nWidth = iWidth/*+2*/;
			myoutput[i].m_display_para.nHeight = iHeight;
			myoutput[i].ShowWindow(SW_SHOW);
		}
		break;
	case 1:
		if(ClientParam.m_bMultiScreen)
		{
			iWidth = 1024;
			iHeight = 768;
			MYVIEW_LEFT = 0;
			MYVIEW_TOP = 0;
		}
		else
		{
			MYVIEW_LEFT = 20;
			MYVIEW_TOP = 20;
			iWidth = 706;
			iHeight = 578;
		}
				
		myoutput[iPos].MoveWindow(MYVIEW_LEFT,MYVIEW_TOP,iWidth,iHeight,true);
		myoutput[iPos].m_display_para.nLeft = MYVIEW_LEFT;
		myoutput[iPos].m_display_para.nTop = MYVIEW_TOP;
		myoutput[iPos].m_display_para.nWidth = iWidth;
		myoutput[iPos].m_display_para.nHeight = iHeight;
		myoutput[iPos].ShowWindow(SW_SHOW);
		break;
	default:
		break;
	}
	if(ClientParam.m_bUseCard)
	{
		TRACE("Use Decode Card");
		TRACE("iNumber = %d", iNumber);
		NET_DVR_ClearSurface_Card();
		for(i = 0; i < MAXVIEWNUM; i++)
		{
			displaypara.bToScreen = 0;
			displaypara.bToVideoOut = 1;
			displaypara.nLeft = myoutput[i].m_display_para.nLeft;
			displaypara.nTop = myoutput[i].m_display_para.nTop;
			displaypara.nWidth = myoutput[i].m_display_para.nWidth;
			displaypara.nHeight = myoutput[i].m_display_para.nHeight;
			NET_DVR_ResetPara_Card(myoutput[i].m_iPlayhandle,&displaypara);
		}
		if(iNumber == 1)
		{//Enlarge
			displaypara.bToScreen = 1;
			displaypara.bToVideoOut = 1;
			displaypara.nLeft = myoutput[iPos].m_display_para.nLeft;
			displaypara.nTop = myoutput[iPos].m_display_para.nTop;
			displaypara.nWidth = myoutput[iPos].m_display_para.nWidth;
			displaypara.nHeight = myoutput[iPos].m_display_para.nHeight;
			NET_DVR_ResetPara_Card(myoutput[iPos].m_iPlayhandle,&displaypara);
		}
		else
		{//Shrink
			for(i = 0; i < iNumber; i++)
			{
				displaypara.bToScreen = 1;
				displaypara.bToVideoOut = 1;
				displaypara.nLeft = myoutput[i].m_display_para.nLeft;
				displaypara.nTop = myoutput[i].m_display_para.nTop;
				displaypara.nWidth = myoutput[i].m_display_para.nWidth;
				displaypara.nHeight = myoutput[i].m_display_para.nHeight;
				NET_DVR_ResetPara_Card(myoutput[i].m_iPlayhandle,&displaypara);
			}
		}
	}
}

void CNewclientDlg::MoveCurWin(int iWindowNum,int iCurWinPos)
{
	CNewclientDlg*  mainwnd =(CNewclientDlg*) AfxGetMainWnd();	
	int rectWidth = 0;
	int	rectHeight = 0;
	int	rectTop = 0;
	int	rectLeft = 0;
	switch(iWindowNum)
	{
	case 1:
		rectWidth = 706;
		rectHeight = 578;
		rectTop = MYVIEW_TOP;
		rectLeft = MYVIEW_LEFT;
		break;
	case 4:
		rectWidth = 354;
		rectHeight = 290;
		switch(iCurWinPos)
		{
		case 0:
		case 1:
			rectTop  = MYVIEW_TOP;
			rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*3; 
			break;
		case 2:
		case 3:
			rectTop  = MYVIEW_TOP+rectHeight+2;
			rectLeft = MYVIEW_LEFT+(iCurWinPos-2)*rectWidth+(iCurWinPos-2)*3; 
			break;	
		default:	
			break;	
		}
		break;
	case 9:
		rectWidth = 234;
		rectHeight = 192;
		switch(iCurWinPos)
		{
		case 0:
		case 1:
		case 2:
			rectTop  = MYVIEW_TOP;
			rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*3; 
			break;
		case 3:
		case 4:
		case 5:
			rectTop  = MYVIEW_TOP+rectHeight + 2;
			rectLeft = MYVIEW_LEFT+(iCurWinPos-3)*rectWidth+(iCurWinPos-3)*3; 
			break;
		case 6:
		case 7:
		case 8:
			rectTop  = MYVIEW_TOP+2*rectHeight+4;
			rectLeft = MYVIEW_LEFT+(iCurWinPos-6)*rectWidth+(iCurWinPos-6)*3; 
			break;
		default:
			break;
		}
		break;
	case 16:
		rectWidth = 178;
		rectHeight = 146;
		switch(iCurWinPos)
		{
		case 0:
		case 1:
		case 2:
		case 3:
			rectTop  = MYVIEW_TOP;
			rectLeft = MYVIEW_LEFT+iCurWinPos*rectWidth+iCurWinPos*3; 
			break;
		case 4:
		case 5:
		case 6:
		case 7:
			rectTop  = MYVIEW_TOP+rectHeight+2;
			rectLeft = MYVIEW_LEFT+(iCurWinPos-4)*rectWidth+(iCurWinPos-4)*3; 
			break;
		case 8:
		case 9:
		case 10:
		case 11:
			rectTop  = MYVIEW_TOP+2*rectHeight+4;
			rectLeft = MYVIEW_LEFT+(iCurWinPos-8)*rectWidth+(iCurWinPos-8)*3; 
			break;
		case 12:
		case 13:
		case 14:
		case 15:
			rectTop  = MYVIEW_TOP+3*rectHeight+6;
			rectLeft = MYVIEW_LEFT+(iCurWinPos-12)*rectWidth+(iCurWinPos-12)*3; 
			break;
		default:
			break;
		}
		break;
	default:
		break; 
	}
	mycurwin.m_black.ShowWindow(SW_HIDE);
	mycurwin.MoveWindow(rectLeft-1,rectTop-1,rectWidth+2,rectHeight+2);
	mycurwin.m_black.ShowWindow(SW_SHOW);
	mycurwin.EnableWindow(FALSE);
}
void CNewclientDlg::InitLed()
{
	int i;
	m_pCapLed[0] = &m_CapLed1;
	m_pCapLed[1] = &m_CapLed2;
	m_pCapLed[2] = &m_CapLed3;
	m_pCapLed[3] = &m_CapLed4;
	m_pCapLed[4] = &m_CapLed5;
	m_pCapLed[5] = &m_CapLed6;
	m_pCapLed[6] = &m_CapLed7;
	m_pCapLed[7] = &m_CapLed8;
	m_pCapLed[8] = &m_CapLed9;
	m_pCapLed[9] = &m_CapLed10;
	m_pCapLed[10] = &m_CapLed11;
	m_pCapLed[11] = &m_CapLed12;
	m_pCapLed[12] = &m_CapLed13;
	m_pCapLed[13] = &m_CapLed14;
	m_pCapLed[14] = &m_CapLed15;
	m_pCapLed[15] = &m_CapLed16;

	for(i = 0; i < MAXVIEWNUM; i++)
	{
		m_pCapLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_DISABLED,CLed::LED_ROUND);
	}
	m_pAlarmLed[0] = &m_AlarmLed1;
	m_pAlarmLed[1] = &m_AlarmLed2;
	m_pAlarmLed[2] = &m_AlarmLed3;
	m_pAlarmLed[3] = &m_AlarmLed4;
	m_pAlarmLed[4] = &m_AlarmLed5;
	m_pAlarmLed[5] = &m_AlarmLed6;
	m_pAlarmLed[6] = &m_AlarmLed7;
	m_pAlarmLed[7] = &m_AlarmLed8;
	m_pAlarmLed[8] = &m_AlarmLed9;
	m_pAlarmLed[9] = &m_AlarmLed10;
	m_pAlarmLed[10] = &m_AlarmLed11;
	m_pAlarmLed[11] = &m_AlarmLed12;
	m_pAlarmLed[12] = &m_AlarmLed13;
	m_pAlarmLed[13] = &m_AlarmLed14;
	m_pAlarmLed[14] = &m_AlarmLed15;
	m_pAlarmLed[15] = &m_AlarmLed16;
	
	for(i = 0; i < MAXVIEWNUM; i++)
	{
		m_pAlarmLed[i]->SetLed(CLed::LED_COLOR_RED,CLed::LED_DISABLED,CLed::LED_ROUND);
	}
}
void CNewclientDlg::F_InitDecodeCard()
{
	int nDispNum = 0;
	
	TRACE("Initialize decode card DS-4002MDI");
	int iRet=NET_DVR_InitDDraw_Card(this->m_hWnd,0xff00ff);
	
	iRet=NET_DVR_InitDevice_Card(&channelcount);
	
	TRACE("ChannelCount = %d", channelcount);	
	if(channelcount <= 0)
	{
		AfxMessageBox("Please install the decode card!");
		return;
	}
	else if(channelcount > 16)
	{
		channelcount = 16;
	}

	if(ClientParam.m_bNTSC)
	{
		nDispNum = GetDisplayChannelCount();
		if (nDispNum >= 2)
		{
			REGION_PARAM param[MAX_DISPLAY_REGION];
			int i;
			memset(param, 0, sizeof(param));
			for (i=0; i<MAX_DISPLAY_REGION; i++)
				param[i].color = RGB(i, i*8, i*16);
			for (i=0; i<nDispNum/2; i++)
			{
				SetDisplayStandard(2*i,StandardNTSC);
				param[0].left=0;	param[0].top=0;		param[0].width=352;		param[0].height=240;
				param[1].left=352;	param[1].top=0;		param[1].width=352;		param[1].height=240;
				param[2].left=0;	param[2].top=240;	param[2].width=352;		param[2].height=240;
				param[3].left=352;	param[3].top=240;	param[3].width=352;		param[3].height=240;
				if (SetDisplayRegion(2*i, 4, param, 0) != HWERR_SUCCESS)
				{
					TRACE("SetDisplayRegion failed!");
				}				
				SetDecoderVideoExtOutput(4*i, 0, 1, 2*i, 0, 0);
				SetDecoderVideoExtOutput(4*i+1, 0, 1, 2*i, 1, 0);		
				SetDecoderVideoExtOutput(4*i+2, 0, 1, 2*i, 2, 0);
				SetDecoderVideoExtOutput(4*i+3, 0, 1, 2*i, 3, 0);
				
				SetDisplayStandard(2*i+1,StandardNTSC);
				param[0].left=0;	param[0].top=0;		param[0].width=704;		param[0].height=480;
				if (SetDisplayRegion(2*i+1, 1, param, 0) != HWERR_SUCCESS)
				{
					TRACE("SetDisplayRegion failed!");
				}
				
				SetDecoderVideoExtOutput(4*i, 1, 1, 2*i+1, 0, 0);		
			}			
		}
	}
	else
	{
		nDispNum = GetDisplayChannelCount();
		if (nDispNum >= 2)
		{
			REGION_PARAM param[MAX_DISPLAY_REGION];
			int i;
			memset(param, 0, sizeof(param));
			for (i=0; i<MAX_DISPLAY_REGION; i++)
				param[i].color = RGB(i, i*8, i*16);
			for (i=0; i<nDispNum/2; i++)
			{
				SetDisplayStandard(2*i,StandardPAL);
				param[0].left=0;	param[0].top=0;		param[0].width=352;		param[0].height=288;
				param[1].left=352;	param[1].top=0;		param[1].width=352;		param[1].height=288;
				param[2].left=0;	param[2].top=288;	param[2].width=352;		param[2].height=288;
				param[3].left=352;	param[3].top=288;	param[3].width=352;		param[3].height=288;
				if (SetDisplayRegion(2*i, 4, param, 0) != HWERR_SUCCESS)
				{
					TRACE("SetDisplayRegion failed!");
				}				
				SetDecoderVideoExtOutput(4*i, 0, 1, 2*i, 0, 0);
				SetDecoderVideoExtOutput(4*i+1, 0, 1, 2*i, 1, 0);		
				SetDecoderVideoExtOutput(4*i+2, 0, 1, 2*i, 2, 0);
				SetDecoderVideoExtOutput(4*i+3, 0, 1, 2*i, 3, 0);
				
				SetDisplayStandard(2*i+1,StandardPAL);
				param[0].left=0;	param[0].top=0;		param[0].width=704;		param[0].height=576;
				if (SetDisplayRegion(2*i+1, 1, param, 0) != HWERR_SUCCESS)
				{
					TRACE("SetDisplayRegion failed!");
				}
				
				SetDecoderVideoExtOutput(4*i, 1, 1, 2*i+1, 0, 0);		
			}			
		}

⌨️ 快捷键说明

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