mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-12 12:18:35 -05:00
Add support for inline scripts
* Script can be defined in the macro segment or loaded from a file * Supports both LUA and Python * Can be used for actions and conditions * obs_script_create and obs_script_destroy are resolved at runtime (Let's hope the API remains stable)
This commit is contained in:
51
plugins/scripting/macro-condition-script-inline.cpp
Normal file
51
plugins/scripting/macro-condition-script-inline.cpp
Normal file
@@ -0,0 +1,51 @@
|
||||
#include "macro-condition-script-inline.hpp"
|
||||
|
||||
namespace advss {
|
||||
|
||||
const std::string MacroConditionScriptInline::_id = "script";
|
||||
|
||||
bool MacroConditionScriptInline::_registered =
|
||||
MacroConditionFactory::Register(MacroConditionScriptInline::_id,
|
||||
{MacroConditionScriptInline::Create,
|
||||
MacroConditionScriptInlineEdit::Create,
|
||||
"AdvSceneSwitcher.condition.script"});
|
||||
|
||||
bool MacroConditionScriptInline::CheckCondition()
|
||||
{
|
||||
return _script.Run();
|
||||
}
|
||||
|
||||
bool MacroConditionScriptInline::Save(obs_data_t *obj) const
|
||||
{
|
||||
MacroCondition::Save(obj);
|
||||
_script.Save(obj);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MacroConditionScriptInline::Load(obs_data_t *obj)
|
||||
{
|
||||
MacroCondition::Load(obj);
|
||||
_script.Load(obj);
|
||||
return true;
|
||||
}
|
||||
|
||||
std::shared_ptr<MacroCondition> MacroConditionScriptInline::Create(Macro *m)
|
||||
{
|
||||
return std::make_shared<MacroConditionScriptInline>(m);
|
||||
}
|
||||
|
||||
MacroConditionScriptInlineEdit::MacroConditionScriptInlineEdit(
|
||||
QWidget *parent, std::shared_ptr<MacroConditionScriptInline> entryData)
|
||||
: MacroSegmentScriptInlineEdit(parent, entryData)
|
||||
{
|
||||
}
|
||||
|
||||
QWidget *MacroConditionScriptInlineEdit::Create(
|
||||
QWidget *parent, std::shared_ptr<MacroCondition> condition)
|
||||
{
|
||||
return new MacroConditionScriptInlineEdit(
|
||||
parent, std::dynamic_pointer_cast<MacroConditionScriptInline>(
|
||||
condition));
|
||||
}
|
||||
|
||||
} // namespace advss
|
||||
Reference in New Issue
Block a user