#!/bin/sh LIST_OF_OSS_APPS="aumix sox" show_help() { echo "setup-pulseaudio [ --enable | --disable | --status ]" echo "" echo "Sets up PulseAudio configuration for all sound-based applications" echo " --enable Enables PulseAudio" echo " --disable Disables PulseAudio" echo " --status Shows activation state (disabled or enabled) for PulseAudio" exit } enable_alsa() { # Add PCM PA device if grep pcm.pulse /etc/asound.conf; then echo "pcm.pulse device already in /etc/asound.conf" else echo "" >> /etc/asound.conf echo "pcm.pulse {" >> /etc/asound.conf echo " type pulse" >> /etc/asound.conf echo "}" >> /etc/asound.conf fi # Add CTL PA device if grep ctl.pulse /etc/asound.conf; then echo "ctl.pulse device already in /etc/asound.conf" else echo "" >> /etc/asound.conf echo "ctl.pulse {" >> /etc/asound.conf echo " type pulse" >> /etc/asound.conf echo "}" >> /etc/asound.conf fi # Now set the default devices if grep "pcm.!default" /etc/asound.conf; then echo "" else echo "" >> /etc/asound.conf echo "pcm.!default {" >> /etc/asound.conf echo " type pulse" >> /etc/asound.conf echo "}" >> /etc/asound.conf fi if grep "ctl.!default" /etc/asound.conf; then echo "" else echo "" >> /etc/asound.conf echo "ctl.!default {" >> /etc/asound.conf echo " type pulse" >> /etc/asound.conf echo "}" >> /etc/asound.conf fi } enable_libao() { if grep "default_driver=pulse" /etc/libao.conf; then echo "Default driver is pulse already in /etc/libao.conf" else echo "default_driver=pulse" >> /etc/libao.conf fi } enable_mplayer() { # Maybe it would be better to just add a alias mplayer=mplayer -ao pulse to /etc/environment? if grep "ao=pulse" /etc/mplayer/mplayer.conf; then echo "Default driver is pulse already in /etc/mplayer/mplayer.conf" else if grep "ao=" /etc/mplayer/mplayer.conf; then echo "" else echo "ao=pulse" >> /etc/mplayer/mplayer.conf fi fi # FIXME: mplayerplug-in uses $HOME/.mplayer/mplayerplug-in.conf } enable_openal() { # FIXME: openal uses ~/.openalrc echo "" } enable_oss() { for app in $LIST_OF_OSS_APPS; do if grep "alias $app=padsp $app" /etc/environment; then echo "Application $app already setup for PulseAudio" else echo "alias $app=padsp $app" >> /etc/environment fi done } enable_sdl() { # For SDL, we just add an environment variable, so that apps use the PA audio driver if grep SDL_AUDIODRIVER /etc/environment; then sed s/SDL_AUDIODRIVER*/SDL_AUDIODRIVER=pulse /etc/environment else echo "SDL_AUDIODRIVER=pulse" >> /etc/environment fi } enable_timidity() { # Use esound output for timidity if grep "alias timidity=timidity -Oe" /etc/environment; then echo "Timidity already setup for using PulseAudio" else echo "alias timidity=timidity -Oe" >> /etc/environment fi } enable_xine() { # FIXME: xine uses $HOME/.xine/config echo "" } disable_alsa() { # FIXME: perl -pi -e ... echo "" } disable_libao() { perl -pi -e "s|default_driver=pulse||g;" /etc/libao.conf } disable_mplayer() { perl -pi -e "s|ao=pulse||g;" /etc/mplayer/mplayer.conf } disable_openal() { # FIXME: openal uses ~/.openalrc echo "" } disable_oss() { for app in $LIST_OF_OSS_APPS; do perl -pi -e "s|alias $app=padsp $app||g;" /etc/environment done } disable_sdl() { if grep "SDL_AUDIODRIVER=pulse" /etc/environment; then sed s/SDL_AUDIODRIVER=pulse// /etc/environment fi } disable_timidity() { perl -pi -e "s|alias timidity=timidity -Oe||g:" /etc/environment } disable_xine() { # FIXME: xine uses $HOME/.xine/config echo "" } case $1 in --enable) ENABLE=1 enable_alsa enable_libao enable_mplayer enable_openal enable_oss enable_sdl enable_timidity enable_xine ;; --disable) ENABLE=0 disable_alsa disable_libao disable_mplayer disable_openal disable_oss disable_sdl disable_timidity disable_xine ;; --status) STATUS=`grep PULSEAUDIO_ENABLE /etc/sysconfig/sound | cut -f2 -d= | cut -f2 -d\"` if [ "x$STATUS" = "xyes" ]; then echo "enabled" else echo "disabled" fi exit ;; *) show_help ;; esac # Now, update /etc/sysconfig/sound with the PA status if grep PULSEAUDIO_ENABLE /etc/sysconfig/sound; then if grep "PULSEAUDIO_ENABLE=\"yes\"" /etc/sysconfig/sound; then echo "" fi else if [ "x$ENABLE" = "x1" ]; then echo "PULSEAUDIO_ENABLE=\"yes\"" >> /etc/sysconfig/sound fi fi /sbin/SuSEconfig