summaryrefslogtreecommitdiff
path: root/doc/descriptions.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/descriptions.txt')
-rw-r--r--doc/descriptions.txt130
1 files changed, 130 insertions, 0 deletions
diff --git a/doc/descriptions.txt b/doc/descriptions.txt
new file mode 100644
index 0000000..d4cab94
--- /dev/null
+++ b/doc/descriptions.txt
@@ -0,0 +1,130 @@
+SANE Backend specification files
+--------------------------------
+
+The specification files (e.g. epson.desc) describe the capabilities of the
+backends. They provide information about the backend itself (e.g., name and
+version) and about the supported devices (e.g., manufacturer and product
+names). One file per backend should be used. Descriptions for backends
+included in the SANE distribution are located in
+`sane-backends/doc/descriptions/' while descriptions of external backends
+should be placed in `sane-backends/doc/descriptions-external/'.
+
+There is a special file `sane-backends/doc/descriptions/unsupported.desc' that
+doesn't belong to a backend but lists all (known) devices not supported by
+SANE. It may contain additional information about the device or links to
+non-SANE based programs.
+
+The specification files can be used to generate lists of backends and/or
+supported devices, hotplug/udev device lists, databases for search engines, and
+similar sources of information. Currently the creation of ASCII output and HTML
+lists is supported by `tools/sane-desc.c'. The generation of the HTML pages can
+be started by `make html-pages' in the doc/ directory.
+
+The file contents is basically emacs-lisp --- so ";" indicates comment to end
+of line. Empty lines are ignored.
+
+All syntactic elements are keyword tokens, followed by a string or keyword
+argument, as specified. All keyword tokens but ":backend" are optional.
+
+
+Backend-specific keyword tokens
+-------------------------------
+
+The keyword `:backend' must be specified exactly once. It must be the first
+keyword in each specification file. It is followed by the name of the backend.
+Example: `:backend "epson"'
+
+The following backend-specific keyword tokens are optional. If they are used,
+they shouldn't be used more than once per file.
+
+`:version' has one string argument containing the backend's version
+number. The version should match the version used in the backend source code.
+Example: `:version: "12.3.5"'. If the backend isn't maintained, the version
+should be `unmaintained' or contain this tag together with the version number.
+
+`:new' indicates that the backend is brand-new in the latest SANE release if
+the keyword argument is `:yes'. Otherwise, `:no' should be used or `:new'
+should be omitted at all.
+Example: `:new :yes'
+
+The `:manpage' keyword token has one string argument that names the manual
+page for the backend.
+Example: `:manpage "sane-epson"'
+
+
+Device-specific keyword tokens
+------------------------------
+
+The keyword `:devicetype' starts a list of devices supported by the backend.
+It has one keyword argument. The following types are possible: `:scanner',
+`:stillcam' (still camera), `:vidcam' (video camera), `:meta' (meta backend
+like dll), `:api' (API like PINT). `:devicetype' can be used more than
+once. Each instance starts a new list of devices.
+Example: `:devicetype :scanner'
+
+`:mfg' has one string argument that defines the name of the manufacturer of
+the following devices. This keyword should be only used for hardware
+devicetypes (scanner, stillcam, vidcam). To avoid different spellings, the
+manufacturer list of the SANE standard should be used. `:mfg' can be used more
+than once.
+Example: `:mfg "Epson"'.
+
+The keyword token `:model' is used to specify the name of a hardware device in
+its string token. It must be preceded by a `:mfg' keyword. `:model' can be
+used more than once.
+Example: `:model "Perfection 636S"'
+
+`:interface' defines how the device is connected to the computer. Its string
+argument can be one or more of "SCSI", "USB", "Parport", "Serial port",
+"IEEE-1394", "JetDirect", "Ethernet", or "Proprietary". If neither one fits,
+please contact the SANE mailing list for advice. The "Parport" entries can be
+amended by "(SPP)", "(ECP)" and/or "(EPP)". The `:interface' keyword refers to
+the previous `:model', is optional and should be used only once per model.
+Example: `:interface "SCSI USB IEEE-1394"'
+
+`:usbid' defines the USB vendor and product ids of the device. It has two
+arguments which must be lower case hexadecimal (4 digits). The first one is the
+USB vendor id, the second one the USB product id. The keyword refers to the
+previous `:model', is optional, and applicable for devices with :interface "USB"
+only, and should be used only once per model. The special parameter "ignore" can
+be used if no vendor or product ids are given intentionally, e.g. for a group of
+scanners.
+Example: `:usbid "0x1234" "0x4321"'
+
+The keyword `:status' is an indication of the level of support for the model.
+It's followed by one of the following keyword arguments: `:unsupported',
+`:untested', `:minimal', `:basic', `:good', or `:complete'. The `:status'
+keyword refers to the previous `:model', is optional and should be used only
+once per model.
+`:unsupported' means the device is not supported at least by this backend. The
+keyword should only be used in the file `unsupported.desc', or to make clear
+that a specific scanner is not supported by a backend. `:untested' means the
+device may be supported but couldn't be tested. `:minimal' means that the
+device is detected and scans at least in one mode. But the quality is bad or
+important features won't work. `:basic' means it works at least in the most
+important modes but quality is not perfect. `:good' means the device is usable
+for day-to-day work. Some rather exotic features may be missing. `:complete'
+means the backends supports everything the device can do. Example: `:status
+:untested'
+
+The `:desc' keyword token is used for non-hardware devices (API and meta). Its
+string argument describes the meta backend or API. It should be used only once
+per device type.
+Example: `:desc "Scanners with the machine-independent PINT interface"
+
+
+Multi-level keyword tokens
+--------------------------
+
+The following keyword tokens can be used after `:backend', `:mfg', `:model',
+and `:desc'.
+
+One or more `:url' keyword tokens can be used to point to more information
+about the entry the keyword refers to. The string argument contains a URL to
+e.g. a manufacturer's or backend's homepage. The most important URL should be
+listed first.
+Example: `:url "http://www.epson.com/"'
+
+`:comment' is used to add more information to one of the entries. The string
+argument can e.g. contain comments on the level of support for a model.
+Example: `:comment "US version of GT-5000"'