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

📄 mp_apdlg.cpp

📁 一个在Linux下开发的IP摄像头的驱动程序及控制软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		GetDlgItem(IDC_STATIC_DIVAL13)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_DIVAL14)->MoveWindow(908, 657, 25, 73);
		GetDlgItem(IDC_STATIC_DIVAL14)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_DIVAL15)->MoveWindow(934, 657, 25, 73);
		GetDlgItem(IDC_STATIC_DIVAL15)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_DIVAL16)->MoveWindow(960, 657, 25, 73);
		GetDlgItem(IDC_STATIC_DIVAL16)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR5)->MoveWindow(674, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR5)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR6)->MoveWindow(700, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR6)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR7)->MoveWindow(726, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR7)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR8)->MoveWindow(752, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR8)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR9)->MoveWindow(778, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR9)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR10)->MoveWindow(804, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR10)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR11)->MoveWindow(830, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR11)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR12)->MoveWindow(856, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR12)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR13)->MoveWindow(882, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR13)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR14)->MoveWindow(908, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR14)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR15)->MoveWindow(934, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR15)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_FR16)->MoveWindow(960, 610, 25, 25);
		GetDlgItem(IDC_STATIC_FR16)->ShowWindow(SW_SHOW);
	}

	//((CButton *) GetDlgItem(IDC_RADIO_CH1 + g_iFocus))->SetCheck(1);
	
	CButton_ChDisplay.MoveWindow(20, 50, 75, 25);
	// Sylvia
	m_btnEventDrivenRec.MoveWindow(20, 80, 75, 25);
	GetDlgItem(IDC_CHECK_SWAP12)->MoveWindow(20, 107, 75, 25);
	GetDlgItem(IDC_CHECK_NOBORDER)->MoveWindow(20, 132, 80, 20);

	CButton_CH_Setting.MoveWindow(20,152, 75, 40);
	m_butConnectAll.MoveWindow(20, 192, 75, 40);

	CSTatic_Connect.MoveWindow(10, 250, 100, 185);
	CButton_Connect.MoveWindow(20, 265, 75, 45);
	CButton_Record.MoveWindow(20, 320, 75, 45);
	CButton_Snap.MoveWindow(20, 375, 75, 45);

	m_STATIC_STATUS.MoveWindow(5,445,110,150);
	
	CSliderCtrl_Volume.MoveWindow(30, 600, 500, 35);
	CSliderCtrl_Volume.SetRange(0,100,TRUE);

	m_StaticUrlCmd.MoveWindow(30, 637, 75, 18);
	m_editUrlCmd.MoveWindow(113, 637, 240, 18);
	m_butPost.MoveWindow(356, 637, 35, 18);
	m_butGet.MoveWindow(395, 637, 35, 18);
	GetDlgItem(IDC_CHECK_SHOW_RETURN)->MoveWindow(435, 637, 85, 18);
	CButton_SetDO1.MoveWindow(270, 657, 60, 18);
	CEdit_DO1Val.MoveWindow(335, 657, 40, 18);
	GetDlgItem(IDC_BUTTON_SETPARAM)->MoveWindow(380, 657, 60, 18);
	GetDlgItem(IDC_EDIT_SETPARAM_CNT)->MoveWindow(445, 657, 30, 18);
	GetDlgItem(IDC_BUTTON_UPD_REMOTE)->MoveWindow(480, 657, 70, 18);

	GetDlgItem(IDC_READ_UART)->MoveWindow(30, 657, 70, 18);
	GetDlgItem(IDC_EDIT_UART)->MoveWindow(105, 657, 150, 18);
	GetDlgItem(IDC_WRITE_UART)->MoveWindow(30, 677, 70, 18);
	GetDlgItem(IDC_EDIT_UART2)->MoveWindow(105, 677, 150, 18);

	CButton_EnlargeWnd.MoveWindow(270, 677, 70, 18);
	m_btnShrinkWnd.MoveWindow(345, 677, 70, 18);
	m_btnGetSys.MoveWindow(420, 677, 50, 18);
	GetDlgItem(IDC_BUTTON_GETMD)->MoveWindow(475, 677, 40, 18);
	GetDlgItem(IDC_BUTTON_SETMD)->MoveWindow(520, 677, 40, 18);

	m_btnTx.MoveWindow(30, 697, 70, 18);
	m_editTxFileName.MoveWindow(105, 697, 200, 18);
	m_btnTxBrowse.MoveWindow(310, 697, 25, 18);
	GetDlgItem(IDC_BUTTON_UPGRADE)->MoveWindow(340, 697, 55, 18);
	GetDlgItem(IDC_BUTTON_GET_SECENTRY)->MoveWindow(400, 697, 70, 18);
	GetDlgItem(IDC_BUTTON_TALK)->MoveWindow(475, 697, 70, 18);

	GetDlgItem(IDC_UPGRADE_STATUS)->MoveWindow(30, 717, 400, 18);
    
	g_Channel_Info[g_iFocus].bEventRecord = FALSE;
	g_Channel_Info[g_iFocus].bEventRecording = FALSE;
	g_Channel_Info[g_iFocus].dwCBCount = 0;
	CheckUI();
	
	int nRet = Initial_Module();
	if (nRet != 0)
		PostMessage(WM_CLOSE);

