kopia lustrzana https://gitlab.com/sane-project/backends
* doc/descriptions/cardscan.desc, doc/descriptions/epjitsu.desc,
doc/descriptions/hp3900.desc, doc/descriptions/hp5590.desc, doc/descriptions/hpljm1005.desc, doc/descriptions/hs2p.desc: remove 'new' tag from sane 1.0.19 backends * doc/descriptions/fujitsu.desc, backend/fujitsu.conf.in: add fi-5530C2 usb ID * backend/cardscan.c: correct version number * backend/epjitsu.conf.in: improved firmware directions * backend/fujitsu.[ch]: update to backend v 1.0.61merge-requests/1/head
rodzic
d857bdc3f5
commit
f6f4de5d5d
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
2008-05-15 m. allan noah <kitno455 a t gmail d o t com>
|
||||
* doc/descriptions/cardscan.desc, doc/descriptions/epjitsu.desc,
|
||||
doc/descriptions/hp3900.desc, doc/descriptions/hp5590.desc,
|
||||
doc/descriptions/hpljm1005.desc, doc/descriptions/hs2p.desc:
|
||||
remove 'new' tag from sane 1.0.19 backends
|
||||
* doc/descriptions/fujitsu.desc, backend/fujitsu.conf.in:
|
||||
add fi-5530C2 usb ID
|
||||
* backend/cardscan.c: correct version number
|
||||
* backend/epjitsu.conf.in: improved firmware directions
|
||||
* backend/fujitsu.[ch]: update to backend v 1.0.61
|
||||
|
||||
2008-05-15 Mattias Ellert <mattias.ellert@fysast.uu.se>
|
||||
* doc/sane-genesys.man, doc/sane-lexmark.man, doc/sane-microtek2.man,
|
||||
doc/sane-mustek_pp.man, doc/sane-pixma.man, doc/sane-rts8891.man,
|
||||
|
@ -17,7 +28,7 @@
|
|||
include/sane/sanei_thread.h, sanei/sanei_thread.c:
|
||||
Fix for bug #306751: sanei-thread with pthreads on 64 bit
|
||||
|
||||
2008-04-12 Stéphane Voltz <stef.dev@free.fr>
|
||||
2008-05-12 Stéphane Voltz <stef.dev@free.fr>
|
||||
* backend/rts8891.c
|
||||
150/300 dpi mode fixes for 'XPA' sensor HP4470 models
|
||||
|
||||
|
|
|
@ -230,7 +230,7 @@ four times {
|
|||
#include "cardscan.h"
|
||||
|
||||
#define DEBUG 1
|
||||
#define BUILD 0
|
||||
#define BUILD 1
|
||||
|
||||
/* values for SANE_DEBUG_CARDSCAN env var:
|
||||
- errors 5
|
||||
|
|
|
@ -8,11 +8,16 @@
|
|||
# to the author via email, so it can be included in next version. kitno455 at
|
||||
# gmail dot com - with epjitsu in the subject line
|
||||
|
||||
# these devices require a firmware file in order to function
|
||||
# it can generally be found inside C:\windows\fjsti.cab or
|
||||
# C:\windows\fjmini\*.cab
|
||||
# open that file and look for a ~65K .NAL file with the scanner's name
|
||||
# and copy it someplace sane can reach it. then update the line below.
|
||||
# These devices require a firmware file in order to function, which must be
|
||||
# extracted from the Fujitsu Windows driver. Presumably the Mac versions
|
||||
# contain the firmware as well, but the author has no access such a machine.
|
||||
|
||||
# Firmware is installed in several different locations by the fujitsu software,
|
||||
# using the windows 'search' feature to look for '*.nal' is the easiest way to
|
||||
# find them. They should be ~65K, and have the scanner's name as part of the
|
||||
# file name. They are often inside a .cab file.
|
||||
|
||||
# Copy the file someplace sane can reach it. Then update the line below.
|
||||
# NOTE: the firmware line must occur BEFORE the usb line for your scanner
|
||||
|
||||
# Fujitsu fi-60F
|
||||
|
@ -20,5 +25,5 @@ firmware @DATADIR@/sane/epjitsu/60f_0A00.nal
|
|||
usb 0x04c5 0x10c7
|
||||
|
||||
# Fujitsu S300
|
||||
firmware @DATADIR@/sane/epjitsu/300_0A00.nal
|
||||
firmware @DATADIR@/sane/epjitsu/300_0C00.nal
|
||||
usb 0x04c5 0x1156
|
||||
|
|
|
@ -296,6 +296,10 @@
|
|||
V 1.0.60 2008-04-27, MAN
|
||||
- move call to sanei_usb_init() from sane_init() to find_scanners
|
||||
- free sane_devArray before calloc'ing a new one
|
||||
V 1.0.61 2008-05-11, MAN
|
||||
- minor cleanups to init_ms()
|
||||
- add fi-5530C2 usb id
|
||||
- merge find_scanners into sane_get_devices
|
||||
|
||||
SANE FLOW DIAGRAM
|
||||
|
||||
|
@ -356,7 +360,7 @@
|
|||
#include "fujitsu.h"
|
||||
|
||||
#define DEBUG 1
|
||||
#define BUILD 60
|
||||
#define BUILD 61
|
||||
|
||||
/* values for SANE_DEBUG_FUJITSU env var:
|
||||
- errors 5
|
||||
|
@ -468,43 +472,24 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize)
|
|||
* explicitly by a user which would make it unnecessary and
|
||||
* undesirable to call this function first.
|
||||
*/
|
||||
/*
|
||||
* Read the config file, find scanners with help from sanei_*
|
||||
* and store in global device structs
|
||||
*/
|
||||
SANE_Status
|
||||
sane_get_devices (const SANE_Device *** device_list, SANE_Bool local_only)
|
||||
{
|
||||
SANE_Status ret;
|
||||
|
||||
local_only = local_only; /* get rid of compiler warning */
|
||||
|
||||
DBG (10, "sane_get_devices: start\n");
|
||||
|
||||
/* load the two global lists of device structs */
|
||||
ret = find_scanners();
|
||||
|
||||
*device_list = sane_devArray;
|
||||
|
||||
DBG (10, "sane_get_devices: finish\n");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Read the config file, find scanners with help from sanei_*
|
||||
* store in global device structs
|
||||
*
|
||||
* We place the complex init code here, so it can be called
|
||||
* from sane_get_devices() and sane_open()
|
||||
*/
|
||||
SANE_Status
|
||||
find_scanners ()
|
||||
{
|
||||
struct fujitsu *dev;
|
||||
SANE_Status ret = SANE_STATUS_GOOD;
|
||||
struct fujitsu * dev;
|
||||
char line[PATH_MAX];
|
||||
const char *lp;
|
||||
FILE *fp;
|
||||
int num_devices=0;
|
||||
int i=0;
|
||||
|
||||
DBG (10, "find_scanners: start\n");
|
||||
local_only = local_only; /* get rid of compiler warning */
|
||||
|
||||
DBG (10, "sane_get_devices: start\n");
|
||||
|
||||
sanei_usb_init();
|
||||
|
||||
|
@ -515,7 +500,8 @@ find_scanners ()
|
|||
|
||||
if (fp) {
|
||||
|
||||
DBG (15, "find_scanners: reading config file %s\n", FUJITSU_CONFIG_FILE);
|
||||
DBG (15, "sane_get_devices: reading config file %s\n",
|
||||
FUJITSU_CONFIG_FILE);
|
||||
|
||||
while (sanei_config_read (line, PATH_MAX, fp)) {
|
||||
|
||||
|
@ -543,100 +529,103 @@ find_scanners ()
|
|||
buf = atoi (lp);
|
||||
|
||||
if (buf < 4096) {
|
||||
DBG (5, "find_scanners: config option \"buffer-size\" (%d) is < 4096, ignoring!\n", buf);
|
||||
DBG (5, "sane_get_devices: config option \"buffer-size\" (%d) is < 4096, ignoring!\n", buf);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (buf > 64*1024) {
|
||||
DBG (5, "find_scanners: config option \"buffer-size\" (%d) is > %d, warning!\n", buf, 64*1024);
|
||||
DBG (5, "sane_get_devices: config option \"buffer-size\" (%d) is > %d, warning!\n", buf, 64*1024);
|
||||
}
|
||||
|
||||
DBG (15, "find_scanners: setting \"buffer-size\" to %d\n", buf);
|
||||
DBG (15, "sane_get_devices: setting \"buffer-size\" to %d\n", buf);
|
||||
global_buffer_size = buf;
|
||||
}
|
||||
else {
|
||||
DBG (5, "find_scanners: config option \"%s\" unrecognized - ignored.\n", lp);
|
||||
DBG (5, "sane_get_devices: config option \"%s\" unrecognized - ignored.\n", lp);
|
||||
}
|
||||
}
|
||||
else if ((strncmp ("usb", lp, 3) == 0) && isspace (lp[3])) {
|
||||
DBG (15, "find_scanners: looking for '%s'\n", lp);
|
||||
DBG (15, "sane_get_devices: looking for '%s'\n", lp);
|
||||
sanei_usb_attach_matching_devices(lp, attach_one_usb);
|
||||
}
|
||||
else if ((strncmp ("scsi", lp, 4) == 0) && isspace (lp[4])) {
|
||||
DBG (15, "find_scanners: looking for '%s'\n", lp);
|
||||
DBG (15, "sane_get_devices: looking for '%s'\n", lp);
|
||||
sanei_config_attach_matching_devices (lp, attach_one_scsi);
|
||||
}
|
||||
else{
|
||||
DBG (5, "find_scanners: config line \"%s\" unrecognized - ignored.\n", lp);
|
||||
DBG (5, "sane_get_devices: config line \"%s\" unrecognized - ignored.\n", lp);
|
||||
}
|
||||
}
|
||||
fclose (fp);
|
||||
}
|
||||
|
||||
else {
|
||||
DBG (5, "find_scanners: no config file '%s', using defaults\n", FUJITSU_CONFIG_FILE);
|
||||
DBG (5, "sane_get_devices: no config file '%s', using defaults\n", FUJITSU_CONFIG_FILE);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'scsi FUJITSU'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'scsi FUJITSU'\n");
|
||||
sanei_config_attach_matching_devices ("scsi FUJITSU", attach_one_scsi);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x1041'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x1041'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x1041", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x1042'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x1042'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x1042", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x1095'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x1095'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x1095", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x1096'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x1096'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x1096", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x1097'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x1097'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x1097", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x10ad'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x10ad'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x10ad", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x10ae'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x10ae'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x10ae", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x10af'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x10af'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x10af", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x10e0'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x10e0'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x10e0", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x10e1'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x10e1'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x10e1", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x10e2'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x10e2'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x10e2", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x10e7'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x10e7'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x10e7", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x10f2'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x10f2'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x10f2", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x10fe'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x10fe'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x10fe", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x1135'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x1135'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x1135", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x114d'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x114a'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x114a", attach_one_usb);
|
||||
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x114d'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x114d", attach_one_usb);
|
||||
|
||||
DBG (15, "find_scanners: looking for 'usb 0x04c5 0x1155'\n");
|
||||
DBG (15, "sane_get_devices: looking for 'usb 0x04c5 0x1155'\n");
|
||||
sanei_usb_attach_matching_devices("usb 0x04c5 0x1155", attach_one_usb);
|
||||
}
|
||||
|
||||
for (dev = fujitsu_devList; dev; dev=dev->next) {
|
||||
DBG (15, "find_scanners: found scanner %s\n",dev->device_name);
|
||||
DBG (15, "sane_get_devices: found scanner %s\n",dev->device_name);
|
||||
num_devices++;
|
||||
}
|
||||
|
||||
DBG (15, "find_scanners: found %d scanner(s)\n",num_devices);
|
||||
DBG (15, "sane_get_devices: found %d scanner(s)\n",num_devices);
|
||||
|
||||
if (sane_devArray)
|
||||
free (sane_devArray);
|
||||
|
@ -648,15 +637,18 @@ find_scanners ()
|
|||
for (dev = fujitsu_devList; dev; dev=dev->next) {
|
||||
sane_devArray[i++] = (SANE_Device *)&dev->sane;
|
||||
}
|
||||
|
||||
sane_devArray[i] = 0;
|
||||
|
||||
DBG (10, "find_scanners: finish\n");
|
||||
if(device_list){
|
||||
*device_list = sane_devArray;
|
||||
}
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
DBG (10, "sane_get_devices: finish\n");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* callbacks used by find_scanners */
|
||||
/* callbacks used by sane_get_devices */
|
||||
static SANE_Status
|
||||
attach_one_scsi (const char *device_name)
|
||||
{
|
||||
|
@ -1433,6 +1425,7 @@ init_ms(struct fujitsu *s)
|
|||
|
||||
IF_DBG (DBG_LEVEL = oldDbg;)
|
||||
|
||||
DBG (15, " unknown: %d\n", s->has_MS_unknown);
|
||||
DBG (15, " prepick: %d\n", s->has_MS_prepick);
|
||||
DBG (15, " sleep: %d\n", s->has_MS_sleep);
|
||||
DBG (15, " duplex: %d\n", s->has_MS_duplex);
|
||||
|
@ -1667,7 +1660,7 @@ sane_open (SANE_String_Const name, SANE_Handle * handle)
|
|||
else{
|
||||
DBG (15, "sane_open: no scanners currently attached, attaching\n");
|
||||
|
||||
ret = find_scanners();
|
||||
ret = sane_get_devices(NULL,0);
|
||||
if(ret != SANE_STATUS_GOOD){
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -60,6 +60,9 @@ usb 0x04c5 0x10fe
|
|||
#ScanSnap S500M
|
||||
usb 0x04c5 0x1135
|
||||
|
||||
#fi-5530C2
|
||||
usb 0x04c5 0x114a
|
||||
|
||||
#fi-6140
|
||||
usb 0x04c5 0x114d
|
||||
|
||||
|
|
|
@ -525,8 +525,6 @@ void sane_exit (void);
|
|||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
static SANE_Status find_scanners (void);
|
||||
|
||||
static SANE_Status attach_one_scsi (const char *name);
|
||||
static SANE_Status attach_one_usb (const char *name);
|
||||
static SANE_Status attach_one (const char *devicename, int connType);
|
||||
|
|
|
@ -11,8 +11,7 @@
|
|||
|
||||
:backend "cardscan" ; name of backend
|
||||
:url "http://www.thebility.com/cardscan/"
|
||||
:new :yes
|
||||
:version "1.0.0" ; version of backend
|
||||
:version "1.0.1" ; version of backend
|
||||
:manpage "sane-cardscan" ; name of manpage (if it exists)
|
||||
:comment "New for sane 1.0.19"
|
||||
:devicetype :scanner ; start of a list of devices....
|
||||
|
|
|
@ -11,8 +11,7 @@
|
|||
|
||||
:backend "epjitsu" ; name of backend
|
||||
:url "http://www.thebility.com/epjitsu/"
|
||||
:new :yes
|
||||
:version "1.0.11" ; version of backend
|
||||
:version "1.0.12" ; version of backend
|
||||
:manpage "sane-epjitsu" ; name of manpage (if it exists)
|
||||
:comment "Only basic support provided, see sane-epjitsu manpage"
|
||||
:devicetype :scanner ; start of a list of devices....
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
:backend "fujitsu" ; name of backend
|
||||
:url "http://www.thebility.com/fujitsu/"
|
||||
:version "1.0.59" ; version of backend
|
||||
:version "1.0.61" ; 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....
|
||||
|
@ -89,6 +89,18 @@
|
|||
:usbid "0x04c5" "0x1135"
|
||||
:comment "small, recent, discontinued, no TWAIN driver, Mac only"
|
||||
|
||||
:model "fi-5120C"
|
||||
:interface "SCSI USB"
|
||||
:status :good
|
||||
:usbid "0x04c5" "0x10e0"
|
||||
:comment "small, recent, discontinued"
|
||||
|
||||
:model "fi-5220C"
|
||||
:interface "SCSI USB"
|
||||
:status :good
|
||||
:usbid "0x04c5" "0x10e1"
|
||||
:comment "small, recent, discontinued"
|
||||
|
||||
;==================================================
|
||||
; CURRENT MODELS, SMALL
|
||||
:model "ScanSnap S510"
|
||||
|
@ -113,23 +125,21 @@
|
|||
:usbid "0x04c5" "0x1097"
|
||||
:comment "small, current"
|
||||
|
||||
:model "fi-5120C"
|
||||
:interface "SCSI USB"
|
||||
:status :good
|
||||
:usbid "0x04c5" "0x10e0"
|
||||
:comment "small, current"
|
||||
|
||||
:model "fi-5220C"
|
||||
:interface "SCSI USB"
|
||||
:status :good
|
||||
:usbid "0x04c5" "0x10e1"
|
||||
:comment "small, current"
|
||||
|
||||
:model "fi-6000NS"
|
||||
:interface "Ethernet"
|
||||
:status :untested
|
||||
:comment "small, current, integrated touchscreen and keyboard"
|
||||
|
||||
:model "fi-6130"
|
||||
:interface "SCSI USB"
|
||||
:status :untested
|
||||
:comment "medium, current"
|
||||
|
||||
:model "fi-6230"
|
||||
:interface "SCSI USB"
|
||||
:status :untested
|
||||
:comment "medium, current"
|
||||
|
||||
;==================================================
|
||||
; DISCONTINUED OLDER MODELS, MEDIUM
|
||||
:model "M3093E"
|
||||
|
@ -219,7 +229,8 @@
|
|||
|
||||
:model "fi-5530C2"
|
||||
:interface "SCSI USB"
|
||||
:status :untested
|
||||
:status :good
|
||||
:usbid "0x04c5" "0x114a"
|
||||
:comment "medium, current"
|
||||
|
||||
:model "fi-6140"
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
|
||||
:backend "hp3900"
|
||||
:version "0.12"
|
||||
:new :yes
|
||||
:manpage "sane-hp3900"
|
||||
:url "http://sourceforge.net/projects/hp3900-series/"
|
||||
:comment "Still Beta"
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
:backend "hp5590"
|
||||
:version "1.0"
|
||||
:new :yes
|
||||
:manpage "sane-hp5590"
|
||||
|
||||
:devicetype :scanner
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
:backend "hpljm1005"
|
||||
:version "0"
|
||||
:new :yes
|
||||
:manpage "sane-hpljm1005"
|
||||
|
||||
:devicetype :scanner
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
:backend "hs2p" ; name of backend
|
||||
:url "http://www.acjlaw.net:8080/~jeremy/Ricoh/"
|
||||
:version "1.00" ; version of backend
|
||||
:new :yes
|
||||
;
|
||||
:manpage "sane-hs2p" ; name of manpage (if it exists)
|
||||
:comment "This backend has been tested with the IS450DE (Duplex/Endorser). All major functions necessary for scanning are supported. This backend should work with all Ricoh scanners in the IS450 family as well as the IS420 series, but the IS420 has not yet been tested. Features provided by the optional Image Processing Unit (IPU) are not yet integrated into the backend, as my scanner lacks the IPU."
|
||||
|
|
Ładowanie…
Reference in New Issue