Re: Starting a discussion about SANE and TWAIN...

252353N@knotes.kodak.com
Mon, 16 Aug 1999 08:45:56 -0400

From: Mark McLaughlin

Hi Oliver...

I've been following the recent explosion of chat waiting
for a chance to merge back into it again... :) I'm now
replying to messages out of order (according to the ones
that are the easiest to reply to, working back to the hardest).
Hopefully this won't muddle things too badly...

TWAIN doesn't really have any layers. At it's most
abstract description TWAIN is nothing more than an
elaborate conversion API between a standard name
space to a set of arbitrary native commands for some
given device.

This is why the notion of a sane.ds file is so appealing
to me. In this model TWAIN becomes an application
using SANE, and should therefore receive all the
benefits that any application using SANE would expect
to receive.

The sane.ds model also maintains the seperate
integrity of both interfaces, which is good for backwards
compatability. The gain from this design is that TWAIN
and SANE in their native forms appear on more platforms
than they currently occupy.

A sane.ds Source to TWAIN will be dynamically loaded
by the Source Manager on behalf of the TWAIN
application. This mechanism is inheritantly local to the
machine. However, if the sane.ds has the intelligence
to discover SANE devices on the network, then we gain
remote scanning control with no change to the TWAIN
spec (and more importantly, no changes to any TWAIN
applications).

I guess that's fundimental to my current notion of the best
implementation of a TWAIN using SANE and SANE
using TWAIN system. How much can we do to enable
applications access to more image capture devices
across more platforms, and do it with the applications
changing little or no code.

-- Mark

Oliver Rauch <oliver.rauch@wolfsburg.de> on 08/14/99 07:12:33 AM

To: sane-devel@mostang.com
cc: "McLaughlin, Mark" <mlm@kodak.com> (bcc: Mark McLaughlin/252353/EKC)
Subject: Re: Starting a discussion about SANE and TWAIN...

Andreas Beck wrote:

> > -> TWAIN to SANE-FRONTEND-wrapper
>
> That is the hard part, especially, if we try to:
>
> > The wrapper and the standard has to be compatible to
> > all operating systems.
>
> On Unix I would use some form of IPC. Probably pipes. How is it handled
on
> Win and MacOS now ?
>

>
> I think pipes are probably best for starters, as they enforce a streamed
> protocol, that can definitely be used on any platform of interest, at
worst
> using a TCP/IP connection to localhost, which every platform that is in
use
> nowadays should support.
>
>

Hi Andy,

I think we should have a look how TWAIN does this on windows/mac.
Of course using pipes is the simplest way to do it, but as far as I know
there
are no pipes on Windows and Mac.

The wrapper should not do a lot. May be we can include it into the
frontends
like a sanei_* routine, so the frontend itself gets a TWAIN interface.

Hi Mark,
can you tell us a bit about how the TWAIN layers do work
(as library with direct call, as program with IPC, ...)?

Bye
Oliver

--
EMAIL: Oliver.Rauch@Wolfsburg.DE
WWW: http://www.wolfsburg.de/~rauch

--
Source code, list archive, and docs: http://www.mostang.com/sane/
To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com