#if defined(CHECK_DI) && !defined(_SERVERUTL_ASYNC)
	unsigned int dwThreadID;
	m_hPollingThread = _beginthreadex(NULL, 0, DIPollingProc, this, 0, &dwThreadID);
	m_hStopEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
#endif // CHECK_DI && !_SERVERUTL_ASYNC

	SetTimer(1,1000,NULL);
	SetTimer(2,10000,NULL);
	if (g_iFocus >= g_nMaxChannel)
		g_iFocus = g_nMaxChannel - 1;
	UpdateData(FALSE);

	// could set the bitmap as external file.
//	AvSynchronizer_SetChannelOption(g_Channel_Info[0].hChannel, SETCH_BITMAP_FILE, (DWORD) "f:\\pic\\test.jpg", 0);

	return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CMP_APDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this function to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CMP_APDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

void CMP_APDlg::OnBnClickedOk()
{
	// TODO: Add your control notification handler code here
	CWaitCursor ws;
	KillTimer(1);
	m_bExit = TRUE;
#if defined(CHECK_DI) && !defined(_SERVERUTL_ASYNC)
	SetEvent(m_hStopEvent);
#endif // CHECK_DI && !_SERVERUTL_ASYNC

	Release_Module();
	WriteParameters();
	OnOK();
}

void CMP_APDlg::OnBnClickedRadioCh1()
{
	// TODO: Add your control notification handler code here
	UpdateData();
//	g_iFocus++;
	CheckUI();
}

void CMP_APDlg::OnBnClickedRadioCh2()
{
	// TODO: Add your control notification handler code here
	UpdateData();
//	g_iFocus++;
	CheckUI();
}

void CMP_APDlg::OnBnClickedRadioCh3()
{
	// TODO: Add your control notification handler code here
	UpdateData();
//	g_iFocus++;
	CheckUI();
}

void CMP_APDlg::OnBnClickedRadioCh4()
{
	// TODO: Add your control notification handler code here
	UpdateData();
//	g_iFocus++;
	CheckUI();
}

void CMP_APDlg::OnBnClickedButtonChSetting()
{
	// TODO: Add your control notification handler code here
	DlgChannel.ChannelSetting(g_iFocus,g_Channel_Info[g_iFocus]);
	DlgChannel.m_phSrvUtl = &m_hServUtil;

	if (DlgChannel.DoModal()==IDOK)
	{
		g_Channel_Info[g_iFocus]=DlgChannel.m_Ch_Info;
		CheckUI();
	}
	//else
	//	;
}

