make nodes more const friendly and prepare their functions for stateless work
Since the nodes won't be holding any rendering data themselves in this system, we may as well enforce some level of non-write access by setting all the functions to const. They were already const-friendly, they just weren't labelled as such.
This commit is contained in:
+12
-22
@@ -33,17 +33,17 @@ Block::Block() :
|
||||
AddParameter(buffer_output_);
|
||||
}
|
||||
|
||||
QString Block::Category()
|
||||
QString Block::Category() const
|
||||
{
|
||||
return tr("Block");
|
||||
}
|
||||
|
||||
const rational &Block::in()
|
||||
const rational &Block::in() const
|
||||
{
|
||||
return in_point_;
|
||||
}
|
||||
|
||||
const rational &Block::out()
|
||||
const rational &Block::out() const
|
||||
{
|
||||
return out_point_;
|
||||
}
|
||||
@@ -58,7 +58,7 @@ void Block::set_out(const rational &out)
|
||||
out_point_ = out;
|
||||
}
|
||||
|
||||
const rational& Block::length()
|
||||
const rational& Block::length() const
|
||||
{
|
||||
return length_;
|
||||
}
|
||||
@@ -109,27 +109,17 @@ void Block::set_next(Block *next)
|
||||
next_ = next;
|
||||
}
|
||||
|
||||
QVariant Block::Value(NodeOutput *output)
|
||||
{
|
||||
if (output == block_output_) {
|
||||
// Simply set the output value to a pointer to this Block
|
||||
return PtrToValue(this);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
NodeOutput *Block::buffer_output()
|
||||
NodeOutput *Block::buffer_output() const
|
||||
{
|
||||
return buffer_output_;
|
||||
}
|
||||
|
||||
NodeOutput *Block::block_output()
|
||||
NodeOutput *Block::block_output() const
|
||||
{
|
||||
return block_output_;
|
||||
}
|
||||
|
||||
const rational &Block::media_in()
|
||||
const rational &Block::media_in() const
|
||||
{
|
||||
return media_in_;
|
||||
}
|
||||
@@ -151,7 +141,7 @@ void Block::set_media_in(const rational &media_in)
|
||||
}
|
||||
}
|
||||
|
||||
const QString &Block::block_name()
|
||||
const QString &Block::block_name() const
|
||||
{
|
||||
return block_name_;
|
||||
}
|
||||
@@ -161,7 +151,7 @@ void Block::set_block_name(const QString &name)
|
||||
block_name_ = name;
|
||||
}
|
||||
|
||||
rational Block::SequenceToMediaTime(const rational &sequence_time)
|
||||
rational Block::SequenceToMediaTime(const rational &sequence_time) const
|
||||
{
|
||||
// These constants are not considered "values" per se, so we don't modify them
|
||||
if (sequence_time == RATIONAL_MIN || sequence_time == RATIONAL_MAX) {
|
||||
@@ -171,7 +161,7 @@ rational Block::SequenceToMediaTime(const rational &sequence_time)
|
||||
return sequence_time - in() + media_in();
|
||||
}
|
||||
|
||||
rational Block::MediaToSequenceTime(const rational &media_time)
|
||||
rational Block::MediaToSequenceTime(const rational &media_time) const
|
||||
{
|
||||
// These constants are not considered "values" per se, so we don't modify them
|
||||
if (media_time == RATIONAL_MIN || media_time == RATIONAL_MAX) {
|
||||
@@ -181,7 +171,7 @@ rational Block::MediaToSequenceTime(const rational &media_time)
|
||||
return media_time - media_in() + in();
|
||||
}
|
||||
|
||||
void Block::CopyParameters(Block *source, Block *dest)
|
||||
void Block::CopyParameters(const Block *source, Block *dest)
|
||||
{
|
||||
dest->set_block_name(source->block_name());
|
||||
dest->set_length(source->length());
|
||||
@@ -233,7 +223,7 @@ bool Block::HasLinks()
|
||||
return !linked_clips_.isEmpty();
|
||||
}
|
||||
|
||||
bool Block::IsBlock()
|
||||
bool Block::IsBlock() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
+13
-15
@@ -45,16 +45,16 @@ public:
|
||||
kTrack
|
||||
};
|
||||
|
||||
virtual Type type() = 0;
|
||||
virtual Type type() const = 0;
|
||||
|
||||
virtual QString Category() override;
|
||||
virtual QString Category() const override;
|
||||
|
||||
const rational& in();
|
||||
const rational& out();
|
||||
const rational& in() const;
|
||||
const rational& out() const;
|
||||
void set_in(const rational& in);
|
||||
void set_out(const rational& out);
|
||||
|
||||
const rational &length();
|
||||
const rational &length() const;
|
||||
void set_length(const rational &length);
|
||||
void set_length_and_media_in(const rational &length);
|
||||
|
||||
@@ -63,13 +63,13 @@ public:
|
||||
void set_previous(Block* previous);
|
||||
void set_next(Block* next);
|
||||
|
||||
NodeOutput* buffer_output();
|
||||
NodeOutput* block_output();
|
||||
NodeOutput* buffer_output() const;
|
||||
NodeOutput* block_output() const;
|
||||
|
||||
const rational& media_in();
|
||||
const rational& media_in() const;
|
||||
void set_media_in(const rational& media_in);
|
||||
|
||||
const QString& block_name();
|
||||
const QString& block_name() const;
|
||||
void set_block_name(const QString& name);
|
||||
|
||||
static void Link(Block* a, Block* b);
|
||||
@@ -79,9 +79,7 @@ public:
|
||||
const QVector<Block*>& linked_clips();
|
||||
bool HasLinks();
|
||||
|
||||
virtual bool IsBlock() override;
|
||||
|
||||
virtual QVariant Value(NodeOutput* output) override;
|
||||
virtual bool IsBlock() const override;
|
||||
|
||||
public slots:
|
||||
|
||||
@@ -96,11 +94,11 @@ signals:
|
||||
void LengthChanged(const rational& length);
|
||||
|
||||
protected:
|
||||
rational SequenceToMediaTime(const rational& sequence_time);
|
||||
rational SequenceToMediaTime(const rational& sequence_time) const;
|
||||
|
||||
rational MediaToSequenceTime(const rational& media_time);
|
||||
rational MediaToSequenceTime(const rational& media_time) const;
|
||||
|
||||
static void CopyParameters(Block* source, Block* dest);
|
||||
static void CopyParameters(const Block *source, Block* dest);
|
||||
|
||||
Block* previous_;
|
||||
Block* next_;
|
||||
|
||||
@@ -27,7 +27,7 @@ ClipBlock::ClipBlock()
|
||||
AddParameter(texture_input_);
|
||||
}
|
||||
|
||||
Node *ClipBlock::copy()
|
||||
Node *ClipBlock::copy() const
|
||||
{
|
||||
ClipBlock* c = new ClipBlock();
|
||||
|
||||
@@ -36,27 +36,27 @@ Node *ClipBlock::copy()
|
||||
return c;
|
||||
}
|
||||
|
||||
Block::Type ClipBlock::type()
|
||||
Block::Type ClipBlock::type() const
|
||||
{
|
||||
return kClip;
|
||||
}
|
||||
|
||||
QString ClipBlock::Name()
|
||||
QString ClipBlock::Name() const
|
||||
{
|
||||
return tr("Clip");
|
||||
}
|
||||
|
||||
QString ClipBlock::id()
|
||||
QString ClipBlock::id() const
|
||||
{
|
||||
return "org.olivevideoeditor.Olive.clip";
|
||||
}
|
||||
|
||||
QString ClipBlock::Description()
|
||||
QString ClipBlock::Description() const
|
||||
{
|
||||
return tr("A time-based node that represents a media source.");
|
||||
}
|
||||
|
||||
NodeInput *ClipBlock::texture_input()
|
||||
NodeInput *ClipBlock::texture_input() const
|
||||
{
|
||||
return texture_input_;
|
||||
}
|
||||
@@ -79,7 +79,7 @@ void ClipBlock::InvalidateCache(const rational &start_range, const rational &end
|
||||
}
|
||||
}
|
||||
|
||||
TimeRange ClipBlock::InputTimeAdjustment(NodeInput *input, const TimeRange &input_time)
|
||||
TimeRange ClipBlock::InputTimeAdjustment(NodeInput *input, const TimeRange &input_time) const
|
||||
{
|
||||
if (input == texture_input_) {
|
||||
return TimeRange(SequenceToMediaTime(input_time.in()), SequenceToMediaTime(input_time.out()));
|
||||
@@ -88,11 +88,8 @@ TimeRange ClipBlock::InputTimeAdjustment(NodeInput *input, const TimeRange &inpu
|
||||
return Block::InputTimeAdjustment(input, input_time);
|
||||
}
|
||||
|
||||
QVariant ClipBlock::Value(NodeOutput *output)
|
||||
NodeValueTable ClipBlock::Value(const NodeValueDatabase &value) const
|
||||
{
|
||||
if (output == buffer_output()) {
|
||||
// We just pass through the texture here, the renderer should have gotten the correct time from InputTimeAdjustment
|
||||
return texture_input()->value();
|
||||
}
|
||||
return Block::Value(output);
|
||||
// We just pass through the data here, the renderer should have gotten the correct time from InputTimeAdjustment
|
||||
return value.Merge();
|
||||
}
|
||||
|
||||
@@ -32,21 +32,21 @@ class ClipBlock : public Block
|
||||
public:
|
||||
ClipBlock();
|
||||
|
||||
virtual Node* copy() override;
|
||||
virtual Node* copy() const override;
|
||||
|
||||
virtual Type type() override;
|
||||
virtual Type type() const override;
|
||||
|
||||
virtual QString Name() override;
|
||||
virtual QString id() override;
|
||||
virtual QString Description() override;
|
||||
virtual QString Name() const override;
|
||||
virtual QString id() const override;
|
||||
virtual QString Description() const override;
|
||||
|
||||
NodeInput* texture_input();
|
||||
NodeInput* texture_input() const;
|
||||
|
||||
virtual void InvalidateCache(const rational &start_range, const rational &end_range, NodeInput *from = nullptr) override;
|
||||
|
||||
virtual TimeRange InputTimeAdjustment(NodeInput* input, const TimeRange& input_time) override;
|
||||
virtual TimeRange InputTimeAdjustment(NodeInput* input, const TimeRange& input_time) const override;
|
||||
|
||||
virtual QVariant Value(NodeOutput* output) override;
|
||||
virtual NodeValueTable Value(const NodeValueDatabase& value) const override;
|
||||
|
||||
private:
|
||||
NodeInput* texture_input_;
|
||||
|
||||
@@ -24,7 +24,7 @@ GapBlock::GapBlock()
|
||||
{
|
||||
}
|
||||
|
||||
Node *GapBlock::copy()
|
||||
Node *GapBlock::copy() const
|
||||
{
|
||||
GapBlock* c = new GapBlock();
|
||||
|
||||
@@ -33,22 +33,22 @@ Node *GapBlock::copy()
|
||||
return c;
|
||||
}
|
||||
|
||||
Block::Type GapBlock::type()
|
||||
Block::Type GapBlock::type() const
|
||||
{
|
||||
return kGap;
|
||||
}
|
||||
|
||||
QString GapBlock::Name()
|
||||
QString GapBlock::Name() const
|
||||
{
|
||||
return tr("Gap");
|
||||
}
|
||||
|
||||
QString GapBlock::id()
|
||||
QString GapBlock::id() const
|
||||
{
|
||||
return "org.olivevideoeditor.Olive.gap";
|
||||
}
|
||||
|
||||
QString GapBlock::Description()
|
||||
QString GapBlock::Description() const
|
||||
{
|
||||
return tr("A time-based node that represents an empty space.");
|
||||
}
|
||||
|
||||
@@ -32,13 +32,13 @@ class GapBlock : public Block
|
||||
public:
|
||||
GapBlock();
|
||||
|
||||
virtual Node * copy() override;
|
||||
virtual Node * copy() const override;
|
||||
|
||||
virtual Type type() override;
|
||||
virtual Type type() const override;
|
||||
|
||||
virtual QString Name() override;
|
||||
virtual QString id() override;
|
||||
virtual QString Description() override;
|
||||
virtual QString Name() const override;
|
||||
virtual QString id() const override;
|
||||
virtual QString Description() const override;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user