sane-pint - SANE backend for scanners that use the PINT
device driver
DESCRIPTION
The sane-pint library implements a SANE (Scanner Access
Now Easy) backend that provides generic access to hand-
held and flatbed scanners using the PINT (PINT Is Not
Twain) device driver. The PINT driver is being actively
developed on the OpenBSD platform, and has been ported to
a few other *nix-like operating systems.
PINT is designed to provide an ioctl(2) interface to many
different scanner types. However, this backend has only
been tested with flatbed single-pass scanners, and more
work will probably be required to get it to use other
scanner types successfully.
If have successfully used the PINT driver with your scan
ner, but it does not work using this SANE backend, please
let us know. To do this, send a mail with the relevant
information for your scanner to sane-devel@mostang.com.
DEVICE NAMES
This backend expects device names of the form:
special
Where special is the UNIX path-name for the special device
that corresponds to the scanner. The special device name
must be a PINT device or a symlink to such a device. For
example, under NetBSD or OpenBSD, such a device name could
be /dev/ss0 or /dev/scan0.
CONFIGURATION
The contents of the pint.conf. file is a list of device
names that correspond to PINT scanners. Empty lines and
lines starting with a hash mark (#) are ignored. A sample
configuration file is shown below:
/dev/scanner
# this is a comment
/dev/ss1
FILES
/etc/sane.d/pint.conf
The backend configuration file (see also descrip
tion of SANE_CONFIG_DIR below).
/usr/lib/sane/libsane-pint.a
The static library implementing this backend.
The shared library implementing this backend (pre
sent on systems that support dynamic loading).
ENVIRONMENT
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 /etc/sane.d. If the value of the
environment variable ends with the directory sepa
rator character, then the default directories are
searched after the explicitly specified directo
ries. For example, setting SANE_CONFIG_DIR to
"/tmp/config:" would result in directories
"tmp/config", ".", and "/etc/sane.d" being searched
(in this order).
SANE_DEBUG_PINT
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.
SEE ALSO
sane(7)
AUTHOR
Gordon Matzigkeit, adapted from existing backends written
by David Mosberger.
BUGS
There are minor roundoff errors when adjusting the ranges,
since PINT uses units of 1/1200 of an inch, and SANE nor
mally uses millimeters. Symptoms of these errors are
skewed images. This should really be fixed (no pun
intended) as soon as possible, but I just don't know/care
enough about fixed-point representation and roundoff
errors to do this correctly. Workaround: use inches as
the scanning unit, and everything usually works fine.
The PINT 0.5e interface does not provide a way to deter
mine valid ranges for DPI, modes, and scan sizes. So, the
SANE backend queries the PINT device, and dynamically dis
covers valid ranges by doing a binary search. This means
that the driver takes longer to initialize than seems nec
essary.
Resetting the scanner does not seem to work (at least not
SCIOCRESTART, then gobbles up any remaining input until it
hits EOF.
Not all of the scanners have been identified (i.e. whether
they are flatbed or handheld).
X and Y resolutions are assumed to be the same.
No testing has been done on three-pass or handheld scan
ners, or with Automatic Document Feeder support.
Man(1) output converted with
man2html