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 */
 |