kopia lustrzana https://gitlab.com/sane-project/backends
Merge branch 'master' of ssh://cbagwell-guest@git.debian.org/git/sane/sane-backends
commit
07c5723cab
frontend
include/sane
japi
lib
sanei
50
ChangeLog
50
ChangeLog
|
@ -1,3 +1,53 @@
|
|||
2009-05-09 Nicolas Martin <nicols-guest at users.alioth.debian.org>
|
||||
* backend/pixma_mp150.c, doc/descriptions/pixma.desc:
|
||||
Fixed Pixma MP600 and MP600R for 2400 dpi scan, updated their descriptions.
|
||||
|
||||
2009-05-08 m. allan noah <kitno455 at gmail dot com>
|
||||
* backend/canon_dr*: backend v27
|
||||
- bug fix in read_panel()
|
||||
- initialize vars in do_usb_cmd()
|
||||
- set buffermode off by default
|
||||
- clear page counter during init and sane_start()
|
||||
- eject previous page during init and sane_start()
|
||||
- improved SSM_BUFF macros
|
||||
- moved set_window() to after ssm-*()
|
||||
- add coarse calibration (AFE offset/gain & per-channel exposure)
|
||||
- add fine calibration (per-cell offset/gain)
|
||||
- free image and fine cal buffers in sane_close()
|
||||
- compare page counter of small scanners only in non-buffered mode
|
||||
- add back-side gray mirroring code for DR-2580C
|
||||
|
||||
2009-05-06 Nicolas Martin <nicols-guest at users.alioth.debian.org>
|
||||
* doc/descriptions/pixma.desc:
|
||||
Updated descriptions in pixma backend for ImageClass MF4010 and MF4018.
|
||||
|
||||
2009-05-06 Ilia Sotnikov <hostcc@gmail.com>
|
||||
|
||||
* doc/descriptions/unsupported.desc:
|
||||
HP ScanJet 4500C/4570C/5500C is supported by the 'hp5590' backend.
|
||||
* doc/descriptions/hp5590.desc:
|
||||
Updated backend version, added HP ScanJet 4500C as completely supported,
|
||||
added HP ScanJet 5500C as untested, HP ScanJet 4570C/5550C/5590/7650
|
||||
marked as completely supported
|
||||
* tools/check-usb-chip.c:
|
||||
Updated HP ScanJet model names displayed during the check_hp5590().
|
||||
* backend/hp5590.c, backend/hp5590_cmds.c, backend/hp5590_cmds.h,
|
||||
backend/hp5590_low.c, backend/hp5590_low.h, doc/sane-hp5590.man:
|
||||
Updated the list of supported devices (added HP 5500C which is similar
|
||||
to 4570C, 5500C which is similar to 4500C) - only strings/comments, no
|
||||
code was changed. Updated backend version. Updated man page.
|
||||
|
||||
2009-05-06 Julien Blache <jb@jblache.org>
|
||||
* tools/sane-desc.c: unbreak udev rules, use ATTRS instead of ATTR
|
||||
for USB devices.
|
||||
* frontend/saned.c: pass the network fds to saned_avahi() so the
|
||||
Avahi process can close them. Fixes a hang possible hang of the
|
||||
net backend when saned is run in debug mode.
|
||||
|
||||
2009-05-05 Julien Blache <jb@jblache.org>
|
||||
* doc/backend-writing.txt, doc/releases.txt: update for the switch
|
||||
to git.
|
||||
|
||||
2009-05-04 Chris Bagwell <cbagwell-guest at users.alioth.debian.org>
|
||||
* acinclude.m4: Rename --enable-fork-process to --enable-pthreads
|
||||
to match internal usage. Stop linking in pthread when disabled.
|
||||
|
|
Plik diff jest za duży
Load Diff
|
@ -1,4 +1,5 @@
|
|||
*-s.c
|
||||
*.conf
|
||||
dll-preload.c
|
||||
|
||||
dll-preload.h
|
||||
.deps
|
||||
|
|
|
@ -307,18 +307,20 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
|
|||
#define SSM_PAGE_len 0x0e
|
||||
#define set_SSM_page_len(sb, val) sb[0x05] = val
|
||||
|
||||
/* for DF page */
|
||||
/* for DF (0x30) page */
|
||||
#define set_SSM_DF_deskew_roll(sb, val) setbitfield(sb+7, 1, 5, val)
|
||||
#define set_SSM_DF_staple(sb, val) setbitfield(sb+7, 1, 4, val)
|
||||
#define set_SSM_DF_thick(sb, val) setbitfield(sb+7, 1, 2, val)
|
||||
#define set_SSM_DF_len(sb, val) setbitfield(sb+7, 1, 0, val)
|
||||
#define set_SSM_DF_textdir(sb, val) setbitfield(sb+9, 0xf, 0, val)
|
||||
|
||||
/* for BUFFER page */
|
||||
#define set_SSM_BUFF_duplex(sb, val) sb[0x06] = val
|
||||
#define set_SSM_BUFF_async(sb, val) sb[0x0a] = val
|
||||
/* for BUFFER (0x32) page */
|
||||
#define set_SSM_BUFF_duplex(sb, val) setbitfield(sb+6, 1, 1, val)
|
||||
#define set_SSM_BUFF_unk(sb, val) sb[0x07] = val
|
||||
#define set_SSM_BUFF_async(sb, val) setbitfield(sb+0x0a, 1, 6, val)
|
||||
#define set_SSM_BUFF_ald(sb, val) setbitfield(sb+0x0a, 1, 5, val)
|
||||
|
||||
/* for DO page */
|
||||
/* for DO (0x36) page */
|
||||
#define SSM_DO_none 0
|
||||
#define SSM_DO_red 1
|
||||
#define SSM_DO_green 2
|
||||
|
@ -345,6 +347,28 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
|
|||
/* the payload */
|
||||
#define CC_pay_len 0x20
|
||||
|
||||
#define set_CC_f_gain(sb, val) sb[0] = val
|
||||
#define set_CC_unk1(sb, val) sb[1] = val
|
||||
#define set_CC_f_offset(sb, val) sb[2] = val
|
||||
#define set_CC_unk2(sb, val) sb[3] = val
|
||||
|
||||
#define set_CC_exp_f_r1(sb, val) putnbyte(sb + 0x04, val, 2)
|
||||
#define set_CC_exp_f_g1(sb, val) putnbyte(sb + 0x06, val, 2)
|
||||
#define set_CC_exp_f_b1(sb, val) putnbyte(sb + 0x08, val, 2)
|
||||
#define set_CC_exp_f_r2(sb, val) putnbyte(sb + 0x0a, val, 2)
|
||||
#define set_CC_exp_f_g2(sb, val) putnbyte(sb + 0x0c, val, 2)
|
||||
#define set_CC_exp_f_b2(sb, val) putnbyte(sb + 0x0e, val, 2)
|
||||
|
||||
#define set_CC_b_gain(sb, val) sb[0x10] = val
|
||||
#define set_CC_b_offset(sb, val) sb[0x12] = val
|
||||
|
||||
#define set_CC_exp_b_r1(sb, val) putnbyte(sb + 0x14, val, 2)
|
||||
#define set_CC_exp_b_g1(sb, val) putnbyte(sb + 0x16, val, 2)
|
||||
#define set_CC_exp_b_b1(sb, val) putnbyte(sb + 0x18, val, 2)
|
||||
#define set_CC_exp_b_r2(sb, val) putnbyte(sb + 0x1a, val, 2)
|
||||
#define set_CC_exp_b_g2(sb, val) putnbyte(sb + 0x1c, val, 2)
|
||||
#define set_CC_exp_b_b2(sb, val) putnbyte(sb + 0x1e, val, 2)
|
||||
|
||||
/* ==================================================================== */
|
||||
/* window descriptor macros for SET_WINDOW and GET_WINDOW */
|
||||
|
||||
|
|
Plik diff jest za duży
Load Diff
|
@ -133,7 +133,8 @@ struct scanner
|
|||
int max_x_fb;
|
||||
int max_y_fb;
|
||||
|
||||
int can_color; /* actually might be in vpd, but which bit? */
|
||||
int can_color; /* actually might be in vpd, but which bit? */
|
||||
int need_cal; /* scanner needs software to help with calibration */
|
||||
|
||||
int has_counter;
|
||||
int has_rif;
|
||||
|
@ -257,6 +258,21 @@ struct scanner
|
|||
*/
|
||||
SANE_Parameters params;
|
||||
|
||||
/* --------------------------------------------------------------------- */
|
||||
/* values which are set by calibration functions */
|
||||
int c_res;
|
||||
int c_mode;
|
||||
|
||||
int c_offset[2];
|
||||
int c_gain[2];
|
||||
int c_exposure[2][3];
|
||||
|
||||
int f_res;
|
||||
int f_mode;
|
||||
|
||||
unsigned char * f_offset[2];
|
||||
unsigned char * f_gain[2];
|
||||
|
||||
/* --------------------------------------------------------------------- */
|
||||
/* values which are set by scanning functions to keep track of pages, etc */
|
||||
int started;
|
||||
|
@ -308,6 +324,10 @@ struct scanner
|
|||
#define SIDE_FRONT 0
|
||||
#define SIDE_BACK 1
|
||||
|
||||
#define CHAN_RED 0
|
||||
#define CHAN_GREEN 1
|
||||
#define CHAN_BLUE 2
|
||||
|
||||
#define SOURCE_FLATBED 0
|
||||
#define SOURCE_ADF_FRONT 1
|
||||
#define SOURCE_ADF_BACK 2
|
||||
|
@ -341,6 +361,7 @@ enum {
|
|||
|
||||
#define GRAY_INTERLACE_NONE 0
|
||||
#define GRAY_INTERLACE_2510 1
|
||||
#define GRAY_INTERLACE_gG 2
|
||||
|
||||
#define COLOR_INTERLACE_RGB 0
|
||||
#define COLOR_INTERLACE_BGR 1
|
||||
|
@ -473,12 +494,12 @@ static SANE_Status set_window (struct scanner *s);
|
|||
static SANE_Status read_panel(struct scanner *s, SANE_Int option);
|
||||
static SANE_Status send_panel(struct scanner *s);
|
||||
|
||||
static SANE_Status start_scan (struct scanner *s);
|
||||
static SANE_Status start_scan (struct scanner *s, int type);
|
||||
|
||||
static SANE_Status cancel(struct scanner *s);
|
||||
|
||||
static SANE_Status read_from_scanner(struct scanner *s, int side);
|
||||
static SANE_Status read_from_scanner_duplex(struct scanner *s);
|
||||
static SANE_Status read_from_scanner(struct scanner *s, int side, int exact);
|
||||
static SANE_Status read_from_scanner_duplex(struct scanner *s, int exact);
|
||||
|
||||
static SANE_Status copy_simplex(struct scanner *s, unsigned char * buf, int len, int side);
|
||||
|
||||
|
@ -486,7 +507,15 @@ static SANE_Status copy_duplex(struct scanner *s, unsigned char * buf, int len);
|
|||
|
||||
static SANE_Status read_from_buffer(struct scanner *s, SANE_Byte * buf, SANE_Int max_len, SANE_Int * len, int side);
|
||||
|
||||
static SANE_Status setup_buffers (struct scanner *s);
|
||||
static SANE_Status image_buffers (struct scanner *s, int setup);
|
||||
static SANE_Status offset_buffers (struct scanner *s, int setup);
|
||||
static SANE_Status gain_buffers (struct scanner *s, int setup);
|
||||
|
||||
static SANE_Status calibrate_AFE(struct scanner *s);
|
||||
static SANE_Status calibrate_fine(struct scanner *s);
|
||||
|
||||
static SANE_Status write_AFE (struct scanner *s);
|
||||
static SANE_Status calibration_scan (struct scanner *s, int);
|
||||
|
||||
static void hexdump (int level, char *comment, unsigned char *p, int l);
|
||||
static void default_globals (void);
|
||||
|
|
|
@ -39,7 +39,8 @@
|
|||
whether to permit this exception to apply to your modifications.
|
||||
If you do not wish that, delete this exception notice.
|
||||
|
||||
This file is part of a SANE backend for HP 4570/5550/5590/7650 Scanners
|
||||
This file is part of a SANE backend for
|
||||
HP ScanJet 4500C/4570C/5500C/5550C/5590/7650 Scanners
|
||||
*/
|
||||
|
||||
#include "../include/sane/config.h"
|
||||
|
@ -72,7 +73,7 @@
|
|||
}
|
||||
|
||||
/* #define HAS_WORKING_COLOR_48 */
|
||||
#define BUILD 4
|
||||
#define BUILD 5
|
||||
#define USB_TIMEOUT 30 * 1000
|
||||
|
||||
static SANE_Word
|
||||
|
@ -318,7 +319,8 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback __sane_unused__ authorize
|
|||
|
||||
DBG_INIT();
|
||||
|
||||
DBG (1, "SANE backed for HP 4570/5550/5590/7650 %u.%u.%u\n", SANE_CURRENT_MAJOR, V_MINOR, BUILD);
|
||||
DBG (1, "SANE backed for HP ScanJet 4500C/4570C/5500C/5550C/5590/7650 %u.%u.%u\n",
|
||||
SANE_CURRENT_MAJOR, V_MINOR, BUILD);
|
||||
DBG (1, "(c) Ilia Sotnikov <hostcc@gmail.com>\n");
|
||||
|
||||
if (version_code)
|
||||
|
|
|
@ -39,7 +39,8 @@
|
|||
whether to permit this exception to apply to your modifications.
|
||||
If you do not wish that, delete this exception notice.
|
||||
|
||||
This file is part of a SANE backend for HP 4570/5550/5590/7650 Scanners
|
||||
This file is part of a SANE backend for
|
||||
HP ScanJet 4500C/4570C/5500C/5550C/5590/7650 Scanners
|
||||
*/
|
||||
|
||||
#include "../include/sane/config.h"
|
||||
|
@ -72,12 +73,12 @@ hp5590_models[] = {
|
|||
{
|
||||
SCANNER_HP4570,
|
||||
0x03f0, 0x1305, "SILITEKIElwood",
|
||||
"4570", "Workgroup scanner"
|
||||
"4570C/5500C", "Workgroup scanner"
|
||||
},
|
||||
{
|
||||
SCANNER_HP5550,
|
||||
0x03f0, 0x1205, "SILITEKIPenguin",
|
||||
"5550", "Workgroup scanner"
|
||||
"4500C/5550C", "Workgroup scanner"
|
||||
},
|
||||
{
|
||||
SCANNER_HP5590,
|
||||
|
|
|
@ -39,7 +39,8 @@
|
|||
whether to permit this exception to apply to your modifications.
|
||||
If you do not wish that, delete this exception notice.
|
||||
|
||||
This file is part of a SANE backend for HP 4570/5550/5590/7650 Scanners
|
||||
This file is part of a SANE backend for
|
||||
HP ScanJet 4500C/4570C/5500C/5550C/5590/7650 Scanners
|
||||
*/
|
||||
|
||||
#ifndef HP5590_H
|
||||
|
|
|
@ -38,7 +38,8 @@
|
|||
whether to permit this exception to apply to your modifications.
|
||||
If you do not wish that, delete this exception notice.
|
||||
|
||||
This file is part of a SANE backend for HP 4570/5550/5590/7650 Scanners
|
||||
This file is part of a SANE backend for
|
||||
HP ScanJet 4500C/4570C/5500C/5550C/5590/7650 Scanners
|
||||
*/
|
||||
|
||||
#include "../include/sane/config.h"
|
||||
|
|
|
@ -38,7 +38,8 @@
|
|||
whether to permit this exception to apply to your modifications.
|
||||
If you do not wish that, delete this exception notice.
|
||||
|
||||
This file is part of a SANE backend for HP 4570/5550/5590/7650 Scanners
|
||||
This file is part of a SANE backend for
|
||||
HP ScanJet 4500C/4570C/5500C/5550C/5590/7650 Scanners
|
||||
*/
|
||||
|
||||
#ifndef HP5590_LOW_H
|
||||
|
|
|
@ -387,41 +387,7 @@ select_source (pixma_t * s)
|
|||
data[1] = 2;
|
||||
break;
|
||||
}
|
||||
/* if (s->cfg->pid == MP830_PID)
|
||||
{
|
||||
switch (s->param->source)
|
||||
{
|
||||
case PIXMA_SOURCE_ADF:
|
||||
data[0] = 2;
|
||||
data[5] = 1;
|
||||
data[6] = 1;
|
||||
break;
|
||||
|
||||
case PIXMA_SOURCE_ADFDUP:
|
||||
data[0] = 2;
|
||||
data[5] = 3;
|
||||
data[6] = 3;
|
||||
break;
|
||||
|
||||
case PIXMA_SOURCE_TPU:
|
||||
PDBG (pixma_dbg (1, "BUG:select_source(): unsupported source %d\n",
|
||||
s->param->source));
|
||||
|
||||
case PIXMA_SOURCE_FLATBED:
|
||||
data[0] = 1;
|
||||
data[1] = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
data[0] = (s->param->source == PIXMA_SOURCE_ADF) ? 2 : 1;
|
||||
data[1] = 1;
|
||||
if (mp->generation == 2)
|
||||
{
|
||||
data[5] = 1;
|
||||
}
|
||||
} */
|
||||
return pixma_exec (s, &mp->cb);
|
||||
}
|
||||
|
||||
|
@ -1001,8 +967,12 @@ post_process_image_data (pixma_t * s, pixma_imagebuf_t * ib)
|
|||
n = s->param->xdpi / 600;
|
||||
else /* FIXME: maybe need different values for CIS and CCD sensors */
|
||||
n = s->param->xdpi / 2400;
|
||||
|
||||
/* Some exceptions to global rules here */
|
||||
if (s->cfg->pid == MP970_PID)
|
||||
n = MIN (n, 4);
|
||||
if (s->cfg->pid == MP600_PID || s->cfg->pid == MP600R_PID)
|
||||
n = s->param->xdpi / 1200;
|
||||
|
||||
m = (n > 0) ? s->param->w / n : 1;
|
||||
sptr = dptr = gptr = mp->imgbuf;
|
||||
|
|
|
@ -50,7 +50,7 @@ of these files, "autoreconf" should be called. This will then call a
|
|||
chain of autotools, such as autoconf to generate configure, autoheader
|
||||
to generate include/sane/config.h.in, and automake to generate various
|
||||
Makefile.in's from Makefile.am's. All changes made by "autoreconf" must
|
||||
be commited to CVS together.
|
||||
be commited together.
|
||||
|
||||
When running configure, the Makefiles in the main and sub-directories are
|
||||
created from their respective Makefile.in files. Also include/sane/config.h
|
||||
|
@ -81,10 +81,10 @@ sane-backends/
|
|||
mkinstalldirs: Part of the build system as explained above.
|
||||
* ChangeLog:
|
||||
The ChangeLog contains all the changes made since the last stable release.
|
||||
If anything is changed in CVS, it must be also mentioned in ChangeLog.
|
||||
It's not enough to write just a CVS commit message, as users won't have
|
||||
If anything is changed in git, it must be also mentioned in ChangeLog.
|
||||
It's not enough to write just a git commit message, as users won't have
|
||||
access to these messages. For more details on the format, see the SANE
|
||||
CVS page on the website.
|
||||
git page on the website.
|
||||
* ChangeLog-1.0.0, ChangeLog-1.0.1 (...):
|
||||
These files contain the ChangeLogs of older releases. Once a new release has
|
||||
been made, the current ChangeLog renamed to ChangeLog-1.something.something
|
||||
|
@ -423,7 +423,7 @@ DOCUMENTATION
|
|||
your backend, you should include an update to the .desc file which reflects
|
||||
the new state of the backend. The .desc files are used to create the HTML
|
||||
lists of supported devices. These lists are updated automatically when you
|
||||
change a .desc file in CVS. See e.g.
|
||||
change a .desc file in git. See e.g.
|
||||
http://www.sane-project.org/lists/sane-mfgs-cvs.html for the results.
|
||||
|
||||
* The .desc files are located in the directories "doc/descriptions" and
|
||||
|
@ -483,14 +483,14 @@ In sane-backends/doc/
|
|||
description file.
|
||||
|
||||
|
||||
INCLUDING INTO CVS
|
||||
INCLUDING INTO git
|
||||
------------------
|
||||
|
||||
* If you want to include your backend into CVS use the latest CVS to make
|
||||
patches. Check the mailing list and the bug-tracking system for information
|
||||
about bugs to avoid.
|
||||
* If you want to include your backend into SANE's git tree use the latest git
|
||||
to make patches. Check the mailing list and the bug-tracking system for
|
||||
information about bugs to avoid.
|
||||
|
||||
* If your backend isn't included yet in the SANE CVS tree, write an email to
|
||||
* If your backend isn't included yet in the SANE's git tree, write an email to
|
||||
the SANE mailing list (sane-devel) and ask for inclusion. Usually one
|
||||
of the developers will check the backend for common mistakes and test
|
||||
compilation. If everything is ok the backend will be added to the CVS tree.
|
||||
compilation. If everything is ok the backend will be added to the git tree.
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
; All other information is optional (but what good is the file without it?).
|
||||
|
||||
:backend "hp5590"
|
||||
:version "1.0"
|
||||
:version "1.0.5"
|
||||
:manpage "sane-hp5590"
|
||||
|
||||
:devicetype :scanner
|
||||
|
@ -17,27 +17,39 @@
|
|||
:mfg "Hewlett-Packard"
|
||||
:url "http://www.hp.com"
|
||||
|
||||
:model "ScanJet 4500C"
|
||||
:interface "USB"
|
||||
:usbid "0x03f0" "0x1205"
|
||||
:status :complete
|
||||
:comment "Lineart/grayscale/color (24 bit), 100/200/300/600/1200/2400 DPI, flatbed/ADF/ADF duplex/TMA slides/TMA negatives"
|
||||
|
||||
:model "ScanJet 4570C"
|
||||
:interface "USB"
|
||||
:usbid "0x03f0" "0x1305"
|
||||
:status :basic
|
||||
:status :complete
|
||||
:comment "Lineart/grayscale/color (24 bit), 100/200/300/600/1200/2400 DPI, flatbed/TMA slides/TMA negatives"
|
||||
|
||||
:model "ScanJet 5500C"
|
||||
:interface "USB"
|
||||
:usbid "0x03f0" "0x1305"
|
||||
:status :untested
|
||||
:comment "Lineart/grayscale/color (24 bit), 100/200/300/600/1200/2400 DPI, flatbed/TMA slides/TMA negatives"
|
||||
|
||||
:model "ScanJet 5550C"
|
||||
:interface "USB"
|
||||
:usbid "0x03f0" "0x1205"
|
||||
:status :basic
|
||||
:status :complete
|
||||
:comment "Lineart/grayscale/color (24 bit), 100/200/300/600/1200/2400 DPI, flatbed/ADF/ADF duplex/TMA slides/TMA negatives"
|
||||
|
||||
:model "ScanJet 5590"
|
||||
:interface "USB"
|
||||
:usbid "0x03f0" "0x1705"
|
||||
:status :basic
|
||||
:status :complete
|
||||
:comment "Lineart/grayscale/color (24 bit), 100/200/300/600/1200/2400 DPI, flatbed/ADF/ADF duplex/TMA slides/TMA negatives"
|
||||
|
||||
:model "ScanJet 7650"
|
||||
:interface "USB"
|
||||
:usbid "0x03f0" "0x1805"
|
||||
:status :basic
|
||||
:status :complete
|
||||
:comment "Lineart/grayscale/color (24 bit), 100/200/300/600/1200/2400 DPI, flatbed/ADF/ADF duplex/TMA slides/TMA negatives"
|
||||
|
||||
|
|
|
@ -103,14 +103,14 @@
|
|||
:model "PIXMA MP600"
|
||||
:interface "USB"
|
||||
:usbid "0x04a9" "0x1718"
|
||||
:status :basic
|
||||
:comment "2400DPI doesn't work."
|
||||
:status :good
|
||||
:comment "All resolutions supported (up to 2400DPI)"
|
||||
|
||||
:model "PIXMA MP600R"
|
||||
:interface "USB Ethernet"
|
||||
:usbid "0x04a9" "0x1719"
|
||||
:status :minimal
|
||||
:comment "2400DPI doesn't work."
|
||||
:status :good
|
||||
:comment "All resolutions supported (up to 2400DPI)"
|
||||
|
||||
:model "PIXMA MP610"
|
||||
:interface "USB"
|
||||
|
@ -378,13 +378,13 @@
|
|||
:model "imageCLASS MF4010"
|
||||
:interface "USB"
|
||||
:usbid "0x04a9" "0x26b4"
|
||||
:status :untested
|
||||
:status :good
|
||||
:comment "All resolutions supported (up to 600DPI)"
|
||||
|
||||
:model "imageCLASS MF4018"
|
||||
:interface "USB"
|
||||
:usbid "0x04a9" "0x26b4"
|
||||
:status :untested
|
||||
:status :good
|
||||
:comment "All resolutions supported (up to 600DPI)"
|
||||
|
||||
:model "imageCLASS MF6500 series"
|
||||
|
|
|
@ -833,20 +833,6 @@
|
|||
:usbid "0x03f0" "0x2505"
|
||||
:comment "While an external binary-only backend exists, it works only on Linux i386. Therefore the scanner is unsupported on other platforms."
|
||||
|
||||
:model "ScanJet 4500C"
|
||||
:url "/unsupported/hp-scanjet-4500c.html"
|
||||
:interface "USB"
|
||||
:usbid "0x03f0" "0x1205"
|
||||
:comment "Probably unsupported, see link for details."
|
||||
:status :unsupported
|
||||
|
||||
:model "ScanJet 4570C"
|
||||
:url "/unsupported/hp-scanjet-4570c.html"
|
||||
:interface "USB"
|
||||
:usbid "0x03f0" "0x1305"
|
||||
:comment "Maybe GL841_HP, but not confirmed, maybe can be added to genesys backend "
|
||||
:status :unsupported
|
||||
|
||||
:model "ScanJet 4600"
|
||||
:url "/unsupported/hp-scanjet-4600.html"
|
||||
:interface "USB"
|
||||
|
@ -875,13 +861,6 @@
|
|||
:comment "GL843, maybe can be added to genesys backend "
|
||||
:status :unsupported
|
||||
|
||||
:model "ScanJet 5500C"
|
||||
:url "/unsupported/hp-scanjet-5500c.html"
|
||||
:interface "USB"
|
||||
:usbid "0x03f0" "0x1305"
|
||||
:comment "Maybe GL841_HP, but not confirmed, maybe can be added to genesys backend"
|
||||
:status :unsupported
|
||||
|
||||
:model "ScanJet 5530C Photosmart"
|
||||
:url "/unsupported/hp-scanjet-5530.html"
|
||||
:interface "USB"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
2008-01-10
|
||||
2009-05-05
|
||||
|
||||
This text summarizes some points to pay attention to when a new release
|
||||
of sane-backends is planned.
|
||||
|
@ -27,7 +27,7 @@ Before the release:
|
|||
* sane-backends.lsm: update
|
||||
* ChangeLog: set release marker
|
||||
* cvs commit
|
||||
* tag CVS with release tag; e.g.: 'cvs tag RELEASE_1_0_15'
|
||||
* tag git with release tag; e.g.: 'git tag -a RELEASE_1_0_15'
|
||||
|
||||
Making the release:
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
.TH sane\-hp5590 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
|
||||
.IX sane\-hp5590
|
||||
.SH NAME
|
||||
sane\-hp5590 \- SANE backend for Hewlett-Packard 5550/5590/7650 Workgroup/Document scanners
|
||||
sane\-hp5590 \- SANE backend for
|
||||
Hewlett-Packard 4500C/4570C/5500C/5550C/5590/7650 Workgroup/Document scanners
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B sane\-hp5590
|
||||
|
@ -9,9 +10,13 @@ library implements a SANE (Scanner Access Now Easy) backend that provides
|
|||
access to the following Hewlett-Packard Workgroup/Document scanners:
|
||||
.PP
|
||||
.RS
|
||||
ScanJet 4570
|
||||
ScanJet 4500C
|
||||
.br
|
||||
ScanJet 5550
|
||||
ScanJet 4570C
|
||||
.br
|
||||
ScanJet 5500C
|
||||
.br
|
||||
ScanJet 5550C
|
||||
.br
|
||||
ScanJet 5590
|
||||
.br
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
saned
|
||||
scanimage
|
||||
|
||||
.deps
|
||||
|
|
|
@ -2338,7 +2338,7 @@ sig_int_term_handler (int signum)
|
|||
|
||||
#ifdef WITH_AVAHI
|
||||
static void
|
||||
saned_avahi (void);
|
||||
saned_avahi (struct pollfd *fds, int nfds);
|
||||
|
||||
static void
|
||||
saned_create_avahi_services (AvahiClient *c);
|
||||
|
@ -2351,8 +2351,9 @@ saned_avahi_group_callback (AvahiEntryGroup *g, AvahiEntryGroupState state, void
|
|||
|
||||
|
||||
static void
|
||||
saned_avahi (void)
|
||||
saned_avahi (struct pollfd *fds, int nfds)
|
||||
{
|
||||
struct pollfd *fdp = NULL;
|
||||
int error;
|
||||
|
||||
avahi_pid = fork ();
|
||||
|
@ -2371,6 +2372,12 @@ saned_avahi (void)
|
|||
signal (SIGINT, NULL);
|
||||
signal (SIGTERM, NULL);
|
||||
|
||||
/* Close network fds */
|
||||
for (fdp = fds; nfds > 0; nfds--, fdp++)
|
||||
close (fdp->fd);
|
||||
|
||||
free(fds);
|
||||
|
||||
avahi_svc_name = avahi_strdup(SANED_NAME);
|
||||
|
||||
avahi_poll = avahi_simple_poll_new ();
|
||||
|
@ -3055,7 +3062,7 @@ run_standalone (int argc, char **argv)
|
|||
|
||||
#ifdef WITH_AVAHI
|
||||
DBG (DBG_INFO, "run_standalone: spawning Avahi process\n");
|
||||
saned_avahi ();
|
||||
saned_avahi (fds, nfds);
|
||||
#endif /* WITH_AVAHI */
|
||||
|
||||
DBG (DBG_MSG, "run_standalone: waiting for control connection\n");
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
config.h
|
||||
|
||||
stamp-h1
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
.deps
|
|
@ -0,0 +1 @@
|
|||
.deps
|
|
@ -438,7 +438,7 @@ all-mos: $(MO_FILES)
|
|||
@echo "generating $@ from $^"
|
||||
@$(MSGFMT) -o $@ $^
|
||||
|
||||
install-translations:
|
||||
install-translations: $(ALL)
|
||||
@for lang in $(ALL_LINGUAS) ; do \
|
||||
dir=$(localedir)/$${lang}/LC_MESSAGES ; \
|
||||
echo "installing sane-backends.$${lang}.mo to $${dir}/sane-backends.mo..." ; \
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
.deps
|
|
@ -3,4 +3,6 @@ sane-config
|
|||
sane-desc
|
||||
sane-find-scanner
|
||||
umax_pp
|
||||
|
||||
udev
|
||||
hal
|
||||
.deps
|
||||
|
|
|
@ -3063,7 +3063,7 @@ check_rts8822 (struct usb_device *dev)
|
|||
return "RTS8822";
|
||||
} /* end of RTS8822 detection */
|
||||
|
||||
/* Check for Silitek chipset found in HP5550/5590/7650 scanners */
|
||||
/* Check for Silitek chipset found in HP ScanJet 4500C/4570C/5500C/5550C/5590/7650 scanners */
|
||||
static char *
|
||||
check_hp5590 (struct usb_device *dev)
|
||||
{
|
||||
|
@ -3076,36 +3076,37 @@ check_hp5590 (struct usb_device *dev)
|
|||
uint8_t *ptr;
|
||||
int next_packet_size;
|
||||
unsigned int len;
|
||||
#define HP5590_NAMES "HP4500C/4570C/5500C/5550C/5590/7650"
|
||||
|
||||
if (verbose > 2)
|
||||
printf (" checking for HP5550/5590/7650 chipset ...\n");
|
||||
printf (" checking for " HP5590_NAMES " chipset ...\n");
|
||||
|
||||
/* Check device descriptor */
|
||||
if (dev->descriptor.bDeviceClass != 0xff)
|
||||
{
|
||||
if (verbose > 2)
|
||||
printf (" this is not a HP5550/5590/7650 chipset (bDeviceClass = %d)\n",
|
||||
printf (" this is not a " HP5590_NAMES " chipset (bDeviceClass = %d)\n",
|
||||
dev->descriptor.bDeviceClass);
|
||||
return 0;
|
||||
}
|
||||
if (dev->descriptor.bcdUSB != 0x200)
|
||||
{
|
||||
if (verbose > 2)
|
||||
printf (" this is not a HP5550/5590/7650 chipset (bcdUSB = 0x%x)\n",
|
||||
printf (" this is not a " HP5590_NAMES " chipset (bcdUSB = 0x%x)\n",
|
||||
dev->descriptor.bcdUSB);
|
||||
return 0;
|
||||
}
|
||||
if (dev->descriptor.bDeviceSubClass != 0xff)
|
||||
{
|
||||
if (verbose > 2)
|
||||
printf (" this is not a HP5550/5590/7650 chipset (bDeviceSubClass = 0x%x)\n",
|
||||
printf (" this is not a " HP5590_NAMES " chipset (bDeviceSubClass = 0x%x)\n",
|
||||
dev->descriptor.bDeviceSubClass);
|
||||
return 0;
|
||||
}
|
||||
if (dev->descriptor.bDeviceProtocol != 0xff)
|
||||
{
|
||||
if (verbose > 2)
|
||||
printf (" this is not a HP5550/5590/7650 chipset (bDeviceProtocol = 0x%x)\n",
|
||||
printf (" this is not a " HP5590_NAMES " chipset (bDeviceProtocol = 0x%x)\n",
|
||||
dev->descriptor.bDeviceProtocol);
|
||||
return 0;
|
||||
}
|
||||
|
@ -3114,7 +3115,7 @@ check_hp5590 (struct usb_device *dev)
|
|||
if (dev->config[0].interface[0].altsetting[0].bNumEndpoints != 3)
|
||||
{
|
||||
if (verbose > 2)
|
||||
printf (" this is not a HP5550/5590/7650 chipset (bNumEndpoints = %d)\n",
|
||||
printf (" this is not a " HP5590_NAMES " chipset (bNumEndpoints = %d)\n",
|
||||
dev->config[0].interface[0].altsetting[0].bNumEndpoints);
|
||||
return 0;
|
||||
}
|
||||
|
@ -3129,7 +3130,7 @@ check_hp5590 (struct usb_device *dev)
|
|||
{
|
||||
if (verbose > 2)
|
||||
printf
|
||||
(" this is not a HP5550/5590/7650 chipset (bEndpointAddress = 0x%x, bmAttributes = 0x%x, "
|
||||
(" this is not a " HP5590_NAMES " chipset (bEndpointAddress = 0x%x, bmAttributes = 0x%x, "
|
||||
"wMaxPacketSize = 0x%x, bInterval = 0x%x)\n",
|
||||
dev->config[0].interface[0].altsetting[0].endpoint[0].
|
||||
bEndpointAddress,
|
||||
|
@ -3151,7 +3152,7 @@ check_hp5590 (struct usb_device *dev)
|
|||
{
|
||||
if (verbose > 2)
|
||||
printf
|
||||
(" this is not a HP5550/5590/7650 chipset (bEndpointAddress = 0x%x, bmAttributes = 0x%x, "
|
||||
(" this is not a " HP5590_NAMES " chipset (bEndpointAddress = 0x%x, bmAttributes = 0x%x, "
|
||||
"wMaxPacketSize = 0x%x, bInterval = 0x%x)\n",
|
||||
dev->config[0].interface[0].altsetting[0].endpoint[1].
|
||||
bEndpointAddress,
|
||||
|
@ -3173,7 +3174,7 @@ check_hp5590 (struct usb_device *dev)
|
|||
{
|
||||
if (verbose > 2)
|
||||
printf
|
||||
(" this is not a HP5550/5590/7650 chipset (bEndpointAddress = 0x%x, bmAttributes = 0x%x, "
|
||||
(" this is not a " HP5590_NAMES " chipset (bEndpointAddress = 0x%x, bmAttributes = 0x%x, "
|
||||
"wMaxPacketSize = 0x%x, bInterval = 0x%x)\n",
|
||||
dev->config[0].interface[0].altsetting[0].endpoint[2].
|
||||
bEndpointAddress,
|
||||
|
@ -3314,7 +3315,7 @@ check_hp5590 (struct usb_device *dev)
|
|||
}
|
||||
|
||||
finish_interface (handle);
|
||||
return "HP5550/5590/7650";
|
||||
return HP5590_NAMES;
|
||||
}
|
||||
|
||||
char *
|
||||
|
|
|
@ -3475,7 +3475,7 @@ print_udev (void)
|
|||
}
|
||||
}
|
||||
printf ("\n");
|
||||
printf ("ATTR{idVendor}==\"%s\", ATTR{idProduct}==\"%s\", MODE=\"%s\", GROUP=\"%s\", ENV{libsane_matched}=\"yes\"\n",
|
||||
printf ("ATTRS{idVendor}==\"%s\", ATTRS{idProduct}==\"%s\", MODE=\"%s\", GROUP=\"%s\", ENV{libsane_matched}=\"yes\"\n",
|
||||
usbid->usb_vendor_id + 2, usbid->usb_product_id + 2, DEVMODE, DEVGROUP);
|
||||
usbid = usbid->next;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue