mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-15 06:59:58 -05:00
Merge branch 'master' of ssh://rootserver/home/lennart/git/public/pulseaudio
This commit is contained in:
commit
dcee888865
325 changed files with 1300 additions and 865 deletions
|
|
@ -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 = \
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
18
configure.ac
18
configure.ac
|
|
@ -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 ],
|
||||||
[
|
[
|
||||||
|
|
|
||||||
50
m4/shave.m4
50
m4/shave.m4
|
|
@ -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
|
|
||||||
|
|
||||||
])
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
8
shave.in
8
shave.in
|
|
@ -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 "
|
||||||
|
|
|
||||||
|
|
@ -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 #
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue