zynq_7010/zynq_7010_code/ICapturer.h

66 lines
1.3 KiB
C
Raw Normal View History

2023-07-17 03:29:37 +00:00
#pragma once
#include <atomic>
#include <memory>
#include "BlockingQueue.h"
#include "scanservices_utils.h"
#include "HCamDevice.h"
class FpgaComm;
class ICapturer
{
public:
ICapturer() {}
virtual ~ICapturer() {}
virtual void SetParent(void *scanner) = 0;
virtual void open() = 0;
virtual void snap() = 0;
virtual void stopsnap(bool autosize) = 0;
virtual void close() = 0;
virtual int read(int addr) = 0;
virtual void *readFrameTest(int timeout) = 0;
virtual void UpdateScanParam(HG_ScanConfiguration config) = 0;
virtual void createCorrect(int correctmode) = 0;
virtual void setFPGATriggerMode(bool autotrigger, int delay) = 0;
virtual void setFanMode(int mode) = 0;
virtual void fpgaReload() = 0;
virtual bool capturerImage() = 0;
virtual void waitsnapdone(int state) = 0;
virtual bool IsImageQueueEmpty() = 0;
virtual void resetimageremain() = 0;
virtual std::atomic_int &getimageremain() = 0;
virtual void clearimages() = 0;
virtual void setScanFlag(bool brun) = 0;
2023-10-10 10:12:15 +00:00
virtual void SetLowPower(bool islow) = 0;
2023-11-18 03:48:39 +00:00
virtual void set_image_callback(image_callback cb)= 0;
virtual void wait_image_notify()= 0;
2023-07-17 03:29:37 +00:00
protected:
std::shared_ptr<HCamDevice> video;//Capturer 类内部自己初始化
HG_ScanConfiguration m_config;
2023-11-18 03:48:39 +00:00
image_callback image_cb_;
2023-07-17 03:29:37 +00:00
};