From 91c239ee58ff36dfe235a13b7286fd36bd5a08f8 Mon Sep 17 00:00:00 2001 From: matt335672 <30179339+matt335672@users.noreply.github.com> Date: Tue, 19 Oct 2021 10:15:38 +0100 Subject: [PATCH] Add install files to the build --- Makefile.am | 2 +- configure.ac | 3 ++- instfiles/Makefile.am | 33 ++++++++++++++++++++++++++++ instfiles/load_pa_modules.sh | 32 +++++++++++++++++++++++++++ instfiles/pulseaudio-xrdp.desktop.in | 9 ++++++++ 5 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 instfiles/Makefile.am create mode 100755 instfiles/load_pa_modules.sh create mode 100644 instfiles/pulseaudio-xrdp.desktop.in diff --git a/Makefile.am b/Makefile.am index 3bc4e60..e944705 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src +SUBDIRS = src instfiles EXTRA_DIST = bootstrap.sh diff --git a/configure.ac b/configure.ac index 4d30e39..d4090b4 100644 --- a/configure.ac +++ b/configure.ac @@ -80,5 +80,6 @@ AC_TYPE_UINT32_T AC_CHECK_FUNCS([memset socket]) AC_CONFIG_FILES([Makefile - src/Makefile]) + src/Makefile + instfiles/Makefile]) AC_OUTPUT diff --git a/instfiles/Makefile.am b/instfiles/Makefile.am new file mode 100644 index 0000000..9c281fe --- /dev/null +++ b/instfiles/Makefile.am @@ -0,0 +1,33 @@ +EXTRA_DIST = \ + load_pa_modules.sh \ + pulseaudio-xrdp.desktop.in + +# +# substitute directories in service file +# +CLEANFILES= \ + pulseaudio-xrdp.desktop + +SUBST_VARS = sed \ + -e 's|@pkglibexecdir[@]|$(pkglibexecdir)|g' + +subst_verbose = $(subst_verbose_@AM_V@) +subst_verbose_ = $(subst_verbose_@AM_DEFAULT_V@) +subst_verbose_0 = @echo " SUBST $@"; + +SUFFIXES = .in +.in: + $(subst_verbose)$(SUBST_VARS) $< > $@ + +# +# files for all platforms +# + +# Don't use sysconfdir for this one as it won't work! +xdgautostartdir=/etc/xdg/autostart + +xdgautostart_DATA = \ + pulseaudio-xrdp.desktop + +pkglibexec_SCRIPTS = \ + load_pa_modules.sh diff --git a/instfiles/load_pa_modules.sh b/instfiles/load_pa_modules.sh new file mode 100755 index 0000000..bfb2bc6 --- /dev/null +++ b/instfiles/load_pa_modules.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +PACTL=/usr/bin/pactl + +if [ -n "$XRDP_SESSION" -a -n "$XRDP_SOCKET_PATH" ]; then + # These values are not present on xrdp versions before v0.9.8 + if [ -z "$XRDP_PULSE_SINK_SOCKET" -o \ + -z "$XRDP_PULSE_SOURCE_SOCKET" ]; then + displaynum=${DISPLAY##*:} + displaynum=${displaynum%.*} + XRDP_PULSE_SINK_SOCKET=xrdp_chansrv_audio_out_socket_$displaynum + XRDP_PULSE_SOURCE_SOCKET=xrdp_chansrv_audio_in_socket_$displaynum + fi + + # Don't check for the presence of the sockets, as if the modules + # are loaded they won't be there + + # Unload modules + $PACTL unload-module module-xrdp-sink >/dev/null 2>&1 + $PACTL unload-module module-xrdp-source >/dev/null 2>&1 + + # Reload modules + $PACTL load-module module-xrdp-sink \ + xrdp_socket_path=$XRDP_SOCKET_PATH \ + xrdp_pulse_sink_socket=$XRDP_PULSE_SINK_SOCKET && \ + \ + $PACTL load-module module-xrdp-source \ + xrdp_socket_path=$XRDP_SOCKET_PATH \ + xrdp_pulse_source_socket=$XRDP_PULSE_SOURCE_SOCKET +fi + +exit $? diff --git a/instfiles/pulseaudio-xrdp.desktop.in b/instfiles/pulseaudio-xrdp.desktop.in new file mode 100644 index 0000000..baac740 --- /dev/null +++ b/instfiles/pulseaudio-xrdp.desktop.in @@ -0,0 +1,9 @@ +[Desktop Entry] +Version=1.0 +Name=PulseAudio xrdp modules +Comment=Load PulseAudio Modules for xrdp +Exec=@pkglibexecdir@/load_pa_modules.sh +Terminal=false +Type=Application +Categories= +GenericName=