2008-09-22 18:12:49 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
LIST_OF_OSS_APPS="aumix sox"
|
|
|
|
|
|
|
|
show_help() {
|
|
|
|
echo "setup-pulseaudio [ --enable | --disable | --status ]"
|
|
|
|
echo ""
|
2009-11-05 18:23:10 +01:00
|
|
|
echo "Modifies configuration files of some applications for PulseAudio"
|
2008-09-22 18:12:49 +02:00
|
|
|
echo " --enable Enables PulseAudio"
|
|
|
|
echo " --disable Disables PulseAudio"
|
|
|
|
echo " --status Shows activation state (disabled or enabled) for PulseAudio"
|
2008-11-28 15:53:14 +01:00
|
|
|
echo ""
|
|
|
|
echo "You need to be root for this command to succeed"
|
2009-11-05 18:23:10 +01:00
|
|
|
echo "You may need to re-login for changes to take effect"
|
2008-09-22 18:12:49 +02:00
|
|
|
exit
|
|
|
|
}
|
|
|
|
|
2008-11-28 15:53:14 +01:00
|
|
|
check_root() {
|
|
|
|
id=`id -u`
|
|
|
|
if [ "x$id" = "x0" ]; then
|
|
|
|
true
|
2008-09-22 18:12:49 +02:00
|
|
|
else
|
2008-11-28 15:53:14 +01:00
|
|
|
echo "You need to be root in order to enable/disable pulseaudio"
|
|
|
|
false
|
2008-09-22 18:12:49 +02:00
|
|
|
fi
|
2008-11-28 15:53:14 +01:00
|
|
|
}
|
2008-09-22 18:12:49 +02:00
|
|
|
|
2010-04-01 03:09:27 +02:00
|
|
|
enable_phonon() {
|
|
|
|
echo "Enabling PulseAudio for Phonon..."
|
2010-08-01 17:15:10 +02:00
|
|
|
perl -pi -e "s|PHONON_PULSEAUDIO_DISABLE=1||g;" /etc/environment
|
2010-04-01 03:09:27 +02:00
|
|
|
}
|
|
|
|
|
2008-11-28 15:53:14 +01:00
|
|
|
enable_alsa() {
|
|
|
|
echo "Enabling PulseAudio for ALSA..."
|
2010-08-01 17:15:10 +02:00
|
|
|
if grep "ALSA_CONFIG_PATH" /etc/environment; then
|
|
|
|
echo "PulseAudio config for ALSA already in use"
|
|
|
|
else
|
|
|
|
echo "ALSA_CONFIG_PATH=/etc/alsa-pulse.conf" >> /etc/environment
|
|
|
|
fi
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
enable_libao() {
|
2008-10-27 17:10:39 +01:00
|
|
|
echo "Enabling PulseAudio for libao..."
|
|
|
|
if test -f /etc/libao.conf; then
|
2010-08-01 17:15:10 +02:00
|
|
|
if grep "default_driver=pulse" /etc/libao.conf; then
|
2008-10-27 17:10:39 +01:00
|
|
|
echo "Default driver is pulse already in /etc/libao.conf"
|
|
|
|
else
|
|
|
|
echo "default_driver=pulse" >> /etc/libao.conf
|
|
|
|
fi
|
2008-09-22 18:12:49 +02:00
|
|
|
else
|
|
|
|
echo "default_driver=pulse" >> /etc/libao.conf
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
enable_mplayer() {
|
2008-10-27 17:10:39 +01:00
|
|
|
echo "Enabling PulseAudio for mplayer..."
|
|
|
|
if test -f /etc/mplayer/mplayer.conf; then
|
2009-11-05 18:23:10 +01:00
|
|
|
if grep -q '^ao=' /etc/mplayer/mplayer.conf; then
|
2009-11-10 10:09:45 +01:00
|
|
|
perl -pi -e "s|^ao=.*|ao=pulse|g;" /etc/mplayer/mplayer.conf
|
2008-09-22 18:12:49 +02:00
|
|
|
else
|
2009-11-05 18:23:10 +01:00
|
|
|
echo "ao=pulse" >> /etc/mplayer/mplayer.conf
|
2008-09-22 18:12:49 +02:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
# FIXME: mplayerplug-in uses $HOME/.mplayer/mplayerplug-in.conf
|
|
|
|
}
|
|
|
|
|
|
|
|
enable_openal() {
|
2009-11-05 18:23:10 +01:00
|
|
|
# nothing to do here. openal-soft is patched to prefer pulse but
|
|
|
|
# it won't autostart the daemon.
|
|
|
|
return 0
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
enable_oss() {
|
2010-08-01 17:15:10 +02:00
|
|
|
# this is broken. /etc/environment must only contain environment
|
|
|
|
# variables. It's not a shell script
|
|
|
|
return 0
|
|
|
|
|
2008-10-27 17:10:39 +01:00
|
|
|
echo "Enabling PulseAudio for OSS..."
|
2008-09-22 18:12:49 +02:00
|
|
|
for app in $LIST_OF_OSS_APPS; do
|
2010-08-01 17:15:10 +02:00
|
|
|
if grep "alias $app=padsp $app" /etc/environment; then
|
2008-09-22 18:12:49 +02:00
|
|
|
echo "Application $app already setup for PulseAudio"
|
|
|
|
else
|
2010-08-01 17:15:10 +02:00
|
|
|
echo "alias $app=padsp $app" >> /etc/environment
|
2008-09-22 18:12:49 +02:00
|
|
|
fi
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
enable_sdl() {
|
2008-10-27 17:10:39 +01:00
|
|
|
echo "Enabling PulseAudio for SDL..."
|
2008-09-22 18:12:49 +02:00
|
|
|
# For SDL, we just add an environment variable, so that apps use the PA audio driver
|
2010-08-01 17:15:10 +02:00
|
|
|
if grep SDL_AUDIODRIVER /etc/environment; then
|
|
|
|
echo "SDL already setup to use PulseAudio"
|
|
|
|
else
|
|
|
|
echo "SDL_AUDIODRIVER=pulse" >> /etc/environment
|
|
|
|
fi
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
enable_timidity() {
|
2010-08-01 17:15:10 +02:00
|
|
|
# this is broken. /etc/environment must only contain environment
|
|
|
|
# variables. It's not a shell script
|
|
|
|
return 0
|
|
|
|
|
2008-10-27 17:10:39 +01:00
|
|
|
echo "Enabling PulseAudio for Timidity..."
|
2008-09-22 18:12:49 +02:00
|
|
|
# Use esound output for timidity
|
2010-08-01 17:15:10 +02:00
|
|
|
if grep "alias timidity=timidity -Oe" /etc/environment; then
|
2008-09-22 18:12:49 +02:00
|
|
|
echo "Timidity already setup for using PulseAudio"
|
|
|
|
else
|
2010-08-01 17:15:10 +02:00
|
|
|
echo "alias timidity=timidity -Oe" >> /etc/environment
|
2008-09-22 18:12:49 +02:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
enable_xine() {
|
2009-11-05 18:23:10 +01:00
|
|
|
#echo "Enabling PulseAudio for Xine..."
|
2008-09-22 18:12:49 +02:00
|
|
|
# FIXME: xine uses $HOME/.xine/config
|
2009-11-05 18:23:10 +01:00
|
|
|
return 0
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
2009-10-08 17:53:50 +02:00
|
|
|
enable_autospawn() {
|
|
|
|
echo "Enabling PulseAudio autospawn..."
|
|
|
|
if grep -q ^autospawn /etc/pulse/client.conf; then
|
|
|
|
perl -pi -e "s|^autospawn.*|autospawn = yes|g;" /etc/pulse/client.conf
|
|
|
|
else
|
|
|
|
echo "autospawn = yes" >> /etc/pulse/client.conf
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2008-09-22 18:12:49 +02:00
|
|
|
disable_alsa() {
|
2008-10-27 17:10:39 +01:00
|
|
|
echo "Disabling PulseAudio for ALSA..."
|
2010-08-01 17:15:10 +02:00
|
|
|
perl -pi -e "s|ALSA_CONFIG_PATH=/etc/alsa-pulse.conf||g;" /etc/environment
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
2010-04-01 03:09:27 +02:00
|
|
|
disable_phonon() {
|
|
|
|
echo "Disabling PulseAudio for Phonon..."
|
2010-08-01 17:15:10 +02:00
|
|
|
if grep "PHONON_PULSEAUDIO_DISABLE" /etc/environment; then
|
|
|
|
echo "PulseAudio config for Phonon already in use"
|
|
|
|
else
|
|
|
|
echo "PHONON_PULSEAUDIO_DISABLE=1" >> /etc/environment
|
|
|
|
fi
|
2010-04-01 03:09:27 +02:00
|
|
|
}
|
|
|
|
|
2008-09-22 18:12:49 +02:00
|
|
|
disable_libao() {
|
2008-10-27 17:10:39 +01:00
|
|
|
if test -f /etc/libao.conf; then
|
2009-11-05 18:23:10 +01:00
|
|
|
echo "Disabling PulseAudio for libao..."
|
2008-10-27 17:10:39 +01:00
|
|
|
perl -pi -e "s|default_driver=pulse||g;" /etc/libao.conf
|
|
|
|
fi
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
disable_mplayer() {
|
2008-10-27 17:10:39 +01:00
|
|
|
if test -f /etc/mplayer/mplayer.conf; then
|
2009-11-05 18:23:10 +01:00
|
|
|
echo "Disabling PulseAudio for mplayer..."
|
2008-10-27 17:10:39 +01:00
|
|
|
perl -pi -e "s|ao=pulse||g;" /etc/mplayer/mplayer.conf
|
|
|
|
fi
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
disable_openal() {
|
2009-11-05 18:23:10 +01:00
|
|
|
# nothing to do here. openal-soft is patched to prefer pulse but
|
|
|
|
# it won't autostart the daemon.
|
|
|
|
return 0
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
disable_oss() {
|
2010-08-01 17:15:10 +02:00
|
|
|
# this is broken. /etc/environment must only contain environment
|
|
|
|
# variables. It's not a shell script
|
|
|
|
return 0
|
|
|
|
|
2008-09-22 18:12:49 +02:00
|
|
|
for app in $LIST_OF_OSS_APPS; do
|
2010-08-01 17:15:10 +02:00
|
|
|
perl -pi -e "s|alias $app=padsp $app||g;" /etc/environment
|
2008-09-22 18:12:49 +02:00
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
disable_sdl() {
|
2008-10-27 17:10:39 +01:00
|
|
|
echo "Disabling PulseAudio for SDL..."
|
2010-08-01 17:15:10 +02:00
|
|
|
if grep "SDL_AUDIODRIVER=pulse" /etc/environment; then
|
|
|
|
perl -pi -e "s|SDL_AUDIODRIVER=pulse||g;" /etc/environment
|
|
|
|
fi
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
disable_timidity() {
|
2010-08-01 17:15:10 +02:00
|
|
|
# this is broken. /etc/environment must only contain environment
|
|
|
|
# variables. It's not a shell script
|
|
|
|
return 0
|
|
|
|
|
2008-10-27 17:10:39 +01:00
|
|
|
echo "Disabling PulseAudio for Timidity..."
|
2010-08-01 17:15:10 +02:00
|
|
|
perl -pi -e "s|alias timidity=timidity -Oe||g;" /etc/environment
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
disable_xine() {
|
2009-11-05 18:23:10 +01:00
|
|
|
#echo "Disabling PulseAudio for Xine..."
|
2008-09-22 18:12:49 +02:00
|
|
|
# FIXME: xine uses $HOME/.xine/config
|
2009-11-05 18:23:10 +01:00
|
|
|
return 0
|
2008-09-22 18:12:49 +02:00
|
|
|
}
|
|
|
|
|
2009-10-08 17:53:50 +02:00
|
|
|
disable_autospawn() {
|
|
|
|
echo "Disabling PulseAudio autospawn..."
|
|
|
|
if grep -q ^autospawn /etc/pulse/client.conf; then
|
|
|
|
perl -pi -e "s|^autospawn.*|autospawn = no|g;" /etc/pulse/client.conf
|
|
|
|
else
|
|
|
|
echo "autospawn = no" >> /etc/pulse/client.conf
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2008-09-22 18:12:49 +02:00
|
|
|
case $1 in
|
|
|
|
--enable)
|
2008-11-28 15:53:14 +01:00
|
|
|
check_root || exit
|
2008-09-22 18:12:49 +02:00
|
|
|
ENABLE=1
|
|
|
|
enable_alsa
|
|
|
|
enable_libao
|
|
|
|
enable_mplayer
|
|
|
|
enable_openal
|
|
|
|
enable_oss
|
|
|
|
enable_sdl
|
|
|
|
enable_timidity
|
|
|
|
enable_xine
|
2009-10-08 17:53:50 +02:00
|
|
|
enable_autospawn
|
2010-04-01 03:09:27 +02:00
|
|
|
enable_phonon
|
2008-09-22 18:12:49 +02:00
|
|
|
;;
|
|
|
|
--disable)
|
2008-11-28 15:53:14 +01:00
|
|
|
check_root || exit
|
2008-09-22 18:12:49 +02:00
|
|
|
ENABLE=0
|
|
|
|
disable_alsa
|
|
|
|
disable_libao
|
|
|
|
disable_mplayer
|
|
|
|
disable_openal
|
|
|
|
disable_oss
|
|
|
|
disable_sdl
|
|
|
|
disable_timidity
|
|
|
|
disable_xine
|
2009-10-08 17:53:50 +02:00
|
|
|
disable_autospawn
|
2010-04-01 03:09:27 +02:00
|
|
|
disable_phonon
|
2008-09-22 18:12:49 +02:00
|
|
|
;;
|
|
|
|
--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
|
2009-10-08 17:53:50 +02:00
|
|
|
if grep -q PULSEAUDIO_ENABLE /etc/sysconfig/sound; then
|
2008-11-20 16:17:26 +01:00
|
|
|
if [ "x$ENABLE" = "x1" ]; then
|
|
|
|
perl -pi -e "s|PULSEAUDIO_ENABLE=\"no\"|PULSEAUDIO_ENABLE=\"yes\"|g;" /etc/sysconfig/sound
|
|
|
|
else
|
|
|
|
perl -pi -e "s|PULSEAUDIO_ENABLE=\"yes\"|PULSEAUDIO_ENABLE=\"no\"|g;" /etc/sysconfig/sound
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
if [ "x$ENABLE" = "x1" ]; then
|
|
|
|
echo "PULSEAUDIO_ENABLE=\"yes\"" >> /etc/sysconfig/sound
|
|
|
|
else
|
|
|
|
echo "PULSEAUDIO_ENABLE=\"no\"" >> /etc/sysconfig/sound
|
|
|
|
fi
|
|
|
|
fi
|
2008-09-22 18:12:49 +02:00
|
|
|
|
2008-11-28 15:53:14 +01:00
|
|
|
/sbin/SuSEconfig
|