[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Implementing TWAIN support in Wine
From:       Jeff Tranter <oponvybl () umail ! corel ! com>
Date:       2000-08-31 15:18:34
[Download RAW message or body]

I want to give a heads up on some Wine development we are doing, in
case anyone else is looking at something similar or wants to help.

We would like to implement support for scanners. The Windows way to do
it is with TWAIN. The native Linux way to do it is with SANE. We're
looking at implementing the TWAIN API in Wine on top of SANE. A co-op
student here spent a few weeks researching this and has some prototype
code. His research identified a number of design issues:

1. TWAIN implements a graphical user interface. There are two
different approaches that could be used for implementing it:

    1. Implement the UI as WIN32 code in Wine
    2. Use an external SANE application like xscanimage

We are leaning towards the first option because it will support the
same look and feel as Wine, avoid legal issues with using SANE code,
and keep everything under our control. But this leads to the next
issue...

2. TWAIN devices typically have a custom UI for each device, provided
by the vendor. The SANE approach is to poll the device for its
capabilities and dynamically build up the UI. This means the UI only
has to be implemented once, but it is more work.

3. There are a fixed number of device capabilities specified by the
TWAIN Specification. However, device capabilities are dynamic in SANE
and there isn't a standard about the capability names. It would be
difficult to negotiate capabilities in TWAIN given that we don't know
what capabilities a SANE driver would provide. One possible solution
is to use a device configuration file to describe the mapping between
capabilities supported by a SANE driver and those specified by TWAIN.

4. We have to check the legal issues with using the TWAIN header file
and linking with the SANE library.

We have some prototype (alpha quality) code. It currently doesn't do
very much. It is in our current corelwine CVS in dlls/twain but is not
normally enabled. You're welcome to look at it.

A work term report should be coming in the next couple of weeks that
will document more of what was done and where the work can proceed
from here. We expect someone else at Corel will be assigned to
continue this work.

-- 
Jeff Tranter  Project Leader, Linux Development (Wine team), Corel
Corporation
Corel LINUX OS Second Edition is now available! Download it
from http://linux.corel.com/products/linux_os
-- 
The address in the headers is not the poster's real email address.  Do not send
private mail to the poster using your mailer's "reply" feature.  CC's of mail 
to mailing lists are OK.  Problem reports to "postmaster@umail.corel.com".  
The poster's email address is "jefft@corel.com".

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic