kopia lustrzana https://gitlab.com/sane-project/backends
Added back old mustek_pp backend. That backend supports Mustek CCD scanners.
The backend was renamed to mustek_pp_ccd to avoid conflicts with the new mustek_pp backend for CIS scanners. The code was taken from sane-backends 1.0.9. This is only a temporary solution. The goal is to incooperate CCD and CIS support into mustek_pp.merge-requests/1/head
rodzic
891f503781
commit
8e1194f427
1
AUTHORS
1
AUTHORS
|
@ -46,6 +46,7 @@ Backends:
|
|||
mustek: Andreas Bolsch, David Mosberger, Andreas Czechanowski and
|
||||
Henning Meier-Geinitz (*)
|
||||
mustek_pp: Jochen Eisinger (*), Eddy De Greef (*)
|
||||
mustek_pp_ccd: Jochen Eisinger (*)
|
||||
mustek_usb: Tom Wang and Henning Meier-Geinitz (*)
|
||||
nec: Kazuya Fukuda (*)
|
||||
net: Andreas Beck and David Mosberger
|
||||
|
|
|
@ -113,6 +113,7 @@ DISTFILES = abaton.c abaton.conf abaton.h agfafocus.c agfafocus.conf \
|
|||
Makefile.in matsushita.c \
|
||||
matsushita.conf matsushita.h microtek2.c microtek2.conf microtek2.h \
|
||||
microtek.c microtek.conf microtek.h mustek.c mustek.conf mustek.h \
|
||||
mustek_pp_ccd.c mustek_pp_ccd.conf mustek_pp_ccd.h \
|
||||
mustek_pp.c mustek_pp.conf mustek_pp.h mustek_pp_cis.c mustek_pp_cis.h \
|
||||
mustek_pp_decl.h mustek_pp_drivers.h mustek_pp_null.c mustek_pp_ccd300.c \
|
||||
mustek_pp_ccd300.h mustek_usb.c mustek_usb.conf \
|
||||
|
@ -345,6 +346,8 @@ libsane-mustek.la: ../sanei/sanei_scsi.lo
|
|||
libsane-mustek.la: ../sanei/sanei_ab306.lo
|
||||
libsane-mustek_pp.la: ../sanei/sanei_constrain_value.lo
|
||||
libsane-mustek_pp.la: ../sanei/sanei_pa4s2.lo
|
||||
libsane-mustek_pp_ccd.la: ../sanei/sanei_constrain_value.lo
|
||||
libsane-mustek_pp_ccd.la: ../sanei/sanei_pa4s2.lo
|
||||
libsane-mustek_usb.la: ../sanei/sanei_constrain_value.lo
|
||||
libsane-mustek_usb.la: ../sanei/sanei_usb.lo
|
||||
libsane-nec.la: ../sanei/sanei_config2.lo
|
||||
|
|
|
@ -32,6 +32,7 @@ microtek
|
|||
microtek2
|
||||
mustek
|
||||
#mustek_pp
|
||||
#mustek_pp_ccd
|
||||
mustek_usb
|
||||
nec
|
||||
pie
|
||||
|
|
Plik diff jest za duży
Load Diff
|
@ -0,0 +1,99 @@
|
|||
# For documentation see sane-mustek_pp_ccd(5)
|
||||
|
||||
# GLOBAL #
|
||||
|
||||
# option io-mode [mode] must come before all port definitions, or it won't
|
||||
# have the effect you'd expect
|
||||
|
||||
# enable this option, if you think your scanner supports the UNI protocol
|
||||
# note however that this might disable the better EPP protocol
|
||||
#option io-mode try_mode_uni
|
||||
|
||||
# choose between two different ways to lock to port
|
||||
option io-mode alt_lock
|
||||
|
||||
# set the maximal height (in lines) of a strip scanned (default: no limit)
|
||||
#option strip-height 0
|
||||
|
||||
# wait n msecs for bank to change (default: 700 msecs)
|
||||
# if this value is to low, stripes my appear in the scanned image
|
||||
#option wait-bank 700
|
||||
|
||||
# size (in bytes) of scan buffer (default: 1 megabyte)
|
||||
#option buffer 1048576
|
||||
|
||||
# try to avoid to heavy load. Note that this reduces scan speed
|
||||
option niceload
|
||||
|
||||
# Define the time the lamp has to be on before scan starts (default 5 secs)
|
||||
#option wait-lamp 5
|
||||
|
||||
|
||||
# DEVICES #
|
||||
|
||||
# specify the port your scanner is connected to. Possible are 0x378 (lp1)
|
||||
# 0x278 (lp2) and 0x3bc (lp0)
|
||||
# for 2.4.x+ kernels, this isn't true anymore. Here lp0 is assigned to the
|
||||
# first available port, normally 0x378
|
||||
port 0x378
|
||||
|
||||
# the following options are local to this scanner
|
||||
|
||||
# WELL KNOWN OPTIONS #
|
||||
|
||||
# most scanners only need 200 - 250 msecs to change bank -> try it out
|
||||
|
||||
# Mustek ScanExpress 6000 P
|
||||
# name SE-6000P
|
||||
# vendor Mustek
|
||||
# option wait-lamp 15
|
||||
|
||||
# Mustek ScanExpress 600 SEP
|
||||
# name SE-600SEP
|
||||
# vendor Mustek
|
||||
# option wait-lamp 15
|
||||
|
||||
# Mustek ScanMagic 4800 P
|
||||
# name SM-4800P
|
||||
# vendor Mustek
|
||||
# option wait-lamp 15
|
||||
|
||||
# Mustek 600 III EP Plus
|
||||
# name 600IIIEPP
|
||||
# vendor Mustek
|
||||
# option wait-lamp 15 # some models only need 5 secs...
|
||||
|
||||
# Mustek ScanMagic/Express 1200 ED Plus (this scanner isn't yet supported!!!)
|
||||
# name SM-1200EDP
|
||||
# name SE-1200EDP
|
||||
# vendor Mustek
|
||||
# this scanner has an optical resolution of 600 dpi
|
||||
# option use600
|
||||
# this scanner *must* use option niceload
|
||||
# option niceload
|
||||
|
||||
# Fidelity Imaging Solutions Inc. Gallery 4800
|
||||
# name Gallery-4800
|
||||
# vendor Fidelity-Imaging-Solutions
|
||||
|
||||
# Viviscan Compact II
|
||||
# name Compact-II
|
||||
# vendor Viviscan
|
||||
|
||||
# Medion MD9848 (aka Aldi-Scanner)
|
||||
name MD9848
|
||||
vendor Medion
|
||||
option wait-bank 250
|
||||
|
||||
# scan maximal 16 lines for one sane_read() call
|
||||
option strip-height 16
|
||||
|
||||
# we just need 16 lines * 3 (rgb) colors * 300 dpi * 8.5 inch bytes
|
||||
option buffer 122400
|
||||
|
||||
# Enable this option, if you want user authentification *and* if it's
|
||||
# enabled at compile time
|
||||
#option auth
|
||||
|
||||
# use this option to define the maximal black value for lineart scans
|
||||
#option bw 127
|
|
@ -0,0 +1,296 @@
|
|||
/* sane - Scanner Access Now Easy.
|
||||
Copyright (C) 2000 Jochen Eisinger <jochen.eisinger@gmx.net>
|
||||
This file is part of the SANE package.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||
MA 02111-1307, USA.
|
||||
|
||||
As a special exception, the authors of SANE give permission for
|
||||
additional uses of the libraries contained in this release of SANE.
|
||||
|
||||
The exception is that, if you link a SANE library with other files
|
||||
to produce an executable, this does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public
|
||||
License. Your use of that executable is in no way restricted on
|
||||
account of linking the SANE library code into it.
|
||||
|
||||
This exception does not, however, invalidate any other reasons why
|
||||
the executable file might be covered by the GNU General Public
|
||||
License.
|
||||
|
||||
If you submit changes to SANE to the maintainers to be included in
|
||||
a subsequent release, you agree by submitting the changes that
|
||||
those changes may be distributed with this exception intact.
|
||||
|
||||
If you write modifications of your own for SANE, it is your choice
|
||||
whether to permit this exception to apply to your modifications.
|
||||
If you do not wish that, delete this exception notice. */
|
||||
|
||||
#ifndef mustek_pp_ccd_h
|
||||
#define mustek_pp_ccd_h
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include "../include/sane/sanei_debug.h"
|
||||
|
||||
/* #define for user authentification */
|
||||
/* #undef HAVE_AUTHORIZATION */
|
||||
|
||||
/* #define for invert option */
|
||||
/* #undef HAVE_INVERSION */
|
||||
|
||||
/* #define if you want to patch for ASIC 1505 */
|
||||
/* #undef PATCH_MUSTEK_PP_1505 */
|
||||
|
||||
#ifdef HAVE_AUTHORIZATION
|
||||
|
||||
#define MAX_LINE_LEN 512
|
||||
|
||||
/* Here are the usernames and passwords stored
|
||||
* the file name is relative to SANE_CONFIG_DIR */
|
||||
|
||||
#define PASSWD_FILE ".auth"
|
||||
#define SEPARATOR ':'
|
||||
|
||||
#define SALT "je"
|
||||
|
||||
#endif
|
||||
|
||||
enum Mustek_PP_Option
|
||||
{
|
||||
OPT_NUM_OPTS = 0,
|
||||
|
||||
OPT_MODE_GROUP,
|
||||
OPT_MODE,
|
||||
OPT_RESOLUTION,
|
||||
OPT_PREVIEW,
|
||||
OPT_GRAY_PREVIEW,
|
||||
|
||||
OPT_GEOMETRY_GROUP,
|
||||
OPT_TL_X, /* top-left x */
|
||||
OPT_TL_Y, /* top-left y */
|
||||
OPT_BR_X, /* bottom-right x */
|
||||
OPT_BR_Y, /* bottom-right y */
|
||||
|
||||
OPT_ENHANCEMENT_GROUP,
|
||||
|
||||
#ifdef HAVE_INVERSION
|
||||
|
||||
OPT_INVERT,
|
||||
|
||||
#endif
|
||||
OPT_CUSTOM_GAMMA, /* use custom gamma tables? */
|
||||
/* The gamma vectors MUST appear in the order gray, red, green,
|
||||
blue. */
|
||||
OPT_GAMMA_VECTOR,
|
||||
OPT_GAMMA_VECTOR_R,
|
||||
OPT_GAMMA_VECTOR_G,
|
||||
OPT_GAMMA_VECTOR_B,
|
||||
|
||||
/* must come last: */
|
||||
NUM_OPTIONS
|
||||
};
|
||||
|
||||
typedef struct CCD_info
|
||||
{
|
||||
/* CCD mode (color/grayscale/lineart) */
|
||||
int mode;
|
||||
/* inversion (true/false) */
|
||||
int invert;
|
||||
/* how many positions to skip until scanable area starts */
|
||||
int skipcount;
|
||||
/* how many positions to skip until scan area starts */
|
||||
int skipimagebytes;
|
||||
/* total skip, adjusted to resolution */
|
||||
int adjustskip;
|
||||
/* current resolution */
|
||||
int res;
|
||||
/* current hardware resolution */
|
||||
int hwres;
|
||||
/* how many positions to scan for one pixel */
|
||||
int res_step;
|
||||
/* how many lines to scan for one scanline */
|
||||
int line_step;
|
||||
/* current CCD channel (red/green or gray/blue) */
|
||||
int channel;
|
||||
}
|
||||
CCD_Info;
|
||||
|
||||
typedef struct Mustek_PP_Descriptor
|
||||
{
|
||||
/* SANE device */
|
||||
SANE_Device sane;
|
||||
/* port no (0x378,0x278,0x3bc) */
|
||||
SANE_String port;
|
||||
/* maximal resolution (300/600) */
|
||||
SANE_Int max_res;
|
||||
/* max horiz */
|
||||
SANE_Int max_h_size;
|
||||
/* max vert */
|
||||
SANE_Int max_v_size;
|
||||
/* msecs to wait for bank change */
|
||||
unsigned int wait_bank;
|
||||
/* lines to scan in one read */
|
||||
SANE_Int strip_height;
|
||||
/* bytesize of scan buffer */
|
||||
long int buf_size;
|
||||
/* ASIC id (0xa8 0xa5, 0xa2) */
|
||||
u_char asic;
|
||||
/* CCD type (0,1,4,5) */
|
||||
u_char ccd;
|
||||
/* devices requires authentification (yes/no) */
|
||||
int requires_auth;
|
||||
/* color index to divide black from white (0-255) */
|
||||
int bw;
|
||||
/* seconds to wait for the lamp */
|
||||
int wait_lamp;
|
||||
/* use 600 dpi code (yes/no) */
|
||||
int use600;
|
||||
}
|
||||
Mustek_PP_Descriptor;
|
||||
|
||||
typedef struct Mustek_PP_Device
|
||||
{
|
||||
/* next device */
|
||||
struct Mustek_PP_Device *next;
|
||||
|
||||
/* device descriptor */
|
||||
Mustek_PP_Descriptor *desc;
|
||||
|
||||
/* fd for sanei_pa4s2 */
|
||||
int fd;
|
||||
|
||||
/* CCD status */
|
||||
CCD_Info CCD;
|
||||
/* used during calibration & return_home */
|
||||
CCD_Info Saved_CCD;
|
||||
|
||||
/* options and values */
|
||||
SANE_Option_Descriptor opt[NUM_OPTIONS];
|
||||
Option_Value val[NUM_OPTIONS];
|
||||
|
||||
/* gamma tables (all, red, green, blue) */
|
||||
SANE_Int gamma_table[4][256];
|
||||
|
||||
/* scanning, idle, cancelled */
|
||||
int state;
|
||||
|
||||
/* scan area */
|
||||
int TopX;
|
||||
int TopY;
|
||||
int BottomX;
|
||||
int BottomY;
|
||||
|
||||
/* ASIC & CCD (see mustek_pp_descritpor) */
|
||||
int asic_id;
|
||||
int ccd_type;
|
||||
|
||||
/* when did we turn the lamp on? */
|
||||
time_t lamp_on;
|
||||
|
||||
/* image control for ASIC 0xA5 */
|
||||
int image_control;
|
||||
|
||||
/* bank count (for all ASICs) */
|
||||
int bank_count;
|
||||
|
||||
/* motor state for ASIC 0xA8 */
|
||||
int motor_phase;
|
||||
int motor_step;
|
||||
|
||||
/* those are used to count the hardware line the scanner is at, the
|
||||
line the current bank is at and the lines we've scanned */
|
||||
int line;
|
||||
int line_diff;
|
||||
int ccd_line;
|
||||
int lines_left;
|
||||
int max_lines;
|
||||
int redline;
|
||||
int blueline;
|
||||
|
||||
/* result from calibration */
|
||||
int blackpos;
|
||||
|
||||
/* line distances during scan */
|
||||
int rdiff, gdiff, bdiff;
|
||||
|
||||
/* calibration buffers (high cut) */
|
||||
SANE_Byte *calib_r;
|
||||
SANE_Byte *calib_g;
|
||||
SANE_Byte *calib_b;
|
||||
|
||||
/* calibration values (low cut) */
|
||||
SANE_Byte ref_black, ref_red, ref_green, ref_blue;
|
||||
|
||||
/* line distance buffers */
|
||||
SANE_Byte *green;
|
||||
SANE_Byte **red;
|
||||
SANE_Byte **blue;
|
||||
|
||||
/* line distances */
|
||||
int blue_offs;
|
||||
int green_offs;
|
||||
|
||||
/* scan buffer */
|
||||
SANE_Byte *buf;
|
||||
long int bufsize, buflen;
|
||||
|
||||
/* current parameters */
|
||||
SANE_Parameters params;
|
||||
SANE_Range dpi_range;
|
||||
SANE_Range x_range;
|
||||
SANE_Range y_range;
|
||||
|
||||
|
||||
/* these are additional parameters for 600 dpi scanners */
|
||||
|
||||
SANE_Byte motor_ctrl;
|
||||
SANE_Bool first_time;
|
||||
SANE_Byte unknown_value;
|
||||
SANE_Byte expose_time;
|
||||
SANE_Byte voltages[3];
|
||||
SANE_Bool send_voltages;
|
||||
|
||||
|
||||
}
|
||||
Mustek_PP_Device;
|
||||
|
||||
|
||||
#if (!defined __GNUC__ || __GNUC__ < 2 || \
|
||||
__GNUC_MINOR__ < (defined __cplusplus ? 6 : 4))
|
||||
|
||||
#define __PRETTY_FUNCTION__ "mustek_pp"
|
||||
|
||||
#endif
|
||||
|
||||
#define DEBUG() DBG(4, "%s(v%d.%d.%d-%s): line %d: debug exception\n", \
|
||||
__PRETTY_FUNCTION__, V_MAJOR, V_MINOR, \
|
||||
MUSTEK_PP_BUILD, MUSTEK_PP_STATE, __LINE__)
|
||||
|
||||
#define ASSERT(cond) if (!(cond)) \
|
||||
{ \
|
||||
DEBUG(); \
|
||||
DBG(1, "ASSERT(%s) failed\n", STRINGIFY(cond)); \
|
||||
DBG(1, "expect disaster...\n");\
|
||||
}
|
||||
|
||||
/* Please note: ASSERT won't go away if you define NDEBUG, it just won't
|
||||
* output a message when ASSERT failes. So if "cond" does anything, it will
|
||||
* be executed, even if NDEBUG is defined...
|
||||
*/
|
||||
|
||||
|
||||
#endif /* mustek_pp_ccd_h */
|
|
@ -23641,8 +23641,8 @@ echo "$as_me: Manually selected backends: ${BACKENDS}" >&6;}
|
|||
BACKENDS="abaton agfafocus apple artec as6e avision bh canon \
|
||||
canon630u coolscan coolscan2 dc25 dmc \
|
||||
epson fujitsu gt68xx hp leo matsushita microtek \
|
||||
microtek2 mustek mustek_pp mustek_usb nec pie plustek plustek_pp \
|
||||
ricoh s9036 sceptre sharp \
|
||||
microtek2 mustek mustek_pp mustek_pp_ccd mustek_usb nec pie plustek \
|
||||
plustek_pp ricoh s9036 sceptre sharp \
|
||||
sp15c st400 tamarack test teco1 teco2 teco3 umax umax_pp umax1220u \
|
||||
artec_eplus48u ma1509 ibm hp5400"
|
||||
|
||||
|
|
|
@ -276,8 +276,8 @@ else
|
|||
BACKENDS="abaton agfafocus apple artec as6e avision bh canon \
|
||||
canon630u coolscan coolscan2 dc25 dmc \
|
||||
epson fujitsu gt68xx hp leo matsushita microtek \
|
||||
microtek2 mustek mustek_pp mustek_usb nec pie plustek plustek_pp \
|
||||
ricoh s9036 sceptre sharp \
|
||||
microtek2 mustek mustek_pp mustek_pp_ccd mustek_usb nec pie plustek \
|
||||
plustek_pp ricoh s9036 sceptre sharp \
|
||||
sp15c st400 tamarack test teco1 teco2 teco3 umax umax_pp umax1220u \
|
||||
artec_eplus48u ma1509 ibm hp5400"
|
||||
|
||||
|
|
|
@ -51,7 +51,8 @@ SECT5 = sane-abaton.5 sane-agfafocus.5 sane-apple.5 sane-as6e.5 sane-dll.5 \
|
|||
sane-mustek_usb.5 sane-sceptre.5 sane-canon_pp.5 sane-canon630u.5 \
|
||||
sane-teco1.5 sane-teco2.5 sane-teco3.5 sane-test.5 sane-sp15c.5 \
|
||||
sane-coolscan2.5 sane-hpsj5s.5 sane-gt68xx.5 sane-artec_eplus48u.5 \
|
||||
sane-ma1509.5 sane-ibm.5 sane-hp5400.5 sane-plustek_pp.5
|
||||
sane-ma1509.5 sane-ibm.5 sane-hp5400.5 sane-plustek_pp.5 \
|
||||
sane-mustek_pp_ccd.5
|
||||
SECT7 = sane.7
|
||||
MANPAGES = $(SECT1) $(SECT5) $(SECT7)
|
||||
READMES = README AUTHORS COPYING ChangeLog LICENSE NEWS PROBLEMS \
|
||||
|
@ -100,7 +101,8 @@ DISTFILES = Makefile.in backend-writing.txt descriptions.txt \
|
|||
sane.tex saned.man scanimage.man sane-sceptre.man sane-canon_pp.man \
|
||||
sane-teco1.man sane-teco2.man sane-teco3.man sane-test.man sane-sp15c.man \
|
||||
sane-hpsj5s.man gamma4scanimage.man sane-gt68xx.man sane-artec_eplus48u.man \
|
||||
sane-ma1509.man sane-ibm.man sane-hp5400.man sane-plustek_pp.man
|
||||
sane-ma1509.man sane-ibm.man sane-hp5400.man sane-plustek_pp.man \
|
||||
sane-mustek_pp_ccd.man
|
||||
|
||||
.PHONY: all clean depend dist distclean html html-man install \
|
||||
sane-html uninstall
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
;
|
||||
; SANE Backend specification file
|
||||
;
|
||||
; It's basically emacs-lisp --- so ";" indicates comment to end of line.
|
||||
; All syntactic elements are keyword tokens, followed by a string or
|
||||
; keyword argument, as specified.
|
||||
;
|
||||
; ":backend" *must* be specified.
|
||||
; All other information is optional (but what good is the file without it?).
|
||||
;
|
||||
|
||||
:backend "mustek_pp_ccd" ; name of backend
|
||||
:version "9" ; version of backend
|
||||
;:status :alpha ; :alpha, :beta, :stable, :new
|
||||
:manpage "sane-mustek_pp_ccd" ; name of manpage (if it exists)
|
||||
; backend's web page
|
||||
:url "http://www.penguin-breeder.org/?page=mustek_pp"
|
||||
:comment "Supports CCD type parallel port scanners from Mustek. A lot of Mustek CIS scanners are supported by the mustek_pp backend."
|
||||
|
||||
:devicetype :scanner ; start of a list of devices....
|
||||
; other types: :stillcam, :vidcam,
|
||||
; :meta, :api
|
||||
|
||||
:mfg "Mustek" ; name a manufacturer
|
||||
:url "http://www.mustek.com/"
|
||||
|
||||
; These scanners are known to have an A4S2 chipset. What scanners work
|
||||
; isn't actually known. Also the interfaces are only guesed
|
||||
|
||||
:model "ScanExpress 6000 P"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "works"
|
||||
:status :good
|
||||
|
||||
:model "ScanMagic 4800 P"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "works"
|
||||
:status :good
|
||||
|
||||
:model "ScanExpress 1200 ED Plus"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "works partly"
|
||||
:status :minimal
|
||||
|
||||
|
||||
:model "ScanMagic 1200 ED Plus"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "works partly"
|
||||
:status :minimal
|
||||
|
||||
:model "600 III EP Plus"
|
||||
:interface "Parport (SPP,EPP)"
|
||||
:comment "works"
|
||||
:status :good
|
||||
|
||||
:model "ScanExpress 600 SEP"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "works"
|
||||
:status :good
|
||||
|
||||
:mfg "Medion/Lifetec/Tevion/Cytron"
|
||||
:url "http://www.medion.de/"
|
||||
|
||||
:model "MD9848"
|
||||
:interface "Parport (SPP)"
|
||||
:comment "aka. ``Aldi Scanner'' - works"
|
||||
:status :good
|
||||
|
||||
:mfg "Fidelity Imaging Solutions Inc."
|
||||
|
||||
:model "Gallery 4800"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "works"
|
||||
:status :good
|
||||
|
||||
; :comment and :url specifiers are optional after :mfg, :model, :desc,
|
||||
; and at the top-level.
|
|
@ -0,0 +1,474 @@
|
|||
.TH sane-mustek_pp_ccd 5 "3 Oct 2003" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
|
||||
.IX sane-mustek_pp_ccd
|
||||
.SH NAME
|
||||
sane-mustek_pp_ccd \- SANE backend for Mustek CCD parallel port flatbed scanners
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B sane-mustek_pp_ccd
|
||||
library implements a SANE (Scanner Access Now Easy) backend that
|
||||
provides access to Mustek CCD parallel port flatbed scanners. The
|
||||
following scanners might work with this backend:
|
||||
.PP
|
||||
.RS
|
||||
Model: ASIC ID: CCD Type: works:
|
||||
.br
|
||||
-------------------- --------- ---------- -------
|
||||
.br
|
||||
SE 6000 P 1013 00 yes
|
||||
.br
|
||||
SM 4800 P 1013/1015 04/01 yes
|
||||
.br
|
||||
SE 1200 ED Plus 1015 01 partly
|
||||
.br
|
||||
SM 1200 ED Plus 1015 01 partly
|
||||
.br
|
||||
600 III EP Plus 1013/1015 00/01 yes
|
||||
.br
|
||||
SE 600 SEP 1013 ?? yes
|
||||
.br
|
||||
MD9848 1015 00 yes
|
||||
.br
|
||||
Gallery 4800 ???? ?? yes
|
||||
.br
|
||||
Viviscan Compact II 1013 00 yes
|
||||
.RE
|
||||
.PP
|
||||
Other scanners, especially scanners using a CIS type sensor are not supported by this
|
||||
backend. Have a look at the
|
||||
.BR sane-mustek_pp (5)
|
||||
backend for CIS scanners.
|
||||
.PP
|
||||
Please note that this backend is still under construction. I don't know
|
||||
which scanners work or which will work in future releases.
|
||||
.PP
|
||||
You have to enable the backend explicitly in your dll.conf. Just remove the hash mark in the
|
||||
line "mustek_pp_ccd".
|
||||
.PP
|
||||
Some scanners work faster when
|
||||
.B EPP/ECP
|
||||
is enabled in the BIOS.
|
||||
.PP
|
||||
Note that the backend needs to run as root. To allow user access to the scanner run the backend
|
||||
through the network interface (See saned(1) and sane\-net(5)). Note also that the backend
|
||||
.I does not
|
||||
support
|
||||
.I parport sharing ,
|
||||
i.e. if you try printing while scanning, your computer may crash.
|
||||
|
||||
.SH "DEVICE NAMES"
|
||||
This backend expects device names of the form:
|
||||
.PP
|
||||
.RS
|
||||
.I port addr
|
||||
.RE
|
||||
.PP
|
||||
Where
|
||||
.B addr
|
||||
is the base address of the port your scanner is attached to. Known ports are
|
||||
.B 0x378
|
||||
(lp1)
|
||||
.B 0x278
|
||||
(lp2) and
|
||||
.B 0x3BC
|
||||
(lp0). Note that if you are using a Kernel 2.2.x or better and you have only one
|
||||
parallel port this port is named lp0 regardless of the base address. However,
|
||||
this backend requires the base address of your port. If you are not sure which
|
||||
port your scanner is connected to, have a look at your /etc/modules.conf.
|
||||
|
||||
You can rename any device using the
|
||||
.PP
|
||||
.RS
|
||||
.I name devname
|
||||
.br
|
||||
.I model model
|
||||
.br
|
||||
.I vendor vendor
|
||||
.RE
|
||||
.PP
|
||||
options. These options aply to the last port option.
|
||||
|
||||
.SH CONFIGURATION
|
||||
Please make sure to edit mustek_pp_ccd.conf
|
||||
.B before
|
||||
you use the backend.
|
||||
.PP
|
||||
The contents of the
|
||||
.B mustek_pp_ccd.conf
|
||||
file is a list of options and device names that correspond to Mustek
|
||||
scanners. Empty lines and lines starting with a hash mark (#) are
|
||||
ignored.
|
||||
.PP
|
||||
The nine options supported are
|
||||
.BR io\-mode ,
|
||||
.BR wait\-bank ,
|
||||
.BR strip\-height ,
|
||||
.BR niceload ,
|
||||
.BR auth ,
|
||||
.BR wait-lamp ,
|
||||
.BR bw ,
|
||||
.BR use600 ,
|
||||
and
|
||||
.BR buffer .
|
||||
|
||||
Option
|
||||
.B io-mode
|
||||
defines the mode of the sanei_pa4s2 interface. Possible values are
|
||||
.BR try_mode_uni
|
||||
and
|
||||
.BR alt_lock .
|
||||
This option may appear for each possible value. try_mode_uni allows
|
||||
the UNI port mode, however this may disable the (better) EPP mode. alt_lock
|
||||
toggles between two different ways to lock the port for scanner access.
|
||||
This option must come before any port definition or it won't have the effect
|
||||
you'd expect.
|
||||
|
||||
Option
|
||||
.B wait-bank
|
||||
defines the maximal time in msecs the backend waits for the bank to change. The
|
||||
default value is 700. If this option is given after the port option, only this
|
||||
device is affected. If this value is to low, you will get wrong colors and
|
||||
stripes in the scanned image.
|
||||
|
||||
Option
|
||||
.B strip-height
|
||||
is a option that limits the maximum height of the strip scanned with
|
||||
a single read command. The height is specified in lines. If this option is
|
||||
given after the port option, only this device is affected. A strip\-height of
|
||||
zero allows to scan as much as fits into the scan buffer.
|
||||
|
||||
Option
|
||||
.B niceload
|
||||
tries to avoid to heavy load. Note that this reduces scan speed. This is a
|
||||
global option.
|
||||
|
||||
Option
|
||||
.B auth
|
||||
turns on user authentification for this scanner. Use this if you want access
|
||||
control and if you have enabled this at compile time. This option must come
|
||||
after a port option. At the moment, this option isn't really supported.
|
||||
|
||||
Option
|
||||
.B wait-lamp
|
||||
allows you to control the time the backend waits for the lamp to warm up. The
|
||||
time is specified in secs. The default value is 5 secs. Some scanners need
|
||||
longer to warm up. A value of 0 makes the backend start without waiting.
|
||||
However the backend will wait at least 2 secs before turning the lamp off
|
||||
again. If this option is given after a port option it affects only this
|
||||
device.
|
||||
|
||||
Option
|
||||
.B bw
|
||||
defines the maximal color value that is considered black in lineart scans.
|
||||
The default value is 127. Possible values are between 0 and 255. If this
|
||||
option is given after a port option it affects only this device.
|
||||
|
||||
Option
|
||||
.B use600
|
||||
enables the 600 dpi handling code. It's not possible to detect wether a scanner
|
||||
has an optical resolution of 300x600 dpi or 600x1200 dpi. The default is to
|
||||
use the 300x600 dpi code. Use this option only if your scanner has an optical
|
||||
resolution of 600x1200 dpi. This is a local only option.
|
||||
|
||||
Option
|
||||
.B buffer
|
||||
allows you to change the size of the scan buffer. The size must be specified in
|
||||
bytes. The default value is 1 megabyte. If this opttion is given after the port
|
||||
option, only this device is affected. If you have limited the strip\-height,
|
||||
you only need a scan buffer of
|
||||
.PP
|
||||
.RS
|
||||
.B 8.5 * dpi * 3 * strip\-height bytes.
|
||||
.RE
|
||||
.PP
|
||||
|
||||
.PP
|
||||
A sample configuration file is shown below:
|
||||
.PP
|
||||
.RS
|
||||
# GLOBAL #
|
||||
.br
|
||||
|
||||
.br
|
||||
# enable this option, if you think your scanner
|
||||
.br
|
||||
# supports the UNI protocol
|
||||
.br
|
||||
# note however that this might disable the better
|
||||
.br
|
||||
# EPP protocol
|
||||
.br
|
||||
#option io-mode try_mode_uni
|
||||
.br
|
||||
|
||||
.br
|
||||
# choose between two different ways to lock to port
|
||||
.br
|
||||
option io-mode alt_lock
|
||||
.br
|
||||
|
||||
.br
|
||||
# set the maximal height (in lines) of a strip
|
||||
.br
|
||||
# scanned (default: no limit)
|
||||
.br
|
||||
#option strip-height 0
|
||||
.br
|
||||
|
||||
.br
|
||||
# wait n msecs for bank to change (default: 700
|
||||
.br
|
||||
# msecs) if this value is to low, stripes my appear
|
||||
.br
|
||||
# in the scanned image
|
||||
.br
|
||||
#option wait-bank 700
|
||||
.br
|
||||
|
||||
.br
|
||||
# size (in bytes) of scan buffer (default:
|
||||
.br
|
||||
# 1 megabyte)
|
||||
.br
|
||||
#option buffer 1048576
|
||||
.br
|
||||
|
||||
.br
|
||||
# try to avoid to heavy load. Note that this
|
||||
.br
|
||||
# reduces scan speed
|
||||
.br
|
||||
option niceload
|
||||
.br
|
||||
|
||||
.br
|
||||
# Define the time the lamp has to be on before
|
||||
.br
|
||||
# scan starts (default 5 secs)
|
||||
.br
|
||||
#option wait-lamp 5
|
||||
.br
|
||||
|
||||
.br
|
||||
|
||||
.br
|
||||
# DEVICES #
|
||||
.br
|
||||
|
||||
.br
|
||||
# specify the port your scanner is connected to.
|
||||
.br
|
||||
# Possible are 0x378 (lp1) 0x278 (lp2) and
|
||||
.br
|
||||
# 0x3bc (lp0)
|
||||
.br
|
||||
port 0x378
|
||||
.br
|
||||
|
||||
.br
|
||||
# the following options are local to this scanner
|
||||
.br
|
||||
|
||||
.br
|
||||
# scan maximal 16 lines for one sane_read() call
|
||||
.br
|
||||
option strip-height 16
|
||||
.br
|
||||
|
||||
.br
|
||||
# we just need 16 * 3 * 300 * 8.5 bytes
|
||||
.br
|
||||
option buffer 122400
|
||||
.br
|
||||
|
||||
.br
|
||||
# this scanner needs max 250 msecs to change
|
||||
.br
|
||||
# the bank
|
||||
.br
|
||||
option wait-bank 250
|
||||
.br
|
||||
|
||||
.br
|
||||
# My scanner is a MD9848 from Medion using the
|
||||
.br
|
||||
# Mustek chipset
|
||||
.br
|
||||
name MD9848
|
||||
.br
|
||||
vendor Medion
|
||||
.br
|
||||
|
||||
.br
|
||||
# Enable this option, if you want user
|
||||
.br
|
||||
# authentification *and* if it's enabled at
|
||||
.br
|
||||
# compile time
|
||||
.br
|
||||
#option auth
|
||||
.br
|
||||
|
||||
.br
|
||||
# Some scanners (especially ASIC 1013) need
|
||||
.br
|
||||
# longer to warm up. This option specifies
|
||||
.br
|
||||
# the time to wait for the lamp to get hot
|
||||
.br
|
||||
#option wait-lamp 15
|
||||
.br
|
||||
|
||||
.br
|
||||
# Use this option to define the maximal
|
||||
.br
|
||||
# black value in lineart scans
|
||||
.br
|
||||
#option bw 127
|
||||
.br
|
||||
|
||||
.br
|
||||
# Use this option for 600 dpi scanners
|
||||
.br
|
||||
# for example ScanExpress 1200 ED Plus
|
||||
.br
|
||||
#option use600
|
||||
.br
|
||||
|
||||
.RE
|
||||
|
||||
|
||||
.SH FILES
|
||||
.TP
|
||||
.I @CONFIGDIR@/mustek_pp_ccd.conf
|
||||
The backend configuration file (see also description of
|
||||
.B SANE_CONFIG_DIR
|
||||
below).
|
||||
.TP
|
||||
.I @LIBDIR@/libsane\-mustek_pp_ccd.a
|
||||
The static library implementing this backend.
|
||||
.TP
|
||||
.I @LIBDIR@/libsane\-mustek_pp_ccd.so
|
||||
The shared library implementing this backend (present on systems that
|
||||
support dynamic loading).
|
||||
|
||||
.SH ENVIRONMENT
|
||||
.TP
|
||||
.B SANE_CONFIG_DIR
|
||||
This environment variable specifies the list of directories that may
|
||||
contain the configuration file. Under UNIX, the directories are
|
||||
separated by a colon (`:'), under OS/2, they are separated by a
|
||||
semi-colon (`;'). If this variable is not set, the configuration file
|
||||
is searched in two default directories: first, the current working
|
||||
directory (".") and then in @CONFIGDIR@. If the value of the
|
||||
environment variable ends with the directory separator character, then
|
||||
the default directories are searched after the explicitly specified
|
||||
directories. For example, setting
|
||||
.B SANE_CONFIG_DIR
|
||||
to "/tmp/config:" would result in directories "tmp/config", ".", and
|
||||
"@CONFIGDIR@" being searched (in this order).
|
||||
.TP
|
||||
.B SANE_DEBUG_MUSTEK_PP_CCD
|
||||
If the library was compiled with debug support enabled, this
|
||||
environment variable controls the debug level for this backend. E.g.,
|
||||
a value of 128 requests all debug output to be printed. Smaller
|
||||
levels reduce verbosity.
|
||||
|
||||
.PP
|
||||
.RS
|
||||
level debug output
|
||||
.br
|
||||
------- ------------------------------
|
||||
.br
|
||||
0 nothing
|
||||
.br
|
||||
1 errors
|
||||
.br
|
||||
2 warnings & minor errors
|
||||
.br
|
||||
3 additional information
|
||||
.br
|
||||
4 debug information
|
||||
.br
|
||||
5 code flow (not supported yet)
|
||||
.br
|
||||
6 special debug information
|
||||
.RE
|
||||
.PP
|
||||
.TP
|
||||
.B SANE_DEBUG_SANEI_PA4S2
|
||||
This variable sets the debug level for the SANE interface for the Mustek
|
||||
chipset A4S2. Note that enabling this will spam your terminal with some
|
||||
million lines of debug output.
|
||||
|
||||
.PP
|
||||
.RS
|
||||
level debug output
|
||||
.br
|
||||
------- -------------------------------
|
||||
.br
|
||||
0 nothing
|
||||
.br
|
||||
1 errors
|
||||
.br
|
||||
2 warnings
|
||||
.br
|
||||
3 things nice to know
|
||||
.br
|
||||
4 code flow
|
||||
.br
|
||||
5 detailed code flow
|
||||
.br
|
||||
6 everything
|
||||
.RE
|
||||
.PP
|
||||
|
||||
.PP
|
||||
.SH "SEE ALSO"
|
||||
sane(7), sane\-mustek_pp(5), sane\-mustek_usb, sane\-mustek(5), sane\-net(5), saned(1)
|
||||
|
||||
.TP
|
||||
For latest bug fixes and information see
|
||||
.I http://www.penguin-breeder.org/?page=mustek_pp
|
||||
|
||||
.SH AUTHOR
|
||||
Jochen Eisinger <jochen.eisinger@gmx.net>
|
||||
|
||||
.SH BUGS
|
||||
Too many... please send bug reports to
|
||||
.I sane\-devel@lists.alioth.debian.org
|
||||
(note that you have to subscribe first to the list before you can send
|
||||
emails... see http://www.sane-project.org/mailing-lists.html)
|
||||
.PP
|
||||
.RS
|
||||
* 1013 support isn't bullet proofed
|
||||
.br
|
||||
* 1505 support isn't even present
|
||||
.br
|
||||
* 1015 only works for CCD type 00 & 01 (01 only bw/grayscale)
|
||||
.RE
|
||||
|
||||
|
||||
.SH BUG REPORTS
|
||||
If something doesn't work, please contact me. But I need some information about
|
||||
your scanner to be able to help you...
|
||||
|
||||
.TP
|
||||
.I SANE version
|
||||
run "scanimage -V" to determine this
|
||||
.TP
|
||||
.I the backend version and your scanner hardware
|
||||
run "SANE_DEBUG_MUSTEK_PP_CCD=128 scanimage -L" as root. If you don't get any output
|
||||
from the mustek_pp_ccd backend, make sure a line "mustek_pp_ccd" is included into
|
||||
your @CONFIGDIR@/dll.conf.
|
||||
If your scanner isn't detected, make sure you've defined the right port address
|
||||
in your mustek_pp_ccd.conf.
|
||||
.TP
|
||||
.I the name of your scanner/vendor
|
||||
also a worthy information. Please also include the optical resolution and lamp type of your scanner, both can be found in the manual of your scanner.
|
||||
.TP
|
||||
.I any further comments
|
||||
if you have comments about the documentation (what could be done better), or you
|
||||
think I should know something, please include it.
|
||||
.TP
|
||||
.I some nice greetings
|
||||
.
|
11
doc/sane.man
11
doc/sane.man
|
@ -1,4 +1,4 @@
|
|||
.TH sane 7 "30 Sept 2003" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
|
||||
.TH sane 7 "3 Oct 2003" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
|
||||
.IX sane
|
||||
|
||||
.SH NAME
|
||||
|
@ -308,10 +308,16 @@ for details.
|
|||
.TP
|
||||
.B mustek_pp
|
||||
The mustek_pp backend provides access to Mustek parallel port flatbed
|
||||
scanners. See
|
||||
scanners with a CIS sensor. See
|
||||
.BR sane\-mustek_pp (5)
|
||||
for details.
|
||||
.TP
|
||||
.B mustek_pp_ccd
|
||||
The mustek_pp_ccd backend provides access to Mustek parallel port flatbed
|
||||
scanners with a CCD sensor. See
|
||||
.BR sane\-mustek_pp_ccd (5)
|
||||
for details.
|
||||
.TP
|
||||
.B mustek_usb
|
||||
The mustek_usb backend provides access to some Mustek ScanExpress USB flatbed
|
||||
scanners. See
|
||||
|
@ -761,6 +767,7 @@ for details).
|
|||
.BR sane\-microtek (5),
|
||||
.BR sane\-mustek (5),
|
||||
.BR sane\-mustek_pp (5),
|
||||
.BR sane\-mustek_pp_ccd (5),
|
||||
.BR sane\-mustek_usb (5),
|
||||
.BR sane\-nec (5),
|
||||
.BR sane\-net (5),
|
||||
|
|
Ładowanie…
Reference in New Issue