Backends use a mixture of SANE_CURRENT_{MAJOR | MINOR} and V_{MAJOR |
MINOR} with all kind of permutations. I was confused by this and one
comment in pieusb.c tells me I was not alone. Some items in old
changelogs suggest to use the SANE_CURRENT_ macros in backends, so let's
switch to do that with the exception of net.c and dll.c. Done with:
$ find backend -name '*.[ch]' | xargs sed -i '/nearly every/ ! { s/\<V_M/SANE_CURRENT_M/g }'
$ git checkout backend/net.c backend/dll.c
And manually removing the comment from pieusb.c. Everything still builds
fine.
Enable autofocus support on my Epson 12000XL. The middle of the scan
area will be used as the focus point. An arbitrary X,Y is possible but
not implemented yet
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Allow the whole range of manual focus settings as an expert option. This
is also now independent of a TPU being installed or not. The old default
values are applied if the user changes the source type (either FLATBED
or TPU). Adding a focus group here because autofocus options will come
with later patches.
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Even with USB based scanners, we need to send the esci command to set
the focus. There is no byte in the extended scanning parameters for it.
So, move the code to a place where it is called for all cases.
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Certain backends do network scans even if the 'local_only'
parameter for 'sane_get_devices()' is true. Fix that.
Changes:
1. Modify 'sanei_configure_attach()' so that backend specific
data may be passed to the 'attach()' function.
2. Use this in certain backends to pass the value of the
'local_only' parameter so that network related activities
are only carried out when the value is false.
If the value to be set is not valid, it should not change the sval
structure (even if doing so has no negative side effects).
This also makes the fallthrough less confusing by removing the first
cast of two for the br-x and br-y values.
The s8_range variable appears to be a left-over from the epson
backend's "fork" and became superfluous after refactoring the
colour correction support in the epson2 backend.
epson2-commands.c: Include <sys/types.h> to resolve u_long.
epson2.c, magicolor.c, xerox_mfp-tcp.c: Include <sys/types.h>
and to <sys/socket.h> for anyone using setsockopt().
sanei_tcp.h: Include <sys/types.h> since ssize_t is referenced.
sanei_usb.c: Newer FreeBSD version checks.
All changes in this patch set come from FreeBSD ports patches.
Bug #312503.
Adds infrared support for GT-X800 and GT-X700. Can be tested
by enabling the infrared frame type in sane.h and using
tiffscan (http://code.google.com/p/tiffscan/)
tiffscan --mode=infrared --scan
Color correction profiles have been imported from the epkowa driver.
The user can specify his own or let the backend choice. The
feature is not enabled by default.
This feature is in beta stage, works only for color scans
and automatic mode.
Enable with --color-correction 'Automatic'
The code flow has been modified to avoid unnecessary probing
and double opening of a device. There's no more delay before
opening a networked scanner and the whole scan process begins
much earlier.
Accepted device names are:
net:ipaddress
net:hostname
libusb:vendor:product
pio:0xnnn
plus any form supported by the SANE scsi and usb
routines.
The code has been tested on network, scsi and libusb. Unfortunately
I do not have any parallel port based scanner.
Error checking has been added when receiving the network
header and welcome message. Timeout has been added too and
a wrong buffer size has been corrected.
Image inversion is something that can be handled by a frontend,
in the epson2 backend I want to avoid to add any complexity
that doesn't belong to the hardware.
Internationalized backend options lead to incompatible shell
scripts, so they've been removed. A trailing dot has been removed
from some descriptions and a few includes moved around.
The probing code has been streamlined and is now more maintenable.
The backend will probe when required and the get_devices hook can
be called multiple times. Transfer buffers are now selected based
on the connection type.
Sometimes a "fatal error" is given back when the scanner is warming up.
The previousversion of the code checked for that issue only when
the ADF was in use.
Some subroutines have been moved from epson2.c to epson2-ops.c and
there's also a temporary fix for the networking code.
This is work in progress but should work.