oF:ofxOSCセットアップ

openFrameworksでofxOSCを追加する時のセッティング手順。

Xcode画面左側のファイルリストのaddonsを右クリックでAdd Files toしてofxOSCディレクトリを追加する。
testApp.h上でofxOsc.hをインポートしてとりあえずビルドすると “ip/NetworkingUtils.h” file not found といったビルドエラーが表示される。
Build Settings の Header Search Paths にofxOscのsrcとlib以下のパスを追加する。
※この時、non-recursive指定だと配下ディレクトリをすべて指定する必要があるが、recursiveだとその必要がない?ではなぜoFはデフォルトでnon-recursiveでヘッダーサーチパスを指定しているのかなぁ。

以上で動く。

OSCアプリ同士で双方向に送受信できる

ofxOscの通常の利用法としては送信側A(sender)と受信側B(receiver)があって、A →B とするが、どちらのアプリにもsenderとreceiverオブジェクトを持たせて、A ←→ B とすることもできた。
その際はポートの番号を往路と復路でそれぞれ異なる番号にすること。

(未解決メモ)
その状態で、ofxSyphonも導入。Aを画像受信側(サーバー)、Bを画像送信側(クライアント)にしてBの描画内容をAに同期しつづける。ofxSyphonのサンプルのコードをコピペ&修正して実装したが、サンプルと同様、A側のステージをクリックして

client.set(dir.getDescription(dirIdx));

を呼び出してはじめてちゃんと同期する状態。このときdirIdxは0と1の値をとり、0の時にBと画面同期する。
クリックせずとも同期開始させたいので上の関連コードをupdate()内

client.set(dir.getDescription(0));

に書くことで、クリックせずともいきなりSyphonで画面同期できた。Update中にずっとコールし続けてるので、フラグたてて1回だけ呼び出すようにした方がいいかも。
あと、1番は何のために存在しているのかは分からない。