sane-project-website/old-archive/2000-07/0264.html

219 wiersze
7.7 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>sane-devel: quick note from the TWAIN/SANE meeting at OLS</TITLE>
<META NAME="Author" CONTENT="David Mosberger-Tang (David.Mosberger@acm.org)">
<META NAME="Subject" CONTENT="quick note from the TWAIN/SANE meeting at OLS">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>quick note from the TWAIN/SANE meeting at OLS</H1>
<!-- received="Mon Jul 31 22:33:17 2000" -->
<!-- isoreceived="20000801053317" -->
<!-- sent="Mon, 31 Jul 2000 22:32:50 -0700" -->
<!-- isosent="20000801053250" -->
<!-- name="David Mosberger-Tang" -->
<!-- email="David.Mosberger@acm.org" -->
<!-- subject="quick note from the TWAIN/SANE meeting at OLS" -->
<!-- id="200008010532.WAA13489@panda.mostang.com" -->
<STRONG>From:</STRONG> David Mosberger-Tang (<A HREF="mailto:David.Mosberger@acm.org?Subject=Re:%20quick%20note%20from%20the%20TWAIN/SANE%20meeting%20at%20OLS&In-Reply-To=&lt;200008010532.WAA13489@panda.mostang.com&gt;"><EM>David.Mosberger@acm.org</EM></A>)<BR>
<STRONG>Date:</STRONG> Mon Jul 31 2000 - 22:32:50 PDT
<P>
<!-- next="start" -->
<UL>
<LI><STRONG>Previous message:</STRONG> <A HREF="0263.html">Chris Pinkham: "Re: TODO for 1.0.3"</A>
<!-- nextthread="start" -->
<!-- reply="end" -->
<LI><STRONG>Messages sorted by:</STRONG>
<A HREF="date.html#264">[ date ]</A>
<A HREF="index.html#264">[ thread ]</A>
<A HREF="subject.html#264">[ subject ]</A>
<A HREF="author.html#264">[ author ]</A>
</UL>
<HR NOSHADE><P>
<!-- body="start" -->
<P>
Hello all,
<BR>
<P>My trip report from the TWAIN/SANE meeting is long overdue, so I won't
<BR>
procrastinate any longer...
<BR>
<P>As you may know Mark McLaughlin and Jon Harju (both members of the
<BR>
TWAIN board) met with me on July 21 in Ottawa to discuss the
<BR>
possibility of a SANE based TWAIN interface for Unix. The meeting was
<BR>
very friendly and we spent the first two hours or so explaining each
<BR>
other some of the more subtle aspects and ideas of the respective API.
<BR>
The interesting point that I got out of this meeting is that TWAIN and
<BR>
SANE, while providing similar functionality, focus on opposite ends:
<BR>
TWAIN makes it very easy for application developers to make use of a
<BR>
scanner whereas SANE makes it very easy to write a device driver for a
<BR>
scanner. Given this difference in focus, it's actually not
<BR>
unreasonable to want to put TWAIN on top of SANE. Even if
<BR>
TWAIN-on-SANE may not be preferrable for developers of new
<BR>
applications, it would definitely ease portability issues as
<BR>
independent software vendors such as Adobe could port some of their
<BR>
applications to Linux much faster if there was a TWAIN interface on
<BR>
Linux that worked similar to how TWAIN works on Windows.
<BR>
<P>Putting TWAIN on top of SANE is not easy, as there are some
<BR>
fundamental issues: Linux (and certainly not UNIX, OS/2, and all the
<BR>
other OSes SANE supports) has no standard user-interface, yet TWAIN
<BR>
applications do expect that the TWAIN driver (&quot;TWAIN source&quot;) can
<BR>
handle the device dialog itself. One suggestion is to use HTML to
<BR>
describe the user-interface. Personally, I don't think that's a very
<BR>
attractive solution. After all, the main reason to embed the scanner
<BR>
interface into an application is to make it integrate seamless. Now,
<BR>
if the application happens to use, say, GTK and the scanner user
<BR>
interface is presented via Netscape, then that's certainly not
<BR>
seamless to the user (and it could be outright confusing). I
<BR>
personally think we won't be able to find magic here---there will need
<BR>
to be one GUI frontend for each major toolkit in use (Motif, GTK, Qt,
<BR>
Win32 come to mind). If TWAIN-on-SANE is done properly, it should be
<BR>
possible to &quot;plug in&quot; a different GUI frontend relatively easily
<BR>
(perhaps not on the fly, but at least through simple recompilation).
<BR>
<P>There are some implications of putting TWAIN on SANE, which will
<BR>
eventually require some extensions to SANE (though they shouldn't be
<BR>
necessary for a prototype). I don't have a problem with these
<BR>
extensions, because they're all things we were planning to address for
<BR>
v2 of the standard anyhow:
<BR>
<P>&nbsp;o add many more well-known options (though well-known, most of them
<BR>
&nbsp;&nbsp;&nbsp;would be optional)
<BR>
<P>&nbsp;o add support for other image types (jpg for example)
<BR>
<P>&nbsp;o colorspace support (I don't know what this would entail exactly)
<BR>
<P>&nbsp;o add support for callbacks (to support things like the &quot;scan&quot; button
<BR>
&nbsp;&nbsp;&nbsp;found on many scanners)
<BR>
<P>Mark and Jon offered to start working on a prototype for
<BR>
TWAIN-on-SANE. I offered them help with constructing a GUI builder
<BR>
based on our existing GTK frontends (probably xsane).
<BR>
<P>Clearly, one area of weakness for SANE is that today there is no easy
<BR>
way to seamlessly embed SANE-based scanner support into an
<BR>
application. Perhaps a good way to fix this to convert one of the
<BR>
existing graphical frontends into a embeddable component. Given that
<BR>
the frontends are based on GTK+ already, I think the Bonobo component
<BR>
model would be a natural fit. This would allow us to re-use the xsane
<BR>
interface in many applications and without much effort.
<BR>
<P>Also, Mark and Jon said that the scanner vendors really like to be
<BR>
able to customize the look of the scanner GUI. While this is at odds
<BR>
with providing a unified user experience, I do think SANE could
<BR>
provide a large amount of customization without completely sacrificing
<BR>
the uniform interface. For starters, it would be nice to be able to
<BR>
associate a custom-logo for each device (and/or vendor) (I thought
<BR>
xsane already could do this, though it doesn't show with my HP
<BR>
scanner). Slightly fancier would be to have a simple language that
<BR>
would control how and where each SANE option gets laid out in the
<BR>
device dialog. Of course, a driver vendor could also feel free to
<BR>
implement a GUI from scratch if they want full customization, but that
<BR>
would be a fair amount of work. I think some level of scriptability
<BR>
would provide a very good tradeoff between custom look and a uniform
<BR>
user experience.
<BR>
<P>So, in summary I'd say that we should support TWAIN-on-SANE as a means
<BR>
to attract ISVs to SANE and perhaps to get more support/endorsement
<BR>
from scanner manufacturers. At the same time, there are a few things
<BR>
we can learn from TWAIN and use that to make SANE a better, more
<BR>
comprehensive and easier to use standard.
<BR>
<P>Cheers,
<BR>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--david
<BR>
<P><PRE>
--
Source code, list archive, and docs: <A HREF="http://www.mostang.com/sane/">http://www.mostang.com/sane/</A>
To unsubscribe: echo unsubscribe sane-devel | mail <A HREF="mailto:majordomo@mostang.com?Subject=Re:%20quick%20note%20from%20the%20TWAIN/SANE%20meeting%20at%20OLS&In-Reply-To=&lt;200008010532.WAA13489@panda.mostang.com&gt;">majordomo@mostang.com</A>
</PRE>
<P><!-- body="end" -->
<HR NOSHADE>
<UL>
<!-- next="start" -->
<LI><STRONG>Previous message:</STRONG> <A HREF="0263.html">Chris Pinkham: "Re: TODO for 1.0.3"</A>
<!-- nextthread="start" -->
<!-- reply="end" -->
<LI><STRONG>Messages sorted by:</STRONG>
<A HREF="date.html#264">[ date ]</A>
<A HREF="index.html#264">[ thread ]</A>
<A HREF="subject.html#264">[ subject ]</A>
<A HREF="author.html#264">[ author ]</A>
</UL>
<!-- trailer="footer" -->
<HR NOSHADE>
<P>
<SMALL>
<EM>
This archive was generated by <A HREF="http://www.hypermail.org/">hypermail 2b29</A>
: <EM>Mon Jul 31 2000 - 22:37:24 PDT</EM>
</EM>
</SMALL>
</BODY>
</HTML>