outputs.js 999 B

12345678910111213141516171819202122232425262728293031323334
  1. var outputs = {};
  2. function listOutputs() {
  3. var result = [];
  4. for (var id in outputs) {
  5. var i = outputs[id];
  6. result.push({
  7. name: i.name || i.getName(),
  8. id: id,
  9. inputs: i.inputs || i.getInputs(),
  10. volumeControl: i.volumeControl,
  11. status: i.getStatus ? i.getStatus():undefined
  12. });
  13. }
  14. return result;
  15. }
  16. function setOutputState(outputId, inputId, state) {
  17. var output = outputs[outputId];
  18. return output ? output.setState(inputId, state) : false;
  19. }
  20. function setOutputVolume(outputId, volume) {
  21. var output = outputs[outputId];
  22. return output && output.volumeControl ? output.setVolume(volume) : false;
  23. }
  24. module.exports.listOutputs = listOutputs;
  25. module.exports.setOutputState = setOutputState;
  26. module.exports.setOutputVolume = setOutputVolume;
  27. module.exports.registerOutput = function(id, output) { console.log("Registered new client " +id); outputs[id] = output; }
  28. module.exports.unregisterOutput = function(id) { console.log("Unregistered client " +id); delete outputs[id]; }