From ce8d9d4522cc79c19eaefdf833aec0af3e07c530 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Sat, 11 Apr 2026 19:16:35 +0200 Subject: [PATCH] Add helpers to check, run, stop, and pause macros --- lib/macro/macro-helpers.cpp | 28 ++++++++++++++++++++++++---- lib/macro/macro-helpers.hpp | 10 ++++++++-- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/lib/macro/macro-helpers.cpp b/lib/macro/macro-helpers.cpp index 01470c37..57ca7729 100644 --- a/lib/macro/macro-helpers.cpp +++ b/lib/macro/macro-helpers.cpp @@ -214,6 +214,20 @@ bool MacroIsPaused(const Macro *macro) return macro ? macro->Paused() : true; } +void SetMacroPaused(Macro *macro, bool paused) +{ + if (macro) { + macro->SetPaused(paused); + } +} + +void StopMacro(Macro *macro) +{ + if (macro) { + macro->Stop(); + } +} + bool MacroWasPausedSince( const Macro *macro, const std::chrono::high_resolution_clock::time_point &time) @@ -237,14 +251,20 @@ void AddMacroHelperThread(Macro *macro, std::thread &&newThread) macro->AddHelperThread(std::move(newThread)); } -bool RunMacroActions(Macro *macro) +bool RunMacroActions(Macro *macro, bool forceParallel, bool ignorePause) { - return macro && macro->PerformActions(true); + return macro && macro->PerformActions(true, forceParallel, ignorePause); } -bool RunMacroElseActions(Macro *macro) +bool RunMacroElseActions(Macro *macro, bool forceParallel, bool ignorePause) { - return macro && macro->PerformActions(false); + return macro && + macro->PerformActions(false, forceParallel, ignorePause); +} + +bool CheckMacroConditions(Macro *macro, bool ignorePause) +{ + return macro && macro->CheckConditions(ignorePause); } void ResetMacroConditionTimers(Macro *macro) diff --git a/lib/macro/macro-helpers.hpp b/lib/macro/macro-helpers.hpp index ab0a1a2a..c31bc7e3 100644 --- a/lib/macro/macro-helpers.hpp +++ b/lib/macro/macro-helpers.hpp @@ -58,6 +58,8 @@ LastMacroConditionCheckTime(const Macro *); EXPORT bool MacroIsStopped(const Macro *); EXPORT bool MacroIsPaused(const Macro *); +EXPORT void SetMacroPaused(Macro *, bool paused); +EXPORT void StopMacro(Macro *); EXPORT bool MacroWasPausedSince(const Macro *, const std::chrono::high_resolution_clock::time_point &); @@ -66,10 +68,14 @@ EXPORT bool MacroWasCheckedSinceLastStart(const Macro *); EXPORT void AddMacroHelperThread(Macro *, std::thread &&); EXPORT bool CheckMacros(); +EXPORT bool CheckMacroConditions(Macro *, bool ignorePause = false); -EXPORT bool RunMacroActions(Macro *); -bool RunMacroElseActions(Macro *); +EXPORT bool RunMacroActions(Macro *, bool forceParallel = false, + bool ignorePause = false); +EXPORT bool RunMacroElseActions(Macro *, bool forceParallel = false, + bool ignorePause = false); EXPORT bool RunMacros(); + void StopAllMacros(); EXPORT void LoadMacros(obs_data_t *obj);