Package Exports
- xbmc
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (xbmc) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Kodi/XBMC node controller

This module uses XBMC JSON-RPC Api V6 to provice a rich and simple API to communicate with XMBC instances.
Documentation
The xbmc module contains the following classes:
XbmcApi: API wrapper of available actions, notifications and media handlingTCPConnection: TCP Client to communicate with XBMC
Basics
All classes are created asynchronously.
All classes are sharing an EventEmitter instance.
XbmcApi.on and XbmcApi.emit are wrappers to the shared PubSub. For instance:
In CoffeeScript :
{TCPConnection, XbmcApi} = require 'xbmc'
connection = new TCPConnection
host: '127.0.0.1'
port: 9090
verbose: true
xbmc = new XbmcApi
xbmc.setConnection connection
xbmc.on 'connection:open', -> console.log 'Connection is open'
xbmc.on 'connection:data', (data) -> console.log 'Received data:', data
xbmc.on 'connection:notification', (notification) -> console.log 'Received notification:', notificationIn JavaScript :
var Xbmc = require('xbmc');
var connection = new Xbmc.TCPConnection({
host: '127.0.0.1',
port: 9000,
verbose: false
});
var xbmcApi = new Xbmc.XbmcApi;
xbmcApi.setConnection(connection);
xbmcApi.on('connection:data', function() { console.log('onData'); });
xbmcApi.on('connection:open', function() { console.log('onOpen'); });
xbmcApi.on('connection:close', function() { console.log('onClose'); });TCPConnection uses a deferred (promise) mechanism. Following two examples are both working:
{TCPConnection, XbmcApi} = require 'xbmc'
connection = new TCPConnection
host: '127.0.0.1'
port: 9090
verbose: true
xbmc = new XbmcApi
xbmc.setConnection connection
# run actions after received a 'connection:open' event
xbmc.on 'connection:open', ->
xbmc.message 'Hello World'connection = new TCPConnection
host: '127.0.0.1'
port: 9090
verbose: true
xbmc = new xbmcApi
xbmc.setConnection connection
# enqueu actions so they are called a soon as connection is opened
xbmc.message 'Hello World'SEE ALSO
TODO
More actions, new helpers, tests, ...
