[sane-devel] HAL and scanners.

m. allan noah kitno455 at gmail.com
Tue Mar 18 15:03:27 UTC 2008


On Tue, Mar 18, 2008 at 10:24 AM, Étienne Bersac <bersace03 at gmail.com> wrote:
> Hi,
>
>  In january 2007, happened a very good discussion this list about SANE
>  and HAL wich led to shipping a basic fdi.
>  http://lists.alioth.debian.org/pipermail/sane-devel/2007-January/018343.html.
>
>  Currently, sane-desc generate a very basic fdi which only badge device
>  as scanner and add a property "scanner.access_method" hardcoded to
>  "proprietary", the latter is pretty useless ;)
>
>  Please keep in mind that supporting HAL does NOT mean depending on HAL
>  nor breaking API.
>
>
>  Abel Deuring did a very nice job on sane-fdi, a parser for .desc file
>  that provide much useful information right in the fdi. Sadly, the
>  discussion stopped without a lot of success. I updated the sane-fdi
>  script from Abel following the advice from Abel and Johannes Meixner.
>
>  A device rule looks like :
>
>   <device>
>     <match key="usb.vendor_id" int="0x04a9">
>       <match key="usb.product_id" int="0x2207">
>         <append key="info.capabilities" type="strlist">scanner</append>
>         <append key="scanner.api" type="strlist">sane</append>
>         <append key="scanner.sane.model" type="strlist">Canon CanoScan N1220U</append>
>         <append key="scanner.sane.backends" type="strlist">plustek</append>
>         <append key="scanner.sane.backends.plustek.supportstatus" type="strlist">complete</append>
>         <append key="scanner.sane.backends.plustek.comment" type="strlist">Identical to UMAX 3400</append>
>       </match>
>     </match>
>   </device>
>
>  The updated sane-fdi script is available at
>  http://bersace03.free.fr/pub/Development/Scanner/sane-fdi .

i've not looked at this code yet, but the output above seems reasonable.

>  There is still one thing needed to get full HAL support by SANE, build
>  the SANE device name from those infos.
>
>  One goal would be to allow frontend to provide an entry for each backend
>  allowing user to select the backend to use. Using e.g. "Cannon CanoScan
>  N1220U (complete support with plustek driver)" along "Canon CanoScan
>  N1220U (complete support with umax driver)" will allow user to easily
>  select driver.
>
>  According to discussion about HAL and SANE last year, seems that the
>  "udi:<backend>:<udi>" would be the solution for SANE to support HAL
>  (without depending on it). See
>  http://lists.alioth.debian.org/pipermail/sane-devel/2007-January/018353.html for details.

ok, so lets assume that we have a new 'hal' meta backend to do some
'magic'. when the dll backend is asked to open a device like
'hal:<udi>:<backend>'. it will load the hal backend, and ask it to
open '<udi>:<backend>'. the hal backend will load '<backend>', and ask
it for a list of scanners it can find, and somehow pick the one that
goes with the '<udi>'.

i am worried that the last step means that each backend will have to
know how to translate udi's.

allan
-- 
"The truth is an offense, but not a sin"



More information about the sane-devel mailing list