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);