[sane-devel] Current TODO list

Henning Meier-Geinitz henning@meier-geinitz.de
Mon, 22 Jul 2002 20:38:50 +0200


This is the current TODO list in CVS. If our backend is mentioned
there please either fix the issue or contact me, if the entry is wrong
or already fixed.

What about the external backend listed there: Any intention to add
them to SANE?

TODO (2002-07-22)

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

  * Add new backends (+ means: scheduled for version 1.0.9)
    - hp4200 http://hp4200-backend.sourceforge.net/
    - Relisys Scorpio Super 3 - VM3575 (wip)
    - Genius Vivid Pro USB, Colorado USB 19200, Visioneer OneTouch 7600 
      IBM IdeaScan 2000 USB 
    - Hewlett-Packard ScanJet 3300C / 3400C and 4300C (wip)
  * All backends should check for TL_X < BR_X and TL_Y < BR_Y to
    avoid segfaults or even scanner damage. This should NOT be done
    in sane_control_option, it should be possible to temporary set
    TL_X > BR_X or TL_ > BR, otherwise it is hard for a frontend to
    set the correct values.

  * Use DBG(...) instead of fprintf(stderr, ...) or printf
     - microtek

  * 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
     - The result of locking isn't checked --> does it make sense at all?

  * dll: 
     - Rewrite to use libtool ltdl library. Is this necessary? It seems to

  * dc210, dc240, gphoto2, and jpeg stuff: move sanei_* functions to sanei/
    (if they are necessary). 

  * v4l: Problems (crash) with more than one video card. It looks like 
    the two different cards are identified as the same card.

  * Fix backends where sane_exit() does not release memory allocated by
      - abaton
      - agfafocus
      - apple
      - as6e
      - bh
      - canon
      - coolscan
      - dmc
      - fujitsu
      - qcam
      - ricoh
      - s9036
      - sp15c
      - tamarack
      - etc?

  * as6e: attach: memory (dev + dev-sane.name) isn't freed if driver isn't

  * net: add IPv6 support.

  * Fix warnings about DBG calls (try gcc 3.x to get these warnings):
    - umax1220u
  * bh: Suspicious loop ("../../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.

  * Check the return value of wait() and waitpid(). This is important, if
    the status value is checked for e.g. WIFEXITED after the call of wait()
    or waitpid(). Both functions may fail if the frontend already did a wait
    for the children. 

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

  * sane.tex:
    - Define the return values for sane_init?  Define the consequences if
      sane_init doesn't return SANE_STATUS_GOOD.
    - Add a warning/explanation about problems with sane_get_select_fd, Unix
      select() calls and sane_cancel.
    - Add some text about the meaning of bits in 1-bit modes.
    - Define, how to handle SANE_CAP_ADVANCED for groups.

  * desc files:
    - Don't use ":status :new"
      - canon630u
    - Don't use :interface if you don't have a hardware device
      - gphoto2
    - Make sure, that the manufacturer (and model) names use the same spelling:
      - umax, plustek (Genius, KYE-Genius)
      - plustek, umax_pp, avision, hp, hpsj5s (Hewlett-Packard, HP)
    - Check URLs:
      - abaton (http://www.everex.com/)
      - dmc (dmc link)
      - sm3600 (Add a slash after the microtek URL to avoid creating
        duplicate links in the manufacturers listing)
      - umax (http://www.heidelberg-cps.com/ , http://support.umax.com/ ,
        http://www.umaxweb.com.tw/ )

    - Mark scanners with ":status :untested" if they are untested by the author
      or users:
      - bh
      - canon630u (add 636 as :untested (from manpage)?)
      - coolscan2 (LS 400 ED)
      - microtek (Scanmaker 600Z(S))
      - plustek
      - sharp (Maybe add JX-325 as :untested (from manpage)?)

    - Remove unsupported scanners from the list or at least mark them with
      ":status :unsupported":
      - mustek_pp
      - nec
      - plustek
      - umax1220u
      - umax_pp

    - Other problems/comments:
      - bh (use backend comment instead of manufacturer comment, don't use
        model name for comments or status indication)
      - coolscan2 (LS-200 only mentioned in manpage?)
      - epson (if the support for the FilmScan 200 isn't that good, maybe
        its status should be beta or alpha)
      - umax1220u (status for Astra 2000U should be adjusted)

  * 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

  * scanimage: Add i18n (NLS) support?

  * 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

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

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

  * Add AC_OBJEXT and AC_EXEEXT to configure.in for automatically adding
    the correct extensions (e.g. for OS/2). Also update the Makefiles

  * Add support for semaphores also for OS/2 (currently used in snapscan).

  * Add support for Mac OS X in sanei_scsi.c.

  * Don't use "echo -e" in shell scripts. That's not supported by the original 
    sh (-->sane-config.in).

  * Find out why USB on *BSD only works once (at least for Mustek scanners
    and OHCI).

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

  * Fix inclusion of saneopts.??.po in po/. Currently, the "" header is
    defined twice.

  * Fix japi to run on current jdks. Swing is now included, and there is
    a segfault in Sane.c.