I'm very happy to announce the release of version 1.30 of Remote Buddy. With just a few days to spare until Apple releases macOS Sierra, this release focuses on compatibility with Apple's upcoming major OS update.
Apple's new USB stack
Did you know that Apple shipped a completely new USB stack with El Capitan last year? They did – complete with a compatibility layer to ensure old drivers continue to work.
That layer worked great for macOS' own as well as Remote Buddy's drivers in El Capitan. However in Sierra - where Apple has now transitioned all of macOS' drivers to the new USB stack - I noticed a few issues during testing with Developer Previews that could only stem from the compatibility layer. So, time to get rid of it!
Starting with this release, Candelair is now using Apple's new USB stack directly to provide the best experience and avoid issues originating from the compatibility layer.
Despite the complete lack of sample source code and proper documentation (outside of comments spread across several header files) for the new USB stack, porting Candelair turned out to be surprisingly straightforward and - with not a single crash during development and extensive testing - the result to be rock solid.
The only issue that I found is that waking up a Mac with a Keyspan IR receiver doesn't currently work. This feature of the Keyspan hardware needs to be enabled by the driver, but - unlike the old USB stack - the new USB stack doesn't have direct API support for this.
It is unclear at this point whether this feature can again be supported going forward, but I'm mildly optimistic and am trying to find a solution together with Apple's Developer Technical Support. If you're now in need for another way to wake up your Mac, look no further than Remote Buddy Mobile - which can use Wake-Over-LAN to wake up your Mac from sleep.
AirPlay and Remote Buddy Display audio support
In Sierra, Apple has removed what was previously a nice, standard way for apps to get a list of available AirPlay devices and use them as audio output.
This is a problem as Remote Buddy Display used this exact feature to bring your Mac's audio onto Apple TV while you use it.
Fortunately, I found an alternative way. By using Accessibility APIs, Remote Buddy can simulate user input to click on the volume menu bar item and select the AirPlay device as target for audio output.
In order for this to work, please make sure you have the option
System Preferences > Sound > Show volume in menu bar enabled and granted Remote Buddy permission to use Accessibility by checking the checkbox in front of Remote Buddy at
System Preferences > Privacy & Security > Privacy > Accessibility.