#pragma once #include "CHCameraControls/CameraControl.h" #include "CameraImageData.h" #include "CHReviewSetting/CameraControlInfo_Plus.h" //#include "CameraParameter.h" #define UM_UPDATE_CAMERA_VIEW 1028 typedef std::vector VectorCameraControl; typedef std::vector::iterator VectorCameraControlIt; typedef std::vector VectorCameraControlInfo; typedef std::vector::iterator VectorCameraControlInfoIt; typedef std::vector VectorInteger; typedef std::vector::iterator VectorIntegerIt; enum CameraControlType { CameraControlStop=0, CameraControlLive, CameraControlStart }; class CCameraController : public ICameraControl2Parent { public: CCameraController(void); virtual ~CCameraController(void); int ConnectCamera(const VectorCameraControlInfo& vecCameraControlInfo); void DisconnectCamera(); int GetCameraCount() { return (int)m_vecCameraControl.size(); } BOOL GetConnected(); BOOL GetConnected(int nCameraIdx); CCHImageData* GetCameraImage(int nCameraIdx, int nFrameIdx); BOOL GetLiveImage(int nCameraIdx, CCHImageData* pImageData); BOOL SetCameraSoftwareTrigger(int nCameraIdx); // camera control 2 parent virtual BOOL ICC2P_FrameCaptured(int nCameraIndex, int nFrameIndex, int nFrameCount); virtual BOOL ICC2P_SnapCompleted(int nCameraIndex, int nFrameCount); virtual void Camera_ClearIndex(int nIndex=-1); int m_defectcnt; protected: virtual int Camera_Control(int nControlType); virtual int Camera_Start(); virtual int Camera_Start(int nCount); virtual int Camera_Live(); virtual void Camera_Stop(); VectorCameraControlInfo m_vecCameraContorlInfo; VectorCameraControl m_vecCameraControl; // camera control VectorCameraImageData m_vecCameraImage; // camera image buffer VectorInteger m_vecCameraImageIndex; // camera image buffer index VectorInteger m_vecCameraImageSize; // camera image buffer size VectorInteger m_vecCameraImageCount; // camera image count CRITICAL_SECTION m_csCameraImageIndex; };