void GuiAppInstance::goToNextKeyframe() { ///runs only in the main thread assert( QThread::currentThread() == qApp->thread() ); _imp->timelineKeyframes.sort(); TimeLinePtr timeline = getProject()->getTimeLine(); SequenceTime currentFrame = timeline->currentFrame(); std::list<SequenceTime>::iterator upperBound = std::upper_bound(_imp->timelineKeyframes.begin(), _imp->timelineKeyframes.end(), currentFrame); if ( upperBound != _imp->timelineKeyframes.end() ) { timeline->seekFrame(*upperBound, true, OutputEffectInstancePtr(), eTimelineChangeReasonPlaybackSeek); } }
TimeValue ViewerNode::getTimelineCurrentTime() const { TimeLinePtr timeline = getTimeline(); return TimeValue(timeline->currentFrame()); }