kopia lustrzana https://gitlab.com/sane-project/backends
				
				
				
			
		
			
				
	
	
		
			80 wiersze
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			80 wiersze
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
#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 */
 |