kIOHIDOptionsTypeSeizeDevice no longer works

Originator:evan.s
Number:rdar://7188724 Date Originated:9/1/09
Status:Duplicate/7102351 Resolved:
Product:Mac OS X Product Version:10.6 / 10A432
Classification:Severe Bug Reproducible:Always
 
01-Sep-2009 06:06 PM Evan Schoenberg:
Summary: 
When opening an HID device, kIOHIDOptionsTypeSeizeDevice does not work in 10.6, while it did work in previous versions of Mac OS X.

Steps to Reproduce:
1. Obtain the IOHIDDeviceDeviceInterface corresponding to the kIOHIDDeviceDeviceInterfaceID interface for kIOHIDDeviceTypeID plugin of the "AppleIRController" IOService.
2. Open it with the kIOHIDOptionsTypeSeizeDevice option.
3. Add elements to its IOHIDDeviceQueueInterface and schedule its event source in the run loop

Expected Results:
Only your application receives the events.

Actual Results:
Delivered events (e.g. 'volume up' on the Apple remote) are delivered both to your application and to the system, causing response by Finder or the nearest active Apple application (so, Finder performs volume up).

Regression:
Always in Mac OS X 10.6 10A432. I was not part of the beta process so do not know when this appeared during 10.6 beta, if it didn't appear from the beginning.
Never in Mac OS X 10.5.

Notes:
I can provide sample code for this if desired; putting it together out of my larger project is non-trivial, so I didn't want to submit it unless it was needed.

Comments

Solution

Hello,

The problem you described is related to the IR driver. There is an alternative IR driver for Mac OS X SL named "Candelair" (http://www.iospirit.com/labs/candelair/). When you use this driver kIOHIDOptionsTypeSeizeDevice works as expected!


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!