lastUserDragTime returns time as a boolean?


I’m experiencing instabilities with the tracktion playhead and after some digging I found that lastUserDragTime in TransportState is of type CachedValue <bool>. This seems strange because this variable is used to store time.

e.g. transportState->lastUserDragTime = juce::Time::getMillisecondCounter();

Could someone from Tracktion team take a look at this?


Good spot. Can I ask what instabilities you were seeing?
Should be fixed here:

1 Like

Thanks for the quick fix!

I was calling TransportControl::setPosition to manually change the position. I was doing this under the assumption that this would trigger one valuetree callback synchronously. I set up my valuetree callbacks to discard this single callback to avoid an infinite loop in my application. This was working properly until I updated to the latest tracktion develop.

Before your fix, I think this code juce::Time::getMillisecondCounter() - transportState->lastUserDragTime > 200) was never discarding transportState->updatePositionFromPlayhead (currentTime); and therefore incorrectly calling updatePositionFromPlayhead.