#pragma once #include #include #include #include #include "regsaccess.h" #include "commondef.h" #include "CorrectParam.h" #include "opencv2\opencv.hpp" class ICapturer { public: virtual ~ICapturer() {} virtual void Fpga_regsAccess_reset(bool enable) = 0; virtual void open() = 0; virtual void open(HGScanConfig config, FPGAConfigParam fpgaparam) = 0; virtual void open(HGScanConfig config, FPGAConfigParam_8478 fpgaparam){}; virtual void snap(frame_data_info info) {} virtual cv::Size frame_data_size() { return {0, 0}; } virtual void close() = 0; virtual void start() = 0; virtual void stop() = 0; virtual bool is_runing() = 0; virtual void snap() = 0; virtual void stopsnap() = 0; virtual int getautosizeheight() = 0; virtual void set_size(int width, int height) = 0; virtual void *readFrame(int timeout) = 0; virtual void set_gain(int ix, int val) = 0; virtual void set_offset(int ix, int val) = 0; virtual void set_expo(int ix, int val) = 0; virtual uint32_t multi_frame_counts() { return 0; } virtual uint32_t multi_curr_snap_index() { return 0; } virtual std::shared_ptr regs() = 0; virtual void reset() = 0; virtual int width() = 0; virtual int height() = 0; virtual int color() = 0; virtual void init_autocorrect(int colormode = 0) = 0; virtual void setcapturecall(std::function callback) = 0; virtual frame_data_info ReadMultiFrame(int state) { return {0}; } virtual void single_correct(std::uint32_t mode) = 0; virtual void set_fpga_vsp(int a, int b) {} virtual cv::Mat read_one_frame() { return cv::Mat(); } void set_gscancap(GScanCap cap){ m_gscancap = cap;} protected: GScanCap m_gscancap; };