mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-03-21 17:34:57 -05:00
Add MacroWasPausedSince()
It will allow you to query if the macro was paused since a given time point. It checks this by comparing the time point against the time point at which the macro was last paused.
This commit is contained in:
parent
9855f0c64a
commit
0c97b3be4a
|
|
@ -100,6 +100,13 @@ bool MacroIsPaused(Macro *macro)
|
|||
return macro ? macro->Paused() : true;
|
||||
}
|
||||
|
||||
bool MacroWasPausedSince(
|
||||
Macro *macro,
|
||||
const std::chrono::high_resolution_clock::time_point &time)
|
||||
{
|
||||
return macro ? macro->WasPausedSince(time) : false;
|
||||
}
|
||||
|
||||
void AddMacroHelperThread(Macro *macro, std::thread &&newThread)
|
||||
{
|
||||
if (!macro) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include "export-symbol-helper.hpp"
|
||||
|
||||
#include <atomic>
|
||||
#include <chrono>
|
||||
#include <condition_variable>
|
||||
#include <deque>
|
||||
#include <optional>
|
||||
|
|
@ -46,6 +47,8 @@ EXPORT int64_t MillisecondsSinceMacroConditionCheck(Macro *);
|
|||
|
||||
EXPORT bool MacroIsStopped(Macro *);
|
||||
EXPORT bool MacroIsPaused(Macro *);
|
||||
EXPORT bool
|
||||
MacroWasPausedSince(Macro *, const std::chrono::high_resolution_clock::time_point &);
|
||||
|
||||
EXPORT void AddMacroHelperThread(Macro *, std::thread &&);
|
||||
|
||||
|
|
|
|||
|
|
@ -327,6 +327,12 @@ bool Macro::DockIsVisible() const
|
|||
return _dock && _dockAction && _dock->isVisible();
|
||||
}
|
||||
|
||||
bool Macro::WasPausedSince(
|
||||
const std::chrono::high_resolution_clock::time_point &time) const
|
||||
{
|
||||
return _lastUnpauseTime > time;
|
||||
}
|
||||
|
||||
void Macro::SetMatchOnChange(bool onChange)
|
||||
{
|
||||
_performActionsOnChange = onChange;
|
||||
|
|
@ -335,6 +341,7 @@ void Macro::SetMatchOnChange(bool onChange)
|
|||
void Macro::SetPaused(bool pause)
|
||||
{
|
||||
if (_paused && !pause) {
|
||||
_lastUnpauseTime = std::chrono::high_resolution_clock::now();
|
||||
ResetTimers();
|
||||
}
|
||||
_paused = pause;
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ public:
|
|||
bool RunInParallel() const { return _runInParallel; }
|
||||
void SetPaused(bool pause = true);
|
||||
bool Paused() const { return _paused; }
|
||||
bool WasPausedSince(
|
||||
const std::chrono::high_resolution_clock::time_point &) const;
|
||||
void SetMatchOnChange(bool onChange);
|
||||
bool MatchOnChange() const { return _performActionsOnChange; }
|
||||
void SetSkipExecOnStart(bool skip) { _skipExecOnStart = skip; }
|
||||
|
|
@ -146,6 +148,7 @@ private:
|
|||
bool _stop = false;
|
||||
bool _done = true;
|
||||
std::chrono::high_resolution_clock::time_point _lastCheckTime{};
|
||||
std::chrono::high_resolution_clock::time_point _lastUnpauseTime{};
|
||||
std::chrono::high_resolution_clock::time_point _lastExecutionTime{};
|
||||
std::thread _backgroundThread;
|
||||
std::vector<std::thread> _helperThreads;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user