I have given a great deal of thought to the idea of adding a nice distributed object system to BBTouch. that way you could have cocoa-based clients easily hook into the blob events to do their own thing. I have used DO in a bunch of my other projects and it works well and is simple to use.
However, I also spent a bunch of time getting TUIO to work with BBTouch. And there are already a whole bunch of applications that can utilize BBTouch as a tracker because of the TUIO stuff. So it occurred to me that since BBOSC is basically done (it could use a nice dispatch system, which i will add someday, not to mention lots of error checking and lots of general spiffying up, but i digress) it makes far more sense just to build any new BBTouch client apps using TUIO as the base protocol. I dont think the performance gains I would get by going with DO would be all that staggering (if there we any at all). Also, if i write my cocoa client apps to be all tuio-friendly then people can use them with whatever tracker they want to (like a PC-based tracker or a yet to be designed all-hardware tracker.. whatever.)
And, the most important thing, as i mentioned earlier: it is already done.
So, I have hacked up a quick TUIO cocoa client app that plays nice with BBTouch (and theoretically should play nice with any TUIO tracker).
isn’t it cute?
Clever viewers will recognize many of the elements (since i basically just dragged them all from BBTouch into a new project and bolted on a TUIO dispatcher).
Anyhow it is super-duper simple. Anyone who wants to write a client app in cocoa for BBTouch (or for any tuio tracker) can use it as a starting point. It runs on nicely on really old hardware too. (at least it runs perfectly nicely on my 866MHz g4 laptop, which was collecting dust on my shelf, now it is my projection server :-)
I should admit that the real reason i did this was because due to the craptacular firewaire destruction fest of two weeks ago, my second best machine is now without firewire support. (it was the main machine I was using to test all this stuff on). That left my main macBookPro as the only machine that could run everything. This is fine except that I really really have my workspace all dialed in. Big cinema display, keyboard at the right height yadda yadda.. hooking the MBP up to the table meant unhooking it from the big monitor :-( and that was a pain. So I wrote this remote TUIO app mostly so I could still use the MBP as the ‘camera’ machine, and still have the benefits of the big monitor for developing and whatnot, and my really old machine gets to be the ‘projector’ machine, and my not that old but not that new machine gets to go back to being my entertainment center. everyone wins.
In any case, if anyone wants it: here is the TUIO Test app.
As I mentioned before, if you want to write your own Multi-Touch client in Cocoa, this is a good seed to start off with. It is the absolute bare bones TUIO + View implementation (with a tiny bit of gratuitous core animation). Have fun!