int CMP_APDlg::CheckUI(void)
{
	m_btnGetSys.EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp)));
	GetDlgItem(IDC_BUTTON_GETMD)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp)));
	GetDlgItem(IDC_BUTTON_SETMD)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp)));

	m_editUrlCmd.EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncHttpOperGet | asyncHttpOperPost)));
	GetDlgItem(IDC_CHECK_SHOW_RETURN)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncHttpOperGet | asyncHttpOperPost)));
	m_StaticUrlCmd.EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncHttpOperGet | asyncHttpOperPost)));
	m_butGet.EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncHttpOperGet | asyncHttpOperPost)));
	m_butPost.EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncHttpOperGet | asyncHttpOperPost)));
//	m_DIPrompt.EnableWindow(g_Channel_Info[g_iFocus].bConnecting);
//	m_DIVal.EnableWindow(g_Channel_Info[g_iFocus].bConnecting);
	CButton_SetDO1.EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncSetDO)));
	CEdit_DO1Val.EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncSetDO)));
	GetDlgItem(IDC_BUTTON_SETPARAM)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncSetDO)));
	GetDlgItem(IDC_BUTTON_UPD_REMOTE)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp)));
	GetDlgItem(IDC_EDIT_SETPARAM_CNT)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncSetDO)));
	GetDlgItem(IDC_READ_UART)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncUartRead)));
	GetDlgItem(IDC_EDIT_UART)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncUartRead)));
	GetDlgItem(IDC_WRITE_UART)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncUartWrite)));
	GetDlgItem(IDC_EDIT_UART2)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp | asyncUartWrite)));
	((CButton *) GetDlgItem(IDC_CHECK_NOBORDER))->SetCheck(g_Channel_Info[g_iFocus].bNoBorder?1:0);
	GetDlgItem(IDC_BUTTON_GET_SECENTRY)->EnableWindow(g_Channel_Info[g_iFocus].bConnecting &&
		!(g_Channel_Info[g_iFocus].dwAsyncOper & (asyncSetProp)));

	if (g_Channel_Info[g_iFocus].chServer_Type[2] > '3' && g_Channel_Info[g_iFocus].chServer_Type[2] != '7')
	{
		BOOL bTalkEnabled = !(g_Channel_Info[g_iFocus].eTalkState == eTalkEstablishing ||
							 g_Channel_Info[g_iFocus].eTalkState == eTalkStopping);

		bTalkEnabled &= (g_Channel_Info[g_iFocus].iAudioMode < 3);

		m_btnTx.EnableWindow(bTalkEnabled && g_Channel_Info[g_iFocus].bConnecting && g_Channel_Info[g_iFocus].nTxConn != 2);
		GetDlgItem(IDC_BUTTON_TALK)->EnableWindow(!m_bNoAudio && bTalkEnabled && g_Channel_Info[g_iFocus].bConnecting && g_Channel_Info[g_iFocus].nTxConn != 1);
		m_editTxFileName.EnableWindow(bTalkEnabled && g_Channel_Info[g_iFocus].bConnecting && g_Channel_Info[g_iFocus].nTxConn == 0);
		m_btnTxBrowse.EnableWindow(bTalkEnabled && g_Channel_Info[g_iFocus].bConnecting && g_Channel_Info[g_iFocus].nTxConn == 0);

		if (g_Channel_Info[g_iFocus].nTxConn == 1)
			m_btnTx.SetWindowText("Stop Tx");
		else
			m_btnTx.SetWindowText("Start Tx");

		if (g_Channel_Info[g_iFocus].nTxConn == 2)
			GetDlgItem(IDC_BUTTON_TALK)->SetWindowText("Stop Talk");
		else
			GetDlgItem(IDC_BUTTON_TALK)->SetWindowText("Start Talk");
	}
	else
	{
		m_btnTx.EnableWindow(FALSE);
		m_editTxFileName.EnableWindow(FALSE);
		m_btnTxBrowse.EnableWindow(FALSE);
		GetDlgItem(IDC_BUTTON_TALK)->EnableWindow(FALSE);
	}

	CButton_ChDisplay.SetCheck(g_Channel_Info[g_iFocus].bNoDisplay?0:1);

	CSliderCtrl_Volume.SetPos(g_Channel_Info[g_iFocus].dwVolume);

	BOOL bEnabled = FALSE;
	if (g_Channel_Info[g_iFocus].chStatus == channelStopped ||
		g_Channel_Info[g_iFocus].chStatus == channelConnected)
		bEnabled = TRUE;

	if ( strlen(g_Channel_Info[g_iFocus].chServer_Type) == 0 )
	{
		CButton_Record.EnableWindow(FALSE);
		CButton_Connect.EnableWindow(FALSE);
		CButton_Snap.EnableWindow(FALSE);
	}
	else
	{
		CButton_Record.EnableWindow(bEnabled && g_Channel_Info[g_iFocus].bConnecting);
		CButton_Snap.EnableWindow(bEnabled && g_Channel_Info[g_iFocus].bConnecting);
		CSliderCtrl_Range.EnableWindow(g_Channel_Info[g_iFocus].dwMediaEnd && bEnabled);
		CButton_Pause.EnableWindow(bEnabled && g_Channel_Info[g_iFocus].eRtspState == eRtspStPlay);
		CButton_Play.EnableWindow(bEnabled && g_Channel_Info[g_iFocus].eRtspState != eRtspStPlay);
	}

	if (g_Channel_Info[g_iFocus].chStatus != channelStopped)
		CButton_Connect.SetWindowText("Disconnect");
	else
		CButton_Connect.SetWindowText("Connect");

	if ( g_Channel_Info[g_iFocus].bRecording == TRUE )
		CButton_Record.SetWindowText("Stop");
	else
		CButton_Record.SetWindowText("Record");

	// close non-focus channel's audio
	TUPDATECHANNELOPTION tUpdateChannelOptions;
    for ( int i=0 ; i < g_nMaxChannel ; i ++ )
	{
		tUpdateChannelOptions.dwFlags=UPCH_AUDIOOUT;
		if (i == g_iFocus)
		{
			tUpdateChannelOptions.bAudioOut=TRUE;

			// mute half duplex when upstream is enabled.
			if((g_Channel_Info[g_iFocus].iAudioMode == 2) & (g_Channel_Info[g_iFocus].nTxConn))
			{
				tUpdateChannelOptions.bAudioOut=FALSE;
			}
		}
		else
			tUpdateChannelOptions.bAudioOut=FALSE;

		tUpdateChannelOptions.dwFlags=UPCH_AUDIOOUT;
		if ( g_Channel_Info[i].hChannel != NULL )
			AvSynchronizer_UpdateChannelSettings (g_Channel_Info[i].hChannel,tUpdateChannelOptions );
	}

	g_Channel_Info[g_iFocus].nTimerDI = 0;

	m_btnEventDrivenRec.EnableWindow(g_Channel_Info[g_iFocus].bConnecting);
	m_btnEventDrivenRec.SetCheck(g_Channel_Info[g_iFocus].bEventRecord?1:0);
	
	return 0;
}

void CMP_APDlg::OnBnClickedButtonConnect()
{
	//TRACE(" Time----------->%ld\n",GetTickCount());
	// TODO: Add your control notification handler code here

	if ( g_Channel_Info[g_iFocus].chStatus == channelStopped )
	{
		// call connect channel
		EnterCriticalSection(&m_CS);
		g_Channel_Info[g_iFocus].bUserStop = FALSE;
		g_Channel_Info[g_iFocus].bNeedReconnect = FALSE;
		LeaveCriticalSection(&m_CS);

		Connect_Channel(g_iFocus);
	}
	else
	{
		if ( g_Channel_Info[g_iFocus].bRecording==FALSE)

⌨️ 快捷键说明

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