sane-apple.5



sane-apple(5)            SANE Scanner Access Now Easy            sane-apple(5)


NAME

       sane-apple - SANE backend for Apple flatbed scanners


DESCRIPTION

       The  sane-apple  library  implements  a  SANE (Scanner Access Now Easy)
       backend that provides access to Apple flatbed scanners. At present, the
       following scanners are supported from this backend:

       --------------- ----- ------------------ ------
       AppleScanner    4bit  16 Shades of Gray
       OneScanner      8bit  256 Shades of Gray
       ColorOneScanner 24bit RGB color          3-pass

       If you own a Apple scanner other than the ones listed above that  works
       with  this  backend,  please let us know by sending the scanner's model
       name, SCSI id, and  firmware  revision  to  sane-devel@alioth-lists.de-
       bian.net.   See  http://www.sane-project.org/mailing-lists.html for de-
       tails on how to subscribe to sane-devel.


DEVICE NAMES

       This backend expects device names of the form:

              special

       where special is the path-name for the special device that  corresponds
       to a SCSI scanner. For SCSI scanners, the special device name must be a
       generic SCSI device or a symlink to such a device.  Under Linux, such a
       device   name   could  be  /dev/sga  or  /dev/sge,  for  example.   See
       sane-scsi(5) for details.


CONFIGURATION

       The apple.conf file is a list of options and device names  that  corre-
       spond  to  Apple  scanners.  Empty lines and lines starting with a hash
       mark (#) are ignored.  See sane-scsi(5) on details of what  constitutes
       a valid device name.

       Options  come  in  two flavors: global and positional ones.  Global op-
       tions apply to all devices managed by the backend,  whereas  positional
       options  apply  just  to the most recently mentioned device.  Note that
       this means that the order in which the options appear matters!


SCSI ADAPTER TIPS

       SCSI scanners are typically delivered with an ISA SCSI adapter.  Unfor-
       tunately, that adapter is not worth much since it is not interrupt dri-
       ven.  It is sometimes possible to get the supplied card  to  work,  but
       without an interrupt line, scanning will put so much load on the system
       that it becomes almost unusable for other tasks.


FILES

       /usr/local/etc/sane.d/apple.conf
              The   backend   configuration  file  (see  also  description  of
              SANE_CONFIG_DIR below).

       /usr/local/lib/sane/libsane-apple.a
              The static library implementing this backend.

       /usr/local/lib/sane/libsane-apple.so
              The shared library implementing this backend (present on systems
              that support dynamic loading).


ENVIRONMENT

       SANE_CONFIG_DIR
              This environment variable is a list of  directories  where  SANE
              looks  for  the  configuration file.  On *NIX systems, directory
              names are separated by a colon (`:'), under OS/2 by a semi-colon
              (`;').  If SANE_CONFIG_DIR is not set, SANE defaults to  search-
              ing  the  current  working  directory  (".")  and  then /usr/lo-
              cal/etc/sane.d.  If the value of $SANE_CONFIG_DIR ends with  the
              separator  character, the default directories are searched after
              the directory list.  For  example,  setting  SANE_CONFIG_DIR  to
              "/tmp/config:"  would  result  in directories tmp/config, ., and
              /usr/local/etc/sane.d being searched (in that order).

       SANE_DEBUG_APPLE
              Controls the debug level.  A value of 255 prints all debug  out-
              put.   Smaller values reduce verbosity.  Requires a library com-
              piled with debug support.


CURRENT STATUS

       The apple backend is now in version 0.3 (Tue Jul 21 1998). Since I only
       have the AppleScanner and not the other models (OneScanner,  ColorOneS-
       canner) I can only develop/test for the AppleScanner effectively.  How-
       ever with this release I almost completed the GUI part of all scanners.
       Most  of the functionality is there. At least OneScanner should scan at
       the AppleScanner's compatible modes  (LineArt,  HalfTone,  Gray16).  My
       personal belief is that with a slight touch of debugging the OneScanner
       could  be actually usable. The ColorOneScanner needs more work. AppleS-
       canner is of course almost fully supported.


MISSING FUNCTIONALITY

       Currently all three models lack upload/download support.

       AppleScanner
              Cannot up/download a halftone pattern.

       OneScanner
              Cannot up/download halftone patterns or calibration vectors.

       ColorOneScanner
              Cannot up/download halftone patterns, calibration vectors,  cus-
              tom Color Correction Tables (CCT) and of course custom gamma ta-
              bles.

       Park/UnPark (OneScanner, ColorOneScanner)
              Some capabilities are missing.

       The above functionalities are missing because I don't have the hardware
       to experiment on.  Another reason is my lack of understanding as to how
       or  if  the  SANE  API provide means to describe any array type besides
       gamma.


UNSUPPORTED FEATURES

       The following "features" will never be  supported,  at  least  while  I
       maintain the sane-apple backend.

       NoHome (AppleScanner)
              The  scanner  lamp  stays  on  and the carriage assembly remains
              where it stops at the end of the scan. After two minutes, if the
              scanner does not receive another SCAN command, the lamp goes off
              and the carriage returns to the home position.

       Compression (AppleScanner)
              The Scanner can compress data with CCITT Group  III  one  dimen-
              sional algorithm (fax) and the Skip White Line algorithm.

       Multiple Windows (AppleScanner)
              AppleScanner  may  support  multiple windows. It would be a cool
              feature and a challenge for me to code if it could intermix dif-
              ferent options for different windows (scan areas). This  way  it
              could  scan  a document in LineArt mode but the figures in it in
              Gray and at a different resolution.  Unfortunately this  is  im-
              possible.

       Scan Direction (OneScanner)
              It controls the scan direction. (?)

       Status/Reset Button (OneScanner)
              This  option controls the status of the button on the OneScanner
              model. You can also reset the button status by software.


BUGS

       SANE backend bugs are divided in two classes.  We  have  GUI  bugs  and
       scanner specific bugs.

       We  know  we  have a GUI bug when a parameter is not showing up when it
       should (active) or vice versa. Finding out which parameters are  active
       across  various Apple modes and models from the documentation is an in-
       teresting exercise. I may have missed some dependencies. For example of
       the threshold parameter the Apple Scanners Programming Guide says noth-
       ing. I had to assume it is valid only in LineArt mode.

       Scanner specific bugs are mostly due to mandatory round-offs  in  order
       to scan. In the documentation in one place states that the width of the
       scan  area should be a byte multiple. In another place it says that the
       width of the scan area should be an even byte multiple. Go figure...

       Other sources of bugs are due to scsi communication, scsi connects  and
       disconnects. However the classical bugs are still there. So you may en-
       counter  buffer overruns, null pointers, memory corruption and SANE API
       violations.

       SIGSEGV on SliceBars
              When you try to modify the scan area from the slice bar you have
              a nice little cute core dump. I don't know why.  If  you  select
              the scan area from the preview window or by hand typing the num-
              bers everything is fine. The SIGSEGV happens deep in gtk library
              (gdk). I really cannot debug it.

       Options too much
              It  is  possible,  especially  for  the ColorOneScanner, for the
              backend's options panel to extend beyond your screen. It happens
              with mine and I am running my X Server at 1024x768. What  can  I
              say? Try smaller fonts in the X server, or virtual screens.

       Weird SCSI behaviour
              I am quoting David Myers Here...

              >> OS: FreeBSD 2.2.6
              >> CC: egcs-1.02
              Just  wanted to follow up on this...  I recently changed my SCSI
              card from the Adaptec  2940UW  to  a  dual-channel  Symbios  786
              chipset.   When I started up SANE with your driver, I managed to
              scan line art drawings okay, but Gray16 scans led to a stream of
              SCSI error messages on the console, ultimately  hanging  with  a
              message  saying the scanner wasn't releasing the SCSI bus.  This
              may be that the Symbios is simply less tolerant of ancient hard-
              ware, or may be bugs in your driver or in SANE itself...


DEBUG

       If you encounter a  GUI  bug  please  set  the  environmental  variable
       SANE_DEBUG_APPLE  to 255 and rerun the exact sequence of keystrokes and
       menu selections to reproduce it. Then send me a report with the log at-
       tached.

       If you have an Apple Macintosh with the AppleScanners driver installed,
       reporting to me which options are grayed out (inactive) in  what  modes
       would be very helpful.

       If  you  want  to  offer some help but you don't have a scanner, or you
       don't have the model you would like to help with, or you are a SANE de-
       veloper and you just want to take a look at how the apple backend looks
       like, goto to apple.h and #define the NEUTRALIZE_BACKEND macro. You can
       select the scanner model through the APPLE_MODEL_SELECT  macro.  Avail-
       able options are APPLESCANNER, ONESCANNER, and COLORONESCANNER.

       If  you  encounter  a SCSI bus error or trimmed and/or displaced images
       please set the environment variable SANE_DEBUG_SANEI_SCSI to 255 before
       sending me the report.


TODO

       Non Blocking Support
              Make  sane-apple  a  non  blocking  backend.  Properly   support
              sane_set_io_mode() and sane_get_select_fd().

       Scan   Make scanning possible for all models in all supported modes.

       Add other missing functionality.


SEE ALSO

       sane(7), sane-scsi(5)


AUTHOR

       The  sane-apple  backend was written not entirely from scratch by Milon
       Firikis. It is mostly based on the sane-mustek(5)  backend  from  David
       Mosberger and Andreas Czechanowski.

                                  11 Jul 2008                    sane-apple(5)

Man(1) output converted with man2html