Hello Scott,
I have been following the development of touchd with interest. It seems
to me that one of the major hurdles in building this driver is the
somewhat complex relationship between the keyboard interface (USB
interface 0, endpoint 0x83) and the proprietary multitouch interface
(USB interface 1, endpoint 0x81). As far as I understand, there is no
known way to initialize the multitouch without also altering the
keyboard interface, resulting in extra work just getting the keyboard to
work properly. In fact, the keyboard mapping is what is currently
stopping me from using the touchd driver on my MacbookAir. It would of
course be great if the multitouch could be initialized without affecting
the keyboard interface - the question is whether this is possible. Do
you know?
In order to get the multitouch going, this seems to be the (as of yet)
minimal configuration necessary:
1. claim interface 0, normally acting as a HID keyboard
2. claim interface 1, normally acting as an unknown HID touchpad
3. configure interface class:
usb_control_msg(udev,0x21,0x09,0x0300,0,{0x01,0x05},2,100)
The multitouch is now available on endpoint 0x81. It is *not* possible
to omit step 1, which would be desired. I suspect you already tried this
extensively.
I understand 3) is a set-interface-class command, I do not understand
what 0x0300 means, I suspect interface zero is called, and I do not know
what {0x01,0x05} means. Any ideas?
Cheers,
Henrik Rydberg
ps. on a separate note, I suspect interface 2, which acts as a perfectly
normal mouse, could be configured to show features such as double-click
and two-finger scrolling. ds.
|