250bddb41d17e48f852ba41ba394247c8a232554
[feisty_meow.git] / scripts / multimedia / sound_play.sh
1 #!/bin/bash
2
3 # play the sound files specified.
4
5 source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
6
7 if [ $# -lt 1 ]; then
8   #echo no sound file specified.
9   exit 0;
10 fi
11
12 export BASIC_PLAY_CMD='echo Unknown basic sound player...'
13
14 if [ -f "/usr/bin/play" ]; then
15 #echo we see /usr/bin/play available...
16   BASIC_PLAY_CMD=/usr/bin/play
17 elif [ ! -z "$(whichable afplay)" ]; then
18 #echo we see afplay available...
19   BASIC_PLAY_CMD=afplay
20 elif [ ! -z "$(psfind artsd)" ]; then
21 #echo we see artsd running...
22   BASIC_PLAY_CMD=artsplay
23 elif [ ! -z "$(psfind esd)" ]; then
24 #echo  we see esd running...
25   BASIC_PLAY_CMD=esdplay
26 elif [ ! -z "$(psfind pulseaudio)" ]; then
27 #echo we see pulse running...
28   BASIC_PLAY_CMD="padsp aplay"
29 elif [ ! -z "$WINDIR" ]; then
30 #echo kludge for win32; we provide our own sound player.
31   BASIC_PLAY_CMD=playsound
32 else
33   echo "I don't know how to play basic sound files for this OS and sound system."
34 fi
35
36 export MP3_PLAY_CMD='echo Unknown mp3 player...'
37
38 if [ ! -z "$(whichable mplayer)" ]; then
39   MP3_PLAY_CMD=mplayer
40 else
41   echo "I don't know how to play mp3 files for this OS and sound system."
42 fi
43
44 # play the sounds individually; some apps like playsound can handle multiple
45 # files, but "/usr/bin/play" doesn't want to on some systems.
46 for filename in $*; do 
47   case "$filename" in
48     *wav)
49     $BASIC_PLAY_CMD $filename >/dev/null 2>&1;
50     ;;
51     *mp3)
52     $MP3_PLAY_CMD $filename >/dev/null 2>&1;
53     ;;
54     *)
55     echo "I don't know the file extension here: $filename"
56     ;;
57   esac
58 done
59
60 exit 0
61