From e6e9f3a831566e64a6cb298484f5ffa3b8cfa620 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Tue, 11 Nov 2025 18:59:32 +0100 Subject: [PATCH] Add temp var for last replay buffer save path --- data/locale/en-US.ini | 3 +++ plugins/base/macro-condition-replay-buffer.cpp | 14 ++++++++++++++ plugins/base/macro-condition-replay-buffer.hpp | 12 ++++++------ 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/data/locale/en-US.ini b/data/locale/en-US.ini index 1564216a..0804ec5d 100644 --- a/data/locale/en-US.ini +++ b/data/locale/en-US.ini @@ -2317,6 +2317,9 @@ AdvSceneSwitcher.tempVar.mqtt.message="Message" AdvSceneSwitcher.tempVar.cursor.x="Cursor position (X)" AdvSceneSwitcher.tempVar.cursor.y="Cursor position (Y)" +AdvSceneSwitcher.tempVar.replay.lastSavePath="Last save path" +AdvSceneSwitcher.tempVar.replay.lastSavePath.description="The file path of the last replay buffer saved." + AdvSceneSwitcher.selectScene="--select scene--" AdvSceneSwitcher.selectCanvas="--select canvas--" AdvSceneSwitcher.selectPreviousScene="Previous Scene" diff --git a/plugins/base/macro-condition-replay-buffer.cpp b/plugins/base/macro-condition-replay-buffer.cpp index f3c8561a..fd0c20f2 100644 --- a/plugins/base/macro-condition-replay-buffer.cpp +++ b/plugins/base/macro-condition-replay-buffer.cpp @@ -58,6 +58,10 @@ bool MacroConditionReplayBuffer::ReplayBufferWasSaved() bool MacroConditionReplayBuffer::CheckCondition() { + char *lastSavePath = obs_frontend_get_last_replay(); + SetTempVarValue("lastSavePath", lastSavePath ? lastSavePath : ""); + bfree(lastSavePath); + switch (_state) { case Condition::STOP: return !obs_frontend_replay_buffer_active(); @@ -85,6 +89,16 @@ bool MacroConditionReplayBuffer::Load(obs_data_t *obj) return true; } +void MacroConditionReplayBuffer::SetupTempVars() +{ + MacroCondition::SetupTempVars(); + AddTempvar( + "lastSavePath", + obs_module_text("AdvSceneSwitcher.tempVar.replay.lastSavePath"), + obs_module_text( + "AdvSceneSwitcher.tempVar.replay.lastSavePath.description")); +} + static inline void populateStateSelection(QComboBox *list) { for (const auto &entry : conditions) { diff --git a/plugins/base/macro-condition-replay-buffer.hpp b/plugins/base/macro-condition-replay-buffer.hpp index d0e0c820..03c2553c 100644 --- a/plugins/base/macro-condition-replay-buffer.hpp +++ b/plugins/base/macro-condition-replay-buffer.hpp @@ -6,7 +6,7 @@ namespace advss { -class MacroConditionReplayBuffer : public MacroCondition { +class MacroConditionReplayBuffer final : public MacroCondition { public: MacroConditionReplayBuffer(Macro *m) : MacroCondition(m) {} bool CheckCondition(); @@ -27,6 +27,7 @@ public: Condition _state = Condition::STOP; private: + void SetupTempVars(); bool ReplayBufferWasSaved(); bool _saveTimeInitialized = false; @@ -35,7 +36,7 @@ private: static const std::string id; }; -class MacroConditionReplayBufferEdit : public QWidget { +class MacroConditionReplayBufferEdit final : public QWidget { Q_OBJECT public: @@ -55,11 +56,10 @@ public: private slots: void StateChanged(int value); -protected: - QComboBox *_state; - std::shared_ptr _entryData; - private: + QComboBox *_state; + + std::shared_ptr _entryData; bool _loading = true; };