merge of the current Subversion revision of SANE/Avision. The fixes include:

endianess fixes, calibration code, ADF detection, correct lamp warmup,
gamma table for new ASICs, some workarounds for ASIC variations and the
convertion to use OPT_SOURCE instead of seperate OPT_ADF and OPT_TRANS.
merge-requests/1/head
Rene Rebe 2003-10-28 09:41:27 +00:00
rodzic df06ebd7cc
commit 8425846c8e
6 zmienionych plików z 475 dodań i 319 usunięć

Wyświetl plik

@ -176,7 +176,7 @@ Peter Fales <peter@fales-lorenz.net>
Peter Kirchgessner <peter@kirchgessner.net> Peter Kirchgessner <peter@kirchgessner.net>
Petter Reinholdtsen <pere@hungry.com> Petter Reinholdtsen <pere@hungry.com>
Randolph Bentson <bentson@grieg.holmsjoen.com> Randolph Bentson <bentson@grieg.holmsjoen.com>
Rene Rebe <rene.rebe@gmx.net> Rene Rebe <rene@rocklinux.org>
Roger Wolff <R.E.Wolff@BitWizard.nl> Roger Wolff <R.E.Wolff@BitWizard.nl>
Sebastien Sable <Sebastien.Sable@snv.jussieu.fr> Sebastien Sable <Sebastien.Sable@snv.jussieu.fr>
Sergey Vlasov <vsu@altlinux.ru> Sergey Vlasov <vsu@altlinux.ru>

Wyświetl plik

@ -1,3 +1,13 @@
2003-10-28 Rene Rebe <rene@rocklinux.org>
* backend/avision.h backend/avision.c doc/descriptions/avision.desc
backend/avision.conf AUTHORS: merge of the current Subversion
revision of SANE/Avision. The fixes include: endianess fixes,
calibration code, ADF detection, correct lamp warmup, gamma table
for new ASICs, some workarounds for ASIC variations and the
convertion to use OPT_SOURCE insteat of seperate OPT_ADF and
OPT_TRANS.
2003-10-28 Gerhard Jaeger <gerhard@gjaeger.de> 2003-10-28 Gerhard Jaeger <gerhard@gjaeger.de>
* doc/sane-plustek.man backend/plustek.conf backend/plustek.c: * doc/sane-plustek.man backend/plustek.conf backend/plustek.c:
Changed configuration file back to remain compatible with the old format. Changed configuration file back to remain compatible with the old format.

Plik diff jest za duży Load Diff

Wyświetl plik

@ -1,4 +1,10 @@
# This are the possible options. Normally any scanner
# should work just fine without them - and they are only
# needed for test and debugging. So if you experience problems
# and you solve them with enabling options here, please notify
# the SANE/Avision maintainer.
#option disable-gamma-table #option disable-gamma-table
#option disable-calibration #option disable-calibration
#option old-calibration #option old-calibration

Wyświetl plik

