📄 mp_apdlg.cpp
字号:
DDX_Control(pDX, IDC_CHECK_DISPLAY, CButton_ChDisplay);
DDX_Control(pDX, IDC_CONNECT_ALL, m_butConnectAll);
DDX_Control(pDX, IDC_CHECK_EVENTRECORD, m_btnEventDrivenRec);
DDX_Control(pDX, IDC_SHRINK_WND, m_btnShrinkWnd);
DDX_Control(pDX, IDC_STATIC_FRLAB, m_stcFRPrompt);
DDX_Control(pDX, IDC_BUT_TX, m_btnTx);
DDX_Control(pDX, IDC_EDIT_TXFNAME, m_editTxFileName);
DDX_Control(pDX, IDC_BUT_TX_BROWSE, m_btnTxBrowse);
}
BEGIN_MESSAGE_MAP(CMP_APDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_TIMER()
ON_WM_CLOSE()
ON_WM_MOUSEMOVE()
ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_VOLUME, OnNMReleasedcaptureSliderVolume)
ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_RANGE, OnNMReleasedcaptureSliderRange)
ON_MESSAGE(WM_CLOSE_CHANNEL, OnCloseChannel)
ON_MESSAGE(WM_CONNECT_ERROR, OnConnectError)
ON_MESSAGE(WM_SIGNAL_CHANGED, OnSignalChanged)
ON_MESSAGE(WM_CHECK_UI, OnCallCheckUI)
ON_MESSAGE(WM_DELETE_CONNECTION, OnDeleteDataBrokerConn)
ON_MESSAGE(WM_UPDATE_DIDO, OnUpdateDIDO)
ON_MESSAGE(WM_SHOW_ERROR, OnShowError)
ON_MESSAGE(WM_TALK_EVENT, OnTalkEvent)
ON_MESSAGE(WM_TALK_CLEAN, OnTalkClean)
ON_MESSAGE(WM_SHOW_I_ARRIVE, OnChannelIArrive)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_BN_CLICKED(IDC_RADIO_CH1, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH2, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH3, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH4, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH5, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH6, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH7, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH8, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH9, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH10, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH11, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH12, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH13, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH14, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH15, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_RADIO_CH16, OnBnClickedRadioCh)
ON_BN_CLICKED(IDC_BUTTON_CH_SETTING, OnBnClickedButtonChSetting)
ON_BN_CLICKED(IDC_BUTTON_CONNECT, OnBnClickedButtonConnect)
ON_BN_CLICKED(IDC_BUTTON_RECORD, OnBnClickedButtonRecord)
ON_BN_CLICKED(IDC_BUTTON_SNAP, OnBnClickedButtonSnap)
ON_BN_CLICKED(IDC_ENLARGE_WND, OnBnClickedButton3)
ON_BN_CLICKED(IDC_CHECK_DISPLAY, OnBnClickedCheckDisplay)
ON_BN_CLICKED(IDC_CHECK_EVENTRECORD, OnBnClickedCheckEventrecord)
ON_BN_CLICKED(IDC_SHRINK_WND, OnBnClickedShrinkWnd)
ON_BN_CLICKED(IDC_CHECK_SWAP12, OnBnClickedCheckSwap12)
ON_BN_CLICKED(IDC_BUT_TX, OnBnClickedButTx)
ON_BN_CLICKED(IDC_BUT_TX_BROWSE, OnBnClickedButTxBrowse)
ON_BN_CLICKED(IDC_CHECK_NOBORDER, OnBnClickedCheckNoborder)
ON_BN_CLICKED(IDC_BUTTON_TALK, OnBnClickedButtonTalk)
ON_BN_CLICKED(IDC_BUTTON_PAUSE, OnBnClickedButtonPause)
ON_BN_CLICKED(IDC_BUTTON_PLAY, OnBnClickedButtonPlay)
ON_BN_CLICKED(IDC_CHECK_NON_YUV, OnBnClickedCheckNonYuv)
ON_BN_CLICKED(IDC_CONNECT_ALL, OnBnClickedConnectAll)
END_MESSAGE_MAP()
BOOL CMP_APDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
//Read the Inifile and get parameters
InitialParameters();
MoveWindow(0,0,1024,768);
m_DIPrompt.MoveWindow(530, 635, 35, 22);
m_stcFRPrompt.MoveWindow(540, 610, 25, 22);
//Arrange channle control Layout
ArrangeChannle(g_nMaxChannel);
CButton_ChDisplay.MoveWindow(20, 50, 75, 25);
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);
GetDlgItem(IDC_CHECK_SHOW_RETURN)->MoveWindow(435, 637, 85, 18);
CButton_EnlargeWnd.MoveWindow(270, 677, 70, 18);
m_btnShrinkWnd.MoveWindow(345, 677, 70, 18);
m_btnTx.MoveWindow(30, 650, 70, 18);
m_editTxFileName.MoveWindow(105, 650, 200, 18);
m_btnTxBrowse.MoveWindow(310, 650, 25, 18);
GetDlgItem(IDC_BUTTON_TALK)->MoveWindow(350, 650, 70, 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);
SetTimer(1,1000,NULL);
SetTimer(2,10000,NULL);
if (g_iFocus >= g_nMaxChannel)
g_iFocus = g_nMaxChannel - 1;
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
//=================================================================
// Function Group: WINDOW_MESSAGE Event Start Line
//=================================================================
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);
}
//=================================================================
// Function Group: ON_MESSAGE Event Start Line
//=================================================================
LRESULT CMP_APDlg::OnCloseChannel(WPARAM wParam, LPARAM lParam)
{
Disconnect_Channel(wParam);
return 0;
}
LRESULT CMP_APDlg::OnSignalChanged(WPARAM wParam, LPARAM lParam)
{
char szBuf[MAX_PATH];
sprintf(szBuf, "Channel %d Signal is changed to %s", wParam + 1,
lParam == eSignalRestored?"ON":"OFF");
MessageBox(szBuf, "Information", MB_OK);
return 0;
}
LRESULT CMP_APDlg::OnConnectError(WPARAM wParam, LPARAM lParam)
{
char szBuf[MAX_PATH];
switch (lParam)
{
case connErrAuth :
sprintf(szBuf, "Channel %d Authenticated failed", wParam + 1);
break;
case connErrConnFailed :
sprintf(szBuf, "Channel %d connected failed", wParam + 1);
break;
case connErrHttpRead :
sprintf(szBuf, "Channel %d read HTML data failed", wParam + 1);
break;
case connErrOutMemory :
sprintf(szBuf, "Channel %d connected failed because out of memory", wParam + 1);
break;
default :
return 0;
}
MessageBox(szBuf, "Error", MB_OK);
return 0;
}
LRESULT CMP_APDlg::OnCallCheckUI(WPARAM wParam, LPARAM lParam)
{
CheckUI();
return 0;
}
LRESULT CMP_APDlg::OnUpdateDIDO(WPARAM wParam, LPARAM lParam)
{
TSrvDepResource_ServerInfo srvInfo;
DWORD dwlParam;
WORD wDIVal, wDOVal;
CString strTmp, str;
int nFlag = 1, nCnt;
int index;
index = (int) wParam;
SrvDepResource_GetParamForServerByFriendlyName(g_Channel_Info[index].chServer_Type, &srvInfo);
dwlParam = (DWORD) lParam;
wDIVal = LOWORD(dwlParam);
wDOVal = HIWORD(dwlParam);
for (nCnt = 0; nCnt < (int) srvInfo.dwDiNum; nCnt++, nFlag <<= 1)
{
if (wDIVal & nFlag)
strTmp = "H";
else
strTmp = "L";
if (nCnt > 0)
str += "\n";
str += strTmp;
}
str += "\n";
nFlag = 1;
for (nCnt = 0; nCnt < (int) srvInfo.dwDoNum; nCnt++, nFlag <<= 1)
{
if (wDOVal & nFlag)
strTmp = "1";
else
strTmp = "0";
if (nCnt > 0)
str += "\n";
str += strTmp;
}
strTmp.Format("%s", str);
CWnd *pWnd = GetDlgItem(IDC_STATIC_DIVAL1 + index);
pWnd->SetWindowText(str);
return 0;
}
LRESULT CMP_APDlg::OnChannelIArrive(WPARAM wParam, LPARAM lParam)
{
char szBuf[256];
sprintf(szBuf, "Channel %d: I frame arrived at %d\n", wParam, lParam);
CEdit *pEdit = (CEdit *) GetDlgItem(IDC_UPGRADE_STATUS);
pEdit->SetSel(-1, 0, FALSE);
CString strOrg;
pEdit->GetWindowText(strOrg);
if (strOrg.GetLength() > 0)
pEdit->ReplaceSel("\r\n");
pEdit->ReplaceSel(szBuf);
return 0;
}
LRESULT CMP_APDlg::OnTalkEvent(WPARAM wParam, LPARAM lParam)
{
if (g_Channel_Info[wParam].nTxConn == 2)
TalkOneChannel(wParam);
else
TxOnChannel(wParam);
return 0;
}
LRESULT CMP_APDlg::OnTalkClean(WPARAM wParam, LPARAM lParam)
{
g_Channel_Info[wParam].eTalkState = eTalkNone;
g_Channel_Info[wParam].nTxConn = 0;
CheckUI();
return 0;
}
void CMP_APDlg::OnClose()
{
OnBnClickedOk();
}
void CMP_APDlg::OnMouseMove(UINT nFlags, CPoint point)
{
if(nFlags == MK_LBUTTON)
{
::ReleaseCapture();
::SendMessage(m_hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0);
}
CDialog::OnMouseMove(nFlags, point);
}
//=================================================================
// Function Group: OnClick Events Start Line
//=================================================================
void CMP_APDlg::OnBnClickedOk()
{
CWaitCursor ws;
KillTimer(1);
m_bExit = TRUE;
Release_Module();
WriteParameters();
OnOK();
}
void CMP_APDlg::OnBnClickedRadioCh()
{
UpdateData();
CheckUI();
}
void CMP_APDlg::OnBnClickedButtonChSetting()
{
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();
}
}
void CMP_APDlg::OnBnClickedButtonConnect()
{
// 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)
{
// call disconnect channel
EnterCriticalSection(&m_CS);
g_Channel_Info[g_iFocus].bUserStop = TRUE;
g_Channel_Info[g_iFocus].bNeedReconnect = FALSE;
LeaveCriticalSection(&m_CS);
Disconnect_Channel();
}
else
{
char chTemp[32];
sprintf(chTemp,"Channel %d",g_iFocus);
MessageBox(" Please stop recording!",chTemp,MB_ICONWARNING);
}
}
CheckUI();
}
void CMP_APDlg::OnBnClickedButtonRecord()
{
if (g_Channel_Info[g_iFocus].bRecording == FALSE)
{
if ( g_Channel_Info[g_iFocus].bConnecting == TRUE)
{
g_Channel_Info[g_iFocus].bRecording = TRUE;
CButton_Record.SetWindowText("Stop");
StartRecord_Channel();
}
else
{
char chTemp[32];
sprintf(chTemp,"Channel %d",g_iFocus);
MessageBox(" No connecting!",chTemp,MB_ICONWARNING);
}
}
else
{
g_Channel_Info[g_iFocus].bRecording = FALSE;
StopRecord_Channel();
CButton_Record.SetWindowText("Record");
}
}
void CMP_APDlg::OnBnClickedButtonSnap()
{
TSNAPSHOT tSnapShot;
FILE * fp = NULL;
SCODE scResult;
int nStart, nEnd;
char szFileName[MAX_PATH];
if (g_bSnapAllChannel)
{
nStart = 0;
nEnd = g_nMaxChannel - 1;
}
else
{
nStart = g_iFocus;
nEnd = g_iFocus;
}
for (int nCnt = nStart; nCnt <= nEnd; nCnt++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -