Merge pull request #152 from hean01-cendio/pulseaudio
Add support for pulseaudio backend
This commit is contained in:
commit
b5917bc9a2
23
configure.ac
23
configure.ac
@ -276,7 +276,7 @@ AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET")
|
|||||||
|
|
||||||
sound="yes"
|
sound="yes"
|
||||||
AC_ARG_WITH(sound,
|
AC_ARG_WITH(sound,
|
||||||
[ --with-sound select sound system ("oss", "sgi", "sun", "alsa" or "libao") ],
|
[ --with-sound select sound system ("oss", "sgi", "sun", "alsa", "pulse" or "libao") ],
|
||||||
[
|
[
|
||||||
sound="$withval"
|
sound="$withval"
|
||||||
])
|
])
|
||||||
@ -292,6 +292,7 @@ AC_ARG_ENABLE(static-libsamplerate,
|
|||||||
|
|
||||||
if test -n "$PKG_CONFIG"; then
|
if test -n "$PKG_CONFIG"; then
|
||||||
PKG_CHECK_MODULES(LIBAO, ao, [HAVE_LIBAO=1], [HAVE_LIBAO=0])
|
PKG_CHECK_MODULES(LIBAO, ao, [HAVE_LIBAO=1], [HAVE_LIBAO=0])
|
||||||
|
PKG_CHECK_MODULES(PULSE, libpulse, [HAVE_PULSE=1], [HAVE_PULSE=0])
|
||||||
PKG_CHECK_MODULES(ALSA, alsa, [HAVE_ALSA=1], [HAVE_ALSA=0])
|
PKG_CHECK_MODULES(ALSA, alsa, [HAVE_ALSA=1], [HAVE_ALSA=0])
|
||||||
PKG_CHECK_MODULES(LIBSAMPLERATE, samplerate, [HAVE_LIBSAMPLERATE=1], [HAVE_LIBSAMPLERATE=0])
|
PKG_CHECK_MODULES(LIBSAMPLERATE, samplerate, [HAVE_LIBSAMPLERATE=1], [HAVE_LIBSAMPLERATE=0])
|
||||||
if test x"$HAVE_LIBSAMPLERATE" = "x1"; then
|
if test x"$HAVE_LIBSAMPLERATE" = "x1"; then
|
||||||
@ -336,6 +337,13 @@ case $sound in
|
|||||||
AC_DEFINE(RDPSND_ALSA)
|
AC_DEFINE(RDPSND_ALSA)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test x"$HAVE_PULSE" = "x1"; then
|
||||||
|
SOUNDOBJ="$SOUNDOBJ rdpsnd_pulse.o"
|
||||||
|
CFLAGS="$CFLAGS $PULSE_CFLAGS"
|
||||||
|
LIBS="$LIBS $PULSE_LIBS"
|
||||||
|
AC_DEFINE(RDPSND_PULSE)
|
||||||
|
fi
|
||||||
|
|
||||||
if test x"$HAVE_LIBAO" = "x1"; then
|
if test x"$HAVE_LIBAO" = "x1"; then
|
||||||
SOUNDOBJ="$SOUNDOBJ rdpsnd_libao.o"
|
SOUNDOBJ="$SOUNDOBJ rdpsnd_libao.o"
|
||||||
CFLAGS="$CFLAGS $LIBAO_CFLAGS"
|
CFLAGS="$CFLAGS $LIBAO_CFLAGS"
|
||||||
@ -384,6 +392,17 @@ case $sound in
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
pulse)
|
||||||
|
if test x"$HAVE_PULSE" = "x1"; then
|
||||||
|
SOUNDOBJ="$SOUNDOBJ rdpsnd_pulse.o"
|
||||||
|
CFLAGS="$CFLAGS $PULSE_CFLAGS"
|
||||||
|
LIBS="$LIBS $PULSE_LIBS"
|
||||||
|
AC_DEFINE(RDPSND_PULSE)
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([Selected sound system is not available.])
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
libao)
|
libao)
|
||||||
if test x"$HAVE_LIBAO" = "x1"; then
|
if test x"$HAVE_LIBAO" = "x1"; then
|
||||||
SOUNDOBJ="$SOUNDOBJ rdpsnd_libao.o"
|
SOUNDOBJ="$SOUNDOBJ rdpsnd_libao.o"
|
||||||
@ -400,7 +419,7 @@ case $sound in
|
|||||||
|
|
||||||
*)
|
*)
|
||||||
AC_MSG_WARN([sound support disabled])
|
AC_MSG_WARN([sound support disabled])
|
||||||
AC_MSG_WARN([Currently supported systems are Open Sound System (oss), SGI AL (sgi), Sun/BSD (sun), ALSA (alsa) and libao])
|
AC_MSG_WARN([Currently supported systems are Open Sound System (oss), SGI AL (sgi), Sun/BSD (sun), ALSA (alsa), PulseAudio (pulse) and libao])
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
6
rdpsnd.c
6
rdpsnd.c
@ -3,6 +3,7 @@
|
|||||||
Sound Channel Process Functions
|
Sound Channel Process Functions
|
||||||
Copyright 2006-2010 Pierre Ossman <ossman@cendio.se> for Cendio AB
|
Copyright 2006-2010 Pierre Ossman <ossman@cendio.se> for Cendio AB
|
||||||
Copyright 2009-2011 Peter Astrand <astrand@cendio.se> for Cendio AB
|
Copyright 2009-2011 Peter Astrand <astrand@cendio.se> for Cendio AB
|
||||||
|
Copyright 2017 Henrik Andersson <hean01@cendio.se> for Cendio AB
|
||||||
Copyright (C) Matthew Chapman <matthewc.unsw.edu.au> 2003-2008
|
Copyright (C) Matthew Chapman <matthewc.unsw.edu.au> 2003-2008
|
||||||
Copyright (C) GuoJunBo <guojunbo@ict.ac.cn> 2003
|
Copyright (C) GuoJunBo <guojunbo@ict.ac.cn> 2003
|
||||||
Copyright 2017 Karl Mikaelsson <derfian@cendio.se> for Cendio AB
|
Copyright 2017 Karl Mikaelsson <derfian@cendio.se> for Cendio AB
|
||||||
@ -462,6 +463,11 @@ rdpsnd_register_drivers(char *options)
|
|||||||
/* The order of registrations define the probe-order
|
/* The order of registrations define the probe-order
|
||||||
when opening the device for the first time */
|
when opening the device for the first time */
|
||||||
reg = &drivers;
|
reg = &drivers;
|
||||||
|
#if defined(RDPSND_PULSE)
|
||||||
|
*reg = pulse_register(options);
|
||||||
|
assert(*reg);
|
||||||
|
reg = &((*reg)->next);
|
||||||
|
#endif
|
||||||
#if defined(RDPSND_ALSA)
|
#if defined(RDPSND_ALSA)
|
||||||
*reg = alsa_register(options);
|
*reg = alsa_register(options);
|
||||||
assert(*reg);
|
assert(*reg);
|
||||||
|
1
rdpsnd.h
1
rdpsnd.h
@ -52,6 +52,7 @@ struct audio_driver
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Driver register functions */
|
/* Driver register functions */
|
||||||
|
struct audio_driver *pulse_register(char *options);
|
||||||
struct audio_driver *alsa_register(char *options);
|
struct audio_driver *alsa_register(char *options);
|
||||||
struct audio_driver *libao_register(char *options);
|
struct audio_driver *libao_register(char *options);
|
||||||
struct audio_driver *oss_register(char *options);
|
struct audio_driver *oss_register(char *options);
|
||||||
|
1382
rdpsnd_pulse.c
Normal file
1382
rdpsnd_pulse.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user