----- todo:

- all frontends: support depths > 8 bits/channel
- net: don't just ignore the byte-order for the image data (needed to
  support depths > 8 bits/channel)
- mustek: for 3-pass scanners, it is said that xscanimage doesn't update
  the scan progress bar properly between scans; it is said to stop at
  90%, start the next pass, and once the next pass has started, it moves
  on to 100% and the progress bar disappears at that point
- man pages for xcam, and the API functions
- xscanimage: provide both scale and textentry for ranges (make new widget)
- xcam: provide access to option doc strings and allow disabling of
  advanced options and tooltips
- xscanimage: scanning of images whose heights is not known a priori is not
  supported yet; this is going to be important for handheld scanners
- 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
- qcam: figure out how/if to support bulb mode
- xcam: add dithering and support for SANE depths other than 8 bit (test
	with Mustek backend, for example)
- xcam: add recording feature (e.g., GIF, JPG, or MPEG)
- dll: make it robust against against it being listed in the configuration
  file (currently bad things will happen if dll attempts to load itself)
- PREVIEW: maybe there should be an option to limit the preview
  scan to the selected area? YES => this will also make it easier
  to avoid the scan area selection to get confused when the user
  resizes the preview area in a way that changes the aspect ratio;
  in essence we want to allow for the preview-image to be a subregion
  of the preview-window

+++++ done:

+ upgrade to GTK 1.2 (but stay backwards compatible to 1.0 if possible)
+ saned: check_host() consider using strncasecmp()
+ GTK: changing the length unit causes dirty pixels in the unit-labels
  of the "Geometry Group"
+ preview: image data doesn't get preserved properly when changing
  scan area size (reproducable by changing Mustek Scan source to TA)
+ preview: when popping up the preview window, the current scan area is
  not visible
+ qcam: test b&w support (need volunteer!)
+ hp: convert to use pixel-unit commands only; HP 5P doesn't support
  decipoint commands
+ mustek: the MFS-06000SP with firmware v3.12 does not seem to need any
  line-distance correction at all!?!
+ scanimage/xscanimage: when a scanner is busy while probing for devices,
  the device is dropped silently from the list of available devices; this
  is confusing particularly when remote controlling a device; it should
  be possible to distinguish between a device that's busy and one that's
  absent
+ xscanimage: program crashes when preview window is popped down while
  preview is being acquired!
+ Mustek backend crashes when invoked via xscanimage through the network
  backend.  It does not crash if there are no saved device settings.
+ gtkglue: support vectors (requires a "graph" widget; see gimp/app/curves.c)
+ xscan: make scrollbar wider
+ xscan: at startup or after rebuilding the dialog, the notebook widget
  displays both the standard and advanced options simultaneously
+ xscan: pnm backend causes crash when hitting "Defaults" button
+ scan: add three pass scanning support
+ xscan: double-clicking selection should imply OK
+ xscan: enabling the gtk_rc_parse() code causes segfault when scanning in
  three-pass mode (pnm backend) => bug in gtkstyle.c (patch submitted)
+ qcam: implement "christmas light" filter
+ xscan/qcam: after scanning a preview, the original scan area seems to
  get lost somehow => bug in restoring the scan area settings
+ qcam: image always comes out black until the blacklevel has been modified;
  why is this? => send dummy black-level after qc_reset()
+ xscan: provide access option doc strings
+ xscan: in GIMP mode, RED/GREEN/BLUE frames are not handled properly yet.
+ preview: bit-depth is currently ignored (makes lineart etc fail)
+ sanei: allow saving/restoring options on a per-device and per-user basis
+ xcam: replace ugly top-left/bottom-right corner coordinates with something
	more useful => they're advanced options now
+ preview: modifying the scan area coordinates should update the selection
+ preview: should we allow saving the current preview image? => yes
+ xscan: make it possible to build with gtk alone (i.e., without gimp libs)
+ xscan: use same scan-logic as preview (select-based, if possible);
  should be able to share most of the code
+ replace params.first_frame with params.last_frame---i don't know how to
  use the former, the latter would be useful for xcam to implement support
  for individual R/G/B frames
+ saned: add multi-host capabilities (selection-phase ... how ??).
+ saned: add authorization
+ ensure frontend never link sanei_*() functions dynamically
+ always define unique names in backends and define weak-aliases for
  generic names where elf_alias is available---this should make it
  easy to add "pre-load" support to dll.c (either for faster loading or
  for systems that don't have dl*())
+ make install: don't overwrite existing configuration files
+ xcam: let user be able to type in a device string
+ mustek: make sane_close() hang around until sane_cancel() has finished
+ net: implement it: socket-based backend [Andy is working on this]
+ need a camera front end (to allow recording video & audio)
+ qcam: allow changing all parameters "on-the-fly" (while scanning)
+ qcam backend: implement sane_set_io_mode() and sane_get_select_fd()
+ make "scan" print current value of each option
+ make "scan" apply any options before printing help message
+ initialize backend debug level through environment variable (e.g.,
  SANE_DEBUG_LEVEL)
+ allow abbreviating string values and make them case-insensitive (as long
  as they're unique) => see sanei_constrain_value()
+ add support to "scan" for setting options to "automatic"
+ update documentation and convert to latex & html
+ add --width/--height support
+ update Mustek backend with new notion of inactive options
+ in verbose multibit mode print min/max graylevel value 
+ Mustek segfaults after ctrl-C => need -Bsymbolic to ensure mustek backend's
  references to sane_foo() get resolved within backend
+ test parsing of boolean options
+ --mode Gray causes segfault
+ change scan to use getopt_long
+ make Mustek backend work without having to first call get_devices()
+ implement meta backend
+ bring pnm backend up to speed
