From f2570e1deb07136da50cd0f1f92909c484e453de Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Tue, 23 Nov 2021 21:29:01 +0100 Subject: [PATCH] Add the option to execute another macro's actions --- data/locale/en-US.ini | 1 + src/headers/macro-action-macro.hpp | 1 + src/macro-action-macro.cpp | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/data/locale/en-US.ini b/data/locale/en-US.ini index 79a61493..d2ddb7d2 100644 --- a/data/locale/en-US.ini +++ b/data/locale/en-US.ini @@ -305,6 +305,7 @@ AdvSceneSwitcher.action.macro="Macro" AdvSceneSwitcher.action.macro.type.pause="Pause" AdvSceneSwitcher.action.macro.type.unpause="Unpause" AdvSceneSwitcher.action.macro.type.resetCounter="Reset counter" +AdvSceneSwitcher.action.macro.type.run="Run" AdvSceneSwitcher.action.macro.entry="{{actions}} {{macros}}" AdvSceneSwitcher.action.pluginState="Plugin state" AdvSceneSwitcher.action.pluginState.type.stop="Stop the Advanced Scene Switcher plugin" diff --git a/src/headers/macro-action-macro.hpp b/src/headers/macro-action-macro.hpp index 57d2ddab..a933d1ca 100644 --- a/src/headers/macro-action-macro.hpp +++ b/src/headers/macro-action-macro.hpp @@ -8,6 +8,7 @@ enum class PerformMacroAction { PAUSE, UNPAUSE, RESET_COUNTER, + RUN, }; class MacroActionMacro : public MacroRefAction { diff --git a/src/macro-action-macro.cpp b/src/macro-action-macro.cpp index 5a7a155b..5b5d7ea7 100644 --- a/src/macro-action-macro.cpp +++ b/src/macro-action-macro.cpp @@ -15,6 +15,7 @@ const static std::map actionTypes = { "AdvSceneSwitcher.action.macro.type.unpause"}, {PerformMacroAction::RESET_COUNTER, "AdvSceneSwitcher.action.macro.type.resetCounter"}, + {PerformMacroAction::RUN, "AdvSceneSwitcher.action.macro.type.run"}, }; bool MacroActionMacro::PerformAction() @@ -33,6 +34,9 @@ bool MacroActionMacro::PerformAction() case PerformMacroAction::RESET_COUNTER: _macro->ResetCount(); break; + case PerformMacroAction::RUN: + _macro->PerformAction(); + break; default: break; } @@ -55,6 +59,10 @@ void MacroActionMacro::LogAction() vblog(LOG_INFO, "reset counter for \"%s\"", _macro->Name().c_str()); break; + case PerformMacroAction::RUN: + vblog(LOG_INFO, "run nested macro \"%s\"", + _macro->Name().c_str()); + break; default: break; }