Merge branch 'master' of github.com:wiedi/node-dmx

This commit is contained in:
Sebastian Wiedenroth 2013-11-16 17:35:47 +01:00
commit 7188217bb3
3 changed files with 38 additions and 9 deletions

View file

@ -1,8 +1,7 @@
var ease = require('./easing.js').ease var ease = require('./easing.js').ease
var resolution = 25; var resolution = 25;
exports.Anim = function(universe) { exports.Anim = function() {
this.universe = universe;
this.fx_stack = []; this.fx_stack = [];
this.add = function(to, duration, options) { this.add = function(to, duration, options) {
var options = options || {}; var options = options || {};
@ -14,7 +13,7 @@ exports.Anim = function(universe) {
this.delay = function(duration) { this.delay = function(duration) {
return this.add({}, duration); return this.add({}, duration);
} }
this.run = function(onFinish) { this.run = function(universe, onFinish) {
var config = {} var config = {}
, t = 0 , t = 0
, d = 0 , d = 0

View file

@ -43,7 +43,7 @@ green_water(universe, [3+15, 6+15, 9+15], 4000);
return; return;
var x = new A(universe) var x = new A()
.add({1: 255, 6: 110, 7: 255, 8: 10}, 1200) .add({1: 255, 6: 110, 7: 255, 8: 10}, 1200)
.delay(1000) .delay(1000)
.add({1: 0}, 600) .add({1: 0}, 600)
@ -71,8 +71,8 @@ var x = new A(universe)
.delay(200) .delay(200)
.add({2: 0}); .add({2: 0});
var y = new A(universe) var y = new A()
.add({9: 255}, 10000); .add({9: 255}, 10000);
x.run(done); x.run(universe, done);
y.run(done); y.run(universe, done);

34
web.js
View file

@ -1,7 +1,8 @@
var http = require('http'), var http = require('http'),
path = require('path'), path = require('path'),
io = require('socket.io'), io = require('socket.io'),
fs = require('fs') fs = require('fs'),
A = require('./anim.js').Anim
; ;
exports.init = function(dmx) { exports.init = function(dmx) {
@ -13,7 +14,36 @@ exports.init = function(dmx) {
}); });
request.on("end", function () { request.on("end", function () {
var filePath = '.' + request.url; var urlData = require('url').parse(request.url),
urlPath = urlData.pathname.split('/');
if(urlPath.length == 3 && urlPath[1] == 'animation') {
try {
// save old states
var universe = dmx.drivers[urlPath[2]], old = {}, black = {};
for(var i = 0; i < 256; i++) {
old[i] = universe.get(i);
black[i] = 0;
}
var jsonAnim = JSON.parse(reqBody), animation = new A();
for(var step in jsonAnim) {
animation.add(jsonAnim[step].to, jsonAnim[step].duration || 0, jsonAnim[step].options || {});
}
animation.add(old, 0);
animation.run(universe);
response.write('{ "success": true }');
} catch(e) {
response.write('{ "error": "broken json" }');
}
response.end();
return;
}
var filePath = '.' + urlData.pathname;
if (filePath == './') if (filePath == './')
filePath = './index.html'; filePath = './index.html';