From b8e0d12a630eb7bf4a74c7c7641c9df8c7d24dc7 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 12 Apr 2019 00:19:24 +1000 Subject: [PATCH] moved files around, created new classes to be utilized later --- decoders/decoder.cpp | 6 + decoders/decoder.h | 11 ++ decoders/ffmpegdecoder.cpp | 6 + decoders/ffmpegdecoder.h | 11 ++ effects/effect.cpp | 190 +------------------------ nodes/nodemedia.cpp | 6 - nodes/nodes.h | 8 ++ nodes/{ => nodes}/nodeimageoutput.cpp | 0 nodes/{ => nodes}/nodeimageoutput.h | 0 nodes/nodes/nodemedia.cpp | 6 + nodes/{ => nodes}/nodemedia.h | 0 nodes/nodes/nodeshader.cpp | 191 ++++++++++++++++++++++++++ nodes/nodes/nodeshader.h | 12 ++ olive.pro | 15 +- 14 files changed, 265 insertions(+), 197 deletions(-) create mode 100644 decoders/decoder.cpp create mode 100644 decoders/decoder.h create mode 100644 decoders/ffmpegdecoder.cpp create mode 100644 decoders/ffmpegdecoder.h delete mode 100644 nodes/nodemedia.cpp create mode 100644 nodes/nodes.h rename nodes/{ => nodes}/nodeimageoutput.cpp (100%) rename nodes/{ => nodes}/nodeimageoutput.h (100%) create mode 100644 nodes/nodes/nodemedia.cpp rename nodes/{ => nodes}/nodemedia.h (100%) create mode 100644 nodes/nodes/nodeshader.cpp create mode 100644 nodes/nodes/nodeshader.h diff --git a/decoders/decoder.cpp b/decoders/decoder.cpp new file mode 100644 index 000000000..8de99a7b3 --- /dev/null +++ b/decoders/decoder.cpp @@ -0,0 +1,6 @@ +#include "decoder.h" + +Decoder::Decoder() +{ + +} diff --git a/decoders/decoder.h b/decoders/decoder.h new file mode 100644 index 000000000..8c2bd04d0 --- /dev/null +++ b/decoders/decoder.h @@ -0,0 +1,11 @@ +#ifndef DECODER_H +#define DECODER_H + + +class Decoder +{ +public: + Decoder(); +}; + +#endif // DECODER_H \ No newline at end of file diff --git a/decoders/ffmpegdecoder.cpp b/decoders/ffmpegdecoder.cpp new file mode 100644 index 000000000..26cf3c579 --- /dev/null +++ b/decoders/ffmpegdecoder.cpp @@ -0,0 +1,6 @@ +#include "ffmpegdecoder.h" + +FFmpegDecoder::FFmpegDecoder() +{ + +} diff --git a/decoders/ffmpegdecoder.h b/decoders/ffmpegdecoder.h new file mode 100644 index 000000000..52f614f40 --- /dev/null +++ b/decoders/ffmpegdecoder.h @@ -0,0 +1,11 @@ +#ifndef FFMPEGDECODER_H +#define FFMPEGDECODER_H + + +class FFmpegDecoder +{ +public: + FFmpegDecoder(); +}; + +#endif // FFMPEGDECODER_H \ No newline at end of file diff --git a/effects/effect.cpp b/effects/effect.cpp index 478c7c2f3..49b6f8201 100644 --- a/effects/effect.cpp +++ b/effects/effect.cpp @@ -54,6 +54,7 @@ #include "undo/undostack.h" #include "rendering/shadergenerators.h" #include "global/timing.h" +#include "nodes/nodes.h" #include "effects/internal/transformeffect.h" #include "effects/internal/texteffect.h" @@ -93,7 +94,7 @@ EffectPtr Effect::Create(Clip* c, const EffectMeta* em) { } } else if (!em->filename.isEmpty()) { // load effect from file - return std::make_shared(c, em); + return std::make_shared(c, em); } else { qCritical() << "Invalid effect data"; QMessageBox::critical(olive::MainWindow, @@ -126,192 +127,7 @@ Effect::Effect(Clip* c, const EffectMeta *em) : enabled_(true), expanded_(true), texture_ctx(nullptr) -{ - if (em != nullptr) { - // set up UI from effect file - name = em->name; - - if (!em->filename.isEmpty() && em->internal == -1) { - QFile effect_file(em->filename); - if (effect_file.open(QFile::ReadOnly)) { - QXmlStreamReader reader(&effect_file); - - while (!reader.atEnd()) { - if (reader.name() == "field" && reader.isStartElement()) { - int type = olive::nodes::kInvalid; - QString id; - QString name; - - // get field type - const QXmlStreamAttributes& attributes = reader.attributes(); - for (int i=0;ifilename << "- ID, type, and name cannot be empty."; - } else { - EffectRow* field = nullptr; - - switch (type) { - case olive::nodes::kFloat: - { - - DoubleInput* double_field = new DoubleInput(this, id, name); - - for (int i=0;iSetDefault(attr.value().toDouble()); - } else if (attr.name() == "min") { - double_field->SetMinimum(attr.value().toDouble()); - } else if (attr.name() == "max") { - double_field->SetMaximum(attr.value().toDouble()); - } - } - - field = double_field; - } - break; - case olive::nodes::kColor: - { - QColor color; - - field = new ColorInput(this, id, name); - - for (int i=0;iSetValueAt(0, color); - } - break; - case olive::nodes::kString: - field = new StringInput(this, id, name); - for (int i=0;iSetValueAt(0, attr.value().toString()); - } - } - break; - case olive::nodes::kBoolean: - field = new BoolInput(this, id, name); - for (int i=0;iSetValueAt(0, attr.value() == "1"); - } - } - break; - case olive::nodes::kCombo: - { - ComboInput* combo_field = new ComboInput(this, id, name); - int combo_default_index = 0; - for (int i=0;iAddItem(reader.text().toString(), combo_item_count); - combo_item_count++; - } - } - combo_field->SetValueAt(0, combo_default_index); - field = combo_field; - } - break; - case olive::nodes::kFont: - field = new FontInput(this, id, name); - for (int i=0;iSetValueAt(0, attr.value().toString()); - } - } - break; - case olive::nodes::kFile: - field = new FileInput(this, id, name); - for (int i=0;iSetValueAt(0, attr.value().toString()); - } - } - break; - } - } - } else if (reader.name() == "shader" && reader.isStartElement()) { - SetFlags(Flags() | ShaderFlag); - const QXmlStreamAttributes& attributes = reader.attributes(); - for (int i=0;ifilename; - enable_superimpose = false; - } - break; - } - } - }*/ - reader.readNext(); - } - - effect_file.close(); - } else { - qCritical() << "Failed to open effect file" << em->filename; - } - } - } +{ } Effect::~Effect() { diff --git a/nodes/nodemedia.cpp b/nodes/nodemedia.cpp deleted file mode 100644 index c844a1c59..000000000 --- a/nodes/nodemedia.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "medianode.h" - -MediaNode::MediaNode() -{ - -} diff --git a/nodes/nodes.h b/nodes/nodes.h new file mode 100644 index 000000000..e3135d7e1 --- /dev/null +++ b/nodes/nodes.h @@ -0,0 +1,8 @@ +#ifndef NODES_H +#define NODES_H + +#include "nodes/nodemedia.h" +#include "nodes/nodeimageoutput.h" +#include "nodes/nodeshader.h" + +#endif // NODES_H diff --git a/nodes/nodeimageoutput.cpp b/nodes/nodes/nodeimageoutput.cpp similarity index 100% rename from nodes/nodeimageoutput.cpp rename to nodes/nodes/nodeimageoutput.cpp diff --git a/nodes/nodeimageoutput.h b/nodes/nodes/nodeimageoutput.h similarity index 100% rename from nodes/nodeimageoutput.h rename to nodes/nodes/nodeimageoutput.h diff --git a/nodes/nodes/nodemedia.cpp b/nodes/nodes/nodemedia.cpp new file mode 100644 index 000000000..7e62aaaae --- /dev/null +++ b/nodes/nodes/nodemedia.cpp @@ -0,0 +1,6 @@ +#include "nodemedia.h" + +NodeMedia::NodeMedia() +{ + +} diff --git a/nodes/nodemedia.h b/nodes/nodes/nodemedia.h similarity index 100% rename from nodes/nodemedia.h rename to nodes/nodes/nodemedia.h diff --git a/nodes/nodes/nodeshader.cpp b/nodes/nodes/nodeshader.cpp new file mode 100644 index 000000000..c5118fe87 --- /dev/null +++ b/nodes/nodes/nodeshader.cpp @@ -0,0 +1,191 @@ +#include "nodeshader.h" + +NodeShader::NodeShader(Clip* c, const EffectMeta *em) : + Effect(c, em) +{ + if (em != nullptr) { + // set up UI from effect file + name = em->name; + + if (!em->filename.isEmpty() && em->internal == -1) { + QFile effect_file(em->filename); + if (effect_file.open(QFile::ReadOnly)) { + QXmlStreamReader reader(&effect_file); + + while (!reader.atEnd()) { + if (reader.name() == "field" && reader.isStartElement()) { + int type = olive::nodes::kInvalid; + QString id; + QString name; + + // get field type + const QXmlStreamAttributes& attributes = reader.attributes(); + for (int i=0;ifilename << "- ID, type, and name cannot be empty."; + } else { + EffectRow* field = nullptr; + + switch (type) { + case olive::nodes::kFloat: + { + + DoubleInput* double_field = new DoubleInput(this, id, name); + + for (int i=0;iSetDefault(attr.value().toDouble()); + } else if (attr.name() == "min") { + double_field->SetMinimum(attr.value().toDouble()); + } else if (attr.name() == "max") { + double_field->SetMaximum(attr.value().toDouble()); + } + } + + field = double_field; + } + break; + case olive::nodes::kColor: + { + QColor color; + + field = new ColorInput(this, id, name); + + for (int i=0;iSetValueAt(0, color); + } + break; + case olive::nodes::kString: + field = new StringInput(this, id, name); + for (int i=0;iSetValueAt(0, attr.value().toString()); + } + } + break; + case olive::nodes::kBoolean: + field = new BoolInput(this, id, name); + for (int i=0;iSetValueAt(0, attr.value() == "1"); + } + } + break; + case olive::nodes::kCombo: + { + ComboInput* combo_field = new ComboInput(this, id, name); + int combo_default_index = 0; + for (int i=0;iAddItem(reader.text().toString(), combo_item_count); + combo_item_count++; + } + } + combo_field->SetValueAt(0, combo_default_index); + field = combo_field; + } + break; + case olive::nodes::kFont: + field = new FontInput(this, id, name); + for (int i=0;iSetValueAt(0, attr.value().toString()); + } + } + break; + case olive::nodes::kFile: + field = new FileInput(this, id, name); + for (int i=0;iSetValueAt(0, attr.value().toString()); + } + } + break; + } + } + } else if (reader.name() == "shader" && reader.isStartElement()) { + SetFlags(Flags() | ShaderFlag); + const QXmlStreamAttributes& attributes = reader.attributes(); + for (int i=0;ifilename; + enable_superimpose = false; + } + break; + } + } + }*/ + reader.readNext(); + } + + effect_file.close(); + } else { + qCritical() << "Failed to open effect file" << em->filename; + } + } + } +} diff --git a/nodes/nodes/nodeshader.h b/nodes/nodes/nodeshader.h new file mode 100644 index 000000000..298e495cc --- /dev/null +++ b/nodes/nodes/nodeshader.h @@ -0,0 +1,12 @@ +#ifndef NODESHADER_H +#define NODESHADER_H + +#include "effects/effect.h" + +class NodeShader : public Effect { + Q_OBJECT +public: + NodeShader(Clip *c, const EffectMeta *em); +}; + +#endif // NODESHADER_H diff --git a/olive.pro b/olive.pro index cf23b00cb..f737408d5 100644 --- a/olive.pro +++ b/olive.pro @@ -203,8 +203,11 @@ SOURCES += \ nodes/inputs/fileinput.cpp \ nodes/widgets/buttonwidget.cpp \ nodes/nodegraph.cpp \ - nodes/nodemedia.cpp \ - nodes/nodeimageoutput.cpp + nodes/nodes/nodeimageoutput.cpp \ + nodes/nodes/nodemedia.cpp \ + nodes/nodes/nodeshader.cpp \ + decoders/ffmpegdecoder.cpp \ + decoders/decoder.cpp HEADERS += \ ui/mainwindow.h \ @@ -363,8 +366,12 @@ HEADERS += \ nodes/inputs/fileinput.h \ nodes/widgets/buttonwidget.h \ nodes/nodegraph.h \ - nodes/nodemedia.h \ - nodes/nodeimageoutput.h + nodes/nodes/nodemedia.h \ + nodes/nodes/nodeimageoutput.h \ + nodes/nodes/nodeshader.h \ + nodes/nodes.h \ + decoders/ffmpegdecoder.h \ + decoders/decoder.h FORMS +=