Commit 7a0a5c74 authored by Jeremy White's avatar Jeremy White Committed by Alexandre Julliard

twain_32: Remove obsolete README files.

parent f764ddc8
----- Old Corel README, probably outdated ----------------------------------
1. INTRODUCTION
This library (twain_32.dll) is an implementation of TWAIN API for providing image acquisition devices (scanner or digital camera) support. It uses SANE drivers as the backend and translates TWAIN API calls into SANE API calls. Unlike the twain32 library on Windows platform, it combines the Data Source Manager and Data Sources into a single library. Thus it is our responsiblity to provide a graphical user interface and capability negotiation, which usually are performed by data sources.
2. WHAT'S IMPLEMENTED
- Functions that dispatch operations specified by the operation triplets to the corresponding function.
- All the operation triplets related to the Data Source Manager are implemented. Appplication is able to enumerate data sources and open them.
- The operation triplets that deal with the UI (such as DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDS, MSG_DISABLEDS and MSG_ENABLEDSUIONLY) are partially implemented although it does not really do much.
- The operation triplets that deal with native image transfers (DG_IMAGE/DAT_IMAGENATIVEXFER/MSG_GET) are also partially implemented. Still need to figure out how to convert the image data obtained from sane to the Windows DIB format.
- Only the CAP_ICAPXFERMECH capability is implemented.
3. TO-DO
- Image native transfer is not working correctly right now. It crashed the application due to the invalid DIB created. We need to fix this.
- Implement other image transfer mode such as file transfer and memory transfer.
- Support all required TWAIN capabilities that have not been implemented currently. There are a fixed number of 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 to use a device configuration file to describe the mapping between capabilities supported by a SANE driver and those specified by TWAIN.
- Build a dynamic user interface that reflects the capabilities of different scanner devices. According to the TWAIN specification, each TWAIN driver need to provide its own user interface. However the SANE drivers do not have graphical frontends. Building a frontend for each SANE driver is a huge task. It is possible to have a dynamic frontend similar to xscanimage or xsane that works for all the devices. This is possibly the most difficult part.
- check into legal issues regarding:
- TWAIN header file
- linking to SANE (maybe should dynamically link at run time?)
- add autoconf rules for enabling based on whether sane is installed
4. FILE LISTING
twain32_main.c Functions to regconize operation tripets and dispatch
the requests to the corresponding functions.
dsm_ctrl.c Implementation of DG_CONTROL group operation triplets
destinated for source manager.
ds_ctrl.c Implementation of DG_CONTROL group operation triplets
destinated for data source.
ds_image.c Implementation of DG_IMAGE group operation triplets
destinated for data source.
ds_audio.c Implementation of DG_AUDIO group operation triplets
destinated for data source
capability.c Functions for negotiating capabilities
twain.h The original TWAIN header file
twain_i.h Header file for the internal twain functions
--
Shi Quan He
shiquan@cyberdude.com
Requirements to be a TWAIN-Compliant Source
Requirements
TWAIN-compliant Sources must support the following:
Operations
----------
DG_CONTROL / DAT_CAPABILITY / MSG_GET
DG_CONTROL / DAT_CAPABILITY / MSG_GETCURRENT
DG_CONTROL / DAT_CAPABILITY / MSG_GETDEFAULT
DG_CONTROL / DAT_CAPABILITY / MSG_RESET
DG_CONTROL / DAT_CAPABILITY / MSG_SET
DG_CONTROL / DAT_EVENT / MSG_PROCESSEVENT
DG_CONTROL / DAT_IDENTITY / MSG_GET
DG_CONTROL / DAT_IDENTITY / MSG_OPENDS
DG_CONTROL / DAT_IDENTITY / MSG_CLOSEDS
DG_CONTROL / DAT_PENDINGXFERS / MSG_ENDXFER
DG_CONTROL / DAT_PENDINGXFERS / MSG_GET
DG_CONTROL / DAT_PENDINGXFERS / MSG_RESET
DG_CONTROL / DAT_SETUPMEMXFER / MSG_GET
DG_CONTROL / DAT_STATUS / MSG_GET
DG_CONTROL / DAT_USERINTERFACE / MSG_DISABLEDS
DG_CONTROL / DAT_USERINTERFACE / MSG_ENABLEDS
DG_CONTROL / DAT_XFERGROUP / MSG_GET
DG_IMAGE / DAT_IMAGEINFO / MSG_GET
DG_IMAGE / DAT_IMAGELAYOUT / MSG_GET
DG_IMAGE / DAT_IMAGELAYOUT / MSG_GETDEFAULT
DG_IMAGE / DAT_IMAGELAYOUT / MSG_RESET
DG_IMAGE / DAT_IMAGELAYOUT / MSG_SET
DG_IMAGE / DAT_IMAGEMEMXFER / MSG_GET
DG_IMAGE / DAT_IMAGENATIVEXFER / MSG_GET
Capabilities
------------
Every Source must support all five DG_CONTROL / DAT_CAPABILITY operations on:
CAP_XFERCOUNT
Every Source must support DG_CONTROL / DAT_CAPABILITY MSG_GET on:
CAP_SUPPORTEDCAPS
CAP_UICONTROLLABLE
Sources that supply image information must support DG_CONTROL / DAT_CAPABILITY /
MSG_GET, MSG_GETCURRENT, MSG_GETDEFAULT on:
ICAP_COMPRESSION
ICAP_PLANARCHUNKY
ICAP_PHYSICALHEIGHT
ICAP_PHYSICALWIDTH
ICAP_PIXELFLAVOR
Sources that supply image information must support DG_CONTROL / DAT_CAPABILITY /
MSG_GET, MSG_GETCURRENT, MSG_GETDEFAULT, MSG_RESET and MSG_SET on:
ICAP_BITDEPTH
ICAP_BITORDER
ICAP_PIXELTYPE
ICAP_UNITS
ICAP_XFERMECH
ICAP_XRESOLUTION
ICAP_YRESOLUTION
All Sources must implement the advertised features supported by their devices. They must
make these features available to applications via the TWAIN protocol. For example, a Source
that's connected to a device that has an ADF must support DG_CONTROL /
DAT_CAPABILITY / MSG_GET, MSG_GETCURRENT, MSG_GETDEFAULT on:
CAP_FEEDERENABLED
CAP_FEEDERLOADED
and DG_CONTROL / DAT_CAPABILITY / MSG_GET, MSG_GETCURRENT,
MSG_GETDEFAULT, MSG_RESET and MSG_SET on:
CAP_AUTOFEED
If the ADF also supports ejecting and rewinding of pages then the Source should also support
DG_CONTROL / DAT_CAPABILITY / MSG_GET, MSG_GETCURRENT,
MSG_GETDEFAULT, MSG_RESET and MSG_SET on:
CAP_CLEARPAGE
CAP_REWINDPAGE
*******************************************************************************
From Application to Source Manager (Control Information)
Data Group Data Argument Type Message
DG_CONTROL DAT_IDENTITY MSG_CLOSEDS
MSG_GETDEFAULT
MSG_GETFIRST
MSG_GETNEXT
MSG_OPENDS
MSG_USERSELECT
DG_CONTROL DAT_PARENT MSG_CLOSEDSM
MSG_OPENDSM
DG_CONTROL DAT_STATUS MSG_GET
From Application to Source (Control Information)
Data Group Data Argument Type Message
DG_CONTROL DAT_CAPABILITY MSG_GET
MSG_GETCURRENT
MSG_GETDEFAULT
MSG_QUERYSUPPORT
MSG_RESET
MSG_SET
DG_CONTROL DAT_CUSTOMDSDATA MSG_GET
MSG_SET
DG_CONTROL DAT_FILESYSTEM MSG_AUTOMATICCAPTURE
DIRECTORY
MSG_CHANGEDIRECTORY
MSG_COPY
MSG_CREATEDIRECTORY
MSG_DELETE
MSG_FORMATMEDIA
MSG_GETCLOSE
MSG_GETFIRSTFILE
MSG_GETINFO
MSG_GETNEXTFILE
MSG_RENAME
DG_CONTROL DAT_EVENT MSG_PROCESSEVENT
DG_CONTROL DAT_PASSTHRU MSG_PASSTHRU
DG_CONTROL DAT_PENDINGXFERS MSG_ENDXFER
MSG_GET
MSG_RESET
MSG_STOPFEEDER
DG_CONTROL DAT_SETUPFILEXFER MSG_GET
MSG_GETDEFAULT
MSG_RESET
MSG_SET
DG_CONTROL DAT_SETUPFILEXFER2 MSG_GET
MSG_GETDEFAULT
MSG_RESET
MSG_SET
DG_CONTROL DAT_SETUPMEMXFER MSG_GET
DG_CONTROL DAT_STATUS MSG_GET
DG_CONTROL DAT_USERINTERFACE MSG_DISABLEDS
MSG_ENABLEDS
MSG_ENABLEDSUIONLY
DG_CONTROL DAT_XFERGROUP MSG_GET
MSG_SET
From Application to Source (Image Information)
Data Group Data Argument Type Message
DG_IMAGE DAT_CIECOLOR MSG_GET
DG_IMAGE DAT_EXTIMAGEINFO MSG_GET
DG_IMAGE DAT_GRAYRESPONSE MSG_RESET
MSG_SET
DG_IMAGE DAT_IMAGEFILEXFER MSG_GET
DG_IMAGE DAT_IMAGEINFO MSG_GET
DG_IMAGE DAT_IMAGELAYOUT MSG_GET
MSG_GETDEFAULT
MSG_RESET
MSG_SET
DG_IMAGE DAT_IMAGEMEMXFER MSG_GET
DG_IMAGE DAT_IMAGENATIVEXFER MSG_GET
DG_IMAGE DAT_JPEGCOMPRESSION MSG_GET
MSG_GETDEFAULT
MSG_RESET
MSG_SET
DG_IMAGE DAT_PALETTE8 MSG_GET
MSG_GETDEFAULT
MSG_RESET
MSG_SET
DG_IMAGE DAT_RGBRESPONSE MSG_RESET
MSG_SET
From Application to Source (Audio Information)
Data Group Data Argument Type Message
DG_AUDIO DAT_AUDIOFILEXFER MSG_GET
DG_AUDIO DAT_AUDIOINFO MSG_GET
DG_AUDIO DAT_AUDIONATIVEXFER MSG_GET
From Source Manager to Source (Control Information)
Data Group Data Argument Type Message
DG_CONTROL DAT_IDENTITY MSG_CLOSEDS
MSG_GET
MSG_OPENDS
From Source to Application (Control Information via the Source Manager)
(Used by Windows Sources only)
Data Group Data Argument Type Message
DG_CONTROL DAT_NULL MSG_CLOSEDSOK
MSG_CLOSEDSREQ
MSG_DEVICEEVENT
MSG_XFERREADY
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment