XBMC
Overview
IRC chat in irc/freenode #xbmc-dev
16/04/2013:
12:37:48 pkimber | I am writing a python addon with <extension point="xbmc.service" │
| library="default.py" start="startup"> │
12:38:33 pkimber | How do I get the handle of the plugin? The standard code appears to be 'handle = │
| sys.argv[1]' │
12:42:32 pkimber | But 'sys.argv' just contains a single empty string i.e. [''] │
13:07:05 cptspiff | no handles for services. │
13:07:12 cptspiff | it's not a plugin. │
13:12:33 pkimber | OK │
13:13:16 pkimber | Sounds like I don't understand what a service is. I will do some reading. Thank │
| you for your help. │
13:13:35 cptspiff | more likely you don't understand what a plugin is :) │
13:20:28 pkimber | OK. You are probably correct. The Wiki appears to talk about plugins and addons as │
| if they are the same thing. │
13:21:23 cptspiff | they are not. plugins are a particular type of addon │
13:21:31 cptspiff | they are script that integrates with our virtual file system │
13:21:34 cptspiff | *scripts │
13:22:07 cptspiff | to handle this, we need a handle to identify the vfs context │
13:22:13 cptspiff | so handles are only relevant for plugins │
13:22:20 cptspiff | services are just scripts that are autostarted │
13:25:19 pkimber | So can I setup a service to auto-start, and then run a standard plugin from that │
| service? │
13:29:31 cptspiff | why do you want to run a plugin from a service? │
13:29:57 cptspiff | it only makes sense to run a plugin when we want to list a directory in some media │
| window │
13:30:43 cptspiff | a service is just a script. if you just want to do some one-off stuff do that and │
| you are done. if you want to actually write a service type script, you have to take │
| care of looping yourself │
13:30:51 pkimber | I want XBMC to start-up and then download some short videos (adverts) and then play │
| them. │
13:31:06 cptspiff | nothing there that require a plugin │
13:32:19 pkimber | So is that a script/service? │
13:32:46 cptspiff | well, it's a script you want launched on startup. so it falls in the service add-on │
| category yes │
13:33:40 pkimber | Thank you. You have been very helpful indeed. I will give it a go... |
Development
Standard install of XBMC on Ubuntu, I find the addons
folder in:
/usr/share/xbmc
Running XBMC as myself and installing an add-on, installs it into this folder:
/home/patrick/.xbmc/addons
Logging
Switch on debugging… System, Debugging, Enable debug logging…
The home screen will now show the location of the log file e.g.
~/.xbmc/temp/xbmc.log
xbmcswift2
To develop add-ons, check out xbmcswift2
pip install xbmcswift2
workon xbmcswift2
xbmcswift2 create
cd plugin.your.addon.folder
xbmcswift2 run once
To run your add-on in XBMC, link the dev folder to your local add-on folder:
cd ~/.xbmc/addons/
ln -s /home/patrick/repo/csw/xbmc/plugin.video.advert
Getting issues with sys.argv
on startup.
This description might help: http://forum.xbmc.org/showthread.php?tid=161524&pid=1387749#pid1387749
import xbmcaddon
setting1 = xbmcaddon.Addon().getSetting("your_setting1")
rather than:
setting = xbmcplugin.getSetting(int(sys.argv[1]), 'somesetting')