


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
       _/_u_s_r_/_l_o_c_a_l_/_e_t_c_/_s_a_n_e_._d_/_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).

       _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_l_i_b_s_a_n_e_-_a_p_p_l_e_._a
              The static library implementing this backend.

       _/_u_s_r_/_l_o_c_a_l_/_l_i_b_/_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  /usr/local/etc/sane.d.   If  the
              value  of  the  environment  variable ends with the
              directory separator  character,  then  the  default
              directories are searched after the explicitly spec-
              ified directories.  For example, setting  SSAANNEE__CCOONN--
              FFIIGG__DDIIRR  to "/tmp/config:" would result in directo-
              ries "tmp/config", ".", and "/usr/local/etc/sane.d"
              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a--
       t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  exer-
       cise.  I may missed some dependancies. For example for the
       threshold parameter the Apple Scanners  Programming  guide
       says  nothing.  I had to assume that is valid only in Lin-
       eArt 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




                           13 May 1998                          4





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


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


