From d1facbe0d1a236297bc383daa3a81f9ef58dc081 Mon Sep 17 00:00:00 2001 From: Andy Zeldis Date: Sun, 2 Dec 2012 19:52:01 -0800 Subject: [PATCH 1/3] uppercasing README.md to make npm happy --- readme.md => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename readme.md => README.md (100%) diff --git a/readme.md b/README.md similarity index 100% rename from readme.md rename to README.md From f4bb040ec15d37735d676541d3622b41ed4d4e06 Mon Sep 17 00:00:00 2001 From: Andy Zeldis Date: Sun, 2 Dec 2012 19:55:46 -0800 Subject: [PATCH 2/3] Enabling UDP broadcast for send and receive. Requires omgosc 0.1.1. --- lib/osc.io.js | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/osc.io.js b/lib/osc.io.js index b89bfdf..5928057 100644 --- a/lib/osc.io.js +++ b/lib/osc.io.js @@ -25,7 +25,7 @@ module.exports = function(io) { socket.on('create', function(opts) { log('server'.magenta, 'created'.grey, '127.0.0.1:' + opts.port); - var server = new osc.UdpReceiver(opts.port); + var server = new osc.UdpReceiver(opts.port, { broadcast: true }); server.on('', function(message) { log('server'.magenta, ('127.0.0.1:' + opts.port).grey, message.path, message.params); @@ -47,7 +47,7 @@ module.exports = function(io) { socket.on('create', function(opts) { log('client'.magenta, 'created'.grey, opts.host + ':' + opts.port); - var client = new osc.UdpSender(opts.host, opts.port); + var client = new osc.UdpSender(opts.host, opts.port, { broadcast: true }); socket.on('osc', function(message){ log('client'.magenta, (opts.host + ':' + opts.port).grey, message.path, message.params); diff --git a/package.json b/package.json index 8984112..08a3e3a 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "colors": "0.6.0", - "omgosc": "0.1.0" + "omgosc": "0.1.1" }, "main": "./lib/osc.io", "version": "0.0.2" From 95173a3db2d5a7ba686a8550e0be46bae9c96744 Mon Sep 17 00:00:00 2001 From: Andy Zeldis Date: Wed, 5 Dec 2012 17:10:52 -0800 Subject: [PATCH 3/3] Add basic support for integer, float, and string types, plus multiple arguments --- src/client/osc.io.js | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/client/osc.io.js b/src/client/osc.io.js index fcb1c1b..92c5158 100644 --- a/src/client/osc.io.js +++ b/src/client/osc.io.js @@ -52,10 +52,32 @@ var OscClient = Backbone.Model.extend({ }, sendOsc: function(path, param) { + // first, we need to determine the type of argument(s) + var typetag = ''; + var args = Array.prototype.slice.call(arguments, 1); + var i; + + // TODO where is a function like this supposed to go in idiomatic backbone? + var oscType = function( o ) { + var t = typeof(o); + if ( t === 'string' ) { + return 's'; + } else if ( t === 'number' ) { + if ( o === Math.floor(o)) { + return 'i'; + } else { + return 'f'; + } + } + } + + for ( i = 0; i < args.length; ++i ) { + typetag += oscType(args[i]); + } this.socket.emit('osc', { path: path, - typetag: 'f', - params: [param] + typetag: typetag, + params: args }); }