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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
# -*- sh -*-
# vim:ft=sh:ts=8:sw=4:noet
AddConfigHandler PauseAudioOptions
AddConfigHelp "MuteAudio <boolean>" "This will mute your speakers on suspend to avoid compromising situations on resume."
AddConfigHelp "PauseAudio <boolean>" "This will pause your audio player before suspending. Audio is not unpaused on resume."
PauseAudio() {
local auuser
# Pause quodlibet
for auuser in $(ps aux | grep -w '[q]uodlibet' | awk '{print $1}' | sort | uniq); do
local homedir
homedir=$(getent passwd "$auuser" | cut -d: -f 6)
if [ -p $homedir/.quodlibet/control ]; then
vecho 1 "Pausing $auuser quodlibet.."
echo pause > $homedir/.quodlibet/control
fi
done
# Pause xmms
for auuser in $(ps aux | grep -w '[x]mms ' | awk '{print $1}' | sort | uniq); do
su $auuser -c 'xmms -u'
done
# Pause beep media player
for auuser in $(ps aux | grep -w '[b]eep-media-player' | awk '{print $1}' | sort | uniq); do
FindXServer
su $auuser -c 'beep-media-player -u'
done
# Pause amaroK
for auuser in $(ps aux | grep -w '[a]marok' | awk '{print $1}' | sort | uniq); do
FindXServer
if [ "`su $auuser -c 'dcop amarok player status'`" = "2" ]; then
su $auuser -c 'dcop amarok player pause'
fi
done
# Add your favourite media player here.
# And then perhaps think up a less horrific way of doing this.
return 0
}
MuteAudio() {
# Just try it and see!
amixer set Master mute > /dev/null 2>&1
return 0
}
PauseAudioOptions() {
case $1 in
muteaudio)
BoolIsOn "$1" "$2" || return 0
if [ -z "$MUTEAUDIO_HOOKED" ] ; then
AddSuspendHook 15 MuteAudio
MUTEAUDIO_HOOKED=1
fi
;;
pauseaudio)
BoolIsOn "$1" "$2" || return 0
if [ -z "$PAUSEAUDIO_HOOKED" ] ; then
# Run before device scriptlet kills programs accessing
# some devices. Pausing can prevent an audio player
# from using a device and getting killed.
AddSuspendHook 15 PauseAudio
PAUSEAUDIO_HOOKED=1
fi
;;
*)
return 1
esac
return 0
}
# $Id$
|