]> git.plutz.net Git - serve0/blobdiff - actions/playctl.sh
enable remote controls for server display
[serve0] / actions / playctl.sh
diff --git a/actions/playctl.sh b/actions/playctl.sh
new file mode 100755 (executable)
index 0000000..38cd54c
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/zsh
+# Copyright 2016 Paul Hänsch
+#
+# This file is part of Serve0
+#
+# Serve0 is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Serve0 is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with Serve0  If not, see <http://www.gnu.org/licenses/>.
+
+fifofile="${_DATA}/mplayer.fifo"
+volfile="${_DATA}/mplayer.volume"
+
+if   [ -n "${_POST[amp]+x}" ]; then
+  amp $(validate "${_POST[amp]}" '(on|off)' off)
+elif [ -n "${_POST[vol]+x}" ]; then
+  vol=$(validate "${_POST[vol]}" '[1-9]?[0-9]|100' 10)
+  printf %s\\n $vol >"$volfile"
+  printf 'volume %s 1\n' $vol >"$fifofile"
+elif [ -n "${_POST[ctl]+x}" ]; then
+  printf '%s\n' $(validate "${_POST[ctl]}" "pause|stop" pause) >"$fifofile"
+elif [ -n "${_POST[seek]+x}" ]; then
+  printf 'seek %s\n' $(validate "${_POST[seek]}" "[+-]?[0-9]+" 0) >"$fifofile"
+fi &
+
+redirect "$HTTP_REFERER"