Hi,
This series of patches splits up the sane specific parts of twain_32 into the controller part (twain_32) and sane specific driver part (sane.ds). It also implements a working gphoto driver (gphoto.ds).
TWAIN itself has a concept of:
- DSM / Data Source Manager ... A controller that manages the datasources and their lifetimes.
This was and is still found in twain_32.dll
- DS / Data Source(s) ... A multitude of datasources, usually per camera / scanner drivers found in %windir%/TWAIN_32/ and subdirs.
Up to now this was also in twain_32.dll, but this series splits it out.
Drivers: - sane.ds: The old twain_32.dll sane code split off from twain_32.dll.
- gphoto.ds: New gphoto importer code, originating from the old sane.ds as example.
Autodetection: - Autodetection has been moved from twain_32.dll to the drivers.
-> twain_32.dll itself is no longer dependend on libsane and actually has only minimal knowledge of sane and gphoto2 (the driver names ;)
- Detection of multiple devices is in the DG_CONTROL/DAT_IDENTITY/MSG_GET calls of sane.ds and gphoto2.ds. A little hidden channel detects multiple scanners / cameras by calling above function multiple times.
The code is ready for WINE inclusion (tm).
Ciao, Marcus