On Sun, 10 Dec 2006, ezzetabi wrote: > Hi everyone, I am an owner of the Canon in subject. > > It is not supported by SANE atm, so I'd like to help implementing a driver > for it. > > Unfortunately I never worked on large projects or commercial quality > products, but studying at the university I have a good C++ knowledge > including advanced topics like multiple virtual inheritance, exception safe > coding... > > So, I guess SANE gives a common interface in form of a base abstract class > and it needs the specific implementations of every scanner. So the operating > system just need to know the SANE function and the virtual call system gives > the correct commands to the scanner... It is so?
uh- sane is written in C, not C++, so your terminology is a bit off, but a series of pre-processor manipulations of your source files combined with a hidden dynamic loader, gives a similar effect to what you describe. > > Where can I find what I need to start? In the D646U page the chipset is > marked with a '?', should I open my scanner and check if the info is correct? > And overall, how can I know the commands my scanner understand? > > Any info is very welcome, please be verbose as you can... > read: http://www.sane-project.org/contrib.html read: http://www.sane-project.org/backend-writing.txt get: windows trace using benoits usb sniffer get: chip info by openning scanner write: tiny libusb prog that mimics the windows traffic read: sane.ps from source distro write: new or modified sane backend at any and every one of the steps, its a good idea to post back to this list your findings, someone here may recognize part of the usb trace, for instance. allan > Thanks. > > -- "so don't tell us it can't be done, putting down what you don't know. money isn't our god, integrity will free our souls" - Max Cavalera
