2010-09-27, 00:38
Nice work - will take a look when I have some spare time (unfortunately I don't have a lot of that lately!)
dbrobins Wrote:Very cool - ditto on the time but I'm curious enough about how SWIG works with callbacks to take a look when I get a chance.
dbrobins Wrote:What's preventing making the link problem go away by modifying the build system? Just time to determine how to integrate the new lib, or some deeper problem?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="script.module.newaddon"
name="newaddon"
version="0.0.1"
provider-name="jiminger.com">
<requires>
<import addon="xbmc.python" version="1.0"/>
</requires>
<extension point="xbmc.python.module"
library="lib" />
<extension point="xbmc.addon.metadata">
<platform>all</platform>
</extension>
</addon>
analogue Wrote:Very interesting stuff, jhcarrol.
I don't know if this has been considered from a design perspective, but it would be nice if the multi-language interface had built in process isolation. [...]
Thoughts?
outleradam Wrote:I dont really know what upu guys are talking about, but Im looking forward to and hoping for a java binding.
analogue Wrote:Very interesting stuff, jhcarrol.
I don't know if this has been considered from a design perspective, but it would be nice if the multi-language interface had built in process isolation. The main benefit being that a badly behaved addon could not bring XBMC down. This of course limits the addon's capabilities but it seems to be a popular design decision these days (Google Chrome with each tab/plugin/extension being a separate child process). I think a method invocation flow would look something like this:
XBMC native code -> c++ addon api -> bidirectional c++ json/xml marshalling -> process boundary -> bidirectional python json/xml unmarshalling -> addon client python api -> addon code
Thoughts?
dbrobins Wrote:D-Bus is superior to JSON/XML marshaling - faster binary transport, better support for objects.
Marshaling to another process, using either transport, could conceivably be fit into jfcarroll's model as if it were just another language.