#pragma once #include "FrameSource.h" #include "../shape/Shape.h" #include "../obj/WorldObject.h" #include "../obj/Camera.h" #include "../svg/SvgParser.h" #include "../txt/TextParser.h" #include "../lua/LuaParser.h" class FileParser { public: FileParser(); void parse(juce::String extension, std::unique_ptr, juce::Font); std::vector> nextFrame(); Vector2 nextSample(); bool isSample(); bool isActive(); void disable(); void enable(); std::shared_ptr getObject(); std::shared_ptr getCamera(); std::shared_ptr getSvg(); std::shared_ptr getText(); std::shared_ptr getLua(); private: bool active = true; bool sampleSource = false; juce::SpinLock lock; std::shared_ptr object; std::shared_ptr camera; std::shared_ptr svg; std::shared_ptr text; std::shared_ptr lua; juce::String fallbackLuaScript = "return { 0.0, 0.0 }"; };