]> code.delx.au - mediapc-tools/commitdiff
mediawrap: useful for wrapping XBMC and/or MythTV
authorJames Bunton <jamesbunton@fastmail.fm>
Wed, 7 Jul 2010 13:00:41 +0000 (23:00 +1000)
committerJames Bunton <jamesbunton@fastmail.fm>
Wed, 7 Jul 2010 13:00:41 +0000 (23:00 +1000)
mediawrap [new file with mode: 0755]

diff --git a/mediawrap b/mediawrap
new file mode 100755 (executable)
index 0000000..ac71287
--- /dev/null
+++ b/mediawrap
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+PULSESTATE="$HOME/.pulseaudio.state"
+KEYPATH="/apps/gnome_settings_daemon/keybindings"
+
+# Disable volume keys
+gconftool --set --type string "$KEYPATH/volume_up" ''
+gconftool --set --type string "$KEYPATH/volume_down" ''
+gconftool --set --type string "$KEYPATH/volume_mute" ''
+
+# Unmute everything and turn volume to full
+pacmd 'dump' | grep 'set-sink' > "$PULSESTATE"
+cat "$PULSESTATE" | grep 'set-sink-mute' | awk '{print $2;}' | \
+       while read device; do
+               pacmd "set-sink-volume $device 0x10000" > /dev/null
+               pacmd "set-sink-mute $device no" > /dev/null
+       done
+
+# Run the program
+"$@"
+
+# Restore volume levels and mute status
+cat "$PULSESTATE" | pacmd > /dev/null
+
+# Enable volume keys
+gconftool --set --type string "$KEYPATH/volume_up" 'XF86AudioRaiseVolume'
+gconftool --set --type string "$KEYPATH/volume_down" 'XF86AudioLowerVolume'
+gconftool --set --type string "$KEYPATH/volume_mute" 'XF86AudioMute'
+