rk3399_arm_lvds/capimage/ICapturer.h

52 lines
1.7 KiB
C++

#pragma once
#include <memory>
#include <functional>
#include <thread>
#include <string>
#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<IRegsAccess> 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<void(int, std::string)> 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;
};