var outputs = {}; function listOutputs() { var result = []; for (var id in outputs) { var i = outputs[id]; result.push({ name: i.name || i.getName(), id: id, inputs: i.inputs || i.getInputs(), volumeControl: i.volumeControl, status: i.getStatus ? i.getStatus():undefined }); } return result; } function setOutputState(outputId, inputId, state) { var output = outputs[outputId]; return output ? output.setState(inputId, state) : false; } module.exports.listOutputs = listOutputs; module.exports.setOutputState = setOutputState; module.exports.registerOutput = function(id, output) { console.log("Registered new client " +id); outputs[id] = output; } module.exports.unregisterOutput = function(id) { console.log("Unregistered client " +id); delete outputs[id]; }