sane-apple manpage

Search topic Section

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

       sane-apple - SANE backend for Apple flatbed scanners

       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@lists.alioth.debian.org.	See  http://www.sane-project.org/mail-
       ing-lists.html for details on how to subscribe to sane-devel.

       This backend expects device names of the form:


       Where  special is either the path-name for the special device that cor-
       responds 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.

       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
       options 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 scanners are typically delivered with an ISA SCSI adapter.	Unfor-
       tunately, that adapter is not worth much	 since	it  is	not  interrupt
       driven.	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.

	      The   backend   configuration  file  (see	 also  description  of
	      SANE_CONFIG_DIR below).

	      The static library implementing this backend.

	      The shared library implementing this backend (present on systems
	      that support dynamic loading).

	      This  environment	 variable  is  list  of directories where SANE
	      looks for the configuration file.	 Under	UNIX  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 /etc/sane.d.
	      If the value of $SANE_CONFIG_DIR ends with the separator charac-
	      ter,  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 "/etc/sane.d"
	      being searched (in that order).

	      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.

       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.

       Currently all three models lack upload/download support.

	      Cannot up/download a halftone pattern.

	      Cannot up/download halftone patterns or calibration vectors.

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

       Park/UnPark (OneScanner, ColorOneScanner)

       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

       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

       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.

       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
       als_Documentation/  is  an interesting exercise. I may have missed some
       dependencies. For example of the threshold parameter the Apple Scanners
       Programming  Guide  says	 nothing.  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
       encounter  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...

       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

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

       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.

       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.

       Missing Functionality

       sane(7), sane-scsi(5)

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

sane-backends 1.0.18		  13 May 1998			 sane-apple(5)