twain3.0/huagao/Device/GScan200.h

38 lines
1.3 KiB
C++

#pragma once
#include "GScan.h"
#include <memory>
#include "BlockingQueue.h"
class IGDevice;
class GScan200 : public IScanner
{
public:
GScan200();
virtual ~GScan200();
virtual void open(int vid, int pid) override;
virtual void regist_deviceevent_callback(deviceevent_callback callback, void* usrdata = 0) override;
virtual int aquire_bmpdata(std::vector<unsigned char>& bmpdata) 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(GScanCap&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 clear_hwerror() override;
virtual UINT32 get_ErrorCode() override;
virtual void Set_ErrorCode(UINT32 value) override;
virtual int get_scanned_num() override;
private:
static void image_call_s(void *fdata, int fsize, void *bdata, int bsize, void *userdata);
static void event_call_g200(int error_value, void* userdata);
void image_call(void *fdata, int fsize, void *bdata, int bsize);
BlockingQueue<int> error_msg;
std::shared_ptr<IGDevice> m_dev;
};