diff --git a/readme.md b/README.md similarity index 100% rename from readme.md rename to README.md 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" 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 }); }