From 89c438e6044734e54e83152ec1d366d0769324f3 Mon Sep 17 00:00:00 2001 From: Owen Green Date: Thu, 28 Nov 2019 14:04:31 +0000 Subject: [PATCH] release-packaging/Classes/FluidManipulationClient.sc: Make sendMsg block when in a routine (so we can reliably dump the whole of a label set in sequence). I don't like this idiom though --- .../Classes/FluidManipulationClient.sc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/release-packaging/Classes/FluidManipulationClient.sc b/release-packaging/Classes/FluidManipulationClient.sc index 3f0740a..f20bf17 100644 --- a/release-packaging/Classes/FluidManipulationClient.sc +++ b/release-packaging/Classes/FluidManipulationClient.sc @@ -18,15 +18,24 @@ FluidManipulationClient : UGen { } pr_sendMsg { |msg, args, action,parser| + var c = Condition.new(false); OSCFunc( { |msg| - var result; - // msg.postln; - result = FluidMessageResponse.collectArgs(parser,msg.drop(3)); - if(action.notNil){action.value(result)}{action.value}; + forkIfNeeded{ + var result; + // msg.postln; + result = FluidMessageResponse.collectArgs(parser,msg.drop(3)); + this.server.sync; + c.test = true; + c.signal; + if(action.notNil){action.value(result)}{action.value}; + } },'/'++msg).oneShot; this.server.listSendMsg(['/u_cmd',this.synth.nodeID,this.synthIndex,msg].addAll(args)); + + forkIfNeeded { c.wait }; + } }