If your driver is targeted for Tiger or later, there is an easier way
to write a mouse driver. In Tiger, I added the following in kernel
classes the IOHIDFamily:
IOHIDInterface
IOHIDEventDriver
IOHIDEventService
IOHIDInterface is a matchable in-kernel interface to the HID Manager.
IOHIDEventService is a new class synonymous with IOHIKeyboard and
IOHIPointing. It allows you to dispatch any type of system event
without the need of create an additional service instance.
IOHIDEventDriver is the default HID driver installed on the system.
It is a subclass of IOHIDEventService and matches on the
IOHIDInterface nub. Depending on your device you may only need to
subclass this particular service to provide extended behavior for
your device.
Please note that the headers are not very well documents as of yet,
but should be in the near future. You can also reference the source
via Darwin, by checking out the IOHIDFamily.
- Rob
On Jun 14, 2005, at 10:39 AM, Jeff Schindler wrote:
Hello,
We are writing a device driver for a USB mouse. First off, from
everything I've read (yes, I've read all the pertinent docs), it
appears an in-kernel driver is the way to go. Looking at the
Darwin source, it looks as though a good starting point would be
AppleUSBOpticalMouse (ie subclassing IOUSBHIDDriver). I first
considered the AppleUSBMouse class and subclassing IOHIPointing
from the HID family, but then I noticed that AppleUSBMouse is
obsolete and has been for some time (did AppleUSBOpticalMouse
replace this?). Which is the best approach? Also, I assume I
would need my own user client for user space communication (as
opposed to using an existing user client) - is there a good
starting point for that? Sorry for the newbi-ness of the questions
- this is all new to me.
Jeff
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/usb/email@hidden
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/usb/email@hidden