I have a few ideas for functionality/features that I'd really like to see in theater view. I've requested some of these way back. Examples:
o Display geotagged images using google maps and embedded geotags
o Display facetagged images, either Picasa or MS Photo 1.2
o Obtain url's from the web. display and play them.
o An interface layer to XBMC's many plugins
So,my suggestion as to how an API can be implemented in theater view are:
(o) Use the existing architecture (listviews, infopanels, etc). MC provides navigation, the plugin provides data which MC uses to populate view items.
(i) Add an option to options\theaterview page where a plugin can be called with one parameter
(ii) When A plugin page is invoked, the plugin determines the content of the displayed page and which type of page it is (list viev, info page, etc)
(iii) In case of a list view, the plugin returns a list of items and a bitmap to be displayed on the right hand side.
(iv) In case of an info page, the plugin returns the items to be displayed in the info page and a bitmap to be displayed on the right hand side.
(v) When an item is selected in a list view, MC generates an event which can be used to, for example, re generate the bitmap
(vi) When an item is pressed (ok, enter) in a list view, MC generates an event which can be used to redo the list (ii), perform some action (play a file),or display an infopage.
(vii) The roller is populated by the plugin. Roller selections generate events which can be used by the plugin
(viii) The API provides a "way out" so that MC returns to theater view's "regular oerations".
If JRiver is positive to this and is willing to implement such an API, I'll volunteer to make the geotag/facetag plugins above.
I'm sure many other developers will create lots of interesting plugins.