diff --git a/data/locale/en-US.ini b/data/locale/en-US.ini index d1a7986c..d763d014 100644 --- a/data/locale/en-US.ini +++ b/data/locale/en-US.ini @@ -1546,6 +1546,9 @@ AdvSceneSwitcher.tempVar.video.text.description="The text detected in a given vi AdvSceneSwitcher.tempVar.video.color="Average color" AdvSceneSwitcher.tempVar.video.color.description="The average RGB color in a given video input frame in HexArgb format." +AdvSceneSwitcher.tempVar.websocket.message="Received websocket message" +AdvSceneSwitcher.tempVar.websocket.message.description="The received websocket message, which matched the given pattern" + AdvSceneSwitcher.selectScene="--select scene--" AdvSceneSwitcher.selectPreviousScene="Previous Scene" AdvSceneSwitcher.selectCurrentScene="Current Scene" diff --git a/plugins/base/macro-condition-websocket.cpp b/plugins/base/macro-condition-websocket.cpp index 54e548a0..4cde5425 100644 --- a/plugins/base/macro-condition-websocket.cpp +++ b/plugins/base/macro-condition-websocket.cpp @@ -42,12 +42,14 @@ bool MacroConditionWebsocket::CheckCondition() for (auto &m : *messages) { if (_regex.Enabled()) { if (_regex.Matches(m.message, _message)) { + SetTempVarValue("message", m.message); SetVariableValue(m.message); m.processed = true; return true; } } else { if (m.message == std::string(_message)) { + SetTempVarValue("message", m.message); SetVariableValue(m.message); m.processed = true; return true; @@ -93,6 +95,16 @@ std::string MacroConditionWebsocket::GetShortDesc() const return GetWeakConnectionName(_connection); } +void MacroConditionWebsocket::SetupTempVars() +{ + MacroCondition::SetupTempVars(); + AddTempvar( + "message", + obs_module_text("AdvSceneSwitcher.tempVar.websocket.message"), + obs_module_text( + "AdvSceneSwitcher.tempVar.websocket.message.description")); +} + static inline void populateConditionSelection(QComboBox *list) { for (auto entry : conditionTypes) { diff --git a/plugins/base/macro-condition-websocket.hpp b/plugins/base/macro-condition-websocket.hpp index aae38ed9..21d60b96 100644 --- a/plugins/base/macro-condition-websocket.hpp +++ b/plugins/base/macro-condition-websocket.hpp @@ -32,6 +32,8 @@ public: std::weak_ptr _connection; private: + void SetupTempVars(); + static bool _registered; static const std::string id; };