On Wed, Jan 14, 2009 at 4:25 PM, m. allan noah <kitno455 at gmail.com> wrote: > 2009/1/13 Michael Cronenworth <mike at cchtml.com>: >> Hello, >> >> I've had success in building sane with MinGW, MSYS, and libusb-win32-0.12. >> During my initial work I was unable to find much of anything about such a >> feat as most people settled for Cygwin. > > Excellent news! > >> Some caveats: >> 1. I ripped out all backends except for "fujitsu" as this is the scanner I >> have. The "fujitsu" code required no modifications to compile. > > Did you try any others, or start with only fujitsu? > >> 2. Signals, threading, and scsi are also obviously not available. I put >> #ifdef 32 or #ifndef WIN32 around the problem areas. > > sane-fujitsu does not use signals or threading, so you made a good > choice of backend :) > >> 3. I changed sleep() calls to usleep() calls or used the Windows method of >> sleep. > > I only see usleep calls in sane, but there is alot of code... > >> 4. getpass() is used?!? > > By scanimage, yes. SANE includes a rudimentary form of authentication > checking, in case a resource requires more security. I don't know of > anything that uses it. > >> In retrospect: >> 1. The rest of the backends seemed to need extensive rework as they use >> signals and ioctl calls that do not translate at all. > > There are a few others that dont use threading or signals (canon_dr, > cardscan, ...), it would be nice to see if those compile as well. > >> 2. Threading and scsi could be made available quite easily by adding Windows >> equivalents. > > Well, we would need a windows expert to do it :) > >> 3. Platform independent sleep calls should be put in. >> 4. Obsolete function! This should be replaced with similar functionality. > > Certainly these two are easy fixes. > >> I have a GTK+2 app that used sane in Linux and it works in Windows without >> any modification to the app code. I scanned successfully and my program >> rendered a beautiful PNG to the screen. It should be noted that in order for >> the scanner to be detected, I had to install the Fujitsu TWAIN driver. I >> guess libusb-win32 could not detect the device until the appropriate driver >> was installed? Artefact of using Windows inside of VirtualBox? > > That is odd. I don't know how windows works in that regard. Makes me > wonder if we could produce some sort of prog that would read the sane > .desc files and build a .inf or something to tell windows to talk to > the device? > >> If anyone is interested in the changes I've made, I'd be interested in >> making them available. > > yes, very much interested. there has been some talk lately about > updating the sane build system, it might be possible to coordinate > with that effort, so that at least minimal win32 support is added to > mainline sane. >
Well, what about experimental/sane-backends-win32 sitting in CVS for about 18 months? To be honest, we are using that version of SANE backends (dll + net) in native Win32 form for more than 2 years. The version comes even with Inno setup installer support ;) Anyone interested? Best regards, -- Ilia Sotnikov
