kopia lustrzana https://gitlab.com/sane-project/backends
fujitsu backend v71,
- disable overscan option if vpd does not tell overscan size - fi-5110EOX crops scan area based on absolute maximum, not paper - fi-5330C and fi-5650C can't handle 10 bit LUT via USB - fi-5900 has background color, though it reports otherwisemerge-requests/1/head
rodzic
fb5ade52ad
commit
dfee7abb75
|
@ -1,3 +1,10 @@
|
||||||
|
2008-07-13 m. allan noah <kitno455 a t gmail d o t com>
|
||||||
|
* backend/fujitsu.[ch]: backend v71,
|
||||||
|
- disable overscan option if vpd does not tell overscan size
|
||||||
|
- fi-5110EOX crops scan area based on absolute maximum, not paper
|
||||||
|
- fi-5330C and fi-5650C can't handle 10 bit LUT via USB
|
||||||
|
- fi-5900 has background color, though it reports otherwise
|
||||||
|
|
||||||
2008-07-10 Stéphane Voltz <stef.dev@free.fr>
|
2008-07-10 Stéphane Voltz <stef.dev@free.fr>
|
||||||
* sanei/sanei_config.c: handle cases where config or callback
|
* sanei/sanei_config.c: handle cases where config or callback
|
||||||
function is NULL
|
function is NULL
|
||||||
|
|
|
@ -353,6 +353,11 @@
|
||||||
v70 2008-07-05, MAN
|
v70 2008-07-05, MAN
|
||||||
- fix bug in sane_get_parameters (failed to copy values)
|
- fix bug in sane_get_parameters (failed to copy values)
|
||||||
- autodetect jpeg duplex interlacing mode by inspecting scan width
|
- autodetect jpeg duplex interlacing mode by inspecting scan width
|
||||||
|
v71 2008-07-13, MAN
|
||||||
|
- disable overscan option if vpd does not tell overscan size
|
||||||
|
- fi-5110EOX crops scan area based on absolute maximum, not paper
|
||||||
|
- fi-5330C and fi-5650C can't handle 10 bit LUT via USB
|
||||||
|
- fi-5900 has background color, though it reports otherwise
|
||||||
|
|
||||||
SANE FLOW DIAGRAM
|
SANE FLOW DIAGRAM
|
||||||
|
|
||||||
|
@ -413,7 +418,7 @@
|
||||||
#include "fujitsu.h"
|
#include "fujitsu.h"
|
||||||
|
|
||||||
#define DEBUG 1
|
#define DEBUG 1
|
||||||
#define BUILD 70
|
#define BUILD 71
|
||||||
|
|
||||||
/* values for SANE_DEBUG_FUJITSU env var:
|
/* values for SANE_DEBUG_FUJITSU env var:
|
||||||
- errors 5
|
- errors 5
|
||||||
|
@ -1762,7 +1767,9 @@ init_model (struct fujitsu *s)
|
||||||
s->reverse_by_mode[MODE_GRAYSCALE] = 0;
|
s->reverse_by_mode[MODE_GRAYSCALE] = 0;
|
||||||
s->reverse_by_mode[MODE_COLOR] = 0;
|
s->reverse_by_mode[MODE_COLOR] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (strstr (s->model_name, "M3093")){
|
else if (strstr (s->model_name, "M3093")){
|
||||||
|
|
||||||
/* lies */
|
/* lies */
|
||||||
s->has_back = 0;
|
s->has_back = 0;
|
||||||
s->adbits = 8;
|
s->adbits = 8;
|
||||||
|
@ -1770,20 +1777,35 @@ init_model (struct fujitsu *s)
|
||||||
/* weirdness */
|
/* weirdness */
|
||||||
s->duplex_interlace = DUPLEX_INTERLACE_NONE;
|
s->duplex_interlace = DUPLEX_INTERLACE_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ( strstr (s->model_name, "M309")
|
else if ( strstr (s->model_name, "M309")
|
||||||
|| strstr (s->model_name, "M409")){
|
|| strstr (s->model_name, "M409")){
|
||||||
|
|
||||||
/* lies */
|
/* lies */
|
||||||
s->adbits = 8;
|
s->adbits = 8;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (strstr (s->model_name, "fi-4120C2")
|
else if (strstr (s->model_name, "fi-4120C2")
|
||||||
|| strstr (s->model_name, "fi-4220C2") ) {
|
|| strstr (s->model_name, "fi-4220C2") ) {
|
||||||
|
|
||||||
/* missing from vpd */
|
/* missing from vpd */
|
||||||
s->os_x_basic = 376;
|
s->os_x_basic = 376;
|
||||||
s->os_y_basic = 236;
|
s->os_y_basic = 236;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (strstr (s->model_name,"fi-5110EOX")){
|
||||||
|
|
||||||
|
/* weirdness */
|
||||||
|
s->cropping_mode = CROP_ABSOLUTE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*FIXME: fi-5750 too? */
|
||||||
|
else if (strstr (s->model_name,"fi-5330")
|
||||||
|
|| strstr (s->model_name,"fi-5650")){
|
||||||
|
|
||||||
|
/* lies - usb only */
|
||||||
|
if(s->connection == CONNECTION_USB)
|
||||||
|
s->adbits = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* some firmware versions use capital f? */
|
/* some firmware versions use capital f? */
|
||||||
|
@ -1800,6 +1822,9 @@ init_model (struct fujitsu *s)
|
||||||
else if (strstr (s->model_name, "Fi-5900")
|
else if (strstr (s->model_name, "Fi-5900")
|
||||||
|| strstr (s->model_name, "fi-5900") ) {
|
|| strstr (s->model_name, "fi-5900") ) {
|
||||||
|
|
||||||
|
/* lies */
|
||||||
|
s->has_bg_front=s->has_bg_back=1;
|
||||||
|
|
||||||
/* weirdness */
|
/* weirdness */
|
||||||
s->even_scan_line = 1;
|
s->even_scan_line = 1;
|
||||||
}
|
}
|
||||||
|
@ -3162,7 +3187,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
||||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||||
opt->constraint.string_list = s->overscan_list;
|
opt->constraint.string_list = s->overscan_list;
|
||||||
opt->size = maxStringSize (opt->constraint.string_list);
|
opt->size = maxStringSize (opt->constraint.string_list);
|
||||||
if (s->has_MS_auto)
|
if (s->has_MS_auto && (s->os_x_basic || s->os_y_basic))
|
||||||
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
|
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
|
||||||
else
|
else
|
||||||
opt->cap = SANE_CAP_INACTIVE;
|
opt->cap = SANE_CAP_INACTIVE;
|
||||||
|
@ -5799,6 +5824,12 @@ set_window (struct fujitsu *s)
|
||||||
set_WD_Yres (desc1, s->resolution_y);
|
set_WD_Yres (desc1, s->resolution_y);
|
||||||
|
|
||||||
set_WD_ULX (desc1, s->tl_x);
|
set_WD_ULX (desc1, s->tl_x);
|
||||||
|
/* low-end scanners ignore paper-size,
|
||||||
|
* so we have to center the window ourselves */
|
||||||
|
if(s->cropping_mode == CROP_ABSOLUTE){
|
||||||
|
set_WD_ULX (desc1, s->tl_x + (s->max_x - s->page_width) / 2);
|
||||||
|
}
|
||||||
|
|
||||||
set_WD_ULY (desc1, s->tl_y);
|
set_WD_ULY (desc1, s->tl_y);
|
||||||
set_WD_width (desc1, s->br_x - s->tl_x);
|
set_WD_width (desc1, s->br_x - s->tl_x);
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ struct fujitsu
|
||||||
/* immutable values which are set during inquiry probing of the scanner. */
|
/* immutable values which are set during inquiry probing of the scanner. */
|
||||||
/* members in order found in scsi data... */
|
/* members in order found in scsi data... */
|
||||||
char vendor_name[9]; /* raw data as returned by SCSI inquiry. */
|
char vendor_name[9]; /* raw data as returned by SCSI inquiry. */
|
||||||
char model_name[17]; /* raw data as returned by SCSI inquiry. */
|
char model_name[17]; /* raw data as returned by SCSI inquiry. */
|
||||||
char version_name[5]; /* raw data as returned by SCSI inquiry. */
|
char version_name[5]; /* raw data as returned by SCSI inquiry. */
|
||||||
|
|
||||||
int color_raster_offset; /* offset between r and b scan line and */
|
int color_raster_offset; /* offset between r and b scan line and */
|
||||||
|
@ -302,11 +302,12 @@ struct fujitsu
|
||||||
int min_x;
|
int min_x;
|
||||||
int min_y;
|
int min_y;
|
||||||
|
|
||||||
int has_back; /* not all duplex scanners can do adf back side only */
|
int has_back; /* not all duplex scanners can do adf back side only */
|
||||||
int color_interlace; /* different models interlace colors differently */
|
int color_interlace; /* different models interlace colors differently */
|
||||||
int duplex_interlace; /* different models interlace sides differently */
|
int duplex_interlace; /* different models interlace sides differently */
|
||||||
int jpeg_interlace; /* different models interlace jpeg sides differently */
|
int jpeg_interlace; /* different models interlace jpeg sides differently */
|
||||||
int even_scan_line; /* need even number of bytes in a scanline (fi-5900) */
|
int cropping_mode; /* lower-end scanners dont crop from paper size */
|
||||||
|
int even_scan_line; /* need even number of bytes in a scanline (fi-5900) */
|
||||||
int ghs_in_rs;
|
int ghs_in_rs;
|
||||||
int window_gamma;
|
int window_gamma;
|
||||||
int endorser_string_len;
|
int endorser_string_len;
|
||||||
|
@ -603,6 +604,9 @@ struct fujitsu
|
||||||
#define JPEG_INTERLACE_ALT 0
|
#define JPEG_INTERLACE_ALT 0
|
||||||
#define JPEG_INTERLACE_NONE 1
|
#define JPEG_INTERLACE_NONE 1
|
||||||
|
|
||||||
|
#define CROP_RELATIVE 0
|
||||||
|
#define CROP_ABSOLUTE 1
|
||||||
|
|
||||||
#define DF_DEFAULT 0
|
#define DF_DEFAULT 0
|
||||||
#define DF_CONTINUE 1
|
#define DF_CONTINUE 1
|
||||||
#define DF_STOP 2
|
#define DF_STOP 2
|
||||||
|
|
Ładowanie…
Reference in New Issue