On 3/2/20 9:49 PM, Louis Lagendijk wrote:

I recall that there are multi-functionals that allow EITHER printer or
scanner access, but not both at the same time.
Early detection of devices and their capabilities would be ok, but
initialization would anyhow have to wait untill the device is to be
used. The device would need to be released as soon as scanning is done.
So the time gains would be limited.

Initialization doesn't necessarily mean "open the USB port and keep it locked forever". Initialization means "prepare to be ready to start scanning with minimap possible delay". It's exact semantics depend on a particular hardware. For example, it may mean "discover compatible devices and obtain their characteristics".

What is different compared to the net backend?

Different goals. Though technically it can be within the same daemon.

Currently, there is no such a piece of software, as "SANE". There are SANE backends and SANE frontends, but there is no "SANE" in between.

What I propose, is to insert a process between frontends and backends, without need to break API compatibility. It will simplify many things. Printing architecture has a similar design: applications don't communicate with printers directly, but rather communicate with print server, which drives hardware.

Such a daemon would mean additional resources would be required
(memory) and an additional attack surface.

Currently the ability to scan from USB scanner implies ability to directly communicate with arbitrary USB devices. This is giant attack surface.

How do you deal with hardware attached/ removed after the initial scan?

I hope, PnP support will be eventually added to SANE API.

This can of course all be solved, but I am not so sure of the benefits.
I like the Sane , but be aware:
https://www.explainxkcd.com/wiki/images/6/60/standards.png

Living standards are evolving. I'm not speaking about replacement SANE with some brand new incompatible standard, I'm about a way to evolve.

Currently it is not even possible to add a function to API without need to rework all the existent backends.

--

        Wishes, Alexander Pevzner ([email protected])

Reply via email to