Built-in scripting
XBMC contains several built-in functions that can be accessed from the skin (via a button) or from within a python script, XBMC's HTTP API or from a press of a button on the remote, gamepad, or keyboard.
Using Built-in Functions from the skin
To have a button (or toggle button) on the skin run a particular function, you just have to add an <onclick> tag (or <onfocus> tag) containing the function you wish to run.
For example, adding the following to a button control will create a stop button.
<onclick>XBMC.PlayerControl(Stop)</onclick>
If you want a button in your skin taking you directly to the movie listing, add a parameter to the Window ID as follows:
<onclick>xbmc.activatewindow(myvideolibrary,movietitles)</onclick>
A list of parameters can be found here:
Using Built-in Functions from python
To run a built-in XBMC function from within a python script, you just need to call executebuiltin() with the function name. For example,
executebuiltin('XBMC.RunScript(Q:\Scripts\myscript.py)')
will run the script myscript.py located in the Scripts directory.
Using Built-in Functions from keymap.xml
To bind a built-in function to a particular key, you just add the built-in command to the appropriate section and button in keymap.xml
For example, to map the running of an executeable to the BLACK button, we'd add: <xml>
<gamepad> ... <black>XBMC.RunXBE(E:\Apps\AVALaunch.xbe)</black> ... </gamepad>
</xml>
to whatever window section of keymap.xml is appropriate.
For more information on changing the keymapping with keymap.xml see: Changing the keymapping