kopia lustrzana https://gitlab.com/sane-project/backends
Merged the Avision 0.3.0 backend (incl. genreal cleanups, USB handling ...)
also updated the homepage url and the man-page.DEVEL_2_0_BRANCH-1
rodzic
8ae2a40c07
commit
a4101b2fe5
Plik diff jest za duży
Load Diff
|
@ -6,29 +6,28 @@
|
|||
;
|
||||
; ":backend" *must* be specified.
|
||||
; All other information is optional (but what good is the file without it?).
|
||||
;
|
||||
|
||||
:backend "avision" ; name of backend
|
||||
:version "0.2.1" ; version of backend
|
||||
:version "0.3.0" ; version of backend
|
||||
:status :beta ; :alpha, :beta, :stable, :new
|
||||
:url "http://www.rene.rebe.myokay.net/avision/index.html" ; backend's web page
|
||||
;
|
||||
; Sorry, no manpage yet. Anybody want to write one?
|
||||
:url "http://drocklinux.dyndns.org/rene/avision/index.html" ; backend's web page
|
||||
|
||||
:manpage "sane-avision" ; name of manpage (if it exists)
|
||||
|
||||
:devicetype :scanner
|
||||
|
||||
:mfg "Avision" ; name a manufacturer
|
||||
:mfg "Avision" ; name a manufacturer
|
||||
:url "http://www.avision.com/"
|
||||
|
||||
:model "AV 6240" ; name models for above-specified mfg.
|
||||
:model "AV 6240" ; name models for above-specified mfg.
|
||||
:interface "SCSI"
|
||||
:comment "1 pass, ??? DPI"
|
||||
|
||||
:model "AV 630 CS" ; name models for above-specified mfg.
|
||||
:model "AV 630 CS"
|
||||
:interface "SCSI"
|
||||
:comment "1 pass, 1200*600 DPI" ;
|
||||
:comment "1 pass, 1200*600 DPI"
|
||||
|
||||
:model "AV 620 CS" ; name models for above-specified mfg.
|
||||
:model "AV 620 CS"
|
||||
:interface "SCSI"
|
||||
:comment "1 pass, 1200*600 DPI"
|
||||
:comment "1 pass, 1200*600 DPI"
|
||||
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
|
||||
avision.h
|
||||
|
||||
This file (C) 1999, 2000 Meino Christian Cramer and Rene Rebe
|
||||
|
||||
This file is part of the SANE package.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
|
@ -41,22 +39,36 @@
|
|||
|
||||
*****************************************************************************
|
||||
|
||||
This file implements a SANE backend for the Avision AV 630CS (and other ...)
|
||||
scanner with SCSI-2 command set.
|
||||
|
||||
(feedback to: mccramer@s.netic.de and rene.rebe@myokay.net)
|
||||
|
||||
This backend is based upon the Tamarack backend and adapted to the Avision
|
||||
scanners by René Rebe and Meino Cramer.
|
||||
|
||||
Copyright 1999, 2000, 2001, 2002 by
|
||||
"René Rebe" <rene.rebe@gmx.net>
|
||||
"Meino Christian Cramer" <mccramer@s.netic.de>
|
||||
"Martin Jelínek" <mates@sirrah.troja.mff.cuni.cz>
|
||||
|
||||
Additional Contributers:
|
||||
"Gunter Wagner"
|
||||
(some fixes and the transparency option)
|
||||
|
||||
Very much thanks to:
|
||||
Avision INC for the documentation we got! ;-)
|
||||
Gunter Wagner for some fixes and the transparency option.
|
||||
|
||||
*****************************************************************************/
|
||||
Avision INC for the documentation we got! ;-)
|
||||
|
||||
Check the avision.c file for a ChangeLog ...
|
||||
|
||||
********************************************************************************/
|
||||
|
||||
#ifndef avision_h
|
||||
#define avision_h
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
typedef struct Avision_HWEntry {
|
||||
char* mfg;
|
||||
char* model;
|
||||
SANE_Bool usb;
|
||||
} Avision_HWEntry;
|
||||
|
||||
enum Avision_Option
|
||||
{
|
||||
OPT_NUM_OPTS = 0, /* must come first */
|
||||
|
@ -92,15 +104,14 @@ enum Avision_Option
|
|||
NUM_OPTIONS /* must come last */
|
||||
};
|
||||
|
||||
|
||||
typedef union
|
||||
typedef union Option_Value
|
||||
{
|
||||
SANE_Word w;
|
||||
SANE_Word *wa; /* word array */
|
||||
SANE_String s;
|
||||
} Option_Value;
|
||||
|
||||
typedef struct
|
||||
typedef struct Avision_Dimensions
|
||||
{
|
||||
long tlx;
|
||||
long tly;
|
||||
|
@ -115,42 +126,70 @@ typedef struct
|
|||
int res;
|
||||
} Avision_Dimensions;
|
||||
|
||||
typedef struct
|
||||
/* this contains our low-level info - not relevant for the SANE interface */
|
||||
typedef struct Avision_Device
|
||||
{
|
||||
struct Avision_Device* next;
|
||||
SANE_Device sane;
|
||||
|
||||
/* structs used to store config options */
|
||||
SANE_Range dpi_range;
|
||||
SANE_Range x_range;
|
||||
SANE_Range y_range;
|
||||
SANE_Range speed_range;
|
||||
unsigned flags;
|
||||
|
||||
SANE_Bool is_usb;
|
||||
|
||||
SANE_Bool inquiry_new_protocol;
|
||||
SANE_Bool inquiry_needs_calibration;
|
||||
SANE_Bool inquiry_needs_gamma;
|
||||
SANE_Bool inquiry_needs_software_colorpack;
|
||||
|
||||
int inquiry_grey_res; /* in dpi */
|
||||
int inquiry_color_res; /* in dpi */
|
||||
|
||||
double inquiry_x_range; /* in mm */
|
||||
double inquiry_y_range; /* in mm */
|
||||
|
||||
double inquiry_adf_x_range; /* in mm */
|
||||
double inquiry_adf_y_range; /* in mm */
|
||||
|
||||
double inquiry_transp_x_range; /* in mm */
|
||||
double inquiry_transp_y_range; /* in mm */
|
||||
|
||||
int inquiry_color_boundary;
|
||||
int inquiry_grey_boundary;
|
||||
int inquiry_line_difference; /* software color pack */
|
||||
|
||||
int inquiry_bits_per_channel;
|
||||
|
||||
} Avision_Device;
|
||||
|
||||
typedef struct
|
||||
/* all the state relevant for the SANE interface */
|
||||
typedef struct Avision_Scanner
|
||||
{
|
||||
/* all the state needed to define a scan request: */
|
||||
struct Avision_Scanner *next;
|
||||
Avision_Device *hw;
|
||||
|
||||
SANE_Option_Descriptor opt [NUM_OPTIONS];
|
||||
Option_Value val [NUM_OPTIONS];
|
||||
SANE_Int gamma_table [4][256];
|
||||
|
||||
int scanning;
|
||||
int pass; /* pass number */
|
||||
SANE_Bool scanning; /* scan in progress */
|
||||
/*int pass;*/ /* pass number */
|
||||
int line; /* current line number */
|
||||
|
||||
SANE_Parameters params;
|
||||
|
||||
/* Parsed option values and variables that are valid only during
|
||||
actual scanning: */
|
||||
int mode;
|
||||
Avision_Dimensions avdimen; /* Used for internal calculationg */
|
||||
Avision_Dimensions avdimen; /* Used for internal calculationg */
|
||||
|
||||
int fd; /* SCSI filedescriptor */
|
||||
pid_t reader_pid; /* process id of reader */
|
||||
int pipe; /* pipe to reader process */
|
||||
|
||||
/* scanner dependent/low-level state: */
|
||||
Avision_Device *hw;
|
||||
} Avision_Scanner;
|
||||
|
||||
#define AV_ADF_ON 0x80
|
||||
|
@ -286,9 +325,9 @@ struct command_read
|
|||
unsigned char opc;
|
||||
unsigned char bitset1;
|
||||
unsigned char datatypecode;
|
||||
unsigned char calibchn;
|
||||
unsigned char calibchn;
|
||||
unsigned char datatypequal [2];
|
||||
unsigned char transferlen [3];
|
||||
unsigned char transferlen [3];
|
||||
unsigned char control;
|
||||
};
|
||||
|
||||
|
@ -307,11 +346,10 @@ struct command_send
|
|||
unsigned char datatypecode;
|
||||
unsigned char reserved0;
|
||||
unsigned char datatypequal [2];
|
||||
unsigned char transferlen [3];
|
||||
unsigned char transferlen [3];
|
||||
unsigned char reserved1;
|
||||
};
|
||||
|
||||
|
||||
struct command_set_window_window_header
|
||||
{
|
||||
unsigned char reserved0 [6];
|
||||
|
@ -372,7 +410,6 @@ struct avision_page
|
|||
char pad0;
|
||||
};
|
||||
|
||||
|
||||
/* set SCSI highended variables. Declare them as an array of chars */
|
||||
/* endianness-safe, int-size safe... */
|
||||
#define set_double(var,val) var[0] = ((val) >> 8) & 0xff; \
|
||||
|
@ -387,4 +424,6 @@ struct avision_page
|
|||
var[2] = ((val) >> 8 ) & 0xff; \
|
||||
var[3] = ((val) ) & 0xff;
|
||||
|
||||
#define BIT(n, p) ((n & ( 1 << p))?1:0)
|
||||
|
||||
#endif /* avision_h */
|
||||
|
|
|
@ -1,12 +1,51 @@
|
|||
.TH sane-avision 5 "24 Jun 2000"
|
||||
.TH sane-avision 5 "10 Dec 2001"
|
||||
.IX sane-avision
|
||||
|
||||
.SH NAME
|
||||
sane-avision - SANE backend for Avision AV 630 CS flatbed scanners
|
||||
sane-avision - SANE backend for Avision (and OEM HP, Minolta) flatbed scanners
|
||||
|
||||
.SH ABOUT THIS FILE
|
||||
|
||||
This file only is a short descripton of the avision-backend for sane!
|
||||
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B sane-avision
|
||||
library implements a SANE (Scanner Access Now Easy) backend that
|
||||
provides access to Avision AV 630 CS flatbed scanners.
|
||||
provides access to Avision flatbed scanners and the Avision
|
||||
OEM scanners labelled with HP and Minolta.
|
||||
|
||||
.SH CONFIGURATION
|
||||
|
||||
The configuration file for this backend resides in
|
||||
@CONFIGDIR@/avision.conf.
|
||||
|
||||
Its contents is a list of device names that correspond to Avision and Avision
|
||||
compatible scanners. Empty lines and lines starting with a hash mark (#) are
|
||||
ignored. A sample configuration file is shown below:
|
||||
|
||||
.B I suggest you hold one hand on the power-button of the scanner while you try
|
||||
the first scans!
|
||||
|
||||
#scsi Vendor Model Type Bus Channel ID LUN
|
||||
scsi AVISION
|
||||
/dev/scanner
|
||||
|
||||
# this is a comment
|
||||
#
|
||||
option force-a4
|
||||
option allow-usb
|
||||
|
||||
- force-a4:
|
||||
forces the backend to overwrite the scanable area
|
||||
returned by the scanner. This might be needed for
|
||||
the AV 630 which returns no area - or newer scanners
|
||||
which retuns the area in a unkown format our backend
|
||||
doesn't recongize yet.
|
||||
|
||||
- allow-usb:
|
||||
tells the backend to use USB scanner - which do not
|
||||
work correctly yet.
|
||||
|
||||
.SH "DEVICE NAMES"
|
||||
This backend expects device names of the form:
|
||||
|
@ -41,6 +80,7 @@ The static library implementing this backend.
|
|||
.I @LIBDIR@/libsane-avision.so
|
||||
The shared library implementing this backend (present on systems that
|
||||
support dynamic loading).
|
||||
|
||||
.SH ENVIRONMENT
|
||||
.TP
|
||||
.B SANE_CONFIG_DIR
|
||||
|
@ -68,6 +108,7 @@ export SANE_DEBUG_AVISION=4
|
|||
.SH "SEE ALSO"
|
||||
sane(7), sane\-scsi(5)
|
||||
.br
|
||||
http://www.rene.rebe.myokay.net/avision/index.html
|
||||
http://drocklinux.dyndns.org/rene/avision/index.html
|
||||
|
||||
.SH AUTHOR
|
||||
Meino Christian Cramer, Rene Rebe
|
||||
René Rebe, Meino Christian Cramer and Martin Jelínek
|
||||
|
|
Ładowanie…
Reference in New Issue