@ -83,28 +83,31 @@ typedef struct Avision_HWEntry {
/* feature overwrites */ /* feature overwrites */
enum { enum {
/* force no calibration */ /* force no calibration */
AV_NO_CALIB = 1, AV_NO_CALIB = (1),
/* force the special C5 calibration */ /* force the special C5 calibration */
AV_C5_CALIB = 2, AV_C5_CALIB = (1<<1),
/* force all in one command calibration */ /* force all in one command calibration */
AV_ONE_CMD_CALIB = 4, AV_ONE_CALIB_CMD = (1<<2),
/* no gamma table */ /* no gamma table */
AV_NO_GAMMA = 8, AV_NO_GAMMA = (1<<3),
/* light check is bogus */ /* light check is bogus */
AV_LIGHT_CHECK_BOGUS = 16, AV_LIGHT_CHECK_BOGUS = (1<<4),
/* do not use line packing even if line_difference */ /* do not use line packing even if line_difference */
AV_NO_LINE_DIFFERENCE = 32, AV_NO_LINE_DIFFERENCE = (1<<5),
/* limit the available resolutions */ /* limit the available resolutions */
AV_RES_HACK = 64, AV_RES_HACK = (1<<6),
/* fujitsu adaption */ /* fujitsu adaption */
AV_FUJITSU = 128 AV_BIG_SCAN_CMD = (1<<7),
/* fujitsu adaption */
AV_FUJITSU = (1<<8)
/* maybe more ...*/ /* maybe more ...*/
} feature_type; } feature_type;
@ -132,8 +135,8 @@ typedef enum {
AV_NORMAL, AV_NORMAL,
AV_TRANSPARENT, AV_TRANSPARENT,
AV_ADF, AV_ADF,
AV_OPERATION_MODE_LAST AV_SOURCE_MODE_LAST
} operation_mode; } source_mode;
enum Avision_Option enum Avision_Option
{ {
@ -147,6 +150,8 @@ enum Avision_Option
OPT_SPEED, OPT_SPEED,
OPT_PREVIEW, OPT_PREVIEW,
OPT_SOURCE, /* scan source normal, transparency, ADF */
OPT_GEOMETRY_GROUP, OPT_GEOMETRY_GROUP,
OPT_TL_X, /* top-left x */ OPT_TL_X, /* top-left x */
OPT_TL_Y, /* top-left y */ OPT_TL_Y, /* top-left y */
@ -158,8 +163,6 @@ enum Avision_Option
OPT_CONTRAST, OPT_CONTRAST,
OPT_QSCAN, OPT_QSCAN,
OPT_QCALIB, OPT_QCALIB,
OPT_TRANS, /* Transparency Mode */
OPT_ADF, /* Use ADF unit */
OPT_GAMMA_VECTOR, /* first must be gray */ OPT_GAMMA_VECTOR, /* first must be gray */
OPT_GAMMA_VECTOR_R, /* then r g b vector */ OPT_GAMMA_VECTOR_R, /* then r g b vector */
@ -171,6 +174,13 @@ enum Avision_Option
NUM_OPTIONS /* must come last */ NUM_OPTIONS /* must come last */
}; };
typedef union Option_Value
{
SANE_Word w;
SANE_Word *wa; /* word array */
SANE_String s;
} Option_Value;
typedef struct Avision_Dimensions typedef struct Avision_Dimensions
{ {
/* in dpi */ /* in dpi */
@ -219,8 +229,8 @@ typedef struct Avision_Device
int inquiry_optical_res; /* in dpi */ int inquiry_optical_res; /* in dpi */
int inquiry_max_res; /* in dpi */ int inquiry_max_res; /* in dpi */
double inquiry_x_ranges [AV_OPERATION_MODE_LAST]; /* in mm */ double inquiry_x_ranges [AV_SOURCE_MODE_LAST]; /* in mm */
double inquiry_y_ranges [AV_OPERATION_MODE_LAST]; /* in mm */ double inquiry_y_ranges [AV_SOURCE_MODE_LAST]; /* in mm */
int inquiry_color_boundary; int inquiry_color_boundary;
int inquiry_gray_boundary; int inquiry_gray_boundary;
@ -273,7 +283,7 @@ typedef struct Avision_Scanner
Avision_Dimensions avdimen; /* scan window - detailed internals */ Avision_Dimensions avdimen; /* scan window - detailed internals */
color_mode c_mode; color_mode c_mode;
operation_mode o_mode; source_mode source_mode;
/* Avision HW Access Connection (SCSI/USB abstraction) */ /* Avision HW Access Connection (SCSI/USB abstraction) */
Avision_Connection av_con; Avision_Connection av_con;
@ -475,8 +485,8 @@ typedef struct calibration_format
} calibration_format; } calibration_format;
/* set/get SCSI highended variables. Declare them as an array of chars */ /* set/get SCSI highended (big-endian) variables. Declare them as an array
/* endianness-safe, int-size safe ... */ * of chars endianness-safe, int-size safe ... */
#define set_double(var,val) var[0] = ((val) >> 8) & 0xff; \ #define set_double(var,val) var[0] = ((val) >> 8) & 0xff; \
var[1] = ((val) ) & 0xff var[1] = ((val) ) & 0xff
@ -498,6 +508,12 @@ typedef struct calibration_format
(*(var + 1) << 16) + \ (*(var + 1) << 16) + \
(*(var + 2) << 8) + *(var + 3)) (*(var + 2) << 8) + *(var + 3))
/* set/get Avision lowended (little-endian) shading data */
#define set_double_le(var,val) var[0] = ((val) ) & 0xff; \
var[1] = ((val) >> 8) & 0xff
#define get_double_le(var) ((*(var + 1) << 8) + *var)
#define BIT(n, p) ((n & ( 1 << p)) ? 1 : 0) #define BIT(n, p) ((n & ( 1 << p)) ? 1 : 0)
#define SET_BIT(n, p) (n |= (1 << p)) #define SET_BIT(n, p) (n |= (1 << p))

Wyświetl plik

@ -14,11 +14,12 @@
:backend "avision" :backend "avision"
; version of backend ; version of backend
:version "Build: 70" :version "Build: 80"
;status: alpha, beta, stable, new
;:status :stable ;:status :stable
; backend's web page ; backend's web page
:url "http://drocklinux.dyndns.org/rene/avision/index.html" :url "http://www.rocklinux-consulting.de/oss/avision/index.html"
; name of manpage (if it exists) ; name of manpage (if it exists)
:manpage "sane-avision" :manpage "sane-avision"
@ -182,6 +183,7 @@
:comment "1 pass, 600 dpi, A3" :comment "1 pass, 600 dpi, A3"
:status :untested :status :untested
:mfg "Hewlett-Packard" :mfg "Hewlett-Packard"
:url "http://www.hp.com" :url "http://www.hp.com"
@ -210,6 +212,7 @@
:comment "1 pass, 1200 dpi - dual USB/SCSI interface" :comment "1 pass, 1200 dpi - dual USB/SCSI interface"
:status :good :status :good
:mfg "Minolta" :mfg "Minolta"
:url "http://www.minolta.com" :url "http://www.minolta.com"
@ -223,6 +226,7 @@
:comment "1 pass, film-scanner" :comment "1 pass, film-scanner"
:status :untested :status :untested
:mfg "Mitsubishi" :mfg "Mitsubishi"
:model "MCA-ADFC" :model "MCA-ADFC"
@ -241,6 +245,7 @@
:interface "SCSI" :interface "SCSI"
:status :good :status :good
:mfg "Fujitsu" :mfg "Fujitsu"
:url "http://www.fujitsu.com/" :url "http://www.fujitsu.com/"
@ -275,3 +280,4 @@
:model "ScanStation" :model "ScanStation"
:interface "SCSI" :interface "SCSI"
:status :untested :status :untested