Update params in poll() for benefit of NRT data objects that don't trigger

nix
Owen Green 6 years ago
parent 0e8520a1f8
commit 323deaa063

@ -428,16 +428,16 @@ public:
index triggerInput = static_cast<index>(mInBuf[static_cast<index>(mNumInputs) - mSpecialIndex - 2][0]); index triggerInput = static_cast<index>(mInBuf[static_cast<index>(mNumInputs) - mSpecialIndex - 2][0]);
bool trigger = (mPreviousTrigger <= 0) && triggerInput > 0; bool trigger = (mPreviousTrigger <= 0) && triggerInput > 0;
mPreviousTrigger = triggerInput; mPreviousTrigger = triggerInput;
mWrapper->mControlsIterator.reset(mInBuf + ControlOffset(this));
Wrapper::setParams(mWrapper,
mWrapper->params(), mWrapper->mControlsIterator); // forward on inputs N + audio inputs as params
mWrapper->params().constrainParameterValues();
auto& sharedState = mWrapper->state(); auto& sharedState = mWrapper->state();
mWrapper->mDone = sharedState->mJobDone; mWrapper->mDone = sharedState->mJobDone;
if(trigger) if(trigger)
{ {
mWrapper->mControlsIterator.reset(mInBuf + ControlOffset(this));
Wrapper::setParams(mWrapper,
mWrapper->params(), mWrapper->mControlsIterator); // forward on inputs N + audio inputs as params
mWrapper->params().constrainParameterValues();
SharedState* statePtr = static_cast<SharedState*>(mWorld->ft->fRTAlloc(mWorld, sizeof(SharedState))); SharedState* statePtr = static_cast<SharedState*>(mWorld->ft->fRTAlloc(mWorld, sizeof(SharedState)));
statePtr = new (statePtr) SharedState(sharedState); statePtr = new (statePtr) SharedState(sharedState);
mFifoMsg.Set(mWorld, initNRTJob, nullptr, statePtr); mFifoMsg.Set(mWorld, initNRTJob, nullptr, statePtr);

Loading…
Cancel
Save