nodes are given a time range
This commit is contained in:
@@ -94,11 +94,12 @@ const rational &TimelineOutput::Timebase()
|
||||
return timebase_;
|
||||
}
|
||||
|
||||
QVariant TimelineOutput::Value(NodeOutput *output, const rational &time)
|
||||
QVariant TimelineOutput::Value(NodeOutput *output, const rational &in, const rational &out)
|
||||
{
|
||||
if (output == length_output_) {
|
||||
Q_UNUSED(time)
|
||||
Q_UNUSED(in)
|
||||
Q_UNUSED(out)
|
||||
|
||||
if (output == length_output_) {
|
||||
return QVariant::fromValue(length_);
|
||||
}
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ signals:
|
||||
void TrackRemoved(TrackOutput* track);
|
||||
|
||||
protected:
|
||||
virtual QVariant Value(NodeOutput* output, const rational& time) override;
|
||||
virtual QVariant Value(NodeOutput* output, const rational &in, const rational &out) override;
|
||||
|
||||
private:
|
||||
QVector<NodeInput*> track_inputs_;
|
||||
|
||||
@@ -176,7 +176,7 @@ void TrackList::TrackConnectionRemoved(NodeEdgePtr edge)
|
||||
return;
|
||||
}
|
||||
|
||||
DetachTrack(Node::ValueToPtr<TrackOutput>(edge->output()->get_value(0)));
|
||||
DetachTrack(Node::ValueToPtr<TrackOutput>(edge->output()->get_value(0, 0)));
|
||||
}
|
||||
|
||||
void TrackList::TrackEdgeAdded(NodeEdgePtr edge)
|
||||
@@ -186,7 +186,7 @@ void TrackList::TrackEdgeAdded(NodeEdgePtr edge)
|
||||
|
||||
// If this edge pertains to the track's track input, all the tracks just added need attaching
|
||||
if (edge->input() == track->track_input()) {
|
||||
TrackOutput* added_track = Node::ValueToPtr<TrackOutput>(edge->output()->get_value(0));
|
||||
TrackOutput* added_track = Node::ValueToPtr<TrackOutput>(edge->output()->get_value(0, 0));
|
||||
|
||||
AttachTrack(added_track);
|
||||
}
|
||||
@@ -199,7 +199,7 @@ void TrackList::TrackEdgeRemoved(NodeEdgePtr edge)
|
||||
|
||||
// If this edge pertains to the track's track input, all the tracks just added need attaching
|
||||
if (edge->input() == track->track_input()) {
|
||||
TrackOutput* added_track = Node::ValueToPtr<TrackOutput>(edge->output()->get_value(0));
|
||||
TrackOutput* added_track = Node::ValueToPtr<TrackOutput>(edge->output()->get_value(0, 0));
|
||||
|
||||
DetachTrack(added_track);
|
||||
}
|
||||
|
||||
@@ -192,25 +192,32 @@ void TrackOutput::InvalidateCache(const rational &start_range, const rational &e
|
||||
}
|
||||
}
|
||||
|
||||
QVariant TrackOutput::Value(NodeOutput *output, const rational &time)
|
||||
QVariant TrackOutput::Value(NodeOutput *output, const rational &in, const rational &out)
|
||||
{
|
||||
if (output == track_output_) {
|
||||
// Set track output correctly
|
||||
return PtrToValue(this);
|
||||
} else if (output == texture_output()) {
|
||||
ValidateCurrentBlock(time);
|
||||
ValidateCurrentBlock(in);
|
||||
|
||||
if (current_block_ != this) {
|
||||
// At this point, we must have found the correct block so we use its texture output to produce the image
|
||||
return current_block_->texture_output()->get_value(time);
|
||||
return current_block_->texture_output()->get_value(in, out);
|
||||
}
|
||||
|
||||
// No texture is valid
|
||||
return 0;
|
||||
} else if (output == samples_output()) {
|
||||
ValidateCurrentBlock(in);
|
||||
|
||||
if (current_block_ != this) {
|
||||
// FIXME: String together samples from blocks in this range
|
||||
qDebug() << "FIXME: Implement this";
|
||||
}
|
||||
}
|
||||
|
||||
// Run default node processing
|
||||
return Block::Value(output, time);
|
||||
return Block::Value(output, in, out);
|
||||
}
|
||||
|
||||
void TrackOutput::InsertBlockBetweenBlocks(Block *block, Block *before, Block *after)
|
||||
|
||||
@@ -146,7 +146,7 @@ signals:
|
||||
void BlockRemoved(Block* block);
|
||||
|
||||
protected:
|
||||
virtual QVariant Value(NodeOutput* output, const rational& time) override;
|
||||
virtual QVariant Value(NodeOutput* output, const rational& in, const rational &out) override;
|
||||
|
||||
private:
|
||||
/**
|
||||
|
||||
@@ -126,10 +126,11 @@ rational ViewerOutput::Length()
|
||||
return length_input_->get_value(0).value<rational>();
|
||||
}
|
||||
|
||||
QVariant ViewerOutput::Value(NodeOutput *output, const rational &time)
|
||||
QVariant ViewerOutput::Value(NodeOutput *output, const rational &in, const rational &out)
|
||||
{
|
||||
Q_UNUSED(output)
|
||||
Q_UNUSED(time)
|
||||
Q_UNUSED(in)
|
||||
Q_UNUSED(out)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ signals:
|
||||
void SizeChanged(int width, int height);
|
||||
|
||||
protected:
|
||||
virtual QVariant Value(NodeOutput* output, const rational& time) override;
|
||||
virtual QVariant Value(NodeOutput* output, const rational &in, const rational &out) override;
|
||||
|
||||
private:
|
||||
NodeInput* texture_input_;
|
||||
|
||||
Reference in New Issue
Block a user