diff options
author | EmacsConf <emacsconf-org@gnu.org> | 2022-11-05 15:46:31 -0700 |
---|---|---|
committer | EmacsConf <emacsconf-org@gnu.org> | 2022-11-05 15:46:31 -0700 |
commit | 15d8dd04ce097d3d037ac1b821718feb7837a415 (patch) | |
tree | 378d32e8a809a998fd32cb6c89db5c185855ccfa | |
parent | ef2fe850f7d3e7f7c19230cf0da2f476b0168664 (diff) | |
download | emacsconf-el-15d8dd04ce097d3d037ac1b821718feb7837a415.tar.xz emacsconf-el-15d8dd04ce097d3d037ac1b821718feb7837a415.zip |
Call SSH directly so that simultaneous play-videos will work
Diffstat (limited to '')
-rw-r--r-- | emacsconf-stream.el | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/emacsconf-stream.el b/emacsconf-stream.el index 2017683..bcf64f4 100644 --- a/emacsconf-stream.el +++ b/emacsconf-stream.el @@ -176,15 +176,13 @@ Final files should be stored in /data/emacsconf/stream/YEAR/video-slug--main.web (defun emacsconf-stream-play-video (talk) (interactive (list (emacsconf-complete-talk-info))) - (let ((default-directory (emacsconf-stream-track-login talk)) - (async-shell-command-buffer 'new-buffer)) - ;; I tried using start-file-process, but I couldn't figure out how to get MPV to work. - ;; We'll just use shell-command then, and manually move to the QA states when we want to. - (save-window-excursion - (shell-command - (concat "nohup ~/bin/track-mpv " - (shell-quote-argument (emacsconf-stream-get-filename talk)) - " > /dev/null 2>&1 & "))))) + (let ((info (tramp-dissect-file-name (emacsconf-stream-track-login talk)))) + (call-process "ssh" nil nil t + (concat (tramp-file-name-user info) + "@" (tramp-file-name-host info)) + "-p" (tramp-file-name-port info) + "nohup" "~/bin/track-mpv" (emacsconf-stream-get-filename talk) ">" "/dev/null" + "2>&1" "&"))) (defun emacsconf-stream-open-pad (talk) (interactive (list (emacsconf-complete-talk-info))) @@ -350,9 +348,17 @@ This uses the BBB room if available, or the IRC channel if not." info))) (defun emacsconf-stream-handle-talk-timer (talk) + (interactive (list (save-match-data (emacsconf-complete-talk-info)))) (save-window-excursion - (emacsconf-with-talk-heading (plist-get talk :slug) - (org-todo "PLAYING")))) + (save-match-data + (undo-boundary) + (message "Start %s" talk) + (with-local-quit + (ignore-error 'remote-file-error + (emacsconf-with-talk-heading (plist-get talk :slug) + (org-todo "PLAYING")))) + (message "Done %s" talk) + (undo-boundary)))) (defun emacsconf-stream-schedule-timers (&optional info) (interactive) |