[sane-devel] Sane API

Alexander Pevzner pzz at apevzner.com
Tue Oct 20 09:41:03 BST 2020


On 10/20/20 11:18 AM, Michael Starr wrote:
> Guys guys, just calm down. This is for Linux, remember?

Excuse me if I sound rude, I don't feel that and trying to be polite. 
English is not my native language so I can miss some nuances. Actually, 
I'm just trying to summarize things.

> Mike
> 
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for 
> Windows 10
> 
> *From: *Alexander Pevzner <mailto:pzz at apevzner.com>
> *Sent: *Tuesday, October 20, 2020 1:12 AM
> *To: *sane-devel at alioth-lists.debian.net 
> <mailto:sane-devel at alioth-lists.debian.net>
> *Subject: *Re: [sane-devel] Sane API
> 
> Hi Thierry,
> 
> On 10/20/20 9:50 AM, Thierry HUCHARD wrote:
> 
>  > I went to quickly look at sane-2.0: - I agree with @paddy-hack,
> 
>  > making new with old is not necessarily a good thing! - I found that
> 
>  > the difference was in the options. The operations are identical. It
> 
>  > will be easy for a developer to create a gateway from sane-1.0 to
> 
>  > sane-2.0. - The options are hardware dependent and there, some
> 
>  > options are emulatable, others are not. - If sane-2.0 is just the
> 
>  > formatting of the options, why not do it in sane-1.0?
> 
> Current API misses some essential things, that cannot be implemented in
> 
> terms of options:
> 
> - PnP notifications (scanner was connected/disconnected some time after
> 
> driver was initialized). This limitation can be worked around by
> 
> continuous poll, but this poll drains a battery a generates network/USB
> 
> traffic, so it is better to avoid.
> 
> - If some scanner is identified by multiple backends, it would be nice
> 
> to let user app to automatically choose one of the list. For this
> 
> purpose, it would be nice to expose some information regarding scanner
> 
> location, before scanner is opened (say, "USB bus X device Y, or NET
> 
> addr aaa.bbb.ccc.ddd). It requires adding extra fields to the
> 
> SANE_Device structure, which makes it incompatible with SANE 1.0
> 
> For the following things we just don't have appropriate SANE_Value_Type:
> 
> - Scanner resolution if a form of X*Y pair. This is important, to
> 
> support "asymmetrical" resolutions (300*600, for example)
> 
> For the following options we don't have enough discipline:
> 
> - SANE_NAME_SCAN_SOURCE. There is no common names for ADF simplex/ADF
> 
> duplex, ADF front/ADF back
> 
> sane_airscan_get_parameters() must be accurate immediately after return
> 
> from sane_start(). It is not always possible, unless sane_start() has to
> 
> wait until image is available (compare sane-escl and sane-airscan approach).
> 
> sane_airscan_get_select_fd() defined with serious mistake: it requires
> 
> backend to close select_fd immediately after completion or cancellation
> 
> of the scan job. In multi-threaded program closed file descriptor could
> 
> be immediately reused for some different purpose by another thread.
> 
> There is no possibility to request image in the device-specific "raw"
> 
> format. I.e., if I want PDF and device can return PDF, image still will
> 
> be repacked PDF->sane format->PDF.
> 
> My list is most likely very incomplete.
> 
> -- 
> 
>                Wishes, Alexander Pevzner (pzz at apevzner.com)
> 


-- 

	Wishes, Alexander Pevzner (pzz at apevzner.com)



More information about the sane-devel mailing list