EdgeInspector_App/View/ViewMain_LiveCam.cpp
@@ -1,4 +1,4 @@
// ViewLiveCam.cpp : 备泅 颇老涝聪促.
// ViewLiveCam.cpp : 备泅 颇老涝聪促.
//
#include "stdafx.h"
@@ -7,7 +7,7 @@
#include "afxdialogex.h"
#include "Global_Define.h"
// CViewLiveCam 措拳 惑磊涝聪促.
// CViewLiveCam 措拳 惑磊涝聪促.
IMPLEMENT_DYNAMIC(CViewMain_LiveCam, CDialogEx)
@@ -17,8 +17,7 @@
   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;
   }
}
@@ -29,16 +28,18 @@
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()   
@@ -52,13 +53,11 @@
   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);
   }
@@ -69,17 +68,23 @@
{
   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);   
   }
@@ -89,21 +94,19 @@
{   
   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]);
@@ -116,28 +119,25 @@
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;
      }
   }
@@ -149,17 +149,17 @@
   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);   
@@ -167,8 +167,7 @@
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();
   }
@@ -177,12 +176,13 @@
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);
@@ -190,33 +190,32 @@
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)
      {
@@ -244,41 +243,34 @@
      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);
@@ -288,7 +280,6 @@
void CViewMain_LiveCam::OnBnClickedRdoSignal1()
{
   m_nRdoSignal = 0;
   OnBnClickedBtnStop();
}
@@ -299,8 +290,6 @@
   OnBnClickedBtnStop();
}
void CViewMain_LiveCam::OnBnClickedBtnCamSnap()
{
   OnBnClickedBtnStop();
@@ -309,9 +298,7 @@
LRESULT CViewMain_LiveCam::OnLiveImgUpDate(WPARAM wParam, LPARAM lParam)
{
   int nIndex  = int(lParam);   
   m_frameImg[nIndex].ViewUpdate();
   return 0;
}
@@ -361,17 +348,14 @@
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);