stef <stef.dev at free.fr> wrote: Hi,
> I agree with the design you are explaining. But the trouble with such > approach is that adding new function to the API had been rejected so that > many unmaintained (or untestable due to lack of hardware) backends can be That's actually not an issue. We can add a stub in those backends, and we can put logic in the dll backend to use a stub if the backend being loaded doesn't have sane_status() (think binary-only backends). That stub would just tell "not supported" and we're done with it. As I said, if we make sane_status() optional and retain the current behaviour for sane_start() for all backends (aka just sit there until the scanner is done warming up), we're in the clear. > left untouched. Also there haven't been a new SANE standards for years (SANE > 2 last draft will be 6 years old in December) , and presumably, there will be Yes. We have a problem here, as in we haven't found a way to go forward yet with evolutions to the standard. It's a big problem. > never. Adding one more status is then the only way to provide user a feeback > when the scanner is doing nothing (from user's point of view) during 30s. The problem is that SANE_Status is not a *status*, it's actually an *error code* and you're abusing it with the "warming up" thing. From there on, everything breaks. It is not the proper interface. > For me this 'warming thing' isn't a pet feature, it is a clear sign of > the > importance we give to the people using our backends. I never said it is a pet feature. As the owner and user of a pair of Epson scanners that can sit there for 30+ seconds during warm up, I'd very much like to see this implemented, but PLEASE let's do it properly. Breaking interfaces and bending the standard to make things fit is not going to help going forward. JB. -- Julien BLACHE <http://www.jblache.org> <jb at jblache.org> GPG KeyID 0xF5D65169