[sane-devel] Current TODO list

Henning Meier-Geinitz henning@meier-geinitz.de
Sun, 5 Jan 2003 20:34:08 +0100


Hi,

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.

Bye,
  Henning
  
TODO (2003-01-05)

******** todo ********

backends
--------
  * Add new backends (+ means scheduled for SANE 1.0.10)
    - Hewlett-Packard ScanJet 3300C / 3400C and 4300C (wip)
      http://sourceforge.net/projects/hp3300backend

  * qcam:
     - 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
       etc controls
     - figure out how/if to support bulb mode
     - convert to use sanei_pio functions instead of direct port
       access.
     - 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. 

  * v4l:
     - 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
      found.

  * net: add IPv6 support.

  * suspicious warnings or type mismatchs:
    - bh: backend/bh.c", line 1923: warning: end-of-loop code not reached
      see sane-devel.
    - 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*
      to sanei_scsi_cmd().

  * 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
    http://www.mostang.com/pipermail/sane-devel/2002-December/017010.html
    - gphoto2 (?)
    - bh
    - canon
    - coolscan
    - dc210
    - dc240
    - dc25

doc
---
  * Add doxygen documentation for the remaining sanei files:
    - sanei_pio.h
    - sanei_pv8630.h
    - sanei_wire.h

  * 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?
 

  * manpages:
    - 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.

frontends
---------
  * saned:
     - 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
    SANE_UNIT_PIXEL.
  
  * 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
-----
  * sanei_scsi: Think about a completely new interface. Details are in
    http://www.mostang.com/pipermail/sane-devel/2002-January/001995.html and
    http://www.mostang.com/pipermail/sane-devel/2002-December/016773.html.

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

  * sanei_usb:
    - 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(?) 


platform-specific
-----------------
  * 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
      scanners, however.
    - More docu in README.darwin.
    - sm3600 is reported to crash with MacOS X. Actually, the crash is in
      libusb::usb_find_devices().
  
  * 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).

misc
----
  * sane-config: add options "--exec-prefix=...." and "--prefix=..."
    compareable to gtk-config

  * Make output of sane-find-scanner more flexible. See scanimage -f for
    details.

  * 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?
    See http://fz.eryx.net/sane/#configure.

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