Add condition to check if the plugin is running

This will only ever return true as the plugin cannot perform checks if
it is not running.
This is intended to be used in cases where it can be useful to trigger
actions once the plugin was stopped and restarted or if one wants to
perform actions after a certain amount of plugin "uptime".
This commit is contained in:
WarmUpTill
2021-11-25 21:21:42 +01:00
committed by WarmUpTill
parent c527f15744
commit 631423a251
3 changed files with 14 additions and 2 deletions

View File

@@ -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"

View File

@@ -5,6 +5,7 @@
enum class PluginStateCondition {
SCENESWITCHED,
RUNNING,
};
class MacroConditionPluginState : public MacroCondition {

View File

@@ -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<PluginStateCondition, std::string> 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)