204 lines
4.5 KiB
Plaintext
204 lines
4.5 KiB
Plaintext
|
#!/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
|