2001-10-17 Oliver Rauch <Oliver.Rauch@rauch-domain.de>

* umax backend bugfixes (new version number: 1.0 build 31):
    man page uses @LIBDIR@ and @CONFIGDIR@,
    calibration fix for Supervista S-12 and compatible scanners
    directory backend:
      umax.c umax-scanner.c umax-scsidef.h
    directory doc:
      sane-umax.man /umax/sane-umax-advanced-options-doc.html
      umax/sane-umax-standard-options-doc.html umax/umax.CHANGES
DEVEL_2_0_BRANCH-1
Oliver Rauch 2001-10-27 11:58:09 +00:00
rodzic a39d1a1518
commit 3b1411d8e0
7 zmienionych plików z 77 dodań i 32 usunięć

Wyświetl plik

@ -108,8 +108,8 @@ static char *scanner_str[] =
"UMAX ", "PowerLook III ",
"UMAX ", "PowerLook 3000 ",
"UMAX ", "Gemini D-16 ",
"LinoHell", "JADE ",
"LinoHell", "Office ",
"LinoHell", "JADE ", /* is a Supervista S-12 */
"LinoHell", "Office ", /* is a Supervista S-12 */
"LinoHell", "Office2 ",
"LinoHell", "SAPHIR2 ",
/* "LinoHell", "SAPHIR3 ", */

Wyświetl plik

@ -396,6 +396,7 @@ static scsiblk inquiry = { inquiryC, sizeof(inquiryC) };
#define get_inquiry_adf_line_arrangement_mode(in) in[0x9c]
#define get_inquiry_CCD_line_distance(in) in[0x9d]
#define set_inquiry_max_calibration_data_lines(out,val) out[0x9a]=val
#define set_inquiry_fb_uta_line_arrangement_mode(out,val) out[0x9b]=val
#define set_inquiry_adf_line_arrangement_mode(out,val) out[0x9c]=val
#define set_inquiry_CCD_line_distance(out,val) out[0x9d]=val

Wyświetl plik

@ -49,7 +49,7 @@
/* --------------------------------------------------------------------------------------------------------- */
#define BUILD 30
#define BUILD 31
/* --------------------------------------------------------------------------------------------------------- */
@ -198,7 +198,7 @@ static int umax_slow = -1; /* don`t use slow scanning speed */
static int umax_smear = -1; /* don`t care about image smearing problem */
static int umax_calibration_area = -1; /* -1=auto, 0=calibration on image, 1=calibration for full ccd */
static int umax_calibration_width_offset = -1; /* -1=auto */
static int umax_calibration_width_offset = -99999; /* -99999=auto */
static int umax_calibration_bytespp = -1; /* -1=auto */
static int umax_invert_shading_data = -1; /* -1=auto */
static int umax_lamp_control_available = 0; /* 0=disabled */
@ -1872,7 +1872,7 @@ static SANE_Status umax_set_window_param(Umax_Device *dev)
set_WD_color_sequence(buffer_r, WD_color_sequence_RGB); /* sequence RGB */
set_WD_color_ordering(buffer_r, WD_color_ordering_pixel); /* set to pixel for pbm, pgm, pnm-file */
set_WD_analog_gamma(buffer_r, dev->analog_gamma_r ); /* analog gamma */
set_WD_lamp_c_density(buffer_r, dev->c_density); /* calirat. lamp density */
set_WD_lamp_c_density(buffer_r, dev->c_density); /* calibrat. lamp density */
set_WD_lamp_s_density(buffer_r, dev->s_density); /* scan lamp density */
set_WD_pixel_count(buffer_r, dev->width_in_pixels); /* pixel count */
set_WD_line_count(buffer_r, dev->length_in_pixels); /* line count */
@ -2183,7 +2183,7 @@ static SANE_Status umax_do_calibration(Umax_Device *dev)
DBG(DBG_warning," Calibration is done with selected image geometry and depth!\n");
width = dev->scanwidth * dev->relevant_optical_res / dev->x_coordinate_base;
if (dev->calibration_width_offset > 0) /* driver or user (umax.conf) define an offset */
if (dev->calibration_width_offset > -99999) /* driver or user (umax.conf) define an offset */
{
width = width + dev->calibration_width_offset;
DBG(DBG_warning," Using calibration width offset of %d\n", dev->calibration_width_offset);
@ -2208,13 +2208,13 @@ static SANE_Status umax_do_calibration(Umax_Device *dev)
bytespp = 2; /* 16 bit mode */
}
}
else /* caliration is done with full scanarea and full depth */
else /* calibration is done with full scanarea and full depth */
{
DBG(DBG_warning," Calibration is done for each CCD pixel with full depth!\n");
width = (int)(dev->inquiry_fb_width * dev->inquiry_optical_res);
if (dev->calibration_width_offset > 0) /* driver or user (umax.conf) define an offset */
if (dev->calibration_width_offset > -99999) /* driver or user (umax.conf) define an offset */
{
width = width + dev->calibration_width_offset;
DBG(DBG_warning," Using calibration width offset of %d\n", dev->calibration_width_offset);
@ -2497,14 +2497,6 @@ static void umax_correct_inquiry(Umax_Device *dev, char *vendor, char *product,
dev->calibration_bytespp = 2;
}
#if 0
if (dev->calibration_width_offset == -1) /* no calibration-width-offset defined in umax.conf */
{
dev->calibration_width_offset = 5100; /* calibration is done for 1200 dpi instead of 600 dpi */
DBG(DBG_warning," - adding calibration width offset of %d pixels\n", dev->calibration_width_offset);
}
#endif
DBG(DBG_warning,"- common x and y resolution\n");
dev->common_xy_resolutions = 1;
}
@ -2565,7 +2557,22 @@ static void umax_correct_inquiry(Umax_Device *dev, char *vendor, char *product,
(!strncmp(product, "UMAX S-12 ", 10)) ||
(!strncmp(product, "SuperVista S-12 ", 16)) )
{
DBG(DBG_warning,"using standard options for %s\n", product);
DBG(DBG_warning,"setting up special options for %s\n", product);
DBG(DBG_warning,"setting maximum calibration data lines to 66\n");
set_inquiry_max_calibration_data_lines(dev->buffer[0], 66);
if (dev->calibration_width_offset == -99999) /* no calibration-width-offset defined in umax.conf */
{
dev->calibration_width_offset = -1;
DBG(DBG_warning," - adding calibration width offset of %d pixels\n", dev->calibration_width_offset);
}
if (dev->calibration_area == -1) /* no calibration area defined in umax.conf */
{
DBG(DBG_warning," - calibration by driver is done for each CCD pixel\n");
dev->calibration_area = UMAX_CALIBRATION_AREA_CCD;
}
}
else if (!strncmp(product, "Mirage D-16L ", 13))
{
@ -2576,7 +2583,7 @@ static void umax_correct_inquiry(Umax_Device *dev, char *vendor, char *product,
dev->calibration_area = UMAX_CALIBRATION_AREA_CCD;
}
if (dev->calibration_width_offset == -1) /* no calibration-width-offset defined in umax.conf */
if (dev->calibration_width_offset == -99999) /* no calibration-width-offset defined in umax.conf */
{
dev->calibration_width_offset = 308;
DBG(DBG_warning," - adding calibration width offset of %d pixels\n", dev->calibration_width_offset);
@ -2586,7 +2593,7 @@ static void umax_correct_inquiry(Umax_Device *dev, char *vendor, char *product,
{
DBG(DBG_warning,"setting up special options for %s\n", product);
if (dev->calibration_width_offset == -1) /* no calibration-width-offset defined in umax.conf */
if (dev->calibration_width_offset == -99999) /* no calibration-width-offset defined in umax.conf */
{
dev->calibration_width_offset = 28;
DBG(DBG_warning," - adding calibration width offset of %d pixels\n", dev->calibration_width_offset);
@ -2597,7 +2604,7 @@ static void umax_correct_inquiry(Umax_Device *dev, char *vendor, char *product,
{
DBG(DBG_warning,"setting up special options for %s\n", product);
if (dev->calibration_width_offset == -1) /* no calibration-width-offset defined in umax.conf */
if (dev->calibration_width_offset == -99999) /* no calibration-width-offset defined in umax.conf */
{
dev->calibration_width_offset = 52;
DBG(DBG_warning," - adding calibration width offset of %d pixels\n", dev->calibration_width_offset);
@ -2608,13 +2615,35 @@ static void umax_correct_inquiry(Umax_Device *dev, char *vendor, char *product,
DBG(DBG_warning,"using standard options for %s\n", product);
}
}
else if (!strncmp(vendor, "LinoHell ", 9))
{
if ( (!strncmp(product, "Office ", 7)) || (!strncmp(product, "JADE ", 5)) ) /* is a Supervista S-12 */
{
DBG(DBG_warning,"setting up special options for %s\n", product);
DBG(DBG_warning,"setting maximum calibration data lines to 66\n");
set_inquiry_max_calibration_data_lines(dev->buffer[0], 66);
if (dev->calibration_width_offset == -99999) /* no calibration-width-offset defined in umax.conf */
{
dev->calibration_width_offset = -1;
DBG(DBG_warning," - adding calibration width offset of %d pixels\n", dev->calibration_width_offset);
}
if (dev->calibration_area == -1) /* no calibration area defined in umax.conf */
{
DBG(DBG_warning," - calibration by driver is done for each CCD pixel\n");
dev->calibration_area = UMAX_CALIBRATION_AREA_CCD;
}
}
}
else if (!strncmp(vendor, "Linotype ", 9))
{
if (!strncmp(product, "SAPHIR4 ", 8)) /* is a Powerlook III */
{
DBG(DBG_warning,"setting up special options for %s\n", product);
if (dev->calibration_width_offset == -1) /* no calibration-width-offset defined in umax.conf */
if (dev->calibration_width_offset == -99999) /* no calibration-width-offset defined in umax.conf */
{
dev->calibration_width_offset = 28;
DBG(DBG_warning," - adding calibration width offset of %d pixels\n", dev->calibration_width_offset);
@ -2628,7 +2657,7 @@ static void umax_correct_inquiry(Umax_Device *dev, char *vendor, char *product,
{
DBG(DBG_warning,"setting up special options for %s\n", product);
if (dev->calibration_width_offset == -1) /* no calibration-width-offset defined in umax.conf */
if (dev->calibration_width_offset == -99999) /* no calibration-width-offset defined in umax.conf */
{
dev->calibration_width_offset = 28;
DBG(DBG_warning," - adding calibration width offset of %d pixels\n", dev->calibration_width_offset);

Wyświetl plik

@ -21,7 +21,7 @@ parallel- and USB-scanners are not (and propably will never be) supported!
.SH CONFIGURATION
The configuration file for this backend resides in
/usr/local/etc/sane.d/umax.conf.
@CONFIGDIR@/umax.conf.
Its contents is a list of device names that correspond to UMAX and UMAX compatible scanners. Empty lines
and lines starting with a hash mark (#) are ignored. A sample configuration file is
@ -90,7 +90,7 @@ shown below:
selected image
- calibration-width-offset:
values: -1=disabled, >=0 set value
values: -99999=auto, >-99999 set value
add an offset width to the calculated with for
image/ccd
@ -148,13 +148,13 @@ See also: sane-scsi(5)
.SH FILES
The backend configuration file:
/usr/local/etc/sane.d/umax.conf
@CONFIGDIR@/umax.conf
The static library implementing this backend:
/usr/local/lib/sane/libsane-umax.a
@LIBDIR@/libsane-umax.a
The shared library implementing this backend :
/usr/local/lib/sane/libsane-umax.so
@LIBDIR@/libsane-umax.so
(present on systems that support dynamic loading)
.SH ENVIRONMENT
@ -198,4 +198,4 @@ sane(7)
Oliver Rauch
.SH EMAIL-CONTACT
Oliver.Rauch@Wolfsburg.DE
Oliver.Rauch@Rauch-Domain.DE

Wyświetl plik

@ -71,7 +71,7 @@ Supported scanners:
This backend dynamically enabeles the options that are supported
by the scanner in dependence of the scanning-mode and other options. Here
is an example of the frontend <a href="http://www.wolfsburg.de/~rauch/sane/sane-xsane.html">
is an example of the frontend <a href="http://www.xsane.org/">
<i>XSane</i></a>:
<br>
<br>

Wyświetl plik

@ -71,7 +71,7 @@ Supported scanners:
This backend dynamically enabeles the options that are supported
by the scanner in dependence of the scanning-mode and other options. Here
is an example of the frontend
<a href="http://www.wolfsburg.de/~rauch/sane/sane-xsane.html"><i>x</i>sane</a>:
<a href="http://www.xsane.org">XSane</a>:
<br>
<br>
<br>

Wyświetl plik

@ -985,11 +985,26 @@ build-28 -> build-29
* set minimum resolution to 5 (was 1 before what could make problems)
build-29 -> build-30
--------------------
build-29 -> build-30 (sane-1.0.6)
---------------------------------
* added EDGE KTX-9600US as supported scanner
* Changing scansource does not change lower left selection edge
if not necessary
build-30 -> build-31
--------------------
* sane-umax.man uses @LIBDIR@ and @CONFIGFIR@
* changed automatic calibration_width_offset marker from -1 to -99999
* changed
dev->calibration_area to 1 and
calibration_width_offset to -1 and
inquiry_max_calibration_data_lines to 66
for UMAX Supervista S-12, LinoHell Office and LinHell JADE