began merging footage and viewer

This commit is contained in:
itsmattkc
2021-04-05 16:41:37 +10:00
parent da4a93f1a5
commit 4066fcba90
26 changed files with 162 additions and 419 deletions
+9 -5
View File
@@ -116,7 +116,11 @@ void Node::Load(QXmlStreamReader *reader, XMLNodeData& xml_node_data, uint versi
}
}
} else if (reader->name() == QStringLiteral("custom")) {
LoadInternal(reader, xml_node_data, version, cancelled);
while (XMLReadNextStartElement(reader)) {
if (!LoadCustom(reader, xml_node_data, version, cancelled)) {
reader->skipCurrentElement();
}
}
} else if (reader->name() == QStringLiteral("connections")) {
// Load connections
while (XMLReadNextStartElement(reader)) {
@@ -197,7 +201,7 @@ void Node::Save(QXmlStreamWriter *writer) const
writer->writeEndElement(); // connections
writer->writeStartElement(QStringLiteral("custom"));
SaveInternal(writer);
SaveCustom(writer);
writer->writeEndElement(); // custom
}
@@ -1376,12 +1380,12 @@ void Node::IgnoreHashingFrom(const QString &input_id)
ignore_when_hashing_.append(input_id);
}
void Node::LoadInternal(QXmlStreamReader *reader, XMLNodeData &, uint, const QAtomicInt*)
bool Node::LoadCustom(QXmlStreamReader *, XMLNodeData &, uint, const QAtomicInt*)
{
reader->skipCurrentElement();
return false;
}
void Node::SaveInternal(QXmlStreamWriter *) const
void Node::SaveCustom(QXmlStreamWriter *) const
{
}
+2 -2
View File
@@ -808,9 +808,9 @@ protected:
void IgnoreHashingFrom(const QString& input_id);
virtual void LoadInternal(QXmlStreamReader* reader, XMLNodeData& xml_node_data, uint version, const QAtomicInt* cancelled);
virtual bool LoadCustom(QXmlStreamReader* reader, XMLNodeData& xml_node_data, uint version, const QAtomicInt* cancelled);
virtual void SaveInternal(QXmlStreamWriter* writer) const;
virtual void SaveCustom(QXmlStreamWriter* writer) const;
enum GizmoScaleHandles {
kGizmoScaleTopLeft,
+9 -8
View File
@@ -29,6 +29,8 @@
namespace olive {
#define super Node
const double Track::kTrackHeightDefault = 3.0;
const double Track::kTrackHeightMinimum = 1.5;
const double Track::kTrackHeightInterval = 0.5;
@@ -143,18 +145,17 @@ void Track::SetTrackHeight(const double &height)
emit TrackHeightChangedInPixels(GetTrackHeightInPixels());
}
void Track::LoadInternal(QXmlStreamReader *reader, XMLNodeData &, uint , const QAtomicInt* )
bool Track::LoadCustom(QXmlStreamReader *reader, XMLNodeData &xml_node_data, uint version, const QAtomicInt* cancelled)
{
while (XMLReadNextStartElement(reader)) {
if (reader->name() == QStringLiteral("height")) {
SetTrackHeight(reader->readElementText().toDouble());
} else {
reader->skipCurrentElement();
}
if (reader->name() == QStringLiteral("height")) {
SetTrackHeight(reader->readElementText().toDouble());
return true;
} else {
return super::LoadCustom(reader, xml_node_data, version, cancelled);
}
}
void Track::SaveInternal(QXmlStreamWriter *writer) const
void Track::SaveCustom(QXmlStreamWriter *writer) const
{
writer->writeTextElement(QStringLiteral("height"), QString::number(GetTrackHeight()));
}
+2 -2
View File
@@ -335,9 +335,9 @@ signals:
void BlocksRefreshed();
protected:
virtual void LoadInternal(QXmlStreamReader* reader, XMLNodeData& xml_node_data, uint version, const QAtomicInt* cancelled) override;
virtual bool LoadCustom(QXmlStreamReader* reader, XMLNodeData& xml_node_data, uint version, const QAtomicInt* cancelled) override;
virtual void SaveInternal(QXmlStreamWriter* writer) const override;
virtual void SaveCustom(QXmlStreamWriter* writer) const override;
virtual void InputConnectedEvent(const QString& input, int element, const NodeOutput& output) override;
+18
View File
@@ -354,4 +354,22 @@ void ViewerOutput::set_parameters_from_footage(const QVector<Footage *> footage)
}
}
bool ViewerOutput::LoadCustom(QXmlStreamReader *reader, XMLNodeData &xml_node_data, uint version, const QAtomicInt *cancelled)
{
if (reader->name() == QStringLiteral("points")) {
timeline_points_.Load(reader);
return true;
} else {
return LoadCustom(reader, xml_node_data, version, cancelled);
}
}
void ViewerOutput::SaveCustom(QXmlStreamWriter *writer) const
{
// Write TimelinePoints
writer->writeStartElement(QStringLiteral("points"));
timeline_points_.Save(writer);
writer->writeEndElement(); // points
}
}
+14 -1
View File
@@ -24,15 +24,17 @@
#include "common/rational.h"
#include "node/node.h"
#include "node/output/track/track.h"
#include "project/item/footage/footage.h"
#include "render/audioparams.h"
#include "render/audioplaybackcache.h"
#include "render/framehashcache.h"
#include "render/videoparams.h"
#include "render/videoparams.h"
#include "timeline/timelinepoints.h"
namespace olive {
class Footage;
/**
* @brief A bridge between a node system and a ViewerPanel
*
@@ -97,6 +99,11 @@ public:
return &audio_playback_cache_;
}
TimelinePoints* GetTimelinePoints()
{
return &timeline_points_;
}
virtual void Retranslate() override;
virtual void BeginOperation() override;
@@ -143,6 +150,10 @@ protected:
virtual void InputValueChangedEvent(const QString& input, int element) override;
virtual bool LoadCustom(QXmlStreamReader* reader, XMLNodeData &xml_node_data, uint version, const QAtomicInt* cancelled) override;
virtual void SaveCustom(QXmlStreamWriter *writer) const override;
private:
rational last_length_;
@@ -154,6 +165,8 @@ private:
VideoParams cached_video_params_;
TimelinePoints timeline_points_;
};
}