aboutsummaryrefslogtreecommitdiff
path: root/audio/asap/asap-mplayer
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2022-12-28 17:38:21 +0000
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2022-12-31 09:14:40 +0700
commit1f4cc25436f81d00a8d4451912902e11ed5e5961 (patch)
treef120668277e79c6ee2a8c6ffadba041c20c7a917 /audio/asap/asap-mplayer
parentaa429a232eddb1c8f36630fb66a9ae173c3791ea (diff)
audio/asap: Added (Atari 8-bit chiptune formats player/converter)
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'audio/asap/asap-mplayer')
-rw-r--r--audio/asap/asap-mplayer49
1 files changed, 49 insertions, 0 deletions
diff --git a/audio/asap/asap-mplayer b/audio/asap/asap-mplayer
new file mode 100644
index 0000000000..66421d6c44
--- /dev/null
+++ b/audio/asap/asap-mplayer
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# 20221224 bkw: wrapper script for asapconv, part of SBo asap build.
+
+# Standalone player for SAP/etc files. asap's standalone player
+# (asap-sdl) works, but mplayer supports pause and seeking, which
+# makes it a lot nicer to use.
+# I wrote this for my own use. Might as well include it in the SBo
+# package, in case someone else wants it.
+
+SELF="$( basename $0 )"
+
+if [ "$#" = 0 -o "$1" = "--help" ]; then
+ cat <<EOF
+$SELF: play Atari chiptunes via mplayer.
+
+Usage: $SELF [asapconv-options] filename
+
+"filename" must be a file supported by asapconv; usually these are
+*.sap files, but other formats are supported. Run "asapconv --help"
+to see the list of supported file formats.
+
+Any options given will be passed as-is to asapconv. This can be used
+e.g. to select a subsong via "-s 2" or such.
+
+$SELF is part of the SlackBuilds.org asap package, and is licensed
+under the WTFPL.
+EOF
+
+ exit 0
+fi
+
+# asapconv can write to stdout, but mplayer can't seek when it's
+# reading stdin, so use a file. The name has to end in .wav because
+# asapconv insists on it. Tried using a FIFO, but in that case mplayer
+# can't seek backwards. The wav file isn't all that big by modern
+# standards (16MB for a 3-minute song), so it doesn't matter much.
+
+# mktemp(3) says the -u option is "unsafe", so don't run this as root.
+WAV="$( mktemp -u -t $SELF.XXXXXXXXXX.wav )"
+
+asapconv -o "$WAV" "$@" || exit $?
+
+# don't know for sure asapconv will *always* exit non-zero on failure,
+# so check for the file's existence.
+if [ -f "$WAV" ]; then
+ mplayer "$WAV"
+ rm -f "$WAV"
+fi