3 bail () { echo >&2 "$*"; exit 2; }
7 get-disorder-state () {
8 coproc stdbuf -oL $disorder log; kid=$!
14 enable_random) randp=t ;;
15 disable_random) randp=nil ;;
16 enable_play) playp=t ;;
17 disable_play) playp=nil ;;
31 op-volume-up () { amixer sset $alsa_mixer 5%+ >/dev/null; }
32 op-volume-down () { amixer sset $alsa_mixer 5%- >/dev/null; }
35 coproc $disorder playing; kid=$!
38 nothing) echo "Not playing."; return ;;
40 *) bail "unexpected first-line token \`$k'" ;;
43 case $k in id) ;; *) bail "unexpected second-line token \`$k'" ;; esac
45 case $k in picked) read -p k _ ;; esac
46 case $k in played) ;; *) bail "unexpected third-line token \`$k'" ;; esac
48 case $t[-1] in started | ok) st="" ;; paused) st=" (paused)" ;; esac
51 artist=$(disorder part $track display artist)
52 album=$(disorder part $track display album)
53 title=$(disorder part $track display title)
54 case $artist in [A-Z]) artist=$album album= ;; esac
55 echo "$artist: ‘$title’${album+, from ‘$album’}"
58 op-scratch () { disorder scratch; }
59 op-enable/disable () {
62 t) disorder disable ;;
63 nil) disorder enable ;;
68 case $playp,$pausep in
69 nil,t) disorder enable; disorder resume ;;
70 nil,nil) disorder enable ;;
71 t,t) disorder resume ;;
72 t,nil) disorder pause ;;
76 if [[ -e $HOME/etc/media-keys.local ]]; then
77 . $HOME/etc/media-keys.local
80 case $# in 0) echo >&2 "usage: $0 OP"; exit 2 ;; esac
82 case $(whence -w op-$op) in
83 "op-$op: function") ;;
84 *) echo >&2 "$0: unknown operation \`$op'"; exit 2 ;;