guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 7389e843660c8ab4a552d976a245fdd673e9f16f
Author: Steve George <[email protected]>
AuthorDate: Wed Feb 11 13:02:07 2026 +0000

    gnu: Add obs-advanced-scene-switcher.
    
    * gnu/packages/video.scm (obs-advanced-scene-switcher): New variable.
    
    Change-Id: I6a12ecff09f2ac71d5c50a6b647ba5bfffba1506
    Signed-off-by: Steve George <[email protected]>
---
 gnu/packages/video.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 6989a64b3e..e75d097623 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -136,6 +136,7 @@
   #:use-module (gnu packages bittorrent)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
+  #:use-module (gnu packages calendar)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages check)
@@ -173,6 +174,7 @@
   #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages hunspell)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kde-frameworks)
@@ -4364,6 +4366,72 @@ applied via a static image (.png, .jpeg, etc).
 ")
     (license license:gpl2)))
 
+(define-public obs-advanced-scene-switcher
+  (package
+    (name "obs-advanced-scene-switcher")
+    (version "1.32.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+              "https://github.com/WarmUpTill/SceneSwitcher/releases/download/";
+              version "/advanced-scene-switcher-" version "-source.tar.xz"))
+       (sha256
+        (base32
+          "15r4ck2agzhjzjkmczs3ag36km32axcjsz0m57yh568b3nrcxmj3"))
+       (modules '((guix build utils)))
+       ;; FIXME: [email protected] and jsoncons could be unbundled
+       ;; cpp-httplib is too old to unbundle
+       (snippet #~(begin
+                    (delete-file-recursively ".ccache")
+                    (delete-file-recursively "deps/asio")
+                    (delete-file-recursively "deps/cpp-httplib")
+                    (delete-file-recursively "deps/date")
+                    (delete-file-recursively "deps/json")
+                    (delete-file-recursively "deps/leptonica")
+                    (delete-file-recursively "deps/libusb")
+                    (delete-file-recursively "deps/exprtk")
+                    (delete-file-recursively "deps/obs-websocket")
+                    (delete-file-recursively "deps/opencv")
+                    ;;Arch package says openvr is only used on Windows
+                    (delete-file-recursively "deps/openvr")
+                    (delete-file-recursively "deps/paho.mqtt.cpp")
+                    (delete-file-recursively "deps/tesseract")
+                    (delete-file-recursively "deps/websocketpp")))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:tests? #f ;no tests
+      #:generator "Ninja"
+      #:configure-flags
+      #~(list "-DBUILD_OUT_OF_TREE=ON" "-Wno-dev")))
+    (native-inputs (list asio-1.28
+                         date
+                         libxtst
+                         libx11
+                         nlohmann-json
+                         pkg-config))
+    (inputs (list curl
+                  cpp-httplib
+                  exprtk
+                  leptonica
+                  libxscrnsaver
+                  obs
+                  openssl ;Arch pkg says used by Twitch
+                  opencv
+                  procps
+                  qtbase
+                  simde
+                  websocketpp))
+    (home-page "https://github.com/WarmUpTill/SceneSwitcher";)
+    (synopsis "This plugin automates actions in OBS")
+    (description "An OBS plugin that can automate almost anything through
+macros.  Originally, for switching between @code{Scenes} depending on a
+condition, it's capable of much more.  Macros are created with a condition,
+when the condition takes places an action runs which can be anything from
+switching to a specified @code{Scene} to changing the volume.")
+    (license license:gpl2)))
+
 (define-public obs-branch-output
   (package
     (name "obs-branch-output")

Reply via email to