123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- #pragma once
- #include "MemoryClient.h"
- // CUB530View 窗体视图
- class CUB530View : public CFormView
- {
- DECLARE_DYNCREATE(CUB530View)
- protected:
- CUB530View(); // 动态创建所使用的受保护的构造函数
- virtual ~CUB530View();
- public:
- #ifdef AFX_DESIGN_TIME
- enum { IDD = DLG_UB530VIEW };
- #endif
- #ifdef _DEBUG
- virtual void AssertValid() const;
- #ifndef _WIN32_WCE
- virtual void Dump(CDumpContext& dc) const;
- #endif
- #endif
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
- DECLARE_MESSAGE_MAP()
- public:
- virtual void OnInitialUpdate();
- virtual void OnDraw(CDC* /*pDC*/);
- //////////////////////////////////////////////////////////////////////////////////////////
- public:
- // 设备句柄;
- PVOID m_hVideoDevice;
- // 是否有信号;
- BOOL m_bNoSignal;
- // 是否在录频;
- BOOL m_bIsRecord;
- // 录频格式;
- BOOL m_bIsMp4; // FALSE= AVI
- //////////////////////////////////////////////////////////////////////////
- // VIDEO PROPERTIES
- // 是否支持GPU;
- BOOL m_bSupportGPU;
- // 视频流宽度;
- ULONG m_nVideoWidth;
- // 视频流高度;
- ULONG m_nVideoHeight;
- BOOL m_bVideoIsInterleaved;
- double m_dVideoFrameRate;
- BOOL m_bVideoDeinterlaceEnable;
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// AUDIO PROPERTIES
- ULONG m_nAudioChannels;
- ULONG m_nAudioBitsPerSample;
- ULONG m_nAudioSampleFrequency;
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// QUALITY PROPERTIES
- ULONG m_nSharpness;
- ULONG m_nSaturation;
- ULONG m_nHue;
- ULONG m_nConstrast;
- ULONG m_nBrightness;
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RECORD & FILE PROPERTIES
- // 截图路径;
- CString m_strSnapshotPath;
- //
- CString m_strFormatChangedOutput;
- // 垂直镜像;
- BOOL m_bVertically;
- // 水平镜像;
- BOOL m_bHoriontal;
- // 程序退出;
- BOOL m_bAppQuit;
- public:
- // 初始化设备;
- BOOL HwInitialize();
- // 释放设备;
- BOOL HwUninitialize();
- // 单次截图;
- void CaptureSingleImage(LPTSTR lpszFileName, BOOL bIsJPG = TRUE);
- // 单次截图并自动命名;
- std::string CaptureSingleImageAutoName(LPCTSTR lpszDir, BOOL bIsJPG = TRUE);
- // 连续截图;//默认持续1000ms;
- void CaptureMultiImage(LPCTSTR lpszDir, LPCTSTR lpszPrefix, BOOL bIsJPG, int nDurationTime = 1000);
- //////////////////////////////////////////////////////////////////////////
- // ->预览截图;
- CaptureInfo m_CaptureInfo;
- BOOL m_bCaptureImage;
- BOOL m_bSaveImage;
- std::mutex m_mut_cpature;
- std::mutex m_mut_saveImg;
- std::condition_variable m_saveImg_cond;
- // 单次截图;
- void CaptureSingleImageEx(LPTSTR lpszFileName, BOOL bIsJPG = TRUE);
- // 单次截图并自动命名;
- std::string CaptureSingleImageAutoNameEx(LPCTSTR lpszDir, BOOL bIsJPG = TRUE);
- // 连续截图;//默认持续1000ms;
- void CaptureMultiImageEx(LPCTSTR lpszDir, LPCTSTR lpszPrefix, BOOL bIsJPG, int nDurationTime = 1000);
- // 截图;
- BOOL SaveImageByCaptureInfo(const CaptureInfo& capInfo);
- // 截图线程;
- BYTE* m_pBuffer;
- DWORD m_dwBufferLen;
- std::mutex m_mut_thread;
- std::condition_variable m_thread_cond; //使用std::condition_variable等待数据
- static void CaptureImageThread(CUB530View* pView);
- // 录屏;
- void StartRecord(DWORD dwDuration, LPCTSTR lpSavePath);
- void StopRecord();
- public:
- public:
- // 截图路径;
- enum SHOTDir{
- ShotLocal = 0,
- ShotSystem = 1,
- ShotSpec = 2
- };
- SHOTDir m_shotDir;
- TCHAR m_szSpecDir[MAX_PATH];
- void SetRibbonStatusBarText(CString strText, int uId);
- friend class CMemoryClient;
- afx_msg void OnTimer(UINT_PTR nIDEvent);
- afx_msg void OnCutBmp();
- afx_msg void OnCutJpg();
- afx_msg void OnStartRecord();
- afx_msg void OnStopRecord();
- afx_msg void OnCheckVertically();
- afx_msg void OnCheckHoriontal();
- afx_msg void OnUpdateCheckVertically(CCmdUI* pCmdUI);
- afx_msg void OnUpdateCheckHoriontal(CCmdUI* pCmdUI);
- afx_msg void OnTraymenuReconnect();
- afx_msg void OnCheckSuportGpu();
- afx_msg void OnCheckFormatMp4();
- afx_msg void OnCheckFormatAvi();
- afx_msg void OnUpdateCheckSuportGpu(CCmdUI* pCmdUI);
- afx_msg void OnUpdateCheckFormatMp4(CCmdUI* pCmdUI);
- afx_msg void OnUpdateCheckFormatAvi(CCmdUI* pCmdUI);
- afx_msg void OnUpdateStartRecord(CCmdUI* pCmdUI);
- afx_msg void OnUpdateStopRecord(CCmdUI* pCmdUI);
- afx_msg void OnCheckShotLocal();
- afx_msg void OnUpdateCheckShotLocal(CCmdUI* pCmdUI);
- afx_msg void OnCheckShotSystem();
- afx_msg void OnUpdateCheckShotSystem(CCmdUI* pCmdUI);
- afx_msg void OnCheckShotSpec();
- afx_msg void OnUpdateCheckShotSpec(CCmdUI* pCmdUI);
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
-
- afx_msg void OnCheckIrShot();
- afx_msg void OnUpdateCheckIrShot(CCmdUI* pCmdUI);
- };
|