Files
vimix/SessionCreator.h
brunoherbelin 84cd772644 Added meta information in session file XML, for quick access to file
info (SessionCreator::info), displayed in the user interface (list of
sessions in quick access).
2020-07-04 10:18:26 +02:00

57 lines
1.5 KiB
C++

#ifndef SESSIONCREATOR_H
#define SESSIONCREATOR_H
#include "Visitor.h"
#include "tinyxml2Toolkit.h"
class Session;
class SessionCreator : public Visitor {
tinyxml2::XMLDocument *xmlDoc_;
tinyxml2::XMLElement *xmlCurrent_;
Session *session_;
void loadSession(tinyxml2::XMLElement *sessionNode);
void loadConfig(tinyxml2::XMLElement *viewsNode);
public:
SessionCreator(Session *session = nullptr);
bool load(const std::string& filename);
inline Session *session() const { return session_; }
// Elements of Scene
void visit(Node& n) override;
void visit(Scene& n) override {}
void visit(Group& n) override {}
void visit(Switch& n) override {}
void visit(Primitive& n) override {}
void visit(Surface& n) override {}
void visit(ImageSurface& n) override {}
void visit(MediaSurface& n) override {}
void visit(FrameBufferSurface& n) override {}
void visit(LineStrip& n) override {}
void visit(LineSquare&) override {}
void visit(LineCircle& n) override {}
void visit(Mesh& n) override {}
// Elements with attributes
void visit(MediaPlayer& n) override;
void visit(Shader& n) override;
void visit(ImageShader& n) override;
void visit(ImageProcessingShader& n) override;
void visit (Source& s) override;
void visit (MediaSource& s) override;
void visit (SessionSource& s) override;
static std::string info(const std::string& filename);
static void XMLToNode(tinyxml2::XMLElement *xml, Node &n);
};
#endif // SESSIONCREATOR_H