- add fine cal support for machines with internal buffer (2050/2080)
- support fixed-width machines that require even bytes per scanline
- pad end of scan with gray if scanner stops prematurely
- better handling of errors during calibration
- cleanup canceling debug messages
- remove old cancel() prototype
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.
- backend/pixma_mp150.c:
Thanks to Vladimir Andreev patch, fix network scan for MP800R.
- doc/descriptions/pixma.desc and doc/sane-pixma.man:
. Documentation updates for latest MF5770 changes.
. Note: MF5770 grayscale mode appears to require some more work.
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.
* sanei/sanie_tcp.c, backend/epson2_net.c: Update
sanei_tcp_read() to better simulate old behavior of MSG_WAITALL.
recv() tends to return MTU sized chunks of data without that option. And at
least cygwin doesn't support MSG_WAITALL. Re-enable epson2 using that
function for big recieves.
* libgetopt.c, libgetopt1.c:
Revert some logic meant to be used only when we were always compiling
interal getopt() functions. Fix header filename.
- split coarse and fine cal to run independently
- add side option
- reset scan params to user request if calibration fails
- better handling of sane_cancel
- better handling of errors during sane_start and sane_read
The backend description comes from the epkowa.desc file
with appropriate changes to suit epson2.desc. The usb
device list is now generated from this file, skipping
the :unsupported models. This means epson2 now detects
32 more models.
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.