[sane-devel] Scanner panel buttons

Henning Meier-Geinitz henning@meier-geinitz.de
Tue, 29 Jul 2003 17:28:52 +0200


On Tue, Jul 29, 2003 at 09:44:15AM -0500, Matthew wrote:
> Is there some documentation regarding the use of the "Scan" and other 
> buttons on the various scanners?

There was some discussion on how to implement that in version 2 of the
SANE standard. But I think that's not the information you need.

> I assume that a standard is not in 
> place so it would be a scanner-specific hack but I'm interested in 
> getting the buttons to work.  I took a long look at the scanner kernel 
> module and I see that there is basically no interface built.  There's a 
> front panel buffer allocated but it's never used except as a 
> placeholder.  So maybe a little info about what the scanner does when a 
> button is pressed before I start sniffing the USB communication?

Well, there are two issues: How to get that information from the
scanner and what to do with that information.

The scanner kernel module is not involved here. I think the original
maintainer thought about the possible usage of interrupt URBs and
therefore button events came to mind.

The way how to get the information about a button event is completely
scanner-dependent. So you need to do that in the backend or a special
stand-alone program.

Which scanner are you talking about? For some scanners you must just
read one register of the scanner's chip. Others really seem to use
interrupt URBs. In the latter case, that may or may not work with

When you do some sniffing, check what happens when you don't scan but
the "wait for button" program is running. If there is steady traffic
(bulk or control messages), that's probably the reading of the
button-related registers. If the messages only flow when you press a
button, I guess interrupt URBs are used.