[sane-devel] Current TODO list

Henning Meier-Geinitz henning@meier-geinitz.de
Sat, 16 Nov 2002 14:33:32 +0100


Hi,

This is the current TODO list. Some of the entries aren't in CVS yet.
If there is anything that's already fixed or not correct, please tell
me.

Bye,
  Henning


TODO (2002-11-14)

******** 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
    + tevion9693usb backend
      http://www.angelfire.com/linux/crapsite/

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

  * 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

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

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

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

  * microtek2.c (scsi_read_control_bits): Make sure to pass a size_t*
    to sanei_scsi_cmd().

  * hpsj5s seems to freeze in DetectScanner() if a printer is connected to
    the system. Is the access to the parport device save at all? Should
    hpsj5s be commented out in dll.conf?
    See "[sane-devel] My Umax works well, now it hangs up?" for details.

  * 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
    - hp: currently no support for sanei_usb at all

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

  * sane.tex:
    - Add a warning/explanation about problems with sane_get_select_fd, Unix
      select() calls and sane_cancel (-->backend-writing.txt?).
    - Define, how to handle SANE_CAP_ADVANCED for groups. (-->backend-writing.txt?)
    - Add a well-known option that represents the status of buttons or some other
      means to support buttons if this is possible before SANE2. Keep in mind
      locking issues.

  * desc files:
    - Add viceo.desc to descriptions-external (from Steven Ellis 
      <viceo@stevencherie.net>)

    - Add keywords "vendor-id" and "product-id" for SCSI and USB ids.

  * manpges:
    - Make sure that .SH NAME uses \- to distinguish between the backend 
      name and the description
    - Check .IX for correctness (e.g. umax-1220u). Is it needed at all?
    - Maybe add sane-backends-version to .TH?

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 .

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

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.

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

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

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

  * Fix MacOS X issues: 
    - Add support in sanei_scsi.c.
    - Find out why libusb doesn't work propperly.
    - Check if dll.c need to use the .dylib postfix for libraries.
    - sm3600 is reported to crash with MacOS X.

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.