mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-12 02:40:00 +01:00
Save & load GenericStrreamSource
This commit is contained in:
@@ -32,6 +32,7 @@
|
|||||||
#include "DeviceSource.h"
|
#include "DeviceSource.h"
|
||||||
#include "NetworkSource.h"
|
#include "NetworkSource.h"
|
||||||
#include "MultiFileSource.h"
|
#include "MultiFileSource.h"
|
||||||
|
#include "StreamSource.h"
|
||||||
#include "Session.h"
|
#include "Session.h"
|
||||||
#include "ImageShader.h"
|
#include "ImageShader.h"
|
||||||
#include "ImageProcessingShader.h"
|
#include "ImageProcessingShader.h"
|
||||||
@@ -346,6 +347,9 @@ void SessionLoader::load(XMLElement *sessionNode)
|
|||||||
else if ( std::string(pType) == "MultiFileSource") {
|
else if ( std::string(pType) == "MultiFileSource") {
|
||||||
load_source = new MultiFileSource(id_xml_);
|
load_source = new MultiFileSource(id_xml_);
|
||||||
}
|
}
|
||||||
|
else if ( std::string(pType) == "GenericStreamSource") {
|
||||||
|
load_source = new GenericStreamSource(id_xml_);
|
||||||
|
}
|
||||||
|
|
||||||
// skip failed (including clones)
|
// skip failed (including clones)
|
||||||
if (!load_source)
|
if (!load_source)
|
||||||
@@ -471,6 +475,9 @@ Source *SessionLoader::createSource(tinyxml2::XMLElement *sourceNode, Mode mode)
|
|||||||
else if ( std::string(pType) == "MultiFileSource") {
|
else if ( std::string(pType) == "MultiFileSource") {
|
||||||
load_source = new MultiFileSource(id__);
|
load_source = new MultiFileSource(id__);
|
||||||
}
|
}
|
||||||
|
else if ( std::string(pType) == "GenericStreamSource") {
|
||||||
|
load_source = new GenericStreamSource(id__);
|
||||||
|
}
|
||||||
else if ( std::string(pType) == "CloneSource") {
|
else if ( std::string(pType) == "CloneSource") {
|
||||||
// clone from given origin
|
// clone from given origin
|
||||||
XMLElement* originNode = xmlCurrent_->FirstChildElement("origin");
|
XMLElement* originNode = xmlCurrent_->FirstChildElement("origin");
|
||||||
@@ -1063,4 +1070,14 @@ void SessionLoader::visit (MultiFileSource& s)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SessionLoader::visit (GenericStreamSource& s)
|
||||||
|
{
|
||||||
|
XMLElement* desc = xmlCurrent_->FirstChildElement("Description");
|
||||||
|
|
||||||
|
if (desc) {
|
||||||
|
const char * text = desc->GetText();
|
||||||
|
if (text)
|
||||||
|
s.setDescription(text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ public:
|
|||||||
void visit (DeviceSource& s) override;
|
void visit (DeviceSource& s) override;
|
||||||
void visit (NetworkSource& s) override;
|
void visit (NetworkSource& s) override;
|
||||||
void visit (MultiFileSource& s) override;
|
void visit (MultiFileSource& s) override;
|
||||||
|
void visit (GenericStreamSource& s) override;
|
||||||
|
|
||||||
static void XMLToNode(const tinyxml2::XMLElement *xml, Node &n);
|
static void XMLToNode(const tinyxml2::XMLElement *xml, Node &n);
|
||||||
static void XMLToSourcecore(tinyxml2::XMLElement *xml, SourceCore &s);
|
static void XMLToSourcecore(tinyxml2::XMLElement *xml, SourceCore &s);
|
||||||
|
|||||||
@@ -703,6 +703,19 @@ void SessionVisitor::visit (MultiFileSource& s)
|
|||||||
xmlCurrent_->InsertEndChild(sequence);
|
xmlCurrent_->InsertEndChild(sequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SessionVisitor::visit (GenericStreamSource& s)
|
||||||
|
{
|
||||||
|
xmlCurrent_->SetAttribute("type", "GenericStreamSource");
|
||||||
|
|
||||||
|
XMLElement *desc = xmlDoc_->NewElement("Description");
|
||||||
|
|
||||||
|
XMLText *text = xmlDoc_->NewText( s.description().c_str() );
|
||||||
|
desc->InsertEndChild( text );
|
||||||
|
|
||||||
|
xmlCurrent_->InsertEndChild(desc);
|
||||||
|
}
|
||||||
|
|
||||||
std::string SessionVisitor::getClipboard(const SourceList &list)
|
std::string SessionVisitor::getClipboard(const SourceList &list)
|
||||||
{
|
{
|
||||||
std::string x = "";
|
std::string x = "";
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ public:
|
|||||||
void visit (NetworkSource& s) override;
|
void visit (NetworkSource& s) override;
|
||||||
void visit (MixingGroup& s) override;
|
void visit (MixingGroup& s) override;
|
||||||
void visit (MultiFileSource& s) override;
|
void visit (MultiFileSource& s) override;
|
||||||
|
void visit (GenericStreamSource& s) override;
|
||||||
|
|
||||||
static tinyxml2::XMLElement *NodeToXML(const Node &n, tinyxml2::XMLDocument *doc);
|
static tinyxml2::XMLElement *NodeToXML(const Node &n, tinyxml2::XMLDocument *doc);
|
||||||
static tinyxml2::XMLElement *ImageToXML(const FrameBufferImage *img, tinyxml2::XMLDocument *doc);
|
static tinyxml2::XMLElement *ImageToXML(const FrameBufferImage *img, tinyxml2::XMLDocument *doc);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
#include "StreamSource.h"
|
#include "StreamSource.h"
|
||||||
|
|
||||||
|
|
||||||
GenericStreamSource::GenericStreamSource() : StreamSource()
|
GenericStreamSource::GenericStreamSource(uint64_t id) : StreamSource(id)
|
||||||
{
|
{
|
||||||
// create stream
|
// create stream
|
||||||
stream_ = new Stream;
|
stream_ = new Stream;
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ class GenericStreamSource : public StreamSource
|
|||||||
std::list<std::string> gst_elements_;
|
std::list<std::string> gst_elements_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GenericStreamSource();
|
GenericStreamSource(uint64_t id = 0);
|
||||||
|
|
||||||
// Source interface
|
// Source interface
|
||||||
void accept (Visitor& v) override;
|
void accept (Visitor& v) override;
|
||||||
|
|||||||
Reference in New Issue
Block a user