From 2c38d28df4230f56d19fac54962146afae1da7a4 Mon Sep 17 00:00:00 2001 From: Owen Green Date: Tue, 16 Apr 2019 13:20:08 +0100 Subject: [PATCH 1/3] Revert "Deal with fixed params better" This reverts commit 31ebbf68c3828445dfd721dfa0bb8cfade9bb187. --- include/FluidSCWrapper.hpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/include/FluidSCWrapper.hpp b/include/FluidSCWrapper.hpp index 9e69269..4a87c20 100644 --- a/include/FluidSCWrapper.hpp +++ b/include/FluidSCWrapper.hpp @@ -78,7 +78,7 @@ public: RealTime() : mControlsIterator{mInBuf + mSpecialIndex + 1,mNumInputs - mSpecialIndex - 1} , mParams{Wrapper::Client::getParameterDescriptors()} - , mClient{Wrapper::setParams(mParams,mWorld->mVerbosity > 0, mWorld, mControlsIterator,true)} + , mClient{Wrapper::setParams(mParams,mWorld->mVerbosity > 0, mWorld, mControlsIterator)} {} void init() @@ -126,7 +126,7 @@ public: void next(int n) { mControlsIterator.reset(mInBuf + 1); //mClient.audioChannelsIn()); - Wrapper::setParams(mParams, mWorld->mVerbosity > 0, mWorld, mControlsIterator,false); // forward on inputs N + audio inputs as params + Wrapper::setParams(mParams, mWorld->mVerbosity > 0, mWorld, mControlsIterator); // forward on inputs N + audio inputs as params mParams.template constrainParameterValues(); const Unit *unit = this; for (int i = 0; i < mClient.audioChannelsIn(); ++i) @@ -186,7 +186,7 @@ public: Wrapper *w = new Wrapper( world, args); // this has to be on the heap, because it doesn't get destroyed until the async command is done - Wrapper::setParams(w->mParams, false, world, args,true); + Wrapper::setParams(w->mParams, false, world, args); Result result = validateParameters(w); if (!result.ok()) @@ -390,22 +390,18 @@ public: impl::FluidSCWrapperBase::setup(ft, name); } - static auto& setParams(ParameterSetType& p, bool verbose, World* world, FloatControlsIter& inputs, bool includeFixed) + static auto& setParams(ParameterSetType& p, bool verbose, World* world, FloatControlsIter& inputs) { //We won't even try and set params if the arguments don't match if(inputs.size() == C::getParameterDescriptors().count()) - { - if(includeFixed) p.template setFixedParameterValues(verbose,world,inputs); - p.template setMutableParameterValues(verbose, world, inputs); - } + p.template setParameterValues(verbose, world, inputs); return p; } - static auto& setParams(ParameterSetType& p, bool verbose, World* world, sc_msg_iter *args,bool includeFixed) + static auto& setParams(ParameterSetType& p, bool verbose, World* world, sc_msg_iter *args) { - if(includeFixed) p.template setFixedParameterValues(verbose,world,args); - p.template setMutableParameterValues(verbose,world, args); - return p; + p.template setParameterValues(verbose,world, args); + return p; } }; From d345e8b5486ad555d38ab525450b8a2a55153416 Mon Sep 17 00:00:00 2001 From: Owen Green Date: Tue, 16 Apr 2019 17:26:43 +0100 Subject: [PATCH 2/3] Deal with fixed params, and this time don't break everything else. TODO: deal with better with SC args vs param numbers include/FluidSCWrapper.hpp --- include/FluidSCWrapper.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/include/FluidSCWrapper.hpp b/include/FluidSCWrapper.hpp index 4a87c20..3b9c92f 100644 --- a/include/FluidSCWrapper.hpp +++ b/include/FluidSCWrapper.hpp @@ -78,7 +78,7 @@ public: RealTime() : mControlsIterator{mInBuf + mSpecialIndex + 1,mNumInputs - mSpecialIndex - 1} , mParams{Wrapper::Client::getParameterDescriptors()} - , mClient{Wrapper::setParams(mParams,mWorld->mVerbosity > 0, mWorld, mControlsIterator)} + , mClient{Wrapper::setParams(mParams,mWorld->mVerbosity > 0, mWorld, mControlsIterator,true)} {} void init() @@ -390,11 +390,14 @@ public: impl::FluidSCWrapperBase::setup(ft, name); } - static auto& setParams(ParameterSetType& p, bool verbose, World* world, FloatControlsIter& inputs) + static auto& setParams(ParameterSetType& p, bool verbose, World* world, FloatControlsIter& inputs, bool constrain = false) { //We won't even try and set params if the arguments don't match if(inputs.size() == C::getParameterDescriptors().count()) + { p.template setParameterValues(verbose, world, inputs); + if (constrain)p.template constrainParameterValues(); + } return p; } From 242b2bd45442fc3c3e4bb977cbd3207cf41262b0 Mon Sep 17 00:00:00 2001 From: Owen Green Date: Tue, 16 Apr 2019 17:47:54 +0100 Subject: [PATCH 3/3] include/SCBufferAdaptor.hpp Proper copy assign / constructor signature --- include/SCBufferAdaptor.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/SCBufferAdaptor.hpp b/include/SCBufferAdaptor.hpp index c1c219e..cff93bc 100644 --- a/include/SCBufferAdaptor.hpp +++ b/include/SCBufferAdaptor.hpp @@ -57,8 +57,8 @@ class SCBufferAdaptor : public NRTBuf, public client::BufferAdaptor { public: // SCBufferAdaptor() = delete; - SCBufferAdaptor(SCBufferAdaptor &) = delete; - SCBufferAdaptor operator=(SCBufferAdaptor &) = delete; + SCBufferAdaptor(const SCBufferAdaptor &) = delete; + SCBufferAdaptor& operator=(const SCBufferAdaptor &) = delete; SCBufferAdaptor(SCBufferAdaptor&&) = default; SCBufferAdaptor& operator=(SCBufferAdaptor&&) = default;