mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-30 21:25:32 -05:00
Macro pause (#201)
* Add option to pause individual macros * Add macro action to pause and unpause macros
This commit is contained in:
@@ -20,6 +20,10 @@ Macro::~Macro() {}
|
||||
|
||||
bool Macro::CeckMatch()
|
||||
{
|
||||
if (_paused) {
|
||||
vblog(LOG_INFO, "Macro %s is paused", _name.c_str());
|
||||
return false;
|
||||
}
|
||||
_matched = false;
|
||||
for (auto &c : _conditions) {
|
||||
bool cond = c->CheckCondition();
|
||||
@@ -80,6 +84,7 @@ bool Macro::PerformAction()
|
||||
bool Macro::Save(obs_data_t *obj)
|
||||
{
|
||||
obs_data_set_string(obj, "name", _name.c_str());
|
||||
obs_data_set_bool(obj, "pause", _paused);
|
||||
|
||||
obs_data_array_t *conditions = obs_data_array_create();
|
||||
for (auto &c : _conditions) {
|
||||
@@ -145,6 +150,7 @@ void setValidLogic(MacroCondition *c, bool root, std::string name)
|
||||
bool Macro::Load(obs_data_t *obj)
|
||||
{
|
||||
_name = obs_data_get_string(obj, "name");
|
||||
_paused = obs_data_get_bool(obj, "pause");
|
||||
bool root = true;
|
||||
|
||||
obs_data_array_t *conditions = obs_data_get_array(obj, "conditions");
|
||||
@@ -363,3 +369,19 @@ bool SwitcherData::runMacros()
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Macro *GetMacroByName(const char *name)
|
||||
{
|
||||
for (auto &m : switcher->macros) {
|
||||
if (m.Name() == name) {
|
||||
return &m;
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Macro *GetMacroByQString(const QString &name)
|
||||
{
|
||||
return GetMacroByName(name.toUtf8().constData());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user