[sane-devel] New magicolor backend for inclusion in git

m. allan noah kitno455 at gmail.com
Sat Jan 15 12:24:26 UTC 2011

On Fri, Jan 14, 2011 at 4:32 PM, Reinhold Kainhofer
<reinhold at kainhofer.com> wrote:
> Am Freitag, 7. Januar 2011, um 02:34:20 schrieb m. allan noah:
>> I took a quick look at the code, and only see a few minor issues at
>> first glance.
>> 1. MC_AutoDetectionTimeout is not configurable at runtime
>> 2. the code only calls sanei_usb_init during sane_init. This prevents
>> long-running programs like button press daemons from finding
>> hotplugged scanners. This was discussed recently on the list.
>> 3. Some of your Option Groups could get their names from saneopts.h
>> Other than those things, it looks fine to me.
> Okay, here are updated patches (amended, so the whole backend is in one
> patch):
> http://www.fam.tuwien.ac.at/~reinhold/sane/magicolor_backend_patches/
> -) Patches 0001 and 0002 are the USB patches you already reviewed (with
> copyright notices added as you wanted), so they are ready to be applied.
> -) Patch 0003 fixes a compiler warning that macros like htobe16 (byteorder.h)
> etc. are already defined. In that case, don't overwrite the existing
> definitions. (Chris Bagwell okay'ed it)
> -) Patch 0004 is the actual backend
> -) Patch 0005 is an alternative to running autoreconf (No manual changes done
> by me!). This patch should probably not be applied to git master, but someone
> (Chris Bagwell already volunteered) should run autoreconf with the recommended
> auto(conf|make|...) versions for sane installed.
> Changes to patch 0003 are in detail (compared to the last version you looked
> at):
> -) All three timeouts (SNMP detection, scan data read, other scanner
> responses) are configurable in the magicolor.conf file
> -) Cleaned up the options, reused pre-defined values as much as possible
> -) Call sanei_usb_init also in get_devices
> -) get_devices does not erase the list of scanners any more, but keeps still-
> existing scanners untouched, just removes removed and adds new scanners.

Thank you very much for making those updates. I'll commit the code
this weekend, and take a swing at all the autofoo. I'll ask Chris for
help if required.

> There is, however, one issue that needs to be discussed in principle:
> How shall network auto-detection work in a sane way, once several backends
> support auto-detecting network-connected scanners? AFAICS, all backends are
> loaded sequentially, and the network auto-detection of each backend needs to
> wait for a certain time before timing out (even if one response was received,
> you have to wait the whole timeout, as there might be another device on the
> network).
> So, if 10 backends support auto-detection, and each uses a 2 second timeout,
> sane would have a startup time of >20 seconds... Clearly, that's not
> desirable.
> On Windows, that's not an issue, as the user only installs drivers for the
> scanners he really owns. However, sane provides all backends by default and
> runs each backend's initialization (get_devices), so here it is a problem.

Yes- the SUSE way is to comment out backends in dll.conf.
Unfortunately, we dont have a generic way to do that.

You should register for an alioth account, and request to join the
project, and I will ad you.

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

More information about the sane-devel mailing list