[sane-devel] Current TODO list
Sun, 5 Jan 2003 20:34:08 +0100
This is the current TODO list for SANE 1.0.10. If anything is
wrong/already fixed/missing, please change in CVS or contact me.
I don't think there is anything really realese-critical, but some
minor issues should be fixed.
******** todo ********
* Add new backends (+ means scheduled for SANE 1.0.10)
- Hewlett-Packard ScanJet 3300C / 3400C and 4300C (wip)
- implement auto mode for brightness and black-level (don't
just advertise it!) Actually, implement an auto "backend" instead
that can be plugged in front of any backend with brightness/contrast
- figure out how/if to support bulb mode
- convert to use sanei_pio functions instead of direct port
- The result of locking isn't checked --> does it make sense at all?
* sm3600.c, .h:
- Fix comment header (wrong author, wrong description)
* dc210, dc240, gphoto2, and jpeg stuff: move sanei_* functions to sanei/
(if they are necessary). That's probably for SANE2.
- Geometry support is missing
- Frequency setting is missing
- check if v4lctl distributed with xawtv can be used
* memory leaks:
- sane_exit() does not release memory allocated by sane_get_devices():
abaton, agfafocus, apple, as6e, bh, canon, coolscan, dmc, qcam,
ricoh, s9036, sp15c, tamarack
- as6e: attach: memory (dev + dev-sane.name) isn't freed if driver isn't
* net: add IPv6 support.
* suspicious warnings or type mismatchs:
- bh: backend/bh.c", line 1923: warning: end-of-loop code not reached
- coolscan: Lots of compilation warnings (e.g.
"backend/coolscan-scsidef.h", line 160: warning: initialization
type mismatch; empty declarations), see sane-devel.
- microtek2.c (scsi_read_control_bits): Make sure to pass a size_t*
* Make sure that USB backends don't depend on the kernel USB scanner
driver but also work with libusb. The linux kernel scanner driver may be
gone in Linux 2.6.0.
- plustek: will need some work to autodetect all supported scanners
* Check if sp15c backend (Fujitsu ScanPartner 15C) can be included in
fujitsu or avision backends.
* Check the Irix patches from
- gphoto2 (?)
* Add doxygen documentation for the remaining sanei files:
* desc files:
- snapscan.desc: Add Mitsubishi DV650U usb scanner
"It turns out the DV650U has the same ID string (FlatbedScanner_23),
vendor & product ID (0x04a5, 0x20b0) and firmware file (u176v042.bin)
as Acer/Benq 4300, listed at http://snapscan.sourceforge.net"
- Add Epson Stylus cx3200 MFP to epson.desc (supported only with
patch to Linux USB scanner driver)
- Add keywords "vendor-id" and "product-id" for SCSI and USB ids.
- hp.desc, umax_pp.desc: Use "ScanJet number" instead of "HP ScanJet number"
or "HP number" for better sorting of the lists
- avision.desc: Is the removal of the HP 7450 intended?
- html manpages have broken links to other man pages if link is wrapped at
the end of the line (e.g. sane-pint points to pint.5.html).
- umax_pp.man: Don't use "'" at the beginning of lines.
- saned times out after 60 minutes. Check if the
watchdog timer is really necessary (e.g. to avoid blocking scanners
by one user). Maybe add a command line option to saned to set the
timeout. Otherwise turn on TCP keep alive (where available) and
(maybe) check the connection from server side.
- Add IPv6 support.
- Add support for IP ranges in saned.conf (like 10.0.0.0/8)?
* scanimage: Check range of width and height. scanimage just uses the ranges
from br-x and br-y but this is wrong for tl-x and tl-y != 0 and for
* scanimage: Reduce range of width and length if tlx or tly is different
from 0 to avoid warnings.
* scanimage: Check handling of short string-list options.
* sanei_scsi: Think about a completely new interface. Details are in
* create sanei_parport_* and remove all inb, outb,... from all backends;
use libieee1284 if available (see
http://people.redhat.com/twaugh/libieee1284/). Or just include this
library into sane.
* Check if the device file has the right type before accessing it. E.g.
check for major/minor numbers to avoid accessing a USB file as SCSI
device. This is finished for sanei_scsi.c/Linux and sane-find-scanner.
Patches for other platforms are welcome.
* sanei_scsi (Linux): Make sure that the SCSI driver is loaded when
checking for scanners. Ideas: Open/close all the /dev/sg* files in
sanei_scsi.c, dll.c or in a new backend.
* sanei_usb, sanei_scsi: Print all data send to and received from devices.
Use high debug level.
- using only the first interface may be a problem with all-in-one devices
- some scanners seem to provide more than one bulk-in endpoint(?)
* SCSI access doesn't seem to work on Linux/Sparc. See emails from
Tomislav Renic on sane-devel (2001-09-21).
* Really fix all the parport/inb/outb compilation issues which break
porting to some non-i386 platforms.
* Find out why USB on *BSD only works once (at least for Mustek scanners).
* Fix MacOS X issues:
- Add support in sanei_scsi.c.
- Find out why libusb doesn't work propperly. Seems to work with some
- More docu in README.darwin.
- sm3600 is reported to crash with MacOS X. Actually, the crash is in
* OS/2 issues:
- configure creates 264 sh-thd-??????? files?
- Add $EXEEXT or sed expression to Makefiles to get the .exe extension?
- Add support for semaphores also for OS/2 (currently used in snapscan).
* sane-config: add options "--exec-prefix=...." and "--prefix=..."
compareable to gtk-config
* Make output of sane-find-scanner more flexible. See scanimage -f for
* Check licence issues with getopt*.c and md5.c. These files are GPLed, so
if they are used in backends, their SANE exception will be void.
* Can we link external libraries only to backends that need them?
* Fix japi to run on current jdks. Swing is now included, and there is
a segfault in Sane.c.
* Remove backend-specific .po files when they are no longer needed.