#pragma once #include "Device/IConfig.h" #include "Device/PublicFunc.h" #include "Device/PaperSize.h" class G400ScanConfig : public IConfig { public: union Configuration { struct { unsigned int pageSize : 5; unsigned int isColor : 1; unsigned int dpi : 2; unsigned int doubleFeeded : 1; unsigned int enableUV : 1; unsigned int enableLed : 1; unsigned int sizedetect : 1; unsigned int lutmode : 1; unsigned int reversed1 : 4; unsigned int isCorrect : 1; unsigned int dstHeight : 8; unsigned int reversed2 : 6; }params; unsigned int value; }; G400ScanConfig(GScanCap& gcap); virtual ~G400ScanConfig(); virtual unsigned int GetData() override; private: Configuration cfg; Device::PaperSize PaperSize; }; class G400AndroidScanConfig : public IConfig { public: union Configuration { struct { unsigned int pageSize : 5; unsigned int isColor : 1; unsigned int dpi : 2; unsigned int doubleFeeded : 1; unsigned int reversed3 : 1; unsigned int enableLed : 1; unsigned int reversed1 : 6; unsigned int isCorrect : 1; unsigned int dstHeight : 8; unsigned int reversed2 : 6; }params; unsigned int value; }; G400AndroidScanConfig(GScanCap& gcap); virtual ~G400AndroidScanConfig(); virtual unsigned int GetData() override; private: Configuration cfg; Device::PaperSize PaperSize; };