From 6e9c41a892ed0e0da326e0278b3221ce3f5713b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 6 Oct 2014 14:00:40 +0200 Subject: Initial import of sane-backends version 1.0.24-1.2 --- backend/st400.h | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 backend/st400.h (limited to 'backend/st400.h') diff --git a/backend/st400.h b/backend/st400.h new file mode 100644 index 0000000..246ba80 --- /dev/null +++ b/backend/st400.h @@ -0,0 +1,79 @@ +#ifndef st400_h +#define st400_h + +#define ST400_CONFIG_FILE "st400.conf" +#define ST400_DEFAULT_DEVICE "/dev/scanner" + +/* maximum scanning area in inch (guessed) */ +#define ST400_MAX_X 8.5 +#define ST400_MAX_Y 12.0 + +enum ST400_Option { + OPT_NUM_OPTS = 0, + + OPT_MODE_GROUP, + OPT_RESOLUTION, + OPT_DEPTH, + OPT_THRESHOLD, + + OPT_GEOMETRY_GROUP, + OPT_TL_X, + OPT_TL_Y, + OPT_BR_X, + OPT_BR_Y, + + NUM_OPTIONS /* must be last */ +}; + +typedef struct { + size_t inq_voffset; /* offset in INQUIRY result */ + char *inq_vendor; + size_t inq_moffset; /* offset in INQUIRY result */ + char *inq_model; + + size_t bits; /* 6 or 8 */ + unsigned long bufsize; /* internal buffer of scanner */ + unsigned long maxread; /* max bytes to read in a cmd (0 = no limit) */ + SANE_Int *dpi_list; /* NULL for default list */ + + char *sane_vendor; + char *sane_model; + char *sane_type; +} ST400_Model; + + +typedef struct ST400_Device { + struct ST400_Device *next; + + SANE_Device sane; + SANE_Parameters params; + SANE_Option_Descriptor opt[NUM_OPTIONS]; + SANE_Word val[NUM_OPTIONS]; + + struct { + unsigned open :1; + unsigned scanning :1; + unsigned eof :1; + } status; + + /* pixel values of entire scan window - for convenience */ + unsigned short x, y, w, h; + + int fd; /* SCSI filedescriptor */ + + /* backend buffer */ + SANE_Byte *buffer; + size_t bufsize; + SANE_Byte *bufp; /* next byte to transfer */ + size_t bytes_in_buffer; + + ST400_Model *model; + + /* scanner buffer */ + unsigned short wy, wh; /* current subwindow */ + unsigned long bytes_in_scanner; + unsigned short lines_to_read; +} ST400_Device; + +#endif /* st400_h */ +/* The End */ -- cgit v1.2.3