]> code.delx.au - mediapc-tools/blob - mediawrap
7a19264bcb05222c5c7a9995d111fc61ede4dd0a
[mediapc-tools] / mediawrap
1 #!/bin/bash
2
3 PIDFILE="$HOME/.mediawrap.pid"
4 PULSESTATE="$HOME/.pulseaudio.state"
5 KEYPATH="/apps/gnome_settings_daemon/keybindings"
6
7 while true; do
8 if [ ! -r "$PIDFILE" ]; then
9 break
10 fi
11 if [ "$(ps -o cmd= -p "$(cat "$PIDFILE")" | wc -l)" -eq 0 ]; then
12 break
13 fi
14 sleep 0.5
15 done
16
17 # Disable volume keys
18 gconftool --set --type string "$KEYPATH/volume_up" ''
19 gconftool --set --type string "$KEYPATH/volume_down" ''
20 gconftool --set --type string "$KEYPATH/volume_mute" ''
21
22 # Unmute everything and turn volume to full
23 pacmd 'dump' | grep 'set-sink' > "$PULSESTATE"
24 cat "$PULSESTATE" | grep 'set-sink-mute' | awk '{print $2;}' | \
25 while read device; do
26 pacmd "set-sink-volume $device 0x10000" > /dev/null
27 pacmd "set-sink-mute $device no" > /dev/null
28 done
29
30 # Run the program
31 "$@"
32
33 # Restore volume levels and mute status
34 cat "$PULSESTATE" | pacmd > /dev/null
35
36 # Enable volume keys
37 gconftool --set --type string "$KEYPATH/volume_up" 'XF86AudioRaiseVolume'
38 gconftool --set --type string "$KEYPATH/volume_down" 'XF86AudioLowerVolume'
39 gconftool --set --type string "$KEYPATH/volume_mute" 'XF86AudioMute'
40
41 rm -f "$PIDFILE"
42