moved input signals to graph to prevent signal desyncs

This commit is contained in:
itsmattkc
2021-01-14 10:32:42 +11:00
parent ad0cefecaf
commit b83677e319
8 changed files with 74 additions and 30 deletions
+9 -3
View File
@@ -100,9 +100,8 @@ TimeRange Track::InputTimeAdjustment(NodeInput *input, int element, const TimeRa
{
if (input == block_input_ && element >= 0) {
int cache_index = GetCacheIndexFromArrayIndex(element);
const rational& block_in = blocks_.at(cache_index)->in();
return input_time - block_in;
return TransformRangeForBlock(blocks_.at(cache_index), input_time);
}
return Node::InputTimeAdjustment(input, element, input_time);
@@ -120,6 +119,11 @@ TimeRange Track::OutputTimeAdjustment(NodeInput *input, int element, const TimeR
return Node::OutputTimeAdjustment(input, element, input_time);
}
TimeRange Track::TransformRangeForBlock(Block *block, const TimeRange &range)
{
return range - block->in();
}
const double &Track::GetTrackHeight() const
{
return track_height_;
@@ -229,7 +233,9 @@ Block *Track::BlockAtTime(const rational &time) const
return nullptr;
}
foreach (Block* block, blocks_) {
for (int i=0; i<blocks_.size(); i++) {
Block* block = blocks_.at(i);
if (block
&& block->in() <= time
&& block->out() > time) {