summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-11-28 21:49:07 -0500
committerSacha Chua <sacha@sachachua.com>2022-11-28 21:49:07 -0500
commit6e3ecf794f5528d6fb086c08443748c074197f5d (patch)
tree0a5448e613ec97aec7ae49db799c7865f3a2325f
parentd3c6bf186c6239881065e0e3bfe77070a4b6e0bd (diff)
downloademacsconf-el-6e3ecf794f5528d6fb086c08443748c074197f5d.tar.xz
emacsconf-el-6e3ecf794f5528d6fb086c08443748c074197f5d.zip
try to simplify state transitions
-rw-r--r--emacsconf-publish.el1
-rw-r--r--emacsconf-stream.el49
-rw-r--r--emacsconf.el2
3 files changed, 37 insertions, 15 deletions
diff --git a/emacsconf-publish.el b/emacsconf-publish.el
index a4b09fe..ed83cd6 100644
--- a/emacsconf-publish.el
+++ b/emacsconf-publish.el
@@ -1980,6 +1980,7 @@ when the host has opened the Q&A.</p>
(defun emacsconf-publish-bbb-static-redirects ()
"Create emergency redirects that can be copied over the right location."
+ (interactive)
(mapc (lambda (state)
(let ((emacsconf-publish-current-dir
(expand-file-name
diff --git a/emacsconf-stream.el b/emacsconf-stream.el
index 078b673..91fbd81 100644
--- a/emacsconf-stream.el
+++ b/emacsconf-stream.el
@@ -190,27 +190,46 @@ while OTHER-FILENAME will be displayed at other times."
"@" (tramp-file-name-host info))
"-p" (tramp-file-name-port info)
"nohup")
- (if (plist-get talk :recorded-intro)
- (list "~/bin/track-mpv" (concat "~/assets/intros/" (plist-get talk :slug) ".webm"))
- (list "firefox" (concat "~/assets/in-between/" (plist-get talk :slug) ".png")))
+ (list "intro" (plist-get talk :slug))
(list ">" "/dev/null" "2>&1" "&")))))
(defun emacsconf-stream-play-talk-on-change (talk)
"Play the talk."
(interactive (list (emacsconf-complete-talk-info)))
(when (or (not (boundp 'org-state)) (string= org-state "PLAYING"))
- (if (plist-get talk :video-file)
- (save-window-excursion
- (emacsconf-stream-play-video talk))
- (let ((default-directory (emacsconf-stream-track-login talk))
- (async-shell-command-buffer 'new-buffer))
- (save-window-excursion
- (shell-command
- (concat "nohup firefox -new-window "
- (shell-quote-argument
- (plist-get talk :bbb-room))
- " > /dev/null 2>&1 & "))
- (emacsconf-stream-play-intro-maybe talk))))))
+ (let ((info (tramp-dissect-file-name (emacsconf-stream-track-login talk))))
+ (apply
+ #'call-process
+ (append
+ (list
+ "ssh" nil nil t
+ (concat (tramp-file-name-user info)
+ "@" (tramp-file-name-host info))
+ "-p" (tramp-file-name-port info)
+ (format "DISPLAY=%s" (plist-get (emacsconf-get-track talk) :vnc-display))
+ "nohup")
+ (cond
+ ((and
+ (plist-get talk :recorded-intro)
+ (plist-get talk :video-file)) ;; recorded intro and recorded talk
+ (message "should automatically play intro and recording")
+ (list "play" (plist-get talk :slug))) ;; todo deal with stream files
+ ((and
+ (plist-get talk :recorded-intro)
+ (null (plist-get talk :video-file))) ;; recorded intro and live talk; play the intro and join BBB
+ (message "should automatically play intro; join %s" (plist-get talk :bbb-backstage))
+ (list "intro" (plist-get talk :slug)))
+ ((and
+ (null (plist-get talk :recorded-intro))
+ (plist-get talk :video-file)) ;; live intro and recorded talk, show slide and use Mumble; manually play talk
+ (message "should show intro slide; play %s afterwards" (plist-get talk :slug))
+ (list "intro" (plist-get talk :slug)))
+ ((and
+ (null (plist-get talk :recorded-intro))
+ (null (plist-get talk :video-file))) ;; live intro and live talk, join the BBB
+ (message "join %s for live intro and talk" (plist-get talk :bbb-backstage))
+ (list "bbb" (plist-get talk :slug))))
+ (list "&"))))))
(defun emacsconf-stream-get-filename (talk)
"Return the local filename for the video file for TALK.
diff --git a/emacsconf.el b/emacsconf.el
index fe1d2ff..abd0052 100644
--- a/emacsconf.el
+++ b/emacsconf.el
@@ -1033,6 +1033,7 @@
:stream ,(concat emacsconf-stream-base "gen.webm")
:480p ,(concat emacsconf-stream-base "gen-480p.webm")
:start "09:00" :end "17:00"
+ :vnc-display ":5"
:vnc-port "5905"
:status "offline")
(:name "Development" :color "skyblue" :id "dev" :channel "emacsconf-dev"
@@ -1042,6 +1043,7 @@
:stream ,(concat emacsconf-stream-base "dev.webm")
:480p ,(concat emacsconf-stream-base "dev-480p.webm")
:start "09:00" :end "17:00"
+ :vnc-display ":6"
:vnc-port "5906"
:status "offline")))