Macro pause (#201)

* Add option to pause individual macros
* Add macro action to pause and unpause macros
This commit is contained in:
WarmUpTill
2021-05-22 23:54:59 -07:00
committed by GitHub
parent c1704f2164
commit 961ea655fd
8 changed files with 334 additions and 25 deletions

View File

@@ -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());
}