- 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.