#pragma once #include "export-symbol-helper.hpp" #include #include #include #include #include namespace advss { class Macro; class MacroRef { public: MacroRef(){}; EXPORT MacroRef(std::string name); EXPORT void operator=(const QString &); EXPORT void operator=(const std::shared_ptr &); EXPORT void Save(obs_data_t *obj) const; EXPORT void Load(obs_data_t *obj); void PostLoad(); EXPORT std::shared_ptr GetMacro() const; EXPORT std::string Name() const; private: std::string _postLoadName; std::weak_ptr _macro; }; EXPORT void SaveMacroList(obs_data_t *obj, const std::vector ¯os, const std::string &name = "macros"); EXPORT void LoadMacroList(obs_data_t *obj, std::vector ¯os, const std::string &name = "macros"); } // namespace advss