add missing pieces for new startup logic
authorLennart Poettering <lennart@poettering.net>
Wed, 23 Jul 2008 20:46:39 +0000 (22:46 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 23 Jul 2008 20:46:39 +0000 (22:46 +0200)
src/Makefile.am
src/daemon/pulseaudio-module-xsmp.desktop [deleted file]
src/daemon/pulseaudio.desktop [new file with mode: 0644]
src/daemon/start-pulseaudio-x11.in [new file with mode: 0755]

index 788857c..98d06aa 100644 (file)
@@ -99,9 +99,10 @@ EXTRA_DIST = \
                daemon/default.pa.win32 \
                depmod.py \
                daemon/esdcompat.in \
+               daemon/start-pulseaudio-x11.in \
                utils/padsp \
                modules/module-defs.h.m4 \
-               daemon/pulseaudio-module-xsmp.desktop \
+               daemon/pulseaudio.desktop \
                map-file \
                daemon/org.pulseaudio.policy
 
@@ -112,7 +113,7 @@ pulseconf_DATA = \
 
 if HAVE_X11
 xdgautostart_DATA = \
-               daemon/pulseaudio-module-xsmp.desktop
+               daemon/pulseaudio.desktop
 endif
 
 BUILT_SOURCES = \
@@ -184,7 +185,7 @@ if HAVE_AVAHI
 bin_PROGRAMS += pabrowse
 endif
 
-bin_SCRIPTS = esdcompat
+bin_SCRIPTS = esdcompat start-pulseaudio-x11
 
 pacat_SOURCES = utils/pacat.c
 pacat_LDADD = $(AM_LDADD) libpulse.la
@@ -1542,7 +1543,7 @@ suid: pulseaudio .libs/lt-pulseaudio
        chown root $^
        chmod u+s $^
 
-CLEANFILES = esdcompat client.conf default.pa daemon.conf
+CLEANFILES = esdcompat client.conf default.pa daemon.conf start-pulseaudio-x11
 
 esdcompat: daemon/esdcompat.in Makefile
        sed -e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
@@ -1550,6 +1551,11 @@ esdcompat: daemon/esdcompat.in Makefile
                -e 's,@PA_BINARY\@,$(PA_BINARY),g' < $< > $@
        chmod +x esdcompat
 
+start-pulseaudio-x11: daemon/start-pulseaudio-x11.in Makefile
+       sed -e 's,@PA_BINARY\@,$(PA_BINARY),g' \
+               -e 's,@PACTL_BINARY\@,$(bindir)/pactl,g' < $< > $@
+       chmod +x start-pulseaudio-x11
+
 client.conf: pulse/client.conf.in Makefile
        sed -e 's,@PA_BINARY\@,$(PA_BINARY),g' < $< > $@
 
diff --git a/src/daemon/pulseaudio-module-xsmp.desktop b/src/daemon/pulseaudio-module-xsmp.desktop
deleted file mode 100644 (file)
index fa719a7..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Name=PulseAudio Session Management
-Comment=Load module-x11-xsmp into PulseAudio
-Exec=pactl load-module module-x11-xsmp
-Terminal=false
-Type=Application
-Categories=
-GenericName=
diff --git a/src/daemon/pulseaudio.desktop b/src/daemon/pulseaudio.desktop
new file mode 100644 (file)
index 0000000..57a7a6e
--- /dev/null
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Name=PulseAudio Sound System
+Comment=Start the PulseAudio Sound System
+Exec=start-pulseaudio-x11
+Terminal=false
+Type=Application
+Categories=
+GenericName=
diff --git a/src/daemon/start-pulseaudio-x11.in b/src/daemon/start-pulseaudio-x11.in
new file mode 100755 (executable)
index 0000000..3cccc4d
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA.
+
+set -e
+
+@PA_BINARY@ --start "$@"
+
+if [ x"$DISPLAY" != x ] ; then
+
+    @PACTL_BINARY@ load-module module-x11-publish "display=$DISPLAY" > /dev/null
+
+    if [ x"$SESSION_MANAGER" != x ] ; then
+       @PACTL_BINARY@ load-module module-x11-xsmp "display=$DISPLAY session_manager=$SESSION_MANAGER" > /dev/null
+    fi
+fi