twain2/GScanO200.h

38 lines
1.1 KiB
C++

#pragma once
#include "gscn_drv.h"
#include <memory>
class GScanO200 : public IGScan, GScn_Drv
{
public:
GScanO200();
virtual ~GScanO200();
// ͨ¹ý IGScan ¼Ì³Ð
virtual void open(int vid, int pid) override;
virtual int aquire_image(cv::Mat& image) override;
virtual BOOL IsConnected() override;
virtual std::string GetFWVersion() override;
virtual std::string GetSerialNum() override;
virtual bool is_scan() override;
virtual BOOL Get_Scanner_PaperOn() override;
virtual void config_params(SFreeImage& params) override;
virtual void Scanner_StartScan(UINT16 count) override;
virtual void Stop_scan() override;
virtual void ResetScanner() override;
virtual bool Get_IsImageQueueEmpty() override;
virtual void reset() override;
virtual void setdecodepixtype(int twpixtype) override;
virtual UINT32 get_ErrorCode() override;
virtual void Set_ErrorCode(UINT32 value) override;
private:
DWORD usbmain();
USBCB Get_Scanner_Status();
cv::Mat Get_Img_Data(int buffersize);
void Pop_Image();
std::shared_ptr<IUsb> m_usb;
std::unique_ptr<thread> m_threadUsb;
};