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

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

@ -429,15 +429,15 @@ public:
bool trigger = (mPreviousTrigger <= 0) && triggerInput > 0; bool trigger = (mPreviousTrigger <= 0) && triggerInput > 0;
mPreviousTrigger = triggerInput; mPreviousTrigger = triggerInput;
auto& sharedState = mWrapper->state();
mWrapper->mDone = sharedState->mJobDone;
if(trigger)
{
mWrapper->mControlsIterator.reset(mInBuf + ControlOffset(this)); mWrapper->mControlsIterator.reset(mInBuf + ControlOffset(this));
Wrapper::setParams(mWrapper, Wrapper::setParams(mWrapper,
mWrapper->params(), mWrapper->mControlsIterator); // forward on inputs N + audio inputs as params mWrapper->params(), mWrapper->mControlsIterator); // forward on inputs N + audio inputs as params
mWrapper->params().constrainParameterValues(); mWrapper->params().constrainParameterValues();
auto& sharedState = mWrapper->state();
mWrapper->mDone = sharedState->mJobDone;
if(trigger)
{
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