#

# sane-dll.5

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

## NAME

           sane-dll - SANE dynamic backend loader

## DESCRIPTION

           The  sane-dll library implements a SANE (Scanner Access Now Easy) back-
           end that provides access to an arbitrary number of other SANE backends.
           These  backends  may  either  be  pre-loaded  at  the time the sane-dll
           library is built or, on systems that support dynamic loading of  shared
           libraries,  the backends may be loaded at runtime.  In the latter case,
           adding support for a new backend simply involves installing  the  rele-
           vant library in /usr/local/lib/sane and adding an entry to the dll.conf
           configuration file.  In other words, no applications need to  be  modi-
           fied or recompiled to add support for new devices.

## DEVICE NAMES

           This backend expects device names of the form:

                  backend:device

           Where  backend is the name of the backend and device is the name of the
           device in this backend that should be addressed.  If  the  device  name
           does  not contain a colon (:), then the entire string is treated as the
           device string for the default backend.   The  default  backend  is  the
           backend  listed last in the configuration file (see below) or the first
           pre-loaded backend (if any).

## CONFIGURATION

           The contents of the dll.conf file is a list of backend names  that  may
           be  loaded  dynamically  upon  demand.   Empty  lines are ignored, also
           everything after a hash mark (#). A sample configuration file is  shown
           below:

                  net
                  # this is a comment
                  pnm
                  mustek

           Note  that  backends that were pre-loaded when building this library do
           not have to be listed in this configuration file.  That is, if a  back-
           end was preloaded, then that backend will always be present, regardless
           of whether it's listed in the configuration file or not.

           The list of preloaded backends is determined by macro PRELOADABLE_BACK-
           ENDS  in file backend/Makefile.in of the SANE source code distribution.
           After changing the value of this macro, it is necessary to reconfigure,
           rebuild, and reinstall SANE for the change to take effect.

           Aliases  are  defined  in  the config file dll.aliases.  It can contain
           entries of the form

                  alias SomeName SaneDeviceName
                  alias "Some Name" SaneDeviceName
                  hide SaneDeviceName

           For example:

                  alias Epson net:somehost:epson:/dev/sgX
                  alias "Siemens ST400" st400:/dev/sgY
                  hide net:somehost:pnm:0
                  hide net:somehost:pnm:1
                  alias "Read from file" pnm:0
                  hide pnm:1

           Aliased device names are automatically hidden.

           The idea is that users don't have to deal with complicated device names
           (especially  for networked devices), and to hide other exported devices
           which might confuse them. Note  that  a  hidden  device  can  still  be
           accessed  if  the  device  name is known, it just doesn't appear on the
           list.

## FILES

           /usr/local/etc/sane.d/dll.aliases
                  The list of aliased or hidden backends.

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

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

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

## ENVIRONMENT

           SANE_CONFIG_DIR
                  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 config-
                  uration 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 specified directo-
                  ries.   For  example,  setting SANE_CONFIG_DIR to "/tmp/config:"
                  would   result   in   directories   "tmp/config",    ".",    and
                  "/usr/local/etc/sane.d" being searched (in this order).

           SANE_DEBUG_DLL
                  If  the  library  was  compiled with debug support enabled, this
                  environment variable controls the debug level for this  backend.
                  E.g.,  a  value  of 128 requests all debug output to be printed.
                  Smaller levels reduce verbosity.

                  Value  Description
                  0      print severe errors only
                  1      print normal errors and important messages
                  2      print normal messages
                  3      print debugging messages
                  4      print everything

                  Example:
                  export SANE_DEBUG_DLL=3

## SEE ALSO

           sane(7), scanimage(1), sane-"backendname"(5)

## AUTHOR

           David Mosberger

    sane-backends 1.0.12-cvs          4 Dec 2002                       sane-dll(5)