TODO (2000-10-03) ******** todo ******** backends -------- * add new backends (?) - as6e http://as6edriver.sourceforge.net/ - bh http://www.martoneconsulting.com/sane-bh.html - Polaroid SprintScan 35 LE [should be included into microtek] Dick Bruijn - primax http://primax.sourceforge.net/ - hp4200 http://hp4200-backend.sourceforge.net/ - v4l2 http://video.inodes.org/sane-v4l2/ - Relisys Scorpio Super 3 SCSI II by Tyler Bindon . - Linux Handscanner Ioctl Interface scanner by Harald Bauer - sane-pie (Pacific Image Electronics series of ScanAce SCSI scanners, and the Devcom 9636/9630 BlackWidow) http://www.munton.demon.co.uk/sane * use DBG(...) instead of fprintf(stderr, ...) - microtek - microtek2 * check #include (is this a global system header on any platform? Otherwise --> "lalloca.h") * make authorization_callback work in net-backend and saned * check net/saned - net backend segfaults if saned isn't started - don't just ignore the byte-order for the image data (needed to support depths > 8 bits/channel) * 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 * qcam: convert to use sanei_pio functions instead of direct port access. doc --- * add sane manpage - versioning system - SANE API * add sane-usb manpage * Documentation for sanei API - any ideas for this? frontends --------- * Remove frontends (at least xscanimage/xcam) from distribution. Create new package for frontends. * add new frondends (possibly to frontend package) (?) - xsane - scanadf * add possibility to use external filters to xscanimage/xsane (?) * xscanimage/xcam: support depths > 8 bits/channel * xscanimage: provide both scale and textentry for ranges (make new widget) * xcam: provide access to option doc strings * xscanimage: scanning of images whose heights is not known a priori is not supported yet; this is going to be important for handheld scanners. At least the frontend shouldn't crash or produce invalid pnm files when it gets a length of -1. * 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 it being listed in the configuration file (currently bad things will happen if dll attempts to load itself) * dll: Rewrite to use libtool ltdl library * For 3-pass scanners, xscanimage doesn't update the scan progress bar properly between scans; the scanner seems to be faster than xscanimage can write to disk (problem: seek for every byte). This doesn't happen as GIMP-plugin. It doesn't happen in blocking mode either. * Add a check in the frontends if the backend delivers more data than it announced by sane_get_parameters to avoid segfaults with bad backends? * Adapt xscanimage to new GIMP API. Try to make it backwards compatible with old GIMP versions if possible. sanei ----- * don't install sanei_* headers (?) * add sanei_authorize (function for all backends) misc ---- * update libtool versioning system - -version-info is used but with the current version number system -release should be used. - look for AIX problems (overwriting shared libs with eachother because all libs are named libsane.so.1) - look for Irix/cc problems (program searches for libsane.so.2 instead of libsane.so.1). This was fixed by a "bad hack" which should be reverted . * check DBG problems for non gcc compilers: - no backend name output - only global debug level * remove compiler warnings (>400 warnings even in disable-warning mode!) * Test SANE on different os/platforms, fix possible compilation problems Test methods: scanimage -d pnm:0 --filename=file.pnm -T scanimage -d net:localhost:pnm:0 --filename=file.pnm -T (not possible if I'm not root on the system) xscanimage / gimp with xscanimage plugin (where available) All the above with shared and static libraries. * move .desc files for backends that are not included in SANE to different directory (e.g. backends and external-backends) * add ADF and TA entries to .desc files * Add a check for installed sane versions. * Print a warning when already a sane version is installed. * Maybe add script to detect and deinstall existing sane versions * 0 is white for sane in lineart and halftone, however, 0 is black for the other modes. Possible reason: pnm data format. The SANE standard doesn't talk about this. ******** done ******** * scanimage: add information about backend:devicename in the man page and scanimage --help. * scanimage: check if devicename starts with a / and print a warning message * scanimage: if no devices are detected print a message * use sanei_config_read() instead of fgets() * use #include "sane/..." instead of #include * Update LEVEL2 file. Ideas: * xscanimage: Fix "Gtk-CRITICAL **: file gtkmain.c: line 534 ..." bug when no SANE devices found + 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 in xsane) + xcam: allow disabling of advanced options and tooltips + man page for xcam + scanimage: support depths > 8 bits/channel + 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