| | |
| | | // ViewLiveCam.cpp : 备泅 颇老涝聪促. |
| | | // ViewLiveCam.cpp : 备泅 颇老涝聪促. |
| | | // |
| | | |
| | | #include "stdafx.h" |
| | |
| | | #include "afxdialogex.h" |
| | | #include "Global_Define.h" |
| | | |
| | | // CViewLiveCam 措拳 惑磊涝聪促. |
| | | // CViewLiveCam 措拳 惑磊涝聪促. |
| | | |
| | | IMPLEMENT_DYNAMIC(CViewMain_LiveCam, CDialogEx) |
| | | |
| | |
| | | m_IV2M = NULL; |
| | | m_pGlassData = NULL; |
| | | m_pHardware = NULL; |
| | | for(int i=0;i<MAX_CAMERA_COUNT;i++) |
| | | { |
| | | for (int i = 0; i < MAX_CAMERA_COUNT; i++) { |
| | | m_dZoom[i] = 1; |
| | | } |
| | | } |
| | |
| | | |
| | | void CViewMain_LiveCam::DoDataExchange(CDataExchange* pDX) |
| | | { |
| | | DDX_Control(pDX, IDC_SCROLLBAR1 , m_ctrlScrollH[0]); |
| | | DDX_Control(pDX, IDC_SCROLLBAR2 , m_ctrlScrollH[1]); |
| | | DDX_Control(pDX, IDC_SCROLLBAR3 , m_ctrlScrollH[2]); |
| | | DDX_Control(pDX, IDC_SCROLLBAR4 , m_ctrlScrollH[3]); |
| | | DDX_Control(pDX, IDC_SCROLLBAR1, m_ctrlScrollH[0]); |
| | | DDX_Control(pDX, IDC_SCROLLBAR2, m_ctrlScrollH[1]); |
| | | DDX_Control(pDX, IDC_SCROLLBAR3, m_ctrlScrollH[2]); |
| | | DDX_Control(pDX, IDC_SCROLLBAR4, m_ctrlScrollH[3]); |
| | | DDX_Control(pDX, IDC_SCROLLBAR5, m_ctrlScrollH[4]); |
| | | DDX_Control(pDX, IDC_SCROLLBAR6, m_ctrlScrollH[5]); |
| | | |
| | | CDialogEx::DoDataExchange(pDX); |
| | | } |
| | | |
| | | BEGIN_MESSAGE_MAP(CViewMain_LiveCam, CDialogEx) |
| | | ON_MESSAGE(WM_LIVE_IMG_UPDATE , OnLiveImgUpDate) |
| | | ON_MESSAGE(WM_LIVE_IMG_UPDATE, OnLiveImgUpDate) |
| | | ON_WM_HSCROLL() |
| | | ON_WM_TIMER() |
| | | ON_WM_MOUSEWHEEL() |
| | |
| | | ON_EVENT(CViewMain_LiveCam, IDC_BTN_CAM_SNAP, DISPID_CLICK, CViewMain_LiveCam::OnBnClickedBtnCamSnap, VTS_NONE) |
| | | END_EVENTSINK_MAP() |
| | | |
| | | // CViewLiveCam 皋矫瘤 贸府扁涝聪促. |
| | | // CViewLiveCam 皋矫瘤 贸府扁涝聪促. |
| | | int CViewMain_LiveCam::GetIndex(int nSide) |
| | | { |
| | | int nIndex = 0; |
| | | |
| | | if(m_pHardware != NULL) |
| | | { |
| | | int nIndex = 0; |
| | | if(m_pHardware != NULL) { |
| | | nIndex = m_pHardware->GetCameraIndexToDimension((DimensionDir)nSide); |
| | | } |
| | | |
| | |
| | | { |
| | | m_pHardware = pHW; |
| | | |
| | | int nSide,i; |
| | | LPBYTE plpBuf = NULL; |
| | | for(i = 0 ; i < 4 ; i++) |
| | | { |
| | | int nSide, i; |
| | | LPBYTE plpBuf = NULL; |
| | | for(i = 0 ; i < 6 ; i++) { |
| | | nSide = LiveGetSideIdx(i); |
| | | |
| | | m_frameImg[i].SetSide(nSide); |
| | | |
| | | plpBuf = NULL; |
| | | if(m_IV2M != NULL) |
| | | plpBuf = m_IV2M->IV2M_GetGrabBufferByDimension((DimensionDir)nSide,0); |
| | | if (m_IV2M != NULL) { |
| | | plpBuf = m_IV2M->IV2M_GetGrabBufferByDimension((DimensionDir)nSide, 0); |
| | | } |
| | | |
| | | CCameraSettings* pCamera = m_pHardware->GetCameraSettings(i, 0); |
| | | if (pCamera != nullptr) { |
| | | m_frameImg[i].SetImgSize(pCamera->m_FrameSize.cx, pCamera->m_FrameSize.cy); |
| | | } |
| | | |
| | | m_frameImg[i].SetImage(plpBuf); |
| | | m_frameImg[i].SetGlassData(m_pGlassData); |
| | | } |
| | |
| | | { |
| | | UpdateData(FALSE); |
| | | |
| | | CRect rc[4]; |
| | | int i =0; |
| | | |
| | | |
| | | CRect rc[6]; |
| | | GetDlgItem(IDC_STATIC_CAM1)->GetWindowRect(rc[0]); |
| | | GetDlgItem(IDC_STATIC_CAM2)->GetWindowRect(rc[1]); |
| | | GetDlgItem(IDC_STATIC_CAM3)->GetWindowRect(rc[2]); |
| | | GetDlgItem(IDC_STATIC_CAM4)->GetWindowRect(rc[3]); |
| | | GetDlgItem(IDC_STATIC_CAM5)->GetWindowRect(rc[4]); |
| | | GetDlgItem(IDC_STATIC_CAM6)->GetWindowRect(rc[5]); |
| | | |
| | | for(i = 0 ; i < 4 ; i++) |
| | | { |
| | | ScreenToClient(rc[i]); |
| | | for (int i = 0; i < 6; i++) { |
| | | ScreenToClient(rc[i]); |
| | | m_frameImg[i].InitBitMap(); |
| | | |
| | | m_frameImg[i].Create(NULL,NULL,WS_VISIBLE | WS_CHILD,rc[i],this,0); |
| | | |
| | | m_frameImg[i].Create(NULL, NULL, WS_VISIBLE | WS_CHILD, rc[i], this, 0); |
| | | |
| | | m_dZoom[i] = 1; |
| | | m_frameImg[i].SetZommMode(m_dZoom[i]); |
| | |
| | | |
| | | int CViewMain_LiveCam::LiveGetSideIdx(int nViewIndex) |
| | | { |
| | | if(m_pHardware == NULL) |
| | | if (m_pHardware == nullptr) { |
| | | return 0; |
| | | |
| | | CCameraSettings *pCamera = NULL; |
| | | |
| | | pCamera = m_pHardware->GetCameraSettings(nViewIndex,0); |
| | | if(pCamera == NULL) |
| | | } |
| | | |
| | | CCameraSettings* pCamera = m_pHardware->GetCameraSettings(nViewIndex, 0); |
| | | if (pCamera == nullptr) { |
| | | return 0; |
| | | } |
| | | |
| | | return (int)pCamera->m_eDimension; |
| | | } |
| | | |
| | | BOOL CViewMain_LiveCam::PreTranslateMessage(MSG* pMsg) |
| | | { |
| | | if( pMsg->message == WM_KEYDOWN ) |
| | | { |
| | | if(pMsg->wParam == VK_RETURN |
| | | || pMsg->wParam == VK_ESCAPE ) |
| | | { |
| | | if( pMsg->message == WM_KEYDOWN ) { |
| | | if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE) { |
| | | ::TranslateMessage(pMsg); |
| | | ::DispatchMessage(pMsg); |
| | | return TRUE; // DO NOT process further |
| | | return TRUE; |
| | | } |
| | | } |
| | | |
| | |
| | | OnBnClickedBtnStop(); |
| | | |
| | | int nDisplayFrame = 0; |
| | | if(m_nRdoSignal == 0) |
| | | { |
| | | if(m_nRdoSignal == 0) { |
| | | nDisplayFrame = 20; |
| | | } |
| | | |
| | | if(m_IV2M != NULL) |
| | | { |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0),FALSE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1),FALSE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2),FALSE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3),FALSE); |
| | | if(m_IV2M != NULL) { |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0), FALSE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1), FALSE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2), FALSE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3), FALSE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(4), FALSE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(5), FALSE); |
| | | } |
| | | |
| | | SetTimer(1,100,NULL); |
| | |
| | | |
| | | void CViewMain_LiveCam::OnTimer(UINT_PTR nIDEvent) |
| | | { |
| | | for(int i = 0 ; i < 4 ; i++) |
| | | { |
| | | for(int i = 0 ; i < 6 ; i++) { |
| | | m_frameImg[i].ViewUpdate(); |
| | | } |
| | | |
| | |
| | | |
| | | void CViewMain_LiveCam::OnBnClickedBtnStop() |
| | | { |
| | | if(m_IV2M != NULL) |
| | | { |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0),TRUE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1),TRUE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2),TRUE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3),TRUE); |
| | | if(m_IV2M != NULL) { |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0), TRUE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1), TRUE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2), TRUE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3), TRUE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(4), TRUE); |
| | | m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(5), TRUE); |
| | | } |
| | | |
| | | KillTimer(1); |
| | |
| | | |
| | | void CViewMain_LiveCam::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) |
| | | { |
| | | // TODO: 咯扁俊 皋矫瘤 贸府扁 内靛甫 眠啊 棺/肚绰 扁夯蔼阑 龋免钦聪促. |
| | | // TODO: 咯扁俊 皋矫瘤 贸府扁 内靛甫 眠啊 棺/肚绰 扁夯蔼阑 龋免钦聪促. |
| | | |
| | | int nIndex; |
| | | |
| | | if(pScrollBar->m_hWnd == m_ctrlScrollH[0].m_hWnd) |
| | | { |
| | | if(pScrollBar->m_hWnd == m_ctrlScrollH[0].m_hWnd) { |
| | | nIndex = 0; |
| | | } |
| | | else if(pScrollBar->m_hWnd == m_ctrlScrollH[1].m_hWnd) |
| | | { |
| | | else if(pScrollBar->m_hWnd == m_ctrlScrollH[1].m_hWnd) { |
| | | nIndex = 1; |
| | | } |
| | | else if(pScrollBar->m_hWnd == m_ctrlScrollH[2].m_hWnd) |
| | | { |
| | | else if(pScrollBar->m_hWnd == m_ctrlScrollH[2].m_hWnd) { |
| | | nIndex = 2; |
| | | } |
| | | else if(pScrollBar->m_hWnd == m_ctrlScrollH[3].m_hWnd) |
| | | { |
| | | else if(pScrollBar->m_hWnd == m_ctrlScrollH[3].m_hWnd) { |
| | | nIndex = 3; |
| | | } |
| | | |
| | | |
| | | if(nIndex != -1) |
| | | { |
| | | else if (pScrollBar->m_hWnd == m_ctrlScrollH[4].m_hWnd) { |
| | | nIndex = 4; |
| | | } |
| | | else if (pScrollBar->m_hWnd == m_ctrlScrollH[5].m_hWnd) { |
| | | nIndex = 5; |
| | | } |
| | | |
| | | if(nIndex != -1) { |
| | | SCROLLINFO si; |
| | | si.fMask=SIF_ALL; |
| | | m_ctrlScrollH[nIndex].GetScrollInfo(&si,SIF_ALL); |
| | | si.fMask = SIF_ALL; |
| | | m_ctrlScrollH[nIndex].GetScrollInfo(&si, SIF_ALL); |
| | | |
| | | switch(nSBCode) |
| | | { |
| | |
| | | |
| | | m_frameImg[nIndex].m_ptOrg.x = si.nPos; |
| | | |
| | | PostMessage(WM_LIVE_IMG_UPDATE,NULL,nIndex); |
| | | |
| | | PostMessage(WM_LIVE_IMG_UPDATE, NULL, nIndex); |
| | | } |
| | | CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar); |
| | | } |
| | | |
| | | void CViewMain_LiveCam::InitScrollInfo(int nCam /*= -1*/) |
| | | { |
| | | int i =0; |
| | | int i = 0; |
| | | SCROLLINFO scrollInfoH; |
| | | |
| | | scrollInfoH.cbSize = sizeof(SCROLLINFO); |
| | | scrollInfoH.fMask = SIF_ALL; |
| | | scrollInfoH.nMin = 1; |
| | | scrollInfoH.nPos = 1; |
| | | scrollInfoH.nTrackPos = 64; |
| | | |
| | | |
| | | scrollInfoH.nMax = IMAGE_WIDTH; |
| | | |
| | | if(nCam == -1) |
| | | { |
| | | for(i = 0 ; i < 4 ; i++) |
| | | { |
| | | if(nCam == -1) { |
| | | for(i = 0 ; i < 6 ; i++) { |
| | | double dZoom = m_frameImg[i].GetZoomData(); |
| | | scrollInfoH.nPage = (int)(m_frameImg[i].m_WndRect.Width() / dZoom); |
| | | scrollInfoH.nPage = (int)(m_frameImg[i].m_WndRect.Width() / dZoom); |
| | | |
| | | m_ctrlScrollH[i].SetScrollPos(0); |
| | | m_ctrlScrollH[i].SetScrollInfo(&scrollInfoH); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | double dZoom = m_frameImg[nCam].GetZoomData(); |
| | | scrollInfoH.nPage = (int)(m_frameImg[nCam].m_WndRect.Width() / dZoom); |
| | | scrollInfoH.nPage = (int)(m_frameImg[nCam].m_WndRect.Width() / dZoom); |
| | | |
| | | m_ctrlScrollH[nCam].SetScrollPos(0); |
| | | m_ctrlScrollH[nCam].SetScrollInfo(&scrollInfoH); |
| | |
| | | void CViewMain_LiveCam::OnBnClickedRdoSignal1() |
| | | { |
| | | m_nRdoSignal = 0; |
| | | |
| | | OnBnClickedBtnStop(); |
| | | } |
| | | |
| | |
| | | OnBnClickedBtnStop(); |
| | | } |
| | | |
| | | |
| | | |
| | | void CViewMain_LiveCam::OnBnClickedBtnCamSnap() |
| | | { |
| | | OnBnClickedBtnStop(); |
| | |
| | | LRESULT CViewMain_LiveCam::OnLiveImgUpDate(WPARAM wParam, LPARAM lParam) |
| | | { |
| | | int nIndex = int(lParam); |
| | | |
| | | m_frameImg[nIndex].ViewUpdate(); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | |
| | | |
| | | void CViewMain_LiveCam::UpdateZoom(int nIndex) |
| | | { |
| | | if(nIndex == -1) |
| | | { |
| | | for(int i = 0; i < MAX_CAMERA_COUNT;i++) |
| | | { |
| | | if(nIndex == -1) { |
| | | for(int i = 0; i < MAX_CAMERA_COUNT;i++) { |
| | | m_frameImg[i].SetZommMode(m_dZoom[i]); |
| | | InitScrollInfo(-1); |
| | | m_frameImg[i].Invalidate(FALSE); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | m_frameImg[nIndex].SetZommMode(m_dZoom[nIndex]); |
| | | InitScrollInfo(nIndex); |
| | | m_frameImg[nIndex].Invalidate(FALSE); |