m. allan noah
kitno455 at gmail.com
Wed Jul 16 00:30:27 UTC 2008
On 7/15/08, Kåre Särs <kare.sars at kolumbus.fi> wrote:
> Hi again,
> On Wednesdayen den 16 July 2008 02:02:36 Kåre Särs wrote:
> > Hi,
> > I'm a bit confused with the use of sane_cancel(). I noticed today that the
> > pixma backend requires a sane_cancel after each scan (libksane did not work
> > correctly with the pixma backend). I have read here on the list:
> > "5. be aware that a proper front-end in batch mode will call
> > sane_start() at the beginning of each page, but only call sane_cancel
> > after the last page returns SANE_STATUS_NO_DOCS."
> > Why does the frontend have to call sane_cancel() at the end of a scan?
> > Is this a bug in the pixma backend (libksane works OK with at least the
> > test, epson, epkowa and v4l backends), or is the pixma backend just more
> > strict than the backends I have tested with before? (The problem was that
> > the backend did not accept writes to any parameters after a scan without a
> > cancel at the end.)
> > I remember reading something about clarifying the use of sane_cancel() in
> > the standard for 1.1, but I can't remember what it was about :)
> Reading the standard again I see in 4.4 "Note that sane_cancel() must be
> called even if the last read operation returned SANE_STATUS_EOF."
> But I'm still wondering why :)
sane_cancel should be called at the end of the batch, but not between
pages, otherwise backends which buffer the backside of a duplex read
will drop the image. this is an unfortunate historical accident,
because sane_cancel serving a dual purpose worked fine for flatbed
scanners that had no concept of a 'batch'.
if pixma backend requires a call to sane_cancel after each page of a
batch scan, it is broken, and wont work with scanimage -b
"The truth is an offense, but not a sin"
More information about the sane-devel