Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

file 34 lines (26 sloc) 1.697 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
Espresso: Apple TV 5.0+ custom plugin loader.
What: The title pretty much says it all.
Why: So you can load your own custom plugins
Who: Brandon Holland (bholland@brandon-holland.com)
Where: http://brandon-holland.com
Version: 0.2(turbo-manatee)

More:
Espresso searches and loads plugins called "Frappuccinos" from the
AppleTV.app/Frappuccinos folder. You'll have to create this folder.

Espresso is now able to load frappliances just like in the good old days and
it will do the heavy lifting to get your legacy plugin into the new menu system.

Frappuccinos are NSBundles with the frappuccino file extension. It contains a
binary (containing the plugin code), an Info.plist, and resources.

The principal class of a Frappuccino should be a subclass of BRController that you create.
This will be the controller that gets displayed when your app button gets selected on the main menu.

There are some custom keys that should be added to each Frappuccinos Info.plist.
These keys are used to define the appearance of the app button in the main menu.

The keys are:

EPFrappuccino (dct) Dictionary containing all other keys + values
EPFrappuccinoIdentifier (str) Unique identifier for plugin
EPFrappuccinoTitle (str) Display title for icon on main menu
EPFrappuccinoImageName (str) Image name (including extension) for icon within plugin bundle
EPFrappuccinoPreferredOrder (num) Used to determine placement of your icon on the main menu

Espresso is not meant as a replacement for DHowett's beigelist. Instead exists as a collection
of ideas, research, and solutions in the form of an implementation. Hopefully the work here can be
leveraged somehow. Use at your own risk.
Something went wrong with that request. Please try again.