summaryrefslogtreecommitdiff
path: root/local/bin/sb-liisten
blob: ff9b42095a34f7be32d3add47a3300c8d7554eb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/sh
#Liisten for the status bar

#options
LOOPCOUNT=1 #however many times you want the song to play minus one (for technical reasons)
SONGDIR="$HOME/music/brstm"
cd "$SONGDIR"

MODE=$(printf "Random\nForever" | dmenu -i)

playsong () {
	vgmstream-cli -m "$SONG" > /tmp/brstminfo.txt
	STARTLOOP="$(grep "seconds" /tmp/brstminfo.txt | head -n 1 | sed 's/.*(//' | sed 's/ seconds)//')"
	ENDLOOP="$(grep "seconds" /tmp/brstminfo.txt | tail -n 1 | sed 's/.*(//' | sed 's/ seconds)//')"
	echo "Now playing: \"$(echo $SONG | sed 's/\.brstm//')\""
	mpv --ab-loop-a="$STARTLOOP" --ab-loop-b="$ENDLOOP" --ab-loop-count="$LOOPCOUNT" "$SONG"
}

forever () {
	SONG="$(command ls -1 | dmenu -i)"
	vgmstream-cli -m "$SONG" > /tmp/brstminfo.txt
	STARTLOOP="$(grep "seconds" /tmp/brstminfo.txt | head -n 1 | sed 's/.*(//' | sed 's/ seconds)//')"
	ENDLOOP="$(grep "seconds" /tmp/brstminfo.txt | tail -n 1 | sed 's/.*(//' | sed 's/ seconds)//')"
	mpv --ab-loop-a="$STARTLOOP" --ab-loop-b="$ENDLOOP" --loop-file=inf "$SONG"
}

random () {
	while true; do
		RANDNUM=$(shuf -i 1-$(ls -1 | wc -l) -n 1)
		SONG="$(command ls | head -n $RANDNUM | tail -n 1)"
		playsong
	done
}

case "$MODE" in
	Forever) forever ;;
	Random) random ;;
esac