From cc509282854bdc6b0cf1d66cc9de845d2cdf40c5 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Sat, 21 Mar 2026 23:14:10 +0100 Subject: [PATCH] Adjust video condition temp vars --- data/locale/en-US.ini | 2 ++ plugins/video/macro-condition-video.cpp | 26 ++++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/data/locale/en-US.ini b/data/locale/en-US.ini index 2724ba74..6db83513 100644 --- a/data/locale/en-US.ini +++ b/data/locale/en-US.ini @@ -2215,6 +2215,8 @@ AdvSceneSwitcher.tempVar.video.text="OCR text" AdvSceneSwitcher.tempVar.video.text.description="The text detected in a given video input frame." 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.video.dominantColor="Dominant color" +AdvSceneSwitcher.tempVar.video.dominantColor.description="The most dominant 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" diff --git a/plugins/video/macro-condition-video.cpp b/plugins/video/macro-condition-video.cpp index 04746a5f..adb3db8b 100644 --- a/plugins/video/macro-condition-video.cpp +++ b/plugins/video/macro-condition-video.cpp @@ -377,13 +377,19 @@ bool MacroConditionVideo::CheckColor() _screenshotData.GetImage(), _colorParameters.color, _colorParameters.colorThreshold, _colorParameters.matchThreshold); - // Way too slow for now - //SetTempVarValue("dominantColor", GetDominantColor(_screenshotData.image, 3) - // .name(QColor::HexArgb) - // .toStdString()); - SetTempVarValue("color", GetAverageColor(_screenshotData.GetImage()) - .name(QColor::HexArgb) - .toStdString()); + + SetTempVarValue("color", [&]() { + return GetAverageColor(_screenshotData.GetImage()) + .name(QColor::HexArgb) + .toStdString(); + }); + + SetTempVarValue("dominantColor", [&]() { + return GetDominantColor(_screenshotData.GetImage(), 3) + .name(QColor::HexArgb) + .toStdString(); + }); + return ret; } @@ -479,6 +485,12 @@ void MacroConditionVideo::SetupTempVars() obs_module_text("AdvSceneSwitcher.tempVar.video.color"), obs_module_text( "AdvSceneSwitcher.tempVar.video.color.description")); + AddTempvar( + "dominantColor", + obs_module_text( + "AdvSceneSwitcher.tempVar.video.dominantColor"), + obs_module_text( + "AdvSceneSwitcher.tempVar.video.dominantColor.description")); break; case VideoCondition::MATCH: case VideoCondition::DIFFER: