release-packaging/Classes/FluidNRTProcess.sc: Make process() send a done message to the language iff processing is successful, hopefully resolves #34 properly this time

nix
Owen Green 6 years ago
parent 3f89afac0b
commit 278d50c608

@ -22,20 +22,25 @@ FluidNRTProcess : Object{
}
process{|...ugenArgs|
synth = {
ugen.performList(\kr, ugenArgs.collect{|a| a.asUGenInput} ++ Done.freeSelf)
var reply = '/done' ++ UniqueID.next;
synth = {
var ug = ugen.performList(\kr, ugenArgs.collect{|a| a.asUGenInput} ++ Done.freeSelf);
SendReply.kr(Done.kr(ug),reply)
}.play(server);
synth.postln;
forkIfNeeded{
synth.waitForFree;
server.sync;
outputBuffers.do{|buf|
buf = server.cachedBufferAt(buf.asUGenInput);
buf.updateInfo;
server.sync;
};
if(action.notNil){action.valueArray(outputBuffers)};
};
OSCFunc({
forkIfNeeded{
synth.waitForFree;
server.sync;
outputBuffers.do{|buf|
buf = server.cachedBufferAt(buf.asUGenInput);
buf.updateInfo;
server.sync;
};
if(action.notNil){action.valueArray(outputBuffers)};
}
}, reply).oneShot;
^this;
}

Loading…
Cancel
Save