From 7aea07c6217f09b224c217179a3a6bfd14e716d1 Mon Sep 17 00:00:00 2001 From: Owen Green Date: Thu, 28 Nov 2019 11:41:19 +0000 Subject: [PATCH] Add helpful base client to reduce boiler plate --- .../Classes/FluidManipulationClient.sc | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 release-packaging/Classes/FluidManipulationClient.sc diff --git a/release-packaging/Classes/FluidManipulationClient.sc b/release-packaging/Classes/FluidManipulationClient.sc new file mode 100644 index 0000000..3f0740a --- /dev/null +++ b/release-packaging/Classes/FluidManipulationClient.sc @@ -0,0 +1,32 @@ +FluidManipulationClient : UGen { + + const < nonBlocking = 0; + var <> synth, <> server; + + *kr { + ^this.multiNew('control', Done.none, nonBlocking); + } + + *new{ |server...args| + var synth, instance; + server = server ? Server.default; + if(server.serverRunning.not,{("ERROR:" + this.asString + "– server not running").postln; ^nil}); + synth = {instance = this.kr(*args)}.play(server); + instance.server = server; + instance.synth = synth; + ^instance + } + + pr_sendMsg { |msg, args, action,parser| + + OSCFunc( + { |msg| + var result; + // msg.postln; + result = FluidMessageResponse.collectArgs(parser,msg.drop(3)); + if(action.notNil){action.value(result)}{action.value}; + },'/'++msg).oneShot; + + this.server.listSendMsg(['/u_cmd',this.synth.nodeID,this.synthIndex,msg].addAll(args)); + } +}