From 073176a45d1b8d3458b31322e7da526fb0c7999a Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Tue, 19 Nov 2019 22:18:51 +0900 Subject: [PATCH] added function for returning a block at a time Assists with certain timeline-related functions. --- app/node/output/track/track.cpp | 13 +++++++++++++ app/node/output/track/track.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/app/node/output/track/track.cpp b/app/node/output/track/track.cpp index 9263a5261..43f3aabae 100644 --- a/app/node/output/track/track.cpp +++ b/app/node/output/track/track.cpp @@ -137,6 +137,19 @@ NodeOutput* TrackOutput::track_output() return track_output_; } +Block *TrackOutput::BlockContainingTime(const rational &time) +{ + foreach (Block* block, block_cache_) { + if (block->in() < time && block->out() > time) { + return block; + } else if (block->out() == time) { + break; + } + } + + return nullptr; +} + Block *TrackOutput::NearestBlockBefore(const rational &time) { foreach (Block* block, block_cache_) { diff --git a/app/node/output/track/track.h b/app/node/output/track/track.h index c6a4e3ab1..7b3205f7d 100644 --- a/app/node/output/track/track.h +++ b/app/node/output/track/track.h @@ -56,6 +56,8 @@ public: NodeOutput* track_output(); + Block* BlockContainingTime(const rational& time); + Block* NearestBlockBefore(const rational& time); Block* NearestBlockAfter(const rational& time);