39 lines
980 B
C
39 lines
980 B
C
|
#pragma once
|
||
|
#include "iimagehandler.h"
|
||
|
#include "ThreadPool.h"
|
||
|
#include "imemory.h"
|
||
|
#include <queue>
|
||
|
#include <string>
|
||
|
#include <mutex>
|
||
|
#include "BlockingQueue.h"
|
||
|
|
||
|
|
||
|
class UsbImageProcQueue;
|
||
|
|
||
|
class ImageUsbHandler: public IImageHandler
|
||
|
{
|
||
|
public:
|
||
|
ImageUsbHandler(std::shared_ptr<UsbImageProcQueue> images = nullptr);
|
||
|
|
||
|
virtual void config_procparams(HGImgProcParms params);
|
||
|
virtual void add_image(void* data, int width, int height, int type,int scannnum);
|
||
|
virtual void add_scanevent(HGIntInfo status);
|
||
|
virtual bool done();
|
||
|
virtual void clear();
|
||
|
virtual void Set_ratio(u32 h_ratio,u32 v_ratio) override;
|
||
|
|
||
|
protected:
|
||
|
|
||
|
std::shared_ptr<UsbImageProcQueue> images;
|
||
|
std::queue<cv::Mat> capture_data;
|
||
|
ThreadPool pool;
|
||
|
ThreadPool encodepools;
|
||
|
volatile float H_ratio;
|
||
|
volatile float V_ratio;
|
||
|
std::queue< std::future<void>> results;
|
||
|
BlockingQueue<SCAN_STATUS> scanEvents;
|
||
|
std::mutex mtx;
|
||
|
HGImgProcParms m_procparams;
|
||
|
|
||
|
};
|