BackRow Developers' Kit
The BackRow Developers' Kit
August 3rd, 2007
This application is Copyright © 2007 Alan Quatermain. All Rights Reserved.
Important: BDK version 1.1.1 requires frameworks from AppleTV software version 1.1 to function. It will not install without it.
The BDK includes everything you need to make developing plugins for the Apple TV's BackRow media system an easy task. It includes an Xcode project template, class-dumped header files for the Apple TV frameworks (along with some additions to the basic class-dumped content), and a test harness application which enables you to run your plugin, and the Apple TV interface itself, within a regular window on your desktop.
Note that the testbed application contains online help, which will aid you in getting started using the developers' kit as a whole. It includes information on settings within the application, environment variables to which it responds, and information on using it as a custom executable within your Xcode projects.
Also included in the online help is a simple tutorial to get you started using the BDK. It is recommended that you browse the online help there to familiarize yourself with the application.
This does not include the BackRow, AppleTV or iPhotoAccess frameworks themselves
You are required to copy the BackRow.framework, AppleTV.framework and iPhotoAccess.framework folders from /System/Library/PrivateFrameworks on your Apple TV into the same folder on your development computer. You will need to use an Admin account to do that, and will be prompted for a password. If you do not have these two frameworks installed in this location, the installer will alert you to that fact and will not allow you to install it, since none of its components will function without them.
After installation, to enable 'Apple TV Interface' mode within the BackRow Test application, you will need to open up the app bundle (right- or control-click on it and choose 'Show Package Contents') and do the same thing with the Finder.app on your Apple TV (located in /System/Library/CoreServices/Finder.app). You can then copy the PlugIns, Patches, and Screen Savers folders from the Contents folder of the Apple TV Finder into the Contents folder of the BackRow Test application. Once you have done this, you will have access to the main menu of the real Apple TV, albeit without backend support for iTunes and iPhoto. You can add your own plugins to the PlugIns folder within the BackRow Test application and test those in the full interface prior to testing on your Apple TV itself.
If you do install your plugins within the application bundle, be aware that this will likely cause a clash with separately-loaded versions of your plugins launched via Xcode. It is recommended that you use one or the other method of testing, but not both at the same time.
- Please note that while the entire contents of the BDK package can be installed on a PowerPC Macintosh, the BackRow Test application is Intel-only. This is a requirement of the BackRow framework which it uses, which is itself an Intel-only binary.
- The OpenGL view in the window doesn't like it if you resize it very quickly. There's a locking problem there, which seems mostly solved, but I have experienced one UI freeze since doing that, so please try not to be too brisk when resizing the BackRow window.
- The BackRow Screen Saver support is currently disabled within the BackRow Test application. As far as I'm aware all setup is done, however it may be conflicting with the overrides placed into the display manager to stop it from grabbing the screen. Support for screensavers may be introduced in an update.
Version 1.0, May 24th 2007
- Initial Release.
Version 1.0.1, June 3rd 2007
- Fixed: The keyboard event handler was incorrectly sending button-up events for tap left & right. Now behaves correctly.
Version 1.1, June 21st 2007
- Updated to work with BackRow version 2.1 and the new AppleTV framework.
- Now requires the latest versions of these two frameworks in order to run. They can be obtained from an AppleTV running software version 1.1, or from the update disk image itself.
Version 1.1.1, August 3rd 2007
- Updated the BackRow headers to match those I have. This should have been the case before, but it looks like they weren’t correctly copied across, or something. This means that you’ll have all the enumerations that I’ve worked out myself, for instance the status codes in BRBaseMediaProvider.h.
This plugin was developed by Alan Quatermain of AwkwardTV. Images were created by BigBaconAndEggs of AwkwardTV. Hosting provided courtesy of Dakaix. Many thanks to Xdog, |bile|, and ericIII for testing it for me and providing much-appreciated feedback.
The official page for the BackRow Developers' kit is http://alanquatermain.net/brdevkit/. This page includes screenshots and information about the test harness application itself. The most detailed information is within the online help for the BackRow Test application itself.
For updates and breaking information, subscribe to the RSS feed at http://alanquatermain.net/.
Copyright © 2007 Alan Quatermain.
All rights reserved.
Icon created by BigBaconAndEggs of AwkwardTV.
Header files were generated using class-dump, which is Copyright © 1997-1998, 2000-2001, 2004-2006 Steve Nygard.
AppleTV is a registered trademark of Apple, Inc.
AppleTV and BackRow are Copyright © 2006-2007 Apple, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, publish, and/or distribute copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. The software is not to be redistributed along with any content owned by Apple, Inc. End users must be required to provide such elements themselves from legally-licensed means, as permitted under Fair Use statutes, or the equivalent under local law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The author is in no way affiliated with Apple, Inc., nor any subsidiary company thereof.