tahoma2d/toonz/sources/tnzbase/tscanner/tscannerepson.h

73 lines
2.3 KiB
C
Raw Normal View History

2016-05-17 03:04:11 +12:00
#pragma once
2016-03-19 06:57:51 +13:00
#ifndef TSCANNER_EPSON_INCLUDED
#define TSCANNER_EPSON_INCLUDED
#include "tscanner.h"
#include "TScannerIO/TScannerIO.h"
#include <memory>
2016-03-19 06:57:51 +13:00
/*
PLEASE DO NOT REMOVE unreferenced methods... they are useful for debugging :)
max
*/
2016-06-15 18:43:10 +12:00
class TScannerEpson : public TScanner {
enum SettingsMode { OLD_STYLE, NEW_STYLE };
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
TScannerIO *m_scannerIO;
bool m_hasADF;
bool m_isOpened;
SettingsMode m_settingsMode;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
TScannerEpson();
~TScannerEpson();
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void selectDevice();
bool isDeviceAvailable();
bool isDeviceSelected();
void updateParameters(TScannerParameters &param); // vedi TScanner
void acquire(const TScannerParameters &params, int paperCount);
bool isAreaSupported();
void closeIO();
2016-03-19 06:57:51 +13:00
private:
2016-06-15 18:43:10 +12:00
void doSettings(const TScannerParameters &params, bool isFirstSheet);
void collectInformation(char *lev0, char *lev1, unsigned short *lowRes,
unsigned short *hiRes, unsigned short *hMax,
unsigned short *vMax);
bool resetScanner();
void reportError(std::string errMsg); // debug only
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
char *ESCI_inquiry(char cmd); /* returns 0 if failed */
bool ESCI_command(char cmd, bool checkACK);
bool ESCI_command_1b(char cmd, unsigned char p0, bool checkACK);
bool ESCI_command_2b(char cmd, unsigned char p0, unsigned char p1,
bool checkACK);
bool ESCI_command_2w(char cmd, unsigned short p0, unsigned short p1,
bool checkACK);
bool ESCI_command_4w(char cmd, unsigned short p0, unsigned short p1,
unsigned short p2, unsigned short p3, bool checkACK);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
std::unique_ptr<unsigned char[]> ESCI_read_data2(unsigned long &size);
void ESCI_readLineData(unsigned char &stx, unsigned char &status,
unsigned short &counter, unsigned short &lines,
bool &areaEnd);
void ESCI_readLineData2(unsigned char &stx, unsigned char &status,
unsigned short &counter);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
int receive(unsigned char *buffer, int size);
int send(unsigned char *buffer, int size);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
bool ESCI_doADF(bool on);
int sendACK();
bool expectACK();
void scanArea2pix(const TScannerParameters &params, unsigned short &offsetx,
unsigned short &offsety, unsigned short &dimlx,
unsigned short &dimly, const TRectD &scanArea);
2016-03-19 06:57:51 +13:00
};
#endif