Makefile: add pickrand
[cmccabe-bin] / sidplayall.sh
1 #!/usr/bin/env bash
2
3 usage() 
4 {
5     cat <<EOF
6 sidplayall.sh: play some sids interactively
7 -g [glob]:    The glob to use (default *)
8 -h:           show this help message
9 EOF
10 }
11
12 sidplayer_pid=$$
13 glob="*"
14 while getopts  "g:h" flag; do
15     case $flag in
16     g)  glob=$OPTARG;;
17     h)  usage; exit 0;;
18     *)  echo "getopts error"
19         echo
20         usage
21         exit 1;;
22     esac
23     #echo "$flag" $OPTIND $OPTARG
24 done
25
26 get_next_action() {
27     line="?"
28     while [ "$line" == "?" ]; do
29         read line
30         case $line in
31             "") next_file=1;;
32             n) next_file=1;;
33             t) track=$(($track+1));;
34             r) track=$(($track-1));;
35             q) exit 0;;
36             ?) echo "Unknown command.  Commands are:
37 Enter or n: next file 
38 t: next track
39 r: previous track
40 q: quit\
41 "
42                 line="?";;
43         esac
44     done
45 }
46
47 for sid in $glob.sid; do
48     track=1
49     next_file=0
50     while [ $next_file -eq 0 ]; do
51         next_file=0
52         sidplayer "$sid" $track &
53         sidplayer_pid=$!
54         trap "kill $sidplayer_pid; exit" INT TERM EXIT
55         get_next_action
56         prev_sidplayer_pid=$sidplayer_pid
57         sidplayer_pid=$$
58         kill $prev_sidplayer_pid
59     done
60 done