Merge branch 'master' of ssh://rootserver/home/lennart/git/public/pulseaudio

This commit is contained in:
Lennart Poettering 2009-03-04 22:07:56 +01:00
commit dcee888865
325 changed files with 1300 additions and 865 deletions

View file

@ -61,6 +61,12 @@ dist-hook:
( git-changelog.perl || echo "git-changelog.perl failed." ) > ${distdir}/ChangeLog 2>&1 ; \ ( git-changelog.perl || echo "git-changelog.perl failed." ) > ${distdir}/ChangeLog 2>&1 ; \
fi fi
update-shave:
for i in shave.in shave.m4 shave-libtool.in; do \
wget -O $$i http://git.lespiau.name/cgit/shave/blob/\?path=shave/$$i ; \
done
mv shave.m4 m4/
.PHONY: homepage distcleancheck doxygen .PHONY: homepage distcleancheck doxygen
DISTCLEANFILES = \ DISTCLEANFILES = \

View file

@ -62,7 +62,7 @@ else
rm -f Makefile.am~ configure.ac~ rm -f Makefile.am~ configure.ac~
# Evil, evil, evil, evil hack # Evil, evil, evil, evil hack
sed 's/read dummy/\#/' `which gettextize` | sh -s -- --copy --force sed 's/read dummy/\#/' `which gettextize` | bash -s -- --copy --force
test -f Makefile.am~ && mv Makefile.am~ Makefile.am test -f Makefile.am~ && mv Makefile.am~ Makefile.am
test -f configure.ac~ && mv configure.ac~ configure.ac test -f configure.ac~ && mv configure.ac~ configure.ac

View file

@ -70,8 +70,7 @@ fi
case $host in case $host in
*-*-solaris* ) *-*-solaris* )
AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Needed to get declarations for msg_control and msg_controllen on Solaris) AC_DEFINE(_XOPEN_SOURCE, 600, Needed to get declarations for msg_control and msg_controllen on Solaris)
AC_DEFINE(_XOPEN_SOURCE, 2, Needed to get declarations for msg_control and msg_controllen on Solaris)
AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris) AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
;; ;;
esac esac
@ -92,11 +91,20 @@ AC_USE_SYSTEM_EXTENSIONS
# M4 # M4
AC_PATH_PROG([M4], [m4 gm4], [no]) AC_CHECK_PROGS([M4], gm4 m4, no)
if test "x$M4" = xno ; then if test "x$M4" = xno ; then
AC_MSG_ERROR([m4 missing]) AC_MSG_ERROR([m4 missing])
fi fi
# Linker
AC_PROG_LD
AC_PROG_LD_GNU
AC_SUBST(HAVE_GNU_LD)
AM_CONDITIONAL([HAVE_GNU_LD], [test "x$HAVE_GNU_LD" = x1])
dnl Compiler flags dnl Compiler flags
DESIRED_FLAGS="-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option" DESIRED_FLAGS="-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option"
@ -990,7 +998,7 @@ AC_ARG_ENABLE([udev],
], ],
[udev=auto]) [udev=auto])
if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
PKG_CHECK_MODULES(UDEV, [ libudev ], PKG_CHECK_MODULES(UDEV, [ libudev >= 137 ],
[ [
HAVE_UDEV=1 HAVE_UDEV=1
AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]) AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
@ -1059,7 +1067,7 @@ if test "x$HAVE_HAL" = x1 ; then
dbus=yes dbus=yes
fi fi
if test "x${dbus}" != xno || test "x${bluez}" != xno || "x${hal}" != xno ; then if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ], PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
[ [

View file

@ -1,9 +1,12 @@
dnl Make automake/libtool output more friendly to humans dnl Make automake/libtool output more friendly to humans
dnl dnl
dnl SHAVE_INIT([shavedir]) dnl SHAVE_INIT([shavedir],[default_mode])
dnl dnl
dnl shavedir: the directory where the shave scripts are, it defaults to dnl shavedir: the directory where the shave scripts are, it defaults to
dnl $(top_builddir) dnl $(top_builddir)
dnl default_mode: (enable|disable) default shave mode. This parameter
dnl controls shave's behaviour when no option has been
dnl given to configure. It defaults to disable.
dnl dnl
dnl * SHAVE_INIT should be called late in your configure.(ac|in) file (just dnl * SHAVE_INIT should be called late in your configure.(ac|in) file (just
dnl before AC_CONFIG_FILE/AC_OUTPUT is perfect. This macro rewrites CC and dnl before AC_CONFIG_FILE/AC_OUTPUT is perfect. This macro rewrites CC and
@ -11,19 +14,26 @@ dnl LIBTOOL, you don't want the configure tests to have these variables
dnl re-defined. dnl re-defined.
dnl * This macro requires GNU make's -s option. dnl * This macro requires GNU make's -s option.
AC_DEFUN([_SHAVE_ARG_ENABLE],
[
AC_ARG_ENABLE([shave],
AS_HELP_STRING(
[--enable-shave],
[use shave to make the build pretty [[default=$1]]]),,
[enable_shave=$1]
)
])
AC_DEFUN([SHAVE_INIT], AC_DEFUN([SHAVE_INIT],
[ [
dnl enable/disable shave dnl you can tweak the default value of enable_shave
AC_ARG_ENABLE([shave], m4_if([$2], [enable], [_SHAVE_ARG_ENABLE(yes)], [_SHAVE_ARG_ENABLE(no)])
AS_HELP_STRING([--enable-shave],
[use shave to make the build pretty [[default=no]]]),,
[enable_shave=no])
if test x"$enable_shave" = xyes; then if test x"$enable_shave" = xyes; then
dnl where can we find the shave scripts? dnl where can we find the shave scripts?
m4_if([$1],, m4_if([$1],,
[shavedir='$(top_builddir)'], [shavedir="$ac_pwd"],
[shavedir='$(top_builddir)'/$1]) [shavedir="$ac_pwd/$1"])
AC_SUBST(shavedir) AC_SUBST(shavedir)
dnl make is now quiet dnl make is now quiet
@ -35,19 +45,22 @@ AC_DEFUN([SHAVE_INIT],
dnl substitute libtool dnl substitute libtool
SHAVE_SAVED_LIBTOOL=$LIBTOOL SHAVE_SAVED_LIBTOOL=$LIBTOOL
AC_SUBST(SHAVE_SAVED_LIBTOOL) LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'"
LIBTOOL="\$(SHELL) \$(shavedir)/shave-libtool '\$(SHAVE_SAVED_LIBTOOL)'"
AC_SUBST(LIBTOOL) AC_SUBST(LIBTOOL)
dnl substitute cc/cxx dnl substitute cc/cxx
SHAVE_SAVED_CC=$CC SHAVE_SAVED_CC=$CC
SHAVE_SAVED_CXX=$CXX SHAVE_SAVED_CXX=$CXX
AC_SUBST(SHAVE_SAVED_CC) SHAVE_SAVED_FC=$FC
AC_SUBST(SHAVE_SAVED_CXX) SHAVE_SAVED_F77=$F77
CC="\$(SHELL) \$(shavedir)/shave cc '\$(SHAVE_SAVED_CC)'" CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}"
CXX="\$(SHELL) \$(shavedir)/shave cxx '\$(SHAVE_SAVED_CXX)'" CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}"
FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}"
F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}"
AC_SUBST(CC) AC_SUBST(CC)
AC_SUBST(CXX) AC_SUBST(CXX)
AC_SUBST(FC)
AC_SUBST(F77)
V=@ V=@
else else
@ -58,12 +71,3 @@ AC_DEFUN([SHAVE_INIT],
AC_SUBST(Q) AC_SUBST(Q)
]) ])
AC_DEFUN([SHAVE_OUTPUT],
[
if test x"$enable_shave" = xyes; then
dnl small workaround to fix libtool itself
dnl it's shokingly hard to find a better way, really! wtf...
test -f $srcdir/libtool && (tmpfile=`mktemp` && cat $srcdir/libtool | sed "s,^LTCC=.*$,LTCC=\"$SHELL $ac_pwd/shave cc $SHAVE_SAVED_CC\"," > $tmpfile && mv $tmpfile $srcdir/libtool)
fi
])

View file

@ -8,7 +8,7 @@ fi
lt_unmangle () lt_unmangle ()
{ {
last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_]\*_la-##'` last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'`
} }
# the real libtool to use # the real libtool to use

View file

@ -8,7 +8,7 @@ fi
lt_unmangle () lt_unmangle ()
{ {
last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_]\*_la-##'` last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'`
} }
# the tool to wrap (cc, cxx, ar, ranlib, ..) # the tool to wrap (cc, cxx, ar, ranlib, ..)
@ -50,6 +50,12 @@ link,*)
*,cc) *,cc)
Q=" CC " Q=" CC "
;; ;;
*,fc)
Q=" FC "
;;
*,f77)
Q=" F77 "
;;
*,*) *,*)
# should not happen # should not happen
Q=" CC " Q=" CC "

View file

@ -713,8 +713,11 @@ libpulse_la_SOURCES = \
pulse/xmalloc.c pulse/xmalloc.h pulse/xmalloc.c pulse/xmalloc.h
libpulse_la_CFLAGS = $(AM_CFLAGS) libpulse_la_CFLAGS = $(AM_CFLAGS)
libpulse_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBPULSE_VERSION_INFO) -Wl,-version-script=$(srcdir)/map-file
libpulse_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS) $(LTLIBICONV) libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS) $(LTLIBICONV) libpulsecommon-@PA_MAJORMINORMICRO@.la
libpulse_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBPULSE_VERSION_INFO)
if HAVE_GNU_LD
libpulse_la_LDFLAGS += -Wl,-version-script=$(srcdir)/map-file
endif
if HAVE_X11 if HAVE_X11
libpulse_la_SOURCES += pulse/client-conf-x11.c pulse/client-conf-x11.h libpulse_la_SOURCES += pulse/client-conf-x11.c pulse/client-conf-x11.h
@ -725,17 +728,26 @@ endif
libpulse_simple_la_SOURCES = pulse/simple.c pulse/simple.h libpulse_simple_la_SOURCES = pulse/simple.c pulse/simple.h
libpulse_simple_la_CFLAGS = $(AM_CFLAGS) libpulse_simple_la_CFLAGS = $(AM_CFLAGS)
libpulse_simple_la_LIBADD = $(AM_LIBADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse_simple_la_LIBADD = $(AM_LIBADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la
libpulse_simple_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBPULSE_SIMPLE_VERSION_INFO) -Wl,-version-script=$(srcdir)/map-file libpulse_simple_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBPULSE_SIMPLE_VERSION_INFO)
if HAVE_GNU_LD
libpulse_simple_la_LDFLAGS += -Wl,-version-script=$(srcdir)/map-file
endif
libpulse_browse_la_SOURCES = pulse/browser.c pulse/browser.h pulsecore/avahi-wrap.c pulsecore/avahi-wrap.h libpulse_browse_la_SOURCES = pulse/browser.c pulse/browser.h pulsecore/avahi-wrap.c pulsecore/avahi-wrap.h
libpulse_browse_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS) libpulse_browse_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
libpulse_browse_la_LIBADD = $(AM_LIBADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la $(AVAHI_LIBS) libpulse_browse_la_LIBADD = $(AM_LIBADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la $(AVAHI_LIBS)
libpulse_browse_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBPULSE_BROWSE_VERSION_INFO) -Wl,-version-script=$(srcdir)/map-file libpulse_browse_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBPULSE_BROWSE_VERSION_INFO)
if HAVE_GNU_LD
libpulse_browse_la_LDFLAGS += -Wl,-version-script=$(srcdir)/map-file
endif
libpulse_mainloop_glib_la_SOURCES = pulse/glib-mainloop.h pulse/glib-mainloop.c libpulse_mainloop_glib_la_SOURCES = pulse/glib-mainloop.h pulse/glib-mainloop.c
libpulse_mainloop_glib_la_CFLAGS = $(AM_CFLAGS) $(GLIB20_CFLAGS) libpulse_mainloop_glib_la_CFLAGS = $(AM_CFLAGS) $(GLIB20_CFLAGS)
libpulse_mainloop_glib_la_LIBADD = $(AM_LIBADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la $(GLIB20_LIBS) libpulse_mainloop_glib_la_LIBADD = $(AM_LIBADD) libpulse.la libpulsecommon-@PA_MAJORMINORMICRO@.la $(GLIB20_LIBS)
libpulse_mainloop_glib_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO) -Wl,-version-script=$(srcdir)/map-file libpulse_mainloop_glib_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO)
if HAVE_GNU_LD
libpulse_mainloop_glib_la_LDFLAGS += -Wl,-version-script=$(srcdir)/map-file
endif
################################### ###################################
# OSS emulation # # OSS emulation #

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version. License, or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -94,8 +94,10 @@ static const pa_daemon_conf default_conf = {
,.rlimit_fsize = { .value = 0, .is_set = FALSE }, ,.rlimit_fsize = { .value = 0, .is_set = FALSE },
.rlimit_data = { .value = 0, .is_set = FALSE }, .rlimit_data = { .value = 0, .is_set = FALSE },
.rlimit_stack = { .value = 0, .is_set = FALSE }, .rlimit_stack = { .value = 0, .is_set = FALSE },
.rlimit_core = { .value = 0, .is_set = FALSE }, .rlimit_core = { .value = 0, .is_set = FALSE }
.rlimit_rss = { .value = 0, .is_set = FALSE } #ifdef RLIMIT_RSS
,.rlimit_rss = { .value = 0, .is_set = FALSE }
#endif
#ifdef RLIMIT_NPROC #ifdef RLIMIT_NPROC
,.rlimit_nproc = { .value = 0, .is_set = FALSE } ,.rlimit_nproc = { .value = 0, .is_set = FALSE }
#endif #endif
@ -472,7 +474,9 @@ int pa_daemon_conf_load(pa_daemon_conf *c, const char *filename) {
{ "rlimit-data", parse_rlimit, &c->rlimit_data, NULL }, { "rlimit-data", parse_rlimit, &c->rlimit_data, NULL },
{ "rlimit-stack", parse_rlimit, &c->rlimit_stack, NULL }, { "rlimit-stack", parse_rlimit, &c->rlimit_stack, NULL },
{ "rlimit-core", parse_rlimit, &c->rlimit_core, NULL }, { "rlimit-core", parse_rlimit, &c->rlimit_core, NULL },
#ifdef RLIMIT_RSS
{ "rlimit-rss", parse_rlimit, &c->rlimit_rss, NULL }, { "rlimit-rss", parse_rlimit, &c->rlimit_rss, NULL },
#endif
#ifdef RLIMIT_NOFILE #ifdef RLIMIT_NOFILE
{ "rlimit-nofile", parse_rlimit, &c->rlimit_nofile, NULL }, { "rlimit-nofile", parse_rlimit, &c->rlimit_nofile, NULL },
#endif #endif
@ -651,7 +655,9 @@ char *pa_daemon_conf_dump(pa_daemon_conf *c) {
pa_strbuf_printf(s, "rlimit-data = %li\n", c->rlimit_data.is_set ? (long int) c->rlimit_data.value : -1); pa_strbuf_printf(s, "rlimit-data = %li\n", c->rlimit_data.is_set ? (long int) c->rlimit_data.value : -1);
pa_strbuf_printf(s, "rlimit-stack = %li\n", c->rlimit_stack.is_set ? (long int) c->rlimit_stack.value : -1); pa_strbuf_printf(s, "rlimit-stack = %li\n", c->rlimit_stack.is_set ? (long int) c->rlimit_stack.value : -1);
pa_strbuf_printf(s, "rlimit-core = %li\n", c->rlimit_core.is_set ? (long int) c->rlimit_core.value : -1); pa_strbuf_printf(s, "rlimit-core = %li\n", c->rlimit_core.is_set ? (long int) c->rlimit_core.value : -1);
#ifdef RLIMIT_RSS
pa_strbuf_printf(s, "rlimit-rss = %li\n", c->rlimit_rss.is_set ? (long int) c->rlimit_rss.value : -1); pa_strbuf_printf(s, "rlimit-rss = %li\n", c->rlimit_rss.is_set ? (long int) c->rlimit_rss.value : -1);
#endif
#ifdef RLIMIT_AS #ifdef RLIMIT_AS
pa_strbuf_printf(s, "rlimit-as = %li\n", c->rlimit_as.is_set ? (long int) c->rlimit_as.value : -1); pa_strbuf_printf(s, "rlimit-as = %li\n", c->rlimit_as.is_set ? (long int) c->rlimit_as.value : -1);
#endif #endif

View file

@ -9,7 +9,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -87,8 +87,10 @@ typedef struct pa_daemon_conf {
char *config_file; char *config_file;
#ifdef HAVE_SYS_RESOURCE_H #ifdef HAVE_SYS_RESOURCE_H
pa_rlimit rlimit_fsize, rlimit_data, rlimit_stack, rlimit_core, rlimit_rss; pa_rlimit rlimit_fsize, rlimit_data, rlimit_stack, rlimit_core;
#ifdef RLIMIT_RSS
pa_rlimit rlimit_rss;
#endif
#ifdef RLIMIT_NOFILE #ifdef RLIMIT_NOFILE
pa_rlimit rlimit_nofile; pa_rlimit rlimit_nofile;
#endif #endif

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -294,7 +294,9 @@ static void set_all_rlimits(const pa_daemon_conf *conf) {
set_one_rlimit(&conf->rlimit_data, RLIMIT_DATA, "RLIMIT_DATA"); set_one_rlimit(&conf->rlimit_data, RLIMIT_DATA, "RLIMIT_DATA");
set_one_rlimit(&conf->rlimit_stack, RLIMIT_STACK, "RLIMIT_STACK"); set_one_rlimit(&conf->rlimit_stack, RLIMIT_STACK, "RLIMIT_STACK");
set_one_rlimit(&conf->rlimit_core, RLIMIT_CORE, "RLIMIT_CORE"); set_one_rlimit(&conf->rlimit_core, RLIMIT_CORE, "RLIMIT_CORE");
#ifdef RLIMIT_RSS
set_one_rlimit(&conf->rlimit_rss, RLIMIT_RSS, "RLIMIT_RSS"); set_one_rlimit(&conf->rlimit_rss, RLIMIT_RSS, "RLIMIT_RSS");
#endif
#ifdef RLIMIT_NPROC #ifdef RLIMIT_NPROC
set_one_rlimit(&conf->rlimit_nproc, RLIMIT_NPROC, "RLIMIT_NPROC"); set_one_rlimit(&conf->rlimit_nproc, RLIMIT_NPROC, "RLIMIT_NPROC");
#endif #endif

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -148,7 +148,7 @@ static void reserve_update(struct userdata *u) {
const char *description; const char *description;
pa_assert(u); pa_assert(u);
if (!u->sink) if (!u->sink || !u->reserve)
return; return;
if ((description = pa_proplist_gets(u->sink->proplist, PA_PROP_DEVICE_DESCRIPTION))) if ((description = pa_proplist_gets(u->sink->proplist, PA_PROP_DEVICE_DESCRIPTION)))
@ -164,6 +164,9 @@ static int reserve_init(struct userdata *u, const char *dname) {
if (u->reserve) if (u->reserve)
return 0; return 0;
if (pa_in_system_mode())
return 0;
/* We are resuming, try to lock the device */ /* We are resuming, try to lock the device */
if (!(rname = pa_alsa_get_reserve_name(dname))) if (!(rname = pa_alsa_get_reserve_name(dname)))
return 0; return 0;
@ -1187,17 +1190,11 @@ static int process_rewind(struct userdata *u) {
/* Figure out how much we shall rewind and reset the counter */ /* Figure out how much we shall rewind and reset the counter */
rewind_nbytes = u->sink->thread_info.rewind_nbytes; rewind_nbytes = u->sink->thread_info.rewind_nbytes;
u->sink->thread_info.rewind_nbytes = 0;
if (rewind_nbytes <= 0)
goto finish;
pa_assert(rewind_nbytes > 0);
pa_log_debug("Requested to rewind %lu bytes.", (unsigned long) rewind_nbytes); pa_log_debug("Requested to rewind %lu bytes.", (unsigned long) rewind_nbytes);
snd_pcm_hwsync(u->pcm_handle); if (PA_UNLIKELY((unused = pa_alsa_safe_avail(u->pcm_handle, u->hwbuf_size, &u->sink->sample_spec)) < 0)) {
if ((unused = snd_pcm_avail_update(u->pcm_handle)) < 0) { pa_log("snd_pcm_avail() failed: %s", snd_strerror((int) unused));
pa_log("snd_pcm_avail_update() failed: %s", snd_strerror((int) unused));
return -1; return -1;
} }
@ -1239,12 +1236,8 @@ static int process_rewind(struct userdata *u) {
} else } else
pa_log_debug("Mhmm, actually there is nothing to rewind."); pa_log_debug("Mhmm, actually there is nothing to rewind.");
finish:
pa_sink_process_rewind(u->sink, 0); pa_sink_process_rewind(u->sink, 0);
return 0; return 0;
} }
static void thread_func(void *userdata) { static void thread_func(void *userdata) {
@ -1273,7 +1266,7 @@ static void thread_func(void *userdata) {
int work_done; int work_done;
pa_usec_t sleep_usec = 0; pa_usec_t sleep_usec = 0;
if (u->sink->thread_info.rewind_requested) if (PA_UNLIKELY(u->sink->thread_info.rewind_requested))
if (process_rewind(u) < 0) if (process_rewind(u) < 0)
goto fail; goto fail;
@ -1699,11 +1692,10 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
u->watermark_step = pa_usec_to_bytes(TSCHED_WATERMARK_STEP_USEC, &u->sink->sample_spec); u->watermark_step = pa_usec_to_bytes(TSCHED_WATERMARK_STEP_USEC, &u->sink->sample_spec);
} }
u->sink->thread_info.max_rewind = use_tsched ? u->hwbuf_size : 0; pa_sink_set_max_rewind(u->sink, use_tsched ? u->hwbuf_size : 0);
u->sink->thread_info.max_request = u->hwbuf_size; pa_sink_set_max_request(u->sink, u->hwbuf_size);
pa_sink_set_latency_range(u->sink, pa_sink_set_latency_range(u->sink,
!use_tsched ? pa_bytes_to_usec(u->hwbuf_size, &ss) : (pa_usec_t) -1, use_tsched ? (pa_usec_t) -1 : pa_bytes_to_usec(u->hwbuf_size, &ss),
pa_bytes_to_usec(u->hwbuf_size, &ss)); pa_bytes_to_usec(u->hwbuf_size, &ss));
pa_log_info("Using %u fragments of size %lu bytes, buffer time is %0.2fms", pa_log_info("Using %u fragments of size %lu bytes, buffer time is %0.2fms",

View file

@ -9,7 +9,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -146,7 +146,7 @@ static void reserve_update(struct userdata *u) {
const char *description; const char *description;
pa_assert(u); pa_assert(u);
if (!u->source) if (!u->source || !u->reserve)
return; return;
if ((description = pa_proplist_gets(u->source->proplist, PA_PROP_DEVICE_DESCRIPTION))) if ((description = pa_proplist_gets(u->source->proplist, PA_PROP_DEVICE_DESCRIPTION)))
@ -162,6 +162,9 @@ static int reserve_init(struct userdata *u, const char *dname) {
if (u->reserve) if (u->reserve)
return 0; return 0;
if (pa_in_system_mode())
return 0;
/* We are resuming, try to lock the device */ /* We are resuming, try to lock the device */
if (!(rname = pa_alsa_get_reserve_name(dname))) if (!(rname = pa_alsa_get_reserve_name(dname)))
return 0; return 0;
@ -1542,7 +1545,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
} }
pa_source_set_latency_range(u->source, pa_source_set_latency_range(u->source,
!use_tsched ? pa_bytes_to_usec(u->hwbuf_size, &ss) : (pa_usec_t) -1, use_tsched ? (pa_usec_t) -1 : pa_bytes_to_usec(u->hwbuf_size, &ss),
pa_bytes_to_usec(u->hwbuf_size, &ss)); pa_bytes_to_usec(u->hwbuf_size, &ss));
pa_log_info("Using %u fragments of size %lu bytes, buffer time is %0.2fms", pa_log_info("Using %u fragments of size %lu bytes, buffer time is %0.2fms",

View file

@ -9,7 +9,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -9,7 +9,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -310,6 +310,7 @@ int pa__init(pa_module *m) {
pa_snprintf(rname, sizeof(rname), "Audio%i", alsa_card_index); pa_snprintf(rname, sizeof(rname), "Audio%i", alsa_card_index);
if (!pa_in_system_mode())
if (!(reserve = pa_reserve_wrapper_get(m->core, rname))) if (!(reserve = pa_reserve_wrapper_get(m->core, rname)))
goto fail; goto fail;

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version. License, or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version. License, or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -160,7 +160,8 @@ struct bt_get_capabilities_req {
#define BT_HFP_CODEC_PCM 0x00 #define BT_HFP_CODEC_PCM 0x00
#define BT_PCM_FLAG_NREC 1 #define BT_PCM_FLAG_NREC 0x01
#define BT_PCM_FLAG_PCM_ROUTING 0x02
typedef struct { typedef struct {
uint8_t transport; uint8_t transport;

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version. License, or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version. License, or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version. License, or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version. License, or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -487,7 +487,7 @@ static void sink_input_kill_cb(pa_sink_input *i) {
struct output *o; struct output *o;
pa_sink_input_assert_ref(i); pa_sink_input_assert_ref(i);
pa_assert(o = i->userdata); pa_assert_se(o = i->userdata);
pa_module_unload_request(o->userdata->module, TRUE); pa_module_unload_request(o->userdata->module, TRUE);
output_free(o); output_free(o);

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -7,7 +7,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -163,7 +163,7 @@ static int jack_process(jack_nframes_t nframes, void *arg) {
pa_assert(u); pa_assert(u);
for (c = 0; c < u->channels; c++) for (c = 0; c < u->channels; c++)
pa_assert(buffer[c] = jack_port_get_buffer(u->port[c], nframes)); pa_assert_se(buffer[c] = jack_port_get_buffer(u->port[c], nframes));
/* We interleave the data and pass it on to the other RT thread */ /* We interleave the data and pass it on to the other RT thread */

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version. License, or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -152,11 +152,18 @@ static void resolver_cb(
if (event != AVAHI_RESOLVER_FOUND) if (event != AVAHI_RESOLVER_FOUND)
pa_log("Resolving of '%s' failed: %s", name, avahi_strerror(avahi_client_errno(u->client))); pa_log("Resolving of '%s' failed: %s", name, avahi_strerror(avahi_client_errno(u->client)));
else { else {
char *device = NULL, *dname, *vname, *args; char *device = NULL, *nicename, *dname, *vname, *args;
char at[AVAHI_ADDRESS_STR_MAX]; char at[AVAHI_ADDRESS_STR_MAX];
AvahiStringList *l; AvahiStringList *l;
pa_module *m; pa_module *m;
if ((nicename = strstr(name, "@"))) {
++nicename;
if (strlen(nicename) > 0) {
pa_log_debug("Found RAOP: %s", nicename);
}
}
for (l = txt; l; l = l->next) { for (l = txt; l; l = l->next) {
char *key, *value; char *key, *value;
pa_assert_se(avahi_string_list_get_pair(l, &key, &value, NULL) == 0); pa_assert_se(avahi_string_list_get_pair(l, &key, &value, NULL) == 0);
@ -190,10 +197,20 @@ static void resolver_cb(
"sink_name=%s", "sink_name=%s",
avahi_address_snprint(at, sizeof(at), a), port, avahi_address_snprint(at, sizeof(at), a), port,
vname);*/ vname);*/
if (nicename) {
args = pa_sprintf_malloc("server=%s "
"sink_name=%s "
"description=\"%s\"",
avahi_address_snprint(at, sizeof(at), a),
vname,
nicename);
} else {
args = pa_sprintf_malloc("server=%s " args = pa_sprintf_malloc("server=%s "
"sink_name=%s", "sink_name=%s",
avahi_address_snprint(at, sizeof(at), a), avahi_address_snprint(at, sizeof(at), a),
vname); vname);
}
pa_log_debug("Loading module-raop-sink with arguments '%s'", args); pa_log_debug("Loading module-raop-sink with arguments '%s'", args);

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -72,6 +72,7 @@ PA_MODULE_VERSION(PACKAGE_VERSION);
PA_MODULE_LOAD_ONCE(FALSE); PA_MODULE_LOAD_ONCE(FALSE);
PA_MODULE_USAGE( PA_MODULE_USAGE(
"sink_name=<name for the sink> " "sink_name=<name for the sink> "
"description=<description for the sink> "
"server=<address> " "server=<address> "
"format=<sample format> " "format=<sample format> "
"channels=<number of channels> " "channels=<number of channels> "
@ -122,6 +123,7 @@ static const char* const valid_modargs[] = {
"format", "format",
"channels", "channels",
"sink_name", "sink_name",
"description",
NULL NULL
}; };
@ -502,7 +504,7 @@ int pa__init(pa_module*m) {
struct userdata *u = NULL; struct userdata *u = NULL;
pa_sample_spec ss; pa_sample_spec ss;
pa_modargs *ma = NULL; pa_modargs *ma = NULL;
const char *server; const char *server, *desc;
pa_sink_new_data data; pa_sink_new_data data;
pa_assert(m); pa_assert(m);
@ -564,6 +566,9 @@ int pa__init(pa_module*m) {
pa_sink_new_data_set_name(&data, pa_modargs_get_value(ma, "sink_name", DEFAULT_SINK_NAME)); pa_sink_new_data_set_name(&data, pa_modargs_get_value(ma, "sink_name", DEFAULT_SINK_NAME));
pa_sink_new_data_set_sample_spec(&data, &ss); pa_sink_new_data_set_sample_spec(&data, &ss);
pa_proplist_sets(data.proplist, PA_PROP_DEVICE_STRING, server); pa_proplist_sets(data.proplist, PA_PROP_DEVICE_STRING, server);
if ((desc = pa_modargs_get_value(ma, "description", NULL)))
pa_proplist_sets(data.proplist, PA_PROP_DEVICE_DESCRIPTION, desc);
else
pa_proplist_setf(data.proplist, PA_PROP_DEVICE_DESCRIPTION, "RAOP sink '%s'", server); pa_proplist_setf(data.proplist, PA_PROP_DEVICE_DESCRIPTION, "RAOP sink '%s'", server);
u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY|PA_SINK_NETWORK); u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY|PA_SINK_NETWORK);

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -149,7 +149,12 @@ static pa_hook_result_t source_output_fixate_hook_cb(pa_core *c, pa_source_outpu
pa_assert(data); pa_assert(data);
pa_assert(u); pa_assert(u);
if ((d = pa_hashmap_get(u->device_infos, data->source))) if (data->source->monitor_of)
d = pa_hashmap_get(u->device_infos, data->source->monitor_of);
else
d = pa_hashmap_get(u->device_infos, data->source);
if (d)
resume(d); resume(d);
return PA_HOOK_OK; return PA_HOOK_OK;
@ -173,6 +178,8 @@ static pa_hook_result_t sink_input_unlink_hook_cb(pa_core *c, pa_sink_input *s,
} }
static pa_hook_result_t source_output_unlink_hook_cb(pa_core *c, pa_source_output *s, struct userdata *u) { static pa_hook_result_t source_output_unlink_hook_cb(pa_core *c, pa_source_output *s, struct userdata *u) {
struct device_info *d = NULL;
pa_assert(c); pa_assert(c);
pa_source_output_assert_ref(s); pa_source_output_assert_ref(s);
pa_assert(u); pa_assert(u);
@ -180,12 +187,17 @@ static pa_hook_result_t source_output_unlink_hook_cb(pa_core *c, pa_source_outpu
if (!s->source) if (!s->source)
return PA_HOOK_OK; return PA_HOOK_OK;
if (pa_source_check_suspend(s->source) <= 0) { if (s->source->monitor_of) {
struct device_info *d; if (pa_sink_check_suspend(s->source->monitor_of) <= 0)
if ((d = pa_hashmap_get(u->device_infos, s->source))) d = pa_hashmap_get(u->device_infos, s->source->monitor_of);
restart(d); } else {
if (pa_source_check_suspend(s->source) <= 0)
d = pa_hashmap_get(u->device_infos, s->source);
} }
if (d)
restart(d);
return PA_HOOK_OK; return PA_HOOK_OK;
} }
@ -217,14 +229,21 @@ static pa_hook_result_t sink_input_move_finish_hook_cb(pa_core *c, pa_sink_input
} }
static pa_hook_result_t source_output_move_start_hook_cb(pa_core *c, pa_source_output *s, struct userdata *u) { static pa_hook_result_t source_output_move_start_hook_cb(pa_core *c, pa_source_output *s, struct userdata *u) {
struct device_info *d; struct device_info *d = NULL;
pa_assert(c); pa_assert(c);
pa_source_output_assert_ref(s); pa_source_output_assert_ref(s);
pa_assert(u); pa_assert(u);
if (s->source->monitor_of) {
if (pa_sink_check_suspend(s->source->monitor_of) <= 1)
d = pa_hashmap_get(u->device_infos, s->source->monitor_of);
} else {
if (pa_source_check_suspend(s->source) <= 1) if (pa_source_check_suspend(s->source) <= 1)
if ((d = pa_hashmap_get(u->device_infos, s->source))) d = pa_hashmap_get(u->device_infos, s->source);
}
if (d)
restart(d); restart(d);
return PA_HOOK_OK; return PA_HOOK_OK;
@ -237,7 +256,12 @@ static pa_hook_result_t source_output_move_finish_hook_cb(pa_core *c, pa_source_
pa_source_output_assert_ref(s); pa_source_output_assert_ref(s);
pa_assert(u); pa_assert(u);
if ((d = pa_hashmap_get(u->device_infos, s->source))) if (s->source->monitor_of)
d = pa_hashmap_get(u->device_infos, s->source->monitor_of);
else
d = pa_hashmap_get(u->device_infos, s->source);
if (d)
resume(d); resume(d);
return PA_HOOK_OK; return PA_HOOK_OK;
@ -259,16 +283,25 @@ static pa_hook_result_t sink_input_state_changed_hook_cb(pa_core *c, pa_sink_inp
} }
static pa_hook_result_t source_output_state_changed_hook_cb(pa_core *c, pa_source_output *s, struct userdata *u) { static pa_hook_result_t source_output_state_changed_hook_cb(pa_core *c, pa_source_output *s, struct userdata *u) {
struct device_info *d;
pa_source_output_state_t state; pa_source_output_state_t state;
pa_assert(c); pa_assert(c);
pa_source_output_assert_ref(s); pa_source_output_assert_ref(s);
pa_assert(u); pa_assert(u);
state = pa_source_output_get_state(s); state = pa_source_output_get_state(s);
if (state == PA_SOURCE_OUTPUT_RUNNING)
if ((d = pa_hashmap_get(u->device_infos, s->source))) if (state == PA_SOURCE_OUTPUT_RUNNING) {
struct device_info *d;
if (s->source->monitor_of)
d = pa_hashmap_get(u->device_infos, s->source->monitor_of);
else
d = pa_hashmap_get(u->device_infos, s->source);
if (d)
resume(d); resume(d);
}
return PA_HOOK_OK; return PA_HOOK_OK;
} }
@ -285,6 +318,10 @@ static pa_hook_result_t device_new_hook_cb(pa_core *c, pa_object *o, struct user
source = pa_source_isinstance(o) ? PA_SOURCE(o) : NULL; source = pa_source_isinstance(o) ? PA_SOURCE(o) : NULL;
sink = pa_sink_isinstance(o) ? PA_SINK(o) : NULL; sink = pa_sink_isinstance(o) ? PA_SINK(o) : NULL;
/* Never suspend monitors */
if (source && source->monitor_of)
return PA_HOOK_OK;
pa_assert(source || sink); pa_assert(source || sink);
d = pa_xnew(struct device_info, 1); d = pa_xnew(struct device_info, 1);

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version. License, or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version. License, or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -9,7 +9,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -9,7 +9,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but
@ -51,7 +51,12 @@
#include <pulsecore/macro.h> #include <pulsecore/macro.h>
#include <pulsecore/strbuf.h> #include <pulsecore/strbuf.h>
#include <pulsecore/random.h> #include <pulsecore/random.h>
#ifdef HAVE_POLL_H
#include <poll.h>
#else
#include <pulsecore/poll.h> #include <pulsecore/poll.h>
#endif
#include "raop_client.h" #include "raop_client.h"
#include "rtsp_client.h" #include "rtsp_client.h"
@ -339,9 +344,13 @@ static void rtsp_cb(pa_rtsp_client *rtsp, pa_rtsp_state state, pa_headerlist* he
break; break;
case STATE_TEARDOWN: case STATE_TEARDOWN:
pa_log_debug("RAOP: TEARDOWN");
break;
case STATE_SET_PARAMETER: case STATE_SET_PARAMETER:
pa_log_debug("RAOP: SET_PARAMETER"); pa_log_debug("RAOP: SET_PARAMETER");
break; break;
case STATE_DISCONNECTED: case STATE_DISCONNECTED:
pa_assert(c->closed_callback); pa_assert(c->closed_callback);
pa_assert(c->rtsp); pa_assert(c->rtsp);

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -8,7 +8,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -31,10 +31,11 @@
typedef struct rd_device rd_device; typedef struct rd_device rd_device;
/* Prototype for a function that is called whenever someone else wants /* Prototype for a function that is called whenever someone else wants
* your app to release the device you having locked. A return value <= * your application to release the device it has locked. A return
* 0 denies the request, a positive return value agrees to it. Before * value <= 0 denies the request, a positive return value agrees to
* returning your application should close the device in question * it. Before returning your application should close the device in
* completely to make sure the new application may acceess it. */ * question completely to make sure the new application may access
* it. */
typedef int (*rd_request_cb_t)( typedef int (*rd_request_cb_t)(
rd_device *d, rd_device *d,
int forced); /* Non-zero if an application forcibly took the lock away without asking. If this is the case then the return value of this call is ignored. */ int forced); /* Non-zero if an application forcibly took the lock away without asking. If this is the case then the return value of this call is ignored. */
@ -48,20 +49,20 @@ int rd_acquire(
const char *device_name, /* The device to lock, e.g. "Audio0" */ const char *device_name, /* The device to lock, e.g. "Audio0" */
const char *application_name, /* A human readable name of the application, e.g. "PulseAudio Sound Server" */ const char *application_name, /* A human readable name of the application, e.g. "PulseAudio Sound Server" */
int32_t priority, /* The priority for this application. If unsure use 0 */ int32_t priority, /* The priority for this application. If unsure use 0 */
rd_request_cb_t request_cb, /* Will be called whenever someone asks that this device shall be released. May be NULL if priority is INT32_MAX */ rd_request_cb_t request_cb, /* Will be called whenever someone requests that this device shall be released. May be NULL if priority is INT32_MAX */
DBusError *error); /* If we fail due to a D-Bus related issue the error will be filled in here. May be NULL. */ DBusError *error); /* If we fail due to a D-Bus related issue the error will be filled in here. May be NULL. */
/* Unlock (if needed) and destroy a rd_device object again */ /* Unlock (if needed) and destroy an rd_device object again */
void rd_release(rd_device *d); void rd_release(rd_device *d);
/* Set the application device name for a rd_device object Returns 0 on /* Set the application device name for an rd_device object. Returns 0
* success, a negative errno style return value on error. */ * on success, a negative errno style return value on error. */
int rd_set_application_device_name(rd_device *d, const char *name); int rd_set_application_device_name(rd_device *d, const char *name);
/* Attach a userdata pointer to a rd_device */ /* Attach a userdata pointer to an rd_device */
void rd_set_userdata(rd_device *d, void *userdata); void rd_set_userdata(rd_device *d, void *userdata);
/* Query the userdata pointer from a rd_device. Returns NULL if no /* Query the userdata pointer from an rd_device. Returns NULL if no
* userdata was set. */ * userdata was set. */
void* rd_get_userdata(rd_device *d); void* rd_get_userdata(rd_device *d);

View file

@ -6,7 +6,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

View file

@ -5,7 +5,7 @@
PulseAudio is free software; you can redistribute it and/or modify PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2 of the License, by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version. or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but PulseAudio is distributed in the hope that it will be useful, but

Some files were not shown because too many files have changed in this diff Show more