In the past few weeks, I've been receiving emails from many developers who were searching for a solution. Much to my regret, there was no simple solution to the issue. So I went to create one and - while I was at it - decided to also offer a solution to other open issues in the remote control support of many Mac® applications.
Today, I'm proud and happy to share the result of the past few weeks of work with you. It comes in the form of three releases:
Remote Buddy's driver architecture let's it do wonderful things. One of these is the ability to emulate an internal Apple® Remote IR Receiver. In a nutshell, it allows Remote Buddy users (who know this emulation as "Virtual Remote") to use any hardware supported by Remote Buddy (f.ex. an iPhone™ or Wii™ Remote) and make it look like a real Apple® Remote to the system.
Using this emulation as a foundation, I built a clean, global fix for the Apple® Remote issues of OS 10.6 and 10.6.1 right into the latest version of Remote Buddy's driver. Once the driver is installed, applications can reliably access the Apple® Remote again like they used to - without any code changes (that doesn't mean, however, that developers shouldn't make changes - but more on that later).
Accommodating the relevance of this global fix for everyone with an Apple® Remote, I decided to make the driver available separately. Packaged in a preference pane for changing options and installing, updating and uninstalling the driver, it is now available as Candelair and can be downloaded for free.
I'd like to point out that Candelair's only purpose is to fix Apple® Remote issues in Snow Leopard. It works only with built-in Apple® IR Receivers and doesn't add support for additional hardware to your system. Candelair is not a free or lite version of Remote Buddy in any way.
For more information on Candelair, please see the new Candelair website.
Most applications supporting the Apple® Remote today use code with a rather complex dependency: they rely on the particular internal layout of the HID descriptor of the Apple® IR Receiver driver of particular OS releases. This usage pattern has a number of disadvantages for developers and users, with the most significant one probably being that Apple® Remote support in these applications easily breaks with new OS releases.
Since this dependency and its effects are avoidable and there were more issues that I wanted to see addressed, I created the new HIDRemote Objective-C class for accessing the Apple® Remote under OS 10.4/10.5/10.6. The main goal during the development of this class was to maximize compatibility with past, current and future OS releases, emulators, remote control solutions, etc.
You can find the sourcecode, sample code, a list of features, a guide and developer documentation on the HIDRemote pages.
Last but not least, Remote Buddy 1.15 has also been released today. It includes the new version of the Remote Buddy driver and utilizes HIDRemote metadata to control applications for which a Behaviour doesn't exist, yet. For more info on the changes in this release, please see the release notes.