- add complete support for imprinters on X10C (#585)
The vast majority of the work here was originally done in !706 by
Charles Quarra. I had some merge conflicts, and it was easier to
pull all his work into a patch and apply it myself.
The only changes I made were minor updates to comments, and adding
an imprinter group option. Sorry for the loss of attribution, and
thanks Charles!
The output from the SCSI inquiry command uses fixed-length space-padded
strings, which are copied into null-terminated strings before use.
This is currently done using strncpy(), with the count parameter set to
the string's fixed length. Because a null terminator is not encountered
in the input, strncpy() does not write one in the output, and GCC warns
about potential string truncation. A null terminator is added manually,
but this is error prone (as shown by the fix for the microtek backend).
Use snprintf() instead, which guarantees a null-terminated result and
resolves the warnings from GCC.
- rewrite do_cmd() timeout handling
- remove long timeout TUR from v61 (did not help)
- allow config file to set initial tur timeout for DR-X10C (#142)
- restructure fine calibration code
- initial support for uploading fine calibration payloads
- improve DR-C225 support
Most canon scanners require that the driver apply fine (per-cell)
calibration information. But a few require that the info be loaded
into the scanner. Here, we add initial support for that, though the
needed values are hardcoded instead of calculated.
- set another unknown byte in buffermode for ssm2
- add another gettimeofday call at end of do_usb_cmd
- don't print 0 length line in hexdump
- mark DR-7080C as working
- default DR-G1100 and DR-G1130 to 8 meg buffers
- initial DR-M140 support
- add extra_status config and code
- split status code into do_usb_status
- fix copy_line margin offset
- add new color interlacing modes and code
- comment out ssm2
- add timestamp to do_usb_cmd
- initial DR-G1100 support
- add support for paper sensors (P-215 & P-208)
- add initial support for card reader (P-215)
- removed unused var from do_scsi_cmd()
- 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
- 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
- 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
- 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
- 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
- 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
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