#pragma once #include #ifdef _CAPTUREWRITER_CLASSINDLL #define CAPTUREWRITER_CLASS_DECL _declspec(dllexport) #else #define CAPTUREWRITER_CLASS_DECL _declspec(dllimport) #endif #ifndef _CAPTUREWRITER_CLASSINDLL #ifdef X64 #ifdef _DEBUG #pragma comment(lib, "CaptureWriterX64D.lib") #else #pragma comment(lib, "CaptureWriterX64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "CaptureWriterD.lib") #else #pragma comment(lib, "CaptureWriter.lib") #endif #endif #endif namespace DIOS_DataElement { class CDataMgr; } namespace DIOS_Kernel { class CLoopShareMemMgr; class CAPTUREWRITER_CLASS_DECL CCaptureWriter { public: CCaptureWriter(const wchar_t* wstrName); virtual ~CCaptureWriter(); const wchar_t* GetName(); bool Init(bool bMemOverlapped); bool SetPerBlockLen(size_t nPerBlockLen); bool BeginWriteSequence(const wchar_t* wszNotify); bool WriteGrayDataForFPD(int nWidth, int nHeight, int nBits, int nFrameId, void* pData, int nDataLen); bool WriteData(void* pData, int nDataLen); bool EndWriteSequence(const wchar_t* wszNotify); private: CLoopShareMemMgr * m_pShareMemMgr; std::wstring* m_pwstrName; DIOS_DataElement::CDataMgr* m_pDataMgr; bool m_bInit; }; }