mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-03-22 01:44:49 -05:00
44 lines
1.0 KiB
C++
44 lines
1.0 KiB
C++
#pragma once
|
|
#include "macro-segment.hpp"
|
|
#include "macro-ref.hpp"
|
|
|
|
namespace advss {
|
|
|
|
class EXPORT MacroAction : public MacroSegment {
|
|
public:
|
|
MacroAction(Macro *m, bool supportsVariableValue = false);
|
|
virtual ~MacroAction() = default;
|
|
virtual std::shared_ptr<MacroAction> Copy() const = 0;
|
|
|
|
virtual bool PerformAction() = 0;
|
|
virtual void LogAction() const;
|
|
|
|
virtual bool Save(obs_data_t *obj) const = 0;
|
|
virtual bool Load(obs_data_t *obj) = 0;
|
|
|
|
// Used to resolve variables before actions are added to action queues
|
|
virtual void ResolveVariablesToFixedValues();
|
|
|
|
static std::string_view GetDefaultID();
|
|
|
|
private:
|
|
};
|
|
|
|
class EXPORT MacroRefAction : virtual public MacroAction {
|
|
public:
|
|
MacroRefAction(Macro *m, bool supportsVariableValue = false);
|
|
bool PostLoad() override;
|
|
|
|
MacroRef _macro;
|
|
};
|
|
|
|
class EXPORT MultiMacroRefAction : virtual public MacroAction {
|
|
public:
|
|
MultiMacroRefAction(Macro *m, bool supportsVariableValue = false);
|
|
bool PostLoad() override;
|
|
|
|
std::vector<MacroRef> _macros;
|
|
};
|
|
|
|
} // namespace advss
|