On Tue, Nov 4, 2008 at 4:04 PM, Julien BLACHE <jb at jblache.org> wrote: > 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. >
damnit julien- it is called sane_status!, you dont get to declare that 'its not really a status, so lets not put statuses in it' it is just like SANE_STATUS_BUSY, where a backend might very well choose to retry after a few seconds. allan -- "The truth is an offense, but not a sin"