#pragma once #include "scanservices_utils.h" #include #include "BlockingQueue.h" class IScanner { public: IScanner(/* args */) {} virtual ~IScanner() {} virtual void StartScan(int scancount) = 0; virtual void StopScan() = 0; virtual void ConfigScanParam(HG_ScanConfiguration config) = 0; virtual bool FeederLoaded() = 0; virtual std::string GetSerial() = 0; virtual void SetSerial(std::string serial) = 0; virtual std::string GetFWVersion() = 0; virtual void SetFwVersion(std::string fwversion) = 0; virtual int GetRollerNum() = 0; virtual void ClearRollerNum() = 0; virtual void InitScanner() = 0; virtual void ClearImages() = 0; virtual HG_JpegCompressInfo GetImage() = 0; virtual HG_Msg GetEvent() = 0; virtual void ClearErrorEvents() = 0; virtual void ClearHWError() = 0; virtual bool GetImagequeueEmpty() = 0; virtual bool GetEventQueueEmpty() = 0; virtual HG_JpegCompressInfo GetFrontImage() = 0; virtual HG_Msg GetEventFront() = 0; virtual void CreatCorrectData(int correctmode) = 0; virtual bool IsScanning() = 0; virtual void SetFlatParam(int type, int *value) = 0; virtual CaptureParams GetCaptureParams() = 0; virtual void UpdateScanInfo(int type, void *data) = 0; virtual ScannerScanInfo GetScanInfo() = 0; virtual void SetLEDStatus(LedStatus status) = 0; virtual void close_v4l2()= 0; protected: BlockingQueue m_images; BlockingQueue m_scannerEvents; std::string m_serial; std::string m_fwversion; int vid_; int pid_; };