


sane-apple(5)                                       sane-apple(5)


NNAAMMEE
       sane-apple - SANE backend for Apple flatbed scanners

DDEESSCCRRIIPPTTIIOONN
       The  ssaannee--aappppllee  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 _s_a_n_e_-_d_e_v_e_l_@_m_o_s_t_a_n_g_._c_o_m.


DDEEVVIICCEE NNAAMMEESS
       This backend expects device names of the form:

              _s_p_e_c_i_a_l

       Where  _s_p_e_c_i_a_l  is  either  the  path-name for the special
       device that corresponds to a SCSI scanner. For SCSI  scan-
       ners,  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 _/_d_e_v_/_s_g_a or _/_d_e_v_/_s_g_e, for example.
       See sane-scsi(5) for details.

CCOONNFFIIGGUURRAATTIIOONN
       The contents of the _a_p_p_l_e_._c_o_n_f file is a list  of  options
       and device names that correspond 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!


SSCCSSII AADDAAPPTTEERR TTIIPPSS
       SCSI scanners are typically delivered  with  an  ISA  SCSI
       adapter.   Unfortunately,  that  adapter is not worth much
       since it is not interrupt driven.  It is (sometimes)  pos-
       sible to get the supplied card to work, but without inter-
       rupt line, scanning will put so much load on  the  system,
       that it becomes almost unusable for other tasks.



                           13 May 1998                          1





sane-apple(5)                                       sane-apple(5)


FFIILLEESS
       _@_C_O_N_F_I_G_D_I_R_@_/_a_p_p_l_e_._c_o_n_f
              The  backend  configuration file (see also descrip-
              tion of SSAANNEE__CCOONNFFIIGG__DDIIRR below).

       _@_L_I_B_D_I_R_@_/_l_i_b_s_a_n_e_-_a_p_p_l_e_._a
              The static library implementing this backend.

       _@_L_I_B_D_I_R_@_/_l_i_b_s_a_n_e_-_a_p_p_l_e_._s_o
              The shared library implementing this backend  (pre-
              sent on systems that support dynamic loading).

EENNVVIIRROONNMMEENNTT
       SSAANNEE__CCOONNFFIIGG__DDIIRR
              This  environment  variable  specifies  the list of
              directories  that  may  contain  the  configuration
              file.  Under UNIX, the directories are separated by
              a colon (`:'), under OS/2, they are separated by  a
              semi-colon (`;').  If this variable is not set, the
              configuration  file  is  searched  in  two  default
              directories:  first,  the current working directory
              (".") and then in @CONFIGDIR@.  If the value of the
              environment  variable ends with the directory sepa-
              rator character, then the default  directories  are
              searched  after  the  explicitly specified directo-
              ries.   For  example,  setting  SSAANNEE__CCOONNFFIIGG__DDIIRR  to
              "/tmp/config:"    would   result   in   directories
              "tmp/config", ".", and "@CONFIGDIR@" being searched
              (in this order).

       SSAANNEE__DDEEBBUUGG__AAPPPPLLEE
              If  the  library  was  compiled  with debug support
              enabled, this  environment  variable  controls  the
              debug level for this backend.  E.g., a value of 255
              requests all debug output to be  printed.   Smaller
              levels reduce verbosity.


CCUURRRREENNTT SSTTAATTUUSS
       The apple backend is now in version 0.3 (Tue Jul 21 1998).
       Since I only have the AppleScanner and not the other  mod-
       els  (OneScanner, ColorOneScanner) I can only develop/test
       for  the  AppleScanner  effectively.   However  with  this
       release  I  almost  complete the gui part of all scanners.
       Most of the functionality is there.  At  least  OneScanner
       should  scan  at the AppleScanner's compatible modes (Lin-
       eArt, HalfTone, Gray16). My personal belief is that with a
       slight touch of debugging the OneScanner could be actually
       usable. The ColorOneScanner needs more work.  AppleScanner
       is of course almost fully supported.


MMIISSSSIINNGG FFUUNNCCTTIIOONNAALLIITTYY
       Currently all 3 models are lacking upload/dowload support.



                           13 May 1998                          2





sane-apple(5)                                       sane-apple(5)


       AApppplleeSSccaannnneerr
              Cannot up/download a halftone pattern.

       OOnneeSSccaannnneerr
              Cannot up/download halftone pattern and calibration
              vector.

       CCoolloorrOOnneeSSccaannnneerr
              Cannot  up/download  halftone  pattern, calibration
              vectors, custom Color Correction Table (CCT) and of
              course custom gamma tables.

       PPaarrkk//UUnnPPaarrkk ((OOnneeSSccaannnneerr,, CCoolloorrOOnneeSSccaannnneerr))

       The  above  functionalities are not only missing because I
       don't actually have the  hardware  to  experiment  on  it.
       Another  reason  is  the lack of understanding of how SANE
       API could provide enaugh means to me to actually  describe
       other array types than the gamma one.


UUNNSSUUPPPPOORRTTEEDD FFEEAATTUURREESS..
       The following "features" will never be supported. At least
       as I am maintaining the sane-apple backend.

       NNooHHoommee ((AApppplleeSSccaannnneerr))
              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 car-
              riage returns to the home position.

       CCoommpprreessssiioonn ((AApppplleeSSccaannnneerr))
              Scanner it can compress data with CCITT Group  III,
              one dimensional algorithm (fax), and the Skip White
              Line algorithm.

       MMuullttiippllee WWiinnddoowwss ((AApppplleeSSccaannnneerr))
              AppleScanner may support multiple windows. That  it
              would  be  a cool feature and a challenge for me to
              code it if you could intermix different options for
              different  windows (scan areas). This way you could
              scan a document in LineArt mode but the figures  in
              it on Gray and in a different resolution.  Unfortu-
              nately this is impossible.

       SSccaann DDiirreeccttiioonn ((OOnneeSSccaannnneerr))
              It controls the scan direction. (?)

       SSttaattuuss//RReesseett BBuuttttoonn ((OOnneeSSccaannnneerr))
              This option controls the status of  the  button  in
              OneScanner  model.  You  can  also reset the button
              status by software.




                           13 May 1998                          3





sane-apple(5)                                       sane-apple(5)


BBUUGGSS
       The bugs in a sane backend are divided in two classes.  We
       have GGUUII bugs and ssccaannnneerr ssppeecciiffiicc bugs.

       We  know we have a GUI bug when a parameter is not showing
       up itself when it should (active) or vice versa.  To  find
       out  which  parameters  are  active  accross various Apple
       modes    and     models     from     the     documentation
       ffttpp::////ffttppddeevv..iinnffoo..aappppllee..ccoomm//ddeevvwwoorrlldd//TTeecchhnniiccaall__DDooccuummeennttaattiioonn//PPeerriipphheerraallss__DDooccuummeennttaattiioonn//
       is an interesting exercise. I may  missed  some  dependan-
       cies.  For  example  for the threshold parameter the Apple
       Scanners Programming guide says nothing. I had  to  assume
       that is valid only in LineArt mode.

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

       Other  source  of  bugs are due to scsi communcation, scsi
       connects and disconnects. However the classical  bugs  are
       still  there.  So  you  may encouter buffer overruns, null
       pointers, memory corruption and SSAANNEE API violations.

       SSIIGGSSEEGGVV oonn SSlliicceeBBaarrss
              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 are from the  pre-
              view  window,  or by hand typing the numbers every-
              thing is fine. The  SIGSEGV  happens  deep  in  gtk
              library (gdk). I really cannot debug it.

       OOppttiioonnss ttoooo mmuucchh
              It is possible, especially for the ColorOneScanner,
              that the backend's options  panel  to  exceed  from
              your  screen. It happens with mine and I am running
              at 1024x768 my  X  Server.  What  can  I  say?  Try
              smaller  fonts in the X server, or virtual screens.

       WWeeiirrdd SSCCSSII bbeehhaavviioouurr..
              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



                           13 May 1998                          4





sane-apple(5)                                       sane-apple(5)


              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 toler-
              ant of ancient

              >hardware, or may be bugs in your driver or in SANE
              itself...


DDEEBBUUGG
       if  you  encounter  a  GUI  bug please set the environment
       variable SANE_DEBUG_APPLE to  255  and  rerun  the  excact
       sequence  of  keystrokes  and menu selections to reproduce
       it. Then send me a report with the log attached.

       It would be very helpfull  if  you  have  handy  an  Apple
       machine (I am not sure how Mackintos are spelled) with the
       AppleScanners driver installed and check what  option  are
       grayed out (inactive) in what modes and report back to me.

       if you want to offer some help but you don't have a  scan-
       ner  or  you  don't have the model you would like to offer
       some help, 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. Available options are APPLESCAN-
       NER, ONESCANNER, COLORONESCANNER.

       if  you  encounter a SCSI bus error or trimmed and/or dis-
       placed images please also  set  the  environment  variable
       SANE_DEBUG_SANEI_SCSI to 255 before sendme the report.


TTOODDOO
       NNoonn BBlloocckkiinngg SSuuppppoorrtt
              Make  sane-apple  a  non blocking backend. Properly
              support for ssaannee__sseett__iioo__mmooddee and ssaannee__ggeett__sseelleecctt__ffdd

       SSccaann   Make  scan possible for all models in all supported
              modes.

       MMiissssiinngg FFuunnccttiioonnaalliittyy..


SSEEEE AALLSSOO
       sane-scsi(5)




                           13 May 1998                          5





sane-apple(5)                                       sane-apple(5)


AAUUTTHHOORR
       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





















































                           13 May 1998                          6


