diff --git a/include/FluidSCWrapper.hpp b/include/FluidSCWrapper.hpp index eb42cee..6c76610 100644 --- a/include/FluidSCWrapper.hpp +++ b/include/FluidSCWrapper.hpp @@ -343,8 +343,8 @@ class NonRealTime : public SCUnit using SharedState = std::shared_ptr>; public: - static index ControlOffset(Unit*) { return IsModel_t::value ? 1 : 0; } - static index ControlSize(Unit* unit) { return index(unit->mNumInputs) - unit->mSpecialIndex - 2; } + static index ControlOffset(Unit*) { return 0; } + static index ControlSize(Unit* unit) { return index(unit->mNumInputs) - unit->mSpecialIndex - 2 - (IsModel_t::value ? 1 : 0); } static void setup(InterfaceTable* ft, const char* name) { @@ -683,7 +683,8 @@ struct LifetimePolicy static void constructClass(Unit* unit) { - index uid = static_cast(unit->mInBuf[Wrapper::ControlOffset(unit)][0]); + index uid = static_cast(unit->mInBuf[Wrapper::ControlOffset(unit)+Wrapper::ControlSize(unit)][0]); + FloatControlsIter controlsReader{unit->mInBuf + Wrapper::ControlOffset(unit),Wrapper::ControlSize(unit)}; auto& entry = mRegistry[uid]; auto& client = entry.client;