diff --git a/data/locale/en-US.ini b/data/locale/en-US.ini index 1fad44d1..b81228db 100644 --- a/data/locale/en-US.ini +++ b/data/locale/en-US.ini @@ -156,6 +156,7 @@ AdvSceneSwitcher.condition.idle="Idle" AdvSceneSwitcher.condition.idle.entry="No keyboard or mouse inputs for {{duration}}" AdvSceneSwitcher.condition.pluginState="Plugin state" AdvSceneSwitcher.condition.pluginState.state.sceneSwitched="Automated scene change was triggered in this interval" +AdvSceneSwitcher.condition.pluginState.state.running="Advanced scene switcher is running" AdvSceneSwitcher.condition.pluginState.entry="{{condition}}" AdvSceneSwitcher.condition.timer="Timer" AdvSceneSwitcher.condition.timer.pause="Pause" diff --git a/src/headers/macro-condition-plugin-state.hpp b/src/headers/macro-condition-plugin-state.hpp index bf131e85..98a322eb 100644 --- a/src/headers/macro-condition-plugin-state.hpp +++ b/src/headers/macro-condition-plugin-state.hpp @@ -5,6 +5,7 @@ enum class PluginStateCondition { SCENESWITCHED, + RUNNING, }; class MacroConditionPluginState : public MacroCondition { diff --git a/src/macro-condition-plugin-state.cpp b/src/macro-condition-plugin-state.cpp index 0fce3935..c3975e33 100644 --- a/src/macro-condition-plugin-state.cpp +++ b/src/macro-condition-plugin-state.cpp @@ -9,16 +9,26 @@ bool MacroConditionPluginState::_registered = MacroConditionFactory::Register( MacroConditionPluginState::id, {MacroConditionPluginState::Create, MacroConditionPluginStateEdit::Create, - "AdvSceneSwitcher.condition.pluginState", false}); + "AdvSceneSwitcher.condition.pluginState"}); static std::map pluginStateConditionTypes = { {PluginStateCondition::SCENESWITCHED, "AdvSceneSwitcher.condition.pluginState.state.sceneSwitched"}, + {PluginStateCondition::RUNNING, + "AdvSceneSwitcher.condition.pluginState.state.running"}, }; bool MacroConditionPluginState::CheckCondition() { - return switcher->macroSceneSwitched; + switch (_condition) { + case PluginStateCondition::SCENESWITCHED: + return switcher->macroSceneSwitched; + case PluginStateCondition::RUNNING: + return true; + default: + break; + } + return false; } bool MacroConditionPluginState::Save(obs_data_t *obj)