pulseaudio/setup-pulseaudio

213 lines
5.0 KiB
Plaintext
Raw Normal View History

#!/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"
echo ""
echo "You need to be root for this command to succeed"
exit
}
check_root() {
id=`id -u`
if [ "x$id" = "x0" ]; then
true
else
echo "You need to be root in order to enable/disable pulseaudio"
false
fi
}
enable_alsa() {
echo "Enabling PulseAudio for ALSA..."
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
}
enable_libao() {
echo "Enabling PulseAudio for libao..."
if test -f /etc/libao.conf; then
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
else
echo "default_driver=pulse" >> /etc/libao.conf
fi
}
enable_mplayer() {
echo "Enabling PulseAudio for mplayer..."
# Maybe it would be better to just add a alias mplayer=mplayer -ao pulse to /etc/environment?
if test -f /etc/mplayer/mplayer.conf; then
if grep "ao=pulse" /etc/mplayer/mplayer.conf; then
echo "Default driver is pulse already in /etc/mplayer/mplayer.conf"
else
echo ""
fi
else
echo "ao=pulse" >> /etc/mplayer/mplayer.conf
fi
# FIXME: mplayerplug-in uses $HOME/.mplayer/mplayerplug-in.conf
}
enable_openal() {
echo "Enabling PulseAudio for openal..."
# FIXME: openal uses ~/.openalrc
echo ""
}
enable_oss() {
echo "Enabling PulseAudio for 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() {
echo "Enabling PulseAudio for SDL..."
# For SDL, we just add an environment variable, so that apps use the PA audio driver
if grep SDL_AUDIODRIVER /etc/environment; then
echo "SDL already setup to use PulseAudio"
else
echo "SDL_AUDIODRIVER=pulse" >> /etc/environment
fi
}
enable_timidity() {
echo "Enabling PulseAudio for 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() {
echo "Enabling PulseAudio for Xine..."
# FIXME: xine uses $HOME/.xine/config
echo ""
}
disable_alsa() {
echo "Disabling PulseAudio for ALSA..."
perl -pi -e "s|ALSA_CONFIG_PATH=/etc/alsa-pulse.conf||g;" /etc/environment
}
disable_libao() {
echo "Disabling PulseAudio for libao..."
if test -f /etc/libao.conf; then
perl -pi -e "s|default_driver=pulse||g;" /etc/libao.conf
fi
}
disable_mplayer() {
echo "Disabling PulseAudio for mplayer..."
if test -f /etc/mplayer/mplayer.conf; then
perl -pi -e "s|ao=pulse||g;" /etc/mplayer/mplayer.conf
fi
}
disable_openal() {
echo "Disabling PulseAudio for openal..."
# FIXME: openal uses ~/.openalrc
echo ""
}
disable_oss() {
echo "Disabling PulseAudio for OSS..."
for app in $LIST_OF_OSS_APPS; do
perl -pi -e "s|alias $app=padsp $app||g;" /etc/environment
done
}
disable_sdl() {
echo "Disabling PulseAudio for SDL..."
if grep "SDL_AUDIODRIVER=pulse" /etc/environment; then
perl -pi -e "s|SDL_AUDIODRIVER=pulse||g;" /etc/environment
fi
}
disable_timidity() {
echo "Disabling PulseAudio for Timidity..."
perl -pi -e "s|alias timidity=timidity -Oe||g;" /etc/environment
}
disable_xine() {
echo "Disabling PulseAudio for Xine..."
# FIXME: xine uses $HOME/.xine/config
echo ""
}
case $1 in
--enable)
check_root || exit
ENABLE=1
enable_alsa
enable_libao
enable_mplayer
enable_openal
enable_oss
enable_sdl
enable_timidity
enable_xine
;;
--disable)
check_root || exit
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 [ "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
/sbin/SuSEconfig