- add side option to show which duplex image is being transferred
- convert front and simplex buffers to use much less ram
- add lowmemory option which makes duplex back buffer small too
- refactor image handling code to track eof's instead of lengths
- do color deinterlacing after reading from scanner, before buffering
- use average instead of min/max for fine offset and gain
- rewrite supported resolution list as x and y arrays
- merge x and y resolution options into single option
- move scan params into two new structs, s->u and s->s
- sane_get_parameters() just returns values from s->u
- dont call wait_scanner() in object_position()
- dont call ssm_*() from option handler
- refactor sane_start()
- read_from_buffer() can workaround missing res, modes and cropping
- set most DR-2xxx machines to use the read_from_buffer workarounds
- set default threshold to 90
- add option for button #3 of some machines
- don't eject paper during init
- add DR-2010 quirks
- switch counter to HARD_SELECT, not SOFT
Updated following files for Pixma MP730 support:
- backend/pixma_mp730.c:
Add width scan area fitting
Fix end scan sequence protocol
- sanei/sanei_usb.c:
In sanei_usb_open(), changed the "seek for endpoints" loop
so that it first looks for those interfaces (in config 0)
that have been detected as potential scanners in
sanei_usb_init()
- bug fix in read_panel()
- initialize vars in do_usb_cmd()
- set buffermode off by default
- clear page counter during init and sane_start()
- eject previous page during init and sane_start()
- improved SSM_BUFF macros
- moved set_window() to after ssm-*()
- add coarse calibration (AFE offset/gain & per-channel exposure)
- add fine calibration (per-cell offset/gain)
- free image and fine cal buffers in sane_close()
- compare page counter of small scanners only in non-buffered mode
- add back-side gray mirroring code for DR-2580C
Source code was inconsistent on how they were referencing
include files in include/sane. In certain cases, sane/sane.h
and sane/saneopts.h was really including external copies (with
some preprocessor implementations anyways).
- Updated the list of supported devices (HP 5500C which is similar to
4570C, 5500C which is similar to 4500C) - only strings/comments, no
code was changed
- Updated backend version
- Updated man page
Add in missing $PTHREAD_LIBS to all backends that can make use of it.
Rename --enable-fork-process to --enable-pthread to maatch internal
logic. Also, stop linking in pthreads needlessly if its been
disabled.
with newer automake.
* backend/Makefile.am, tools/sane-config.in: Add missing
$GPHOTO2_LDFLAGS so library can be found.
* tools/Makefile.am: Add mising $SCSI_LIBS to sane-find-scanner.
doc/descriptions/fujitsu.desc: add S1500 usb ids and status
* backend/canon_dr.c: update credits
* doc/sane-fujitsu.man doc/sane-canon_dr.man: update version numbers,
dates, credits and known issues
* doc/saned.man: remove section about uncontrolled data port range
- return cmd status for reads of sensor options
* backend/canon_dr.c, doc/descriptions/canon_dr.desc: backend v26
- return cmd status for reads of sensor options
- allow rs to adjust read length for all bad status responses
- fix DR-2510C duplex deinterlacing code
- rewrite sane_read helpers to read until EOF
- update sane_start for scanners that dont use object_position
- dont call sanei_usb_clear_halt() if device is not open
- increase default buffer size to 4 megs
- set buffermode on by default
- hide modes and resolutions that DR-2510C lies about
- read_panel() logs front-end access to sensors instead of timing
- rewrite do_usb_cmd() to use remainder from RS info
* doc/desciptions/canon_dr.desc: backend v24, update DR-2510C comment
* backend/pixma_bjnp.c
- silenced some debug statements during scanner detections
- increased timeouts to 20 seconds as 10 seconds is apparently
- not enough for the combination of a Mac and an MX850.
- rewrite all image data processing code
- handle more image interlacing formats
- re-enable binary mode on some scanners
- limit some machines to full-width scanning
* doc/desciptions/canon_dr.desc: v23, improved comments
- improved macros for inquiry and set window
- shorten inquiry vpd length to match windows driver
- remove status-length config option
- add padded-read config option
- rewrite do_usb_cmd to pad reads and calloc/copy buffers
* backend/canon_dr.conf.in: s/status-length/padded-read/g
- pad gray deinterlacing area for DR-2510C
- override tl_x and br_x for fixed width scanners
* doc/descriptions/canon_dr.desc: backend v19, update comments
- add byte-oriented duplex interlace code
- add RRGGBB color interlace code
- add basic support for DR-2580C, DR-2050C, DR-2080C, DR-2510C
- add more unknown setwindow bits
- add support for 16 byte status packets
- clean do_usb_cmd error handling (call reset more often)
- set status packet size from config file
- rewrite config file parsing to reset options after each scanner
- add config options for vendor, model, version
- dont call inquiry if those 3 options are set
- remove default config file from code
- add initial gray deinterlacing code for DR-2510C
- rename do_usb_reset to do_usb_clear
* doc/descriptions/canon_dr.desc: backend v18, update model status
* backend/canon_dr.conf.in: added better comments and new options
* backend/pixma_bjnp.c backend/pixma_bjnp.h
backend/pixma_bjnp_private.h backend/pixma_io_sanei.c:
Make bjnp protocol more resilient against packet loss and corruption
Changed timeout for all responses to be at least 10 seconds
Send all broadcasts for scanner detection 5 times
Made sure scanners are added to device list only once
Changed device-id for bjnp so it uses scanner hostname/ip-address
instead of mac address as this is more human friendly.
To make room, use scanner model instead of USB-id (which is bogus
for network scanners
to sane-config missed during fix to stop using LIBS to link everything.
Add back in code to move LDFLAGS out of $GPHOTO2_LIBS and into
GPHOTO2_LDFLAGS.
- rewrite of calibration process to make it more robust and accurate
- untested full support for hp3670
- untested support for 50, 100 and 300 uncalibrated scans for hp2400
- use of id for device parts descriptions instead of using fixed
place in tables
- SCAN_MODE_* defines to clean up code
Global replace of u_int??_t with C9x standard based uintxx_t
in order to remove some tricky and overlapping portability logic
from acinclude.m4 and leave it in only m4/stdint.m4.
get latest fixes and use logic to not recreate _stdint.h if
no changes (to prevent unneeded recompiles).
* m4/byteorder.m4: Added support to reuse existing byteorder.h if
no changes to prevent timestamp causing a recompile.
also add V_REV.
* backend/Makefile.am: Use variables to add libraries to backends
instead of direct substitution. Easier to touch up variables on
problem platforms then substitution. Also, add back in creating
dll.d directory; missed during conversion.
* backend/genesys_gl841.c: Portablity fixes for strict
C compilers.
issues, by Mattias Ellert.
* backend/fujitsu.c: backend v89, fi-4750 has no serial number support
* doc/descriptions/fujitsu.desc: backend v89, remove 'MAC/TWAIN' text
* doc/sane-fujitsu.man: backend v89
* backend/.cvsignore: ignore *.loT
Add tools/openbsd to distribution package.
* include/Makefile.am: include files should have been installed
under sane/ directory when converted to automake.
* doc/Makefile.am: Cleanup. Use automake's built in support to
install docs within subdirectories.
doc/Makefile to use automake. Main difference is that
no longer installs man pages for backends that are not
compiled. Moved install ownership of $top_srcdir docs
to $top_srcdir's Makefile.
use -version-number even though its known not to work on
some platforms (OS/2). -version-info results in a variety of
version numbers in soname based on platform and would not
be easily mappable back to values currently return by
each backend's sane_init(). ltmain.sh will need to be
hand patched for any known issues.
optionally linking in sanei_jpeg.lo under backend directory;
but using configure and not with GNU make extensions.
Move back to libtool's -version-info instead of -version-number
because the later has known bugs on platforms such as OS/2.
add cv_ prefix to cached variable. Remove AC_ARG_PROGRAM as
automake already invokes this. When prefered AC_USE_SYSTEM_EXTENSIONS
exists, use that instead of AC_GNU_SOURCE/AC_AIX/AC_MINUX.
Cleanup socket detection more by creating only a single
SOCKET_LIBS that contains list of all optional libraries
for any socket related funciton. Make sure that checks
for socket related functions use SOCKET_LIBS when searching.
Check for getopt_long() and getopt.h. Make OS/2 use
-no-undefined (same as windows).
* ltmain.sh, m4/libtool.m4: Upgrade to libtool 1.5.26.
* Makefile.am: Cleanups to match configure updates.
* frontend/scanimage.c, include/Makefile.in, lib/getopt.c
lib/getopt1.c, toosl/sane-desc.c, include/lgetopt.h:
Rename internal getopt.h to lgetopt.h to allow using
external getopt.h when it exists. This allows to go
back to optionally compiling getopt()/getopt_long() and its
prototypes and not have conflicts with external headers/symbols.
* configure.in: Group all USB logic together and all SCSI
logic together to aid understanding of whats no longer
valid. Allow sharing enable/disable options between all
USB drivers on multiple platforms. Combined CAM_LIBS and
SCSI_LIBS since they are mutually exclusive.
Skip some USB/SCSI checks when previous tests show it will always fail.
* backend/Makefile.am, tools/Makefile.in: Combine CAM_LIBS and
SCSI_LIBS. Add missing SOCKET_LIBS to epson2. Add USB_LIB.
* saned.c: Add limits.h for PATH_MAX.
own *_LIB variables instead of $LIB so that we do not have to
link in the world to all executables. Modified SANE_CHECK_U_TYPES
to be a little more portable to platforms that use #define
for u_* types. Create SANE_CHECK_BACKENDS macro so that
PRELOADABLE_BACKENDS can also be valided. Auto-populated
PRELAODABLE_BACKENDS when detect dlopen() won't work.
Various protability cleanups.
* backend/dll.c: Make dll-preload.c a .h since its an include and
not compilable byitself.
* frontend/Makefile.in, frontend/scanimage.c, include/laaloca.h,
lib/Makefile.am, lib/alloca.c, strcasestr.c, tools/Makefile.in,
tools/sane-desc.c: Convert lib/ to automake. Create a liblib.la
for everyone to use and a libfelib.la for only frontend programs.
Make all internal programs be prefixed with sanei_ as not to conflict
with other programs libsane is linked in with that will also most
likely create similar internal utils on problem platforms.
* include/getopt.h, lib/getopt.c, lib/getopt1.c: Always compile
and link in getopt_long() but prefix it with sanei_. Its
easier to always use internal version then try to figure out what
platforms support getopt_long() and what header files to use.
* backend/Makefile.am: Convert backend makefile to automake.
Initial version that is feature parity with original but uses
specific rules instead of wildcards and only links in libraries/objs
really required. Room for more cleanup of whats linked in once
all makefiles have been converted to automake.
sanei/sanei_tcp.c, sanie/sanei_udp.c: Improve portablity by
removing usage of MSG_WAITALL since not all platforms support
that (cygwin). Default is to be blocking anyways. Changed
usage of MSG_NOTWAIT to use fcntl() function as needed as well.
* configure.in, lib/Makefile.in, lib/strcasestr.c: Add internal
strcasestr() for platforms missing it (cygwin).
* pixma_common.c: My source match header prototype for picky
compilers (cygwin).
* backend/umax_pp_mid.c: Allow BACKEND_NAME to be filename
yet debug to be SANE_DEBUG_UMAX_PP to match man page.
Updated backends with EXTRA_* files to allow Makefile's
to always pass in BACKEND_NAME to be fixed to backend name
instead of filename; while still making sure that
SANE_DEBUG_${BACKEND}* exist as documented in man pages.
Add references to epson and epson2 man pages about
SANE_DEBUG_EPSONx_SCSI and _NET options.
Created an epson2 man page; based mostly on epson page.
Fix a few bugs with "all" and "uninstall" targets to work when
$(builddir) != $(srcdir). Added $(DESTDIR) to uninstall target.
Made $(distdir) related to current directory to match automake.
Added code to read_data() to pad image data to
requested length and to zero out any garbage using
information from sense data command. Added new
MAINTENANCE_DATA struct and options to display
scanner's maintenance/callibration statistics.
*backend/hs2p.h
- added enum CONNECTION_TYPES
- added HS2P_DATA struct
- added SENSE_DATA struct to struct HS2P_Device
- added SANE_String_Const orientation_list[]
- added macros isset_ILI() and isset_EOM()
*backend/hs2p-scsi.h
- replaced request_sense struct with SENSE_DATA struct
- added #define DATA_TYPE_EOL (va_list sentinel)
- added MAINTENANCE_DATA struct
*backend/hs2p-saneopts.h
- added OPT_ORIENTATION
- added MAINTENANCE_DATA options
*backend/hs2p.c
- added MAINTENANCE_DATA options
- added unused connType to attach()
- added update_hs2p_data() to fill in options
- added hs2p_open() and hs2p_close()
- added get_hs2p_data() to read scanner data
- added print_maintenance_data()
- modified sane_control_options() to
accomodate new maintenance options and to
handle Portrait/Landscape option
replaced adf_status macro with s->data.adf_status
- modified sane_read() to correctly zero out the
missing bytes on an incomplete read and to pad
to the requested length
*backend/hs2p-scsi.c
- replaced request_sense() with get_sense_data()
- added print_sense_data()
- added SENSE_DATA *sdp to sense_handler()
- modified read_data() to handler other data type codes/qualifiers
- read_adf_status() now is replaced with call to
read_data(fd,*buf,*bufsize,dtc,dtq)
- round pixels_per_line down to arbitrary limits for fi-4990 & fi-4860
- fi-4860 returns random garbage to serial number queries
- initialize *info to 0 in sane_control_option()
* doc/descriptions/fujitsu.desc: backend v85, improve status/comments
* frontend/scanimage.c: initialize *info, fix buffer overwalk
- add all documented request sense codes to sense_handler()
- fix color jpeg (remove unneeded BGR to RGB swapping code)
- add macros for LUT data
* backend/canon_dr.conf.in: add DR-2080C usb ID
* doc/descriptions/canon_dr.desc: backend v10, add DR 3020
- rename read/send_counter to read/send_panel
- enable control panel during init
- add options for all buttons
- call TUR twice in wait_scanner(), even if first succeeds
- disable rif
- enable brightness/contrast/threshold options
* doc/descriptions/canon_dr.desc, doc/sane-canon_dr.man: backend v8
On Ubuntu getlogin() returns NULL. So we noew first try getlogin()
and if that fails, we try getenv("USER") and if that fails we use
a defaul user string
- jpeg support (size rounding and header overwrite)
- call object_position(load) between pages even if buffering is on
- use request sense info bytes on short scsi reads
- byte swap color BGR to RGB
- round image width down, not up
- round image height down to even # of lines
- always transfer even # of lines per block
- scsi and jpeg don't require reading extra lines to reach EOF
- rename buffer option to buffermode to avoid conflict with scanimage
- send ssm_do and ssm_df during sane_start
- improve sense_handler output
* doc/descriptions/canon_dr.desc: backend v7
doc/descriptions/canon_dr.desc: backend v5
- remove EOF ejection code
- add SSM and GSM commands
- add dropout, doublefeed, and jpeg compression options
- disable adf backside
- fix adf duplex
- read two extra lines (ignore errors) at end of image
- only send scan command at beginning of batch
- fix bug in hexdump with 0 length string
- DR-7580 support
- round binary bpl and Bpl up to byte boundary
- use s->params instead of user data in set_window()
- read_from_scanner() only grabs an even number of lines
* Pixma backend (pixma.c/pixma_common.c/pixma_io_sanei.c/pixma_bjnp.c)
bjnp tcp connection is now de-activated after initialization and
re-activated at start of scanning. If we do not do this, the scanner
closes its side of the connection after 30 secods of inactivity.
Added a maximum to the retry of slect calls when signals are
received
Added blocksize detection for tcp read_bulk call
* backend/pixma_bjnp.c
Added retry to select() calls when they get interrupted by a
signal. This solves problems in xsane after a first scan completed.
There is still an issue that scanner closes tcp connection after
30 seconds of inactivity
backend/pixma_bjnp.c backend/bjnp_private.h
Marked local functions as static and removed them from ..private.h
* Added #ifdef around defintions of MIN and MAX in pixma_common.h
- Re-enable includes in pixma_bjnp.c as they are needed on Freebsd
- Replaced getaddrinfo by gethostbyname in pixma_bjnp.c as this is
supported on OS/2 as well
backend/fujitsu.[ch], backend/fujitsu-scsi.h: backend v79
- add usb ids for several models
- print additional hardware capability bits
- detect front-side endorser
- disable endorser-side controls if only one side installed
- add quirks for fi-6x70
* backend/epjitsu.[ch], backend/epjitsu-cmd.h: backend v 13, 14 and 15:
- add working page-height control
- add working brightness, contrast and threshold controls
- add disabled threshold curve and geometry controls
- move initialization code to sane_get_devices, for hotplugging
- support S300 on USB power
- support S300 225x200 and 600x600 scans
- support for automatic paper length detection (parm.lines = -1)
- expose hardware buttons/sensors as options for S300
* doc/descriptions/epjitsu.desc: change S300 status to good
- override flatbed maximum area for fi-6230C and fi-6240C
- set PF bit in all mode_select(6) CDB's
- set SANE_CAP_INACTIVE on all disabled options
- fix bug in mode_select page for sleep timer
- add independent maximum area values for flatbed
- override said values for fi-4220C, fi-4220C2 and fi-5220C
* doc/descriptions/fujitsu.desc: bump version, add 2 untested scanners
- add fi-6130 usb ID
- correct overscan dimension calculation
- provide correct overscan size overrides for fi-5110C and fi-4x20C2
- fi-5750C can't handle 10 bit LUT via USB
- disable overscan option if vpd does not tell overscan size
- fi-5110EOX crops scan area based on absolute maximum, not paper
- fi-5330C and fi-5650C can't handle 10 bit LUT via USB
- fi-5900 has background color, though it reports otherwise
- add halftone type and pattern options
- support M3097G with IPC and CMP options via modified VPD response
* doc/descriptions/fujitsu.desc, doc/sane-fujitsu.man: backend v68,
- manpage cleanup