updated to backend version 1.0.44, updated maintainer email addy

merge-requests/1/head
m. allan noah 2007-01-27 01:42:13 +00:00
rodzic 50a260fee3
commit 4eabb3820c
9 zmienionych plików z 170 dodań i 51 usunięć

Wyświetl plik

@ -173,7 +173,7 @@ Karsten Festag <karsten.festag@gmx.de>
Kazuhiro Sasayama <kaz@hypercore.co.jp>
Kazuya Fukuda <kaafuu@mug.biglobe.ne.jp>
Kevin Charter <charter@cs.rice.edu>
m. allan noah <anoah at pfeiffer dot edu>
m. allan noah <kitno455 at gmail dot com>
M.F. <massifr@tiscalinet.it>
Manuel Panea <Manuel.Panea@rzg.mpg.de>
Marcio Teixeira <marciot@users.sourceforge.net>

Wyświetl plik

@ -1,3 +1,15 @@
2007-01-26 m. allan noah <kitno455 a t gmail d o t com>
* AUTHORS, doc/sane-fujitsu.man, backend/fujitsu.conf.in,
backend/fujitsu.c: updated email address
* backend/fujitsu-scsi.h, backend/fujitsu.[ch]: update to v1.0.44,
set SANE_CAP_HARD_SELECT on all buttons/sensors.
disable sending gamma LUT, quality errors reported.
support MS overscan.
clamp the scan area to the pagesize on ADF.
* doc/descriptions/fujitsu.desc: version number update
2006-01-21 Jochen Eisinger <jochen@penguin-breeder.org>
* doc/descriptions/mustek_pp.desc: Cybercom is a CIS scanner
@ -164,8 +176,7 @@
* backend/fujitsu.[ch], backend/fujitsu-scsi.h: update to v1.0.43,
add model-specific code to init_vpd for M3099, clean some noise
* doc/descriptions/fujitsu.desc:
version number update
* doc/descriptions/fujitsu.desc: version number update
2006-09-18 Stephane Voltz <stef.dev@free.fr>
@ -189,8 +200,7 @@
* backend/fujitsu.c: update to v1.0.42,
fix bug in get_hardware_status (#303798)
* doc/descriptions/fujitsu.desc:
version number update
* doc/descriptions/fujitsu.desc: version number update
2006-08-29 Gerhard Jaeger <gerhard@gjaeger.de>
@ -206,8 +216,7 @@
* backend/fujitsu.c backend/fujitsu-scsi.h: update to v1.0.41,
do_usb_cmd() returns io error on cmd/out/status/rs EOF,
fix bug in MS buffer/prepick scsi data block
* doc/descriptions/fujitsu.desc:
version number update
* doc/descriptions/fujitsu.desc: version number update
2006-08-28 Stephane Voltz <stefdev@modulonet.fr>

Wyświetl plik

@ -104,6 +104,7 @@
scanners.
2003-11-04 m. allan noah <anoah at pfeiffer dot edu>
* doc/descriptions/fujitsu.desc: added model "fi-4110EOX2"
2003-11-04 Gerhard Jaeger <gerhard@gjaeger.de>
@ -300,8 +301,9 @@
fixed urls.
2003-10-19 m. allan noah <anoah at pfeiffer dot edu>
* backend/fujitsu.c: reverse previous patch. Dont blindly trust
code from the backend maintainer :)
code from the backend maintainer :)
2003-10-19 Julien Blache <jb@jblache.org>
* frontend/saned.c: added subnet support to saned ; added
@ -347,7 +349,7 @@
* backend/fujitsu.c: memset the device struct and the scsi buff
when a new device is attached. Submitted by
Chris Chesney <cchesney at go-integral dot com>.
Initialized a couple vars in the 3091 init routines.
Initialized a couple vars in the 3091 init routines.
2003-10-15 Henning Meier-Geinitz <henning@meier-geinitz.de>
@ -1228,8 +1230,8 @@
2003-06-11 Oliver Schirrmeister <oschirr@abm.de>
* backend/fujitsu.c fixed bug in that code when a scanner is
disconnected (anoah@pfeiffer.edu)
* backend/fujitsu.c: fixed bug in that code when a scanner is
disconnected (anoah at pfeiffer dot edu)
2003-06-10 Michael Herder <crapsite@gmx.net>
@ -1282,10 +1284,10 @@
2003-06-06 Oliver Schirrmeister <oschirr@abm.de>
* backend/fujitsu.h backend/fujitsu.c doc/descriptions/fujitsu.desc
path from anoah@pfeiffer.edu:
* backend/fujitsu.h backend/fujitsu.c doc/descriptions/fujitsu.desc:
remove SP15 code
sane_open actually opens the device you request
from (anoah at pfeiffer dot edu)
2003-06-05 Henning Meier-Geinitz <henning@meier-geinitz.de>

Wyświetl plik

@ -443,7 +443,7 @@ static scsiblk mode_selectB = { mode_selectC, sizeof (mode_selectC) };
* there is also 'descriptor block' & 'vendor-specific block'
* but fujitsu seems not to use these */
/* 8 byte page only used by all pages except dropout? */
/* 8 byte page used by all pages except dropout? */
static unsigned char mode_select_8byteC[] = {
0x00, 0x00, 0x00, 0x00,
0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@ -494,7 +494,9 @@ static scsiblk mode_select_10byteB = {
#define set_MSEL_prepick(sb, val) setbitfield(sb + 0x06, 0x03, 6, val)
/*buffer and prepick use these*/
#define set_MSEL_overscan(sb, val) setbitfield(sb + 0x09, 0x03, 6, val)
/*buffer, prepick, overscan use these*/
#define MSEL_DEFAULT 0
#define MSEL_OFF 2
#define MSEL_ON 3

Wyświetl plik

@ -226,7 +226,7 @@
- rewrite do_*_cmd functions to handle short reads
and to use ptr to return read in length
- new init_user function split from init_model
_ init_vpd allows short vpd block for older models
- init_vpd allows short vpd block for older models
- support MS buffer (s.scipioni AT harvardgroup DOT it)
- support MS prepick
- read only 1 byte of mode sense output
@ -237,6 +237,11 @@
- fix bug in get_hardware_status (#303798)
V 1.0.43 2006-09-19, MAN
- add model-specific code to init_vpd for M3099
V 1.0.44 2007-01-26, MAN
- set SANE_CAP_HARD_SELECT on all buttons/sensors
- disable sending gamma LUT, seems wrong on some units?
- support MS overscan
- clamp the scan area to the pagesize on ADF
SANE FLOW DIAGRAM
@ -297,7 +302,7 @@
#include "fujitsu.h"
#define DEBUG 1
#define BUILD 43
#define BUILD 44
/* values for SANE_DEBUG_FUJITSU env var:
- errors 5
@ -890,7 +895,7 @@ init_vpd (struct fujitsu *s)
memcpy(buffer+0x19,buff_VPD_M3097.cmd,buff_VPD_M3097.size);
}*/
DBG (5, "init_vpd: length=%0x\n",get_IN_page_length (buffer));
DBG (15, "init_vpd: length=%0x\n",get_IN_page_length (buffer));
/* This scanner supports vital product data.
* Use this data to set dpi-lists etc. */
@ -1152,7 +1157,7 @@ init_vpd (struct fujitsu *s)
/*FIXME no vendor vpd, set some defaults? */
else{
DBG (5, "init_vpd: Your scanner supports only partial VPD?\n");
DBG (5, "init_vpd: Please contact anoah at pfeiffer dot edu\n");
DBG (5, "init_vpd: Please contact kitno455 at gmail dot com\n");
DBG (5, "init_vpd: with details of your scanner model.\n");
ret = SANE_STATUS_INVAL;
}
@ -1160,7 +1165,7 @@ init_vpd (struct fujitsu *s)
/*FIXME no vpd, set some defaults? */
else{
DBG (5, "init_vpd: Your scanner does not support VPD?\n");
DBG (5, "init_vpd: Please contact anoah at pfeiffer dot edu\n");
DBG (5, "init_vpd: Please contact kitno455 at gmail dot com\n");
DBG (5, "init_vpd: with details of your scanner model.\n");
}
@ -1410,6 +1415,14 @@ init_model (struct fujitsu *s)
/* lies */
s->adbits = 8;
}
else if (strstr (s->product_name, "fi-4120C2")
|| strstr (s->product_name, "fi-4220C2") ) {
/* missing from vpd */
s->os_x_basic = 376;
s->os_y_basic = 236;
}
else if (strstr (s->product_name, "fi-4750")
|| strstr (s->product_name, "fi-4340") ) {
@ -1878,7 +1891,16 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
/* values stored in 1200 dpi units */
/* must be converted to MM for sane */
s->br_x_range.min = SCANNER_UNIT_TO_FIXED_MM(s->min_x);
s->br_x_range.max = SCANNER_UNIT_TO_FIXED_MM(s->max_x);
/* clamp to scanner max for fb */
if(s->source == SOURCE_FLATBED){
s->br_x_range.max = SCANNER_UNIT_TO_FIXED_MM(s->max_x);
}
/* clamp to current paper size for adf */
else{
s->br_x_range.max = SCANNER_UNIT_TO_FIXED_MM(s->page_width);
}
s->br_x_range.quant = MM_PER_UNIT_FIX;
opt->name = SANE_NAME_SCAN_BR_X;
@ -1896,7 +1918,16 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
/* values stored in 1200 dpi units */
/* must be converted to MM for sane */
s->br_y_range.min = SCANNER_UNIT_TO_FIXED_MM(s->min_y);
s->br_y_range.max = SCANNER_UNIT_TO_FIXED_MM(s->max_y);
/* clamp to scanner max for fb */
if(s->source == SOURCE_FLATBED){
s->br_y_range.max = SCANNER_UNIT_TO_FIXED_MM(s->max_y);
}
/* clamp to current paper size for adf */
else{
s->br_y_range.max = SCANNER_UNIT_TO_FIXED_MM(s->page_height);
}
s->br_y_range.quant = MM_PER_UNIT_FIX;
opt->name = SANE_NAME_SCAN_BR_Y;
@ -2212,6 +2243,26 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->cap = SANE_CAP_INACTIVE;
}
/*overscan*/
if(option==OPT_OVERSCAN){
s->overscan_list[0] = string_Default;
s->overscan_list[1] = string_Off;
s->overscan_list[2] = string_On;
s->overscan_list[3] = NULL;
opt->name = "overscan";
opt->title = "Overscan";
opt->desc = "Collect a few mm of background on top side of scan, before paper enters ADF.";
opt->type = SANE_TYPE_STRING;
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
opt->constraint.string_list = s->overscan_list;
opt->size = maxStringSize (opt->constraint.string_list);
if (s->has_MS_auto)
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
/*sleep time*/
if(option==OPT_SLEEP_TIME){
s->sleep_time_range.min = 0;
@ -2314,7 +2365,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status || s->ghs_in_rs)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2326,7 +2377,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2338,7 +2389,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2350,7 +2401,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2362,7 +2413,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2374,7 +2425,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status || s->ghs_in_rs)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2386,7 +2437,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2398,7 +2449,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status || s->ghs_in_rs)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2410,7 +2461,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2422,7 +2473,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status || s->ghs_in_rs)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2434,7 +2485,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2446,7 +2497,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status || s->ghs_in_rs)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2458,7 +2509,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_INT;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status || s->ghs_in_rs)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2470,7 +2521,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status && s->has_imprinter)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2482,7 +2533,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status || s->ghs_in_rs)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2494,7 +2545,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_INT;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2506,7 +2557,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_INT;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2518,7 +2569,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_INT;
opt->unit = SANE_UNIT_NONE;
if (s->has_cmd_hw_status && s->has_imprinter)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2530,7 +2581,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_INT;
opt->unit = SANE_UNIT_NONE;
if (s->ghs_in_rs)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2542,7 +2593,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
opt->type = SANE_TYPE_BOOL;
opt->unit = SANE_UNIT_NONE;
if (s->ghs_in_rs)
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
else
opt->cap = SANE_CAP_INACTIVE;
}
@ -2791,6 +2842,20 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
}
return SANE_STATUS_GOOD;
case OPT_OVERSCAN:
switch (s->overscan) {
case MSEL_DEFAULT:
strcpy (val, string_Default);
break;
case MSEL_ON:
strcpy (val, string_On);
break;
case MSEL_OFF:
strcpy (val, string_Off);
break;
}
return SANE_STATUS_GOOD;
case OPT_SLEEP_TIME:
*val_p = s->sleep_time;
return SANE_STATUS_GOOD;
@ -3164,6 +3229,18 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
else
return SANE_STATUS_GOOD;
case OPT_OVERSCAN:
if (!strcmp(val, string_Default))
s->overscan = MSEL_DEFAULT;
else if (!strcmp(val, string_On))
s->overscan= MSEL_ON;
else if (!strcmp(val, string_Off))
s->overscan= MSEL_OFF;
if (s->has_MS_auto)
return mode_select_overscan(s);
else
return SANE_STATUS_GOOD;
case OPT_SLEEP_TIME:
s->sleep_time = val_c;
return set_sleep_mode(s);
@ -3341,7 +3418,7 @@ get_hardware_status (struct fujitsu *s)
static SANE_Status
send_lut (struct fujitsu *s)
{
int i, j, ret, bytes = 1 << s->adbits;
int i, j, ret=0, bytes = 1 << s->adbits;
unsigned char * p = send_lutC+S_lut_data_offset;
double b, slope, offset;
@ -3390,12 +3467,13 @@ send_lut (struct fujitsu *s)
hexdump(15,"LUT:",send_lutC+S_lut_data_offset,bytes);
ret = do_cmd (
DBG (10,"send_lut: skipping\n");
/*ret = do_cmd (
s, 1, 0,
sendB.cmd, sendB.size,
send_lutC, S_lut_data_offset+bytes,
NULL, NULL
);
);*/
DBG (10, "send_lut: finish\n");
@ -3579,6 +3657,29 @@ mode_select_prepick (struct fujitsu *s)
return ret;
}
static SANE_Status
mode_select_overscan (struct fujitsu *s)
{
int ret;
DBG (10, "mode_select_overscan: start\n");
set_MSEL_xfer_length (mode_selectB.cmd, mode_select_8byteB.size);
set_MSEL_pc(mode_select_8byteB.cmd, MS_pc_auto);
set_MSEL_overscan(mode_select_8byteB.cmd, s->overscan);
ret = do_cmd (
s, 1, 0,
mode_selectB.cmd, mode_selectB.size,
mode_select_8byteB.cmd, mode_select_8byteB.size,
NULL, NULL
);
DBG (10, "mode_select_overscan: finish\n");
return ret;
}
/*
* @@ Section 4 - SANE scanning functions

Wyświetl plik

@ -20,8 +20,8 @@ scsi FUJITSU
#usb VENDORID PRODUCTID
# NOTE: if you have to add your device here- please send the id and model
# to the author via email, so it can be included in next version. anoah at
# pfeiffer dot edu - with Fujitsu in the subject line
# to the author via email, so it can be included in next version. kitno455 at
# gmail dot com - with Fujitsu in the subject line
#fi-4x20C
usb 0x04c5 0x1041

Wyświetl plik

@ -43,6 +43,7 @@ enum fujitsu_Option
OPT_DROPOUT_COLOR,
OPT_BUFF_MODE,
OPT_PREPICK,
OPT_OVERSCAN,
OPT_SLEEP_TIME,
OPT_DUPLEX_OFFSET,
OPT_GREEN_OFFSET,
@ -281,6 +282,7 @@ struct fujitsu
SANE_String_Const lamp_color_list[5];
SANE_String_Const buff_mode_list[4];
SANE_String_Const prepick_list[4];
SANE_String_Const overscan_list[4];
SANE_Range sleep_time_range;
SANE_Range duplex_offset_range;
SANE_Range green_offset_range;
@ -318,6 +320,7 @@ struct fujitsu
int dropout_color;
int buff_mode;
int prepick;
int overscan;
int lamp_color;
int sleep_time;
int duplex_offset;
@ -552,6 +555,8 @@ static SANE_Status mode_select_buff (struct fujitsu *s);
static SANE_Status mode_select_prepick (struct fujitsu *s);
static SANE_Status mode_select_overscan (struct fujitsu *s);
static SANE_Status set_sleep_mode(struct fujitsu *s);
int get_current_side (struct fujitsu *s);

Wyświetl plik

@ -11,7 +11,7 @@
:backend "fujitsu" ; name of backend
:url "http://www2.pfeiffer.edu/~anoah/fujitsu/"
:version "1.0.43" ; version of backend
:version "1.0.44" ; version of backend
:manpage "sane-fujitsu" ; name of manpage (if it exists)
:comment "Backend re-written for SANE release 1.0.18, see sane-fujitsu manpage"
:devicetype :scanner ; start of a list of devices....

Wyświetl plik

@ -1,4 +1,4 @@
.TH sane-fujitsu 5 "2006-06-06" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
.TH sane-fujitsu 5 "2007-01-26" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
.IX sane-fujitsu
.SH NAME
@ -259,7 +259,7 @@ fujitsu backend, 3093, fi-4340C, ipc, cmp, long-time maintainer:
fi-4220C and basic USB support: Ron Cemer <ron a t roncemer d o t com>
.br
fi-4120, fi-series color support, backend re-write, current maintainer:
M. Allan Noah: <anoah a t pfeiffer d o t edu>
m. allan noah: <kitno455 a t gmail d o t com>
.SH "SEE ALSO"
sane(7),
@ -269,5 +269,5 @@ sane-sp15c(5),
sane-avision(5)
.SH AUTHOR
M. Allan Noah: <anoah a t pfeiffer d o t edu>
m. allan noah: <kitno455 a t gmail d o t com>