summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Makefile.am8
-rwxr-xr-xbootstrap.sh19
-rw-r--r--configure.ac106
-rwxr-xr-xgit-version-gen27
-rw-r--r--m4/attributes.m459
-rw-r--r--m4/shave.m477
-rw-r--r--po/LINGUAS1
-rw-r--r--po/as.po420
-rw-r--r--po/bn_IN.po420
-rw-r--r--po/de_CH.po420
-rw-r--r--po/el.po374
-rw-r--r--po/es.po1
-rw-r--r--po/fi.po420
-rw-r--r--po/fr.po420
-rw-r--r--po/gu.po420
-rw-r--r--po/hi.po1139
-rw-r--r--po/it.po422
-rw-r--r--po/kn.po420
-rw-r--r--po/mr.po420
-rw-r--r--po/nl.po407
-rw-r--r--po/or.po420
-rw-r--r--po/pa.po420
-rw-r--r--po/pt.po1366
-rw-r--r--po/pt_BR.po378
-rw-r--r--po/sr.po422
-rw-r--r--po/sr@latin.po422
-rw-r--r--po/sv.po374
-rw-r--r--po/ta.po413
-rw-r--r--po/te.po420
-rw-r--r--po/uk.po411
-rw-r--r--po/zh_CN.po420
-rw-r--r--shave-libtool.in69
-rw-r--r--shave.in79
-rw-r--r--src/Makefile.am74
-rw-r--r--src/daemon/caps.c99
-rw-r--r--src/daemon/caps.h3
-rw-r--r--src/daemon/cpulimit.c7
-rw-r--r--src/daemon/daemon-conf.c2
-rw-r--r--src/daemon/daemon.conf.in2
-rwxr-xr-xsrc/daemon/default.pa.in3
-rw-r--r--src/daemon/main.c234
-rw-r--r--src/map-file3
-rw-r--r--src/modules/alsa/alsa-mixer.c34
-rw-r--r--src/modules/alsa/alsa-sink.c42
-rw-r--r--src/modules/alsa/alsa-source.c42
-rw-r--r--src/modules/alsa/alsa-util.c29
-rw-r--r--src/modules/alsa/alsa-util.h4
-rw-r--r--src/modules/alsa/mixer/paths/analog-input-aux.conf32
-rw-r--r--src/modules/alsa/mixer/paths/analog-input-fm.conf20
-rw-r--r--src/modules/alsa/mixer/paths/analog-input-linein.conf20
-rw-r--r--src/modules/alsa/mixer/paths/analog-input-mic-line.conf21
-rw-r--r--src/modules/alsa/mixer/paths/analog-input-mic.conf20
-rw-r--r--src/modules/alsa/mixer/paths/analog-input-mic.conf.common22
-rw-r--r--src/modules/alsa/mixer/paths/analog-input-tvtuner.conf20
-rw-r--r--src/modules/alsa/mixer/paths/analog-input-video.conf32
-rw-r--r--src/modules/alsa/mixer/paths/analog-input.conf21
-rw-r--r--src/modules/alsa/mixer/paths/analog-input.conf.common66
-rw-r--r--src/modules/alsa/mixer/paths/analog-output-headphones.conf20
-rw-r--r--src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf22
-rw-r--r--src/modules/alsa/mixer/paths/analog-output-mono.conf20
-rw-r--r--src/modules/alsa/mixer/paths/analog-output.conf20
-rw-r--r--src/modules/alsa/mixer/paths/analog-output.conf.common111
-rw-r--r--src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules26
-rw-r--r--src/modules/alsa/mixer/profile-sets/default.conf73
-rw-r--r--src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf91
-rw-r--r--src/modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf162
-rw-r--r--src/modules/alsa/module-alsa-card.c6
-rw-r--r--src/modules/alsa/module-alsa-sink.c6
-rw-r--r--src/modules/alsa/module-alsa-source.c8
-rw-r--r--src/modules/bluetooth/bluetooth-util.c77
-rw-r--r--src/modules/bluetooth/module-bluetooth-device.c42
-rw-r--r--src/modules/jack/module-jack-sink.c1
-rw-r--r--src/modules/jack/module-jack-source.c1
-rw-r--r--src/modules/module-card-restore.c19
-rw-r--r--src/modules/module-combine.c44
-rw-r--r--src/modules/module-default-device-restore.c13
-rw-r--r--src/modules/module-device-restore.c220
-rw-r--r--src/modules/module-esound-sink.c18
-rw-r--r--src/modules/module-intended-roles.c428
-rw-r--r--src/modules/module-null-sink.c12
-rw-r--r--src/modules/module-pipe-sink.c1
-rw-r--r--src/modules/module-pipe-source.c1
-rw-r--r--src/modules/module-rescue-streams.c12
-rw-r--r--src/modules/module-sine-source.c14
-rw-r--r--src/modules/module-solaris.c5
-rw-r--r--src/modules/module-stream-restore.c252
-rw-r--r--src/modules/module-suspend-on-idle.c19
-rw-r--r--src/modules/module-tunnel.c34
-rw-r--r--src/modules/module-udev-detect.c34
-rw-r--r--src/modules/module-waveout.c4
-rw-r--r--src/modules/oss/module-oss.c1
-rw-r--r--src/modules/raop/module-raop-sink.c16
-rw-r--r--src/modules/raop/raop_client.c2
-rw-r--r--src/modules/reserve-monitor.c12
-rw-r--r--src/modules/reserve-monitor.h10
-rw-r--r--src/modules/reserve-wrap.c4
-rw-r--r--src/modules/reserve.c2
-rw-r--r--src/modules/reserve.h10
-rw-r--r--src/modules/rtp/module-rtp-recv.c20
-rw-r--r--src/modules/rtp/module-rtp-send.c14
-rw-r--r--src/modules/rtp/rtsp_client.c2
-rw-r--r--src/pulse/context.c68
-rw-r--r--src/pulse/context.h8
-rw-r--r--src/pulse/internal.h8
-rw-r--r--src/pulse/introspect.c132
-rw-r--r--src/pulse/mainloop-api.h1
-rw-r--r--src/pulse/mainloop.c88
-rw-r--r--src/pulse/rtclock.c (renamed from src/pulsecore/rtsig.h)24
-rw-r--r--src/pulse/rtclock.h41
-rw-r--r--src/pulse/stream.c169
-rw-r--r--src/pulse/stream.h70
-rw-r--r--src/pulse/thread-mainloop.c4
-rw-r--r--src/pulse/timeval.h9
-rw-r--r--src/pulsecore/asyncmsgq.c4
-rw-r--r--src/pulsecore/asyncq.c18
-rw-r--r--src/pulsecore/avahi-wrap.c9
-rw-r--r--src/pulsecore/core-rtclock.c (renamed from src/pulsecore/rtclock.c)52
-rw-r--r--src/pulsecore/core-rtclock.h (renamed from src/pulsecore/rtclock.h)7
-rw-r--r--src/pulsecore/core-scache.c19
-rw-r--r--src/pulsecore/core-util.c224
-rw-r--r--src/pulsecore/core-util.h3
-rw-r--r--src/pulsecore/core.c28
-rw-r--r--src/pulsecore/core.h4
-rw-r--r--src/pulsecore/dbus-shared.c2
-rw-r--r--src/pulsecore/dbus-util.c58
-rw-r--r--src/pulsecore/dbus-util.h2
-rw-r--r--src/pulsecore/log.c5
-rw-r--r--src/pulsecore/memblock.c38
-rw-r--r--src/pulsecore/memtrap.c22
-rw-r--r--src/pulsecore/pdispatch.c13
-rw-r--r--src/pulsecore/pdispatch.h2
-rw-r--r--src/pulsecore/protocol-esound.c15
-rw-r--r--src/pulsecore/protocol-native.c23
-rw-r--r--src/pulsecore/ratelimit.c5
-rw-r--r--src/pulsecore/rtkit.c189
-rw-r--r--src/pulsecore/rtkit.h62
-rw-r--r--src/pulsecore/rtpoll.c188
-rw-r--r--src/pulsecore/rtpoll.h3
-rw-r--r--src/pulsecore/rtsig.c131
-rw-r--r--src/pulsecore/shm.c5
-rw-r--r--src/pulsecore/sink.c36
-rw-r--r--src/pulsecore/sndfile-util.c2
-rw-r--r--src/pulsecore/socket-client.c22
-rw-r--r--src/pulsecore/socket-client.h2
-rw-r--r--src/pulsecore/source.c1
-rw-r--r--src/tests/ipacl-test.c6
-rw-r--r--src/tests/mainloop-test.c6
-rw-r--r--src/tests/mix-test.c97
-rw-r--r--src/tests/rtpoll-test.c6
-rw-r--r--src/tests/rtstutter.c4
-rw-r--r--src/tests/thread-mainloop-test.c8
-rw-r--r--src/utils/pabrowse.c3
-rw-r--r--src/utils/pacat.c19
154 files changed, 9237 insertions, 7105 deletions
diff --git a/.gitignore b/.gitignore
index fae5b471..85c0fe5f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,4 @@
.version
-shave
-shave-libtool
.*.swp
ABOUT-NLS
intltool-extract.in
diff --git a/Makefile.am b/Makefile.am
index 2448e748..5967f2ce 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,7 +17,7 @@
ACLOCAL_AMFLAGS = -I m4
-EXTRA_DIST = bootstrap.sh LICENSE GPL LGPL doxygen/Makefile.am doxygen/Makefile.in doxygen/doxygen.conf.in README todo
+EXTRA_DIST = bootstrap.sh git-version-gen LICENSE GPL LGPL doxygen/Makefile.am doxygen/Makefile.in doxygen/doxygen.conf.in README todo
SUBDIRS = src doxygen man po
MAINTAINERCLEANFILES =
@@ -62,12 +62,6 @@ dist-hook:
fi
echo $(VERSION) > $(distdir)/.tarball-version
-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
# see git-version-gen
diff --git a/bootstrap.sh b/bootstrap.sh
index c7737a6e..79e0a7dc 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -16,7 +16,7 @@
# along with PulseAudio; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-VERSION=1.10
+VERSION=1.11
run_versioned() {
local P
@@ -40,10 +40,21 @@ run_versioned() {
set -ex
+case $(uname) in
+ *Darwin*)
+ LIBTOOLIZE="glibtoolize"
+ ;;
+esac
+
if [ -f .git/hooks/pre-commit.sample -a ! -f .git/hooks/pre-commit ] ; then
echo "Activating pre-commit hook."
- cp -av .git/hooks/pre-commit.sample .git/hooks/pre-commit
- chmod -c +x .git/hooks/pre-commit
+ cp -pv .git/hooks/pre-commit.sample .git/hooks/pre-commit
+ chmod -v +x .git/hooks/pre-commit
+fi
+
+if [ -f .tarball-version ]; then
+ echo "Marking tarball version as modified."
+ echo -n `cat .tarball-version | sed 's/-rebootstrapped$//'`-rebootstrapped >.tarball-version
fi
# We check for this here, because if pkg-config is not found in the
@@ -83,7 +94,7 @@ else
run_versioned automake "$VERSION" --copy --foreign --add-missing
if test "x$NOCONFIGURE" = "x"; then
- CFLAGS="-g -O0" ./configure --sysconfdir=/etc --localstatedir=/var --enable-force-preopen --enable-shave "$@"
+ CFLAGS="-g -O0" ./configure --sysconfdir=/etc --localstatedir=/var --enable-force-preopen "$@"
make clean
fi
fi
diff --git a/configure.ac b/configure.ac
index bb8afa4f..18007357 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,11 +27,11 @@ AC_INIT([pulseaudio], m4_esyscmd([./git-version-gen .tarball-version]),
AC_CONFIG_SRCDIR([src/daemon/main.c])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
-AM_INIT_AUTOMAKE([foreign 1.10 -Wall -Wno-portability])
+AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])
-m4_define(pa_major, `echo $VERSION | cut -d. -f 1`)
-m4_define(pa_minor, `echo $VERSION | cut -d. -f 2`)
-m4_define(pa_micro, `echo $VERSION | cut -d. -f 3`)
+m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
+m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
+m4_define(pa_micro, `echo $VERSION | cut -d. -f3 | cut -d- -f1`)
AC_SUBST(PA_MAJOR, pa_major)
AC_SUBST(PA_MINOR, pa_minor)
@@ -74,8 +74,14 @@ case $host in
AC_DEFINE(_XOPEN_SOURCE, 600, 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)
;;
+ *-*-darwin* )
+ AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
+ AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
+ ;;
esac
+AM_SILENT_RULES([yes])
+
#### Checks for programs. ####
# mkdir -p
@@ -98,11 +104,7 @@ if test "x$M4" = xno ; then
fi
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"
-
-for flag in $DESIRED_FLAGS ; do
- CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"])
-done
+CC_CHECK_CFLAGS_APPEND([-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])
dnl Linker flags.
dnl Check whether the linker supports the -version-script option.
@@ -115,6 +117,26 @@ CC_CHECK_LDFLAGS([${tmp_ldflag}],
[VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
AC_SUBST([VERSIONING_LDFLAGS])
+dnl Use immediate (now) bindings; avoids the funky re-call in itself
+dnl the -z now syntax is lifted from Sun's linker and works with GNU's too
+dnl other linkes might be added later
+CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
+AC_SUBST([IMMEDIATE_LDFLAGS])
+
+dnl On ELF systems we don't want the libraries to be unloaded since we
+dnl don't clean them up properly, so we request the nodelete flag to be
+dnl enabled.
+dnl
+dnl On other systems, we don't really know how to do that, but it's
+dnl welcome if somebody can tell.
+CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
+AC_SUBST([NODELETE_LDFLAGS])
+
+dnl Check for the proper way to build libraries that have no undefined
+dnl symbols; on some hosts this needs to be avoided but the macro
+dnl takes care of it.
+CC_NOUNDEFINED
+
dnl Check whether to build tests by default (as compile-test) or not
AC_ARG_ENABLE([default-build-tests],
AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
@@ -275,7 +297,7 @@ AC_CHECK_HEADER([ltdl.h],
[LIBLTDL=])
AS_IF([test "x$LIBLTDL" = "x"],
- [AC_MSG_ERROR([Unable to find libltdl.])])
+ [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
AC_SUBST([LIBLTDL])
#### Determine build environment ####
@@ -385,6 +407,7 @@ AC_SEARCH_LIBS([timer_create], [rt])
# BSD
AC_SEARCH_LIBS([connect], [socket])
+AC_SEARCH_LIBS([backtrace], [execinfo])
# Non-standard
@@ -1057,7 +1080,7 @@ AC_ARG_ENABLE([udev],
],
[udev=auto])
if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
- PKG_CHECK_MODULES(UDEV, [ libudev >= 137 ],
+ PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
[
HAVE_UDEV=1
AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
@@ -1152,44 +1175,6 @@ AC_SUBST(DBUS_LIBS)
AC_SUBST(HAVE_DBUS)
AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
-#### PolicyKit support (optional) ####
-
-AC_ARG_ENABLE([polkit],
- AS_HELP_STRING([--disable-polkit],[Disable optional PolicyKit support]),
- [
- case "${enableval}" in
- yes) polkit=yes ;;
- no) polkit=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --disable-polkit) ;;
- esac
- ],
- [polkit=auto])
-
-if test "x${polkit}" != xno ; then
-
- PKG_CHECK_MODULES(POLKIT, [ polkit-dbus >= 0.7 ],
- [
- HAVE_POLKIT=1
- AC_DEFINE([HAVE_POLKIT], 1, [Have PolicyKit])
- policydir=`pkg-config polkit-dbus --variable prefix`/share/PolicyKit/policy/
- AC_SUBST(policydir)
- ],
- [
- HAVE_POLKIT=0
- if test "x$polkit" = xyes ; then
- AC_MSG_ERROR([*** PolicyKit support not found])
- fi
- ])
-else
- HAVE_POLKIT=0
-fi
-
-AC_SUBST(POLKIT_CFLAGS)
-AC_SUBST(POLKIT_LIBS)
-AC_SUBST(HAVE_POLKIT)
-AM_CONDITIONAL([HAVE_POLKIT], [test "x$HAVE_POLKIT" = x1])
-
-
### IPv6 connection support (optional) ###
AC_ARG_ENABLE([ipv6],
@@ -1276,15 +1261,6 @@ fi
AC_SUBST(PA_SYSTEM_GROUP)
AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
-AC_ARG_WITH(realtime_group,AS_HELP_STRING([--with-realtime-group=<group>],[Group for users that are allowed to start the PulseAudio daemon with realtime scheduling (realtime)]))
-if test -z "$with_realtime_group" ; then
- PA_REALTIME_GROUP=pulse-rt
-else
- PA_REALTIME_GROUP=$with_realtime_group
-fi
-AC_SUBST(PA_REALTIME_GROUP)
-AC_DEFINE_UNQUOTED(PA_REALTIME_GROUP,"$PA_REALTIME_GROUP", [Realtime group])
-
AC_ARG_WITH(access_group,AS_HELP_STRING([--with-access-group=<group>],[Group which is allowed access to a system-wide PulseAudio daemon (pulse-access)]))
if test -z "$with_access_group" ; then
PA_ACCESS_GROUP=pulse-access
@@ -1350,8 +1326,8 @@ fi
AC_ARG_WITH(
[module-dir],
- AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/]),
- [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/"])
+ AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
+ [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
AC_SUBST(modlibexecdir)
@@ -1363,8 +1339,6 @@ AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
AC_CONFIG_FILES([
Makefile
-shave
-shave-libtool
src/Makefile
man/Makefile
libpulse.pc
@@ -1377,7 +1351,6 @@ src/pulse/version.h
po/Makefile.in
])
-SHAVE_INIT
AC_OUTPUT
# ==========================================================================
@@ -1461,11 +1434,6 @@ if test "x${HAVE_BLUEZ}" = "x1" ; then
ENABLE_BLUEZ=yes
fi
-ENABLE_POLKIT=no
-if test "x${HAVE_POLKIT}" = "x1" ; then
- ENABLE_POLKIT=yes
-fi
-
ENABLE_GDBM=no
if test "x${HAVE_GDBM}" = "x1" ; then
ENABLE_GDBM=yes
@@ -1519,7 +1487,6 @@ echo "
Enable BlueZ: ${ENABLE_BLUEZ}
Enable TCP Wrappers: ${ENABLE_TCPWRAP}
Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
- Enable PolicyKit: ${ENABLE_POLKIT}
Enable IPv6: ${ENABLE_IPV6}
Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
Enable tdb: ${ENABLE_TDB}
@@ -1527,7 +1494,6 @@ echo "
System User: ${PA_SYSTEM_USER}
System Group: ${PA_SYSTEM_GROUP}
- Realtime Group: ${PA_REALTIME_GROUP}
Access Group: ${PA_ACCESS_GROUP}
Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
Force preopen: ${FORCE_PREOPEN}
diff --git a/git-version-gen b/git-version-gen
index 710870cd..ae3988ea 100755
--- a/git-version-gen
+++ b/git-version-gen
@@ -106,22 +106,23 @@ then
# tag or the previous older version that did not?
# Newer: v6.10-77-g0f8faeb
# Older: v6.10-g0f8faeb
- case $v in
- *-*-*) : git describe is okay three part flavor ;;
- *-*)
- : git describe is older two part flavor
- # Recreate the number of commits and rewrite such that the
- # result is the same as if we were using the newer version
- # of git describe.
- vtag=`echo "$v" | sed 's/-.*//'`
- numcommits=`git rev-list "$vtag"..HEAD | wc -l`
- v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
- ;;
- esac
+# case $v in
+# *-*-*) : git describe is okay three part flavor ;;
+# *-*)
+# : git describe is older two part flavor
+# # Recreate the number of commits and rewrite such that the
+# # result is the same as if we were using the newer version
+# # of git describe.
+# vtag=`echo "$v" | sed 's/-.*//'`
+# numcommits=`git rev-list "$vtag"..HEAD | wc -l`
+# v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
+# ;;
+# esac
# Change the first '-' to a '.', so version-comparing tools work properly.
# Remove the "g" in git describe's output string, to save a byte.
- v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
+# v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
+ :
else
v=UNKNOWN
fi
diff --git a/m4/attributes.m4 b/m4/attributes.m4
index 65f83788..28fac277 100644
--- a/m4/attributes.m4
+++ b/m4/attributes.m4
@@ -1,6 +1,6 @@
dnl Macros to check the presence of generic (non-typed) symbols.
-dnl Copyright (c) 2006-2007 Diego Pettenò <flameeyes@gmail.com>
-dnl Copyright (c) 2006-2007 xine project
+dnl Copyright (c) 2006-2008 Diego Pettenò <flameeyes@gmail.com>
+dnl Copyright (c) 2006-2008 xine project
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
@@ -32,6 +32,9 @@ dnl distribute a modified version of the Autoconf Macro, you may extend
dnl this special exception to the GPL to apply to your modified version as
dnl well.
+dnl Check if the flag is supported by compiler
+dnl CC_CHECK_CFLAGS_SILENT([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
+
AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [
AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]),
[ac_save_CFLAGS="$CFLAGS"
@@ -46,6 +49,9 @@ AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [
[$2], [$3])
])
+dnl Check if the flag is supported by compiler (cacheable)
+dnl CC_CHECK_CFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
+
AC_DEFUN([CC_CHECK_CFLAGS], [
AC_CACHE_CHECK([if $CC supports $1 flag],
AS_TR_SH([cc_cv_cflags_$1]),
@@ -56,6 +62,28 @@ AC_DEFUN([CC_CHECK_CFLAGS], [
[$2], [$3])
])
+dnl CC_CHECK_CFLAG_APPEND(FLAG, [action-if-found], [action-if-not-found])
+dnl Check for CFLAG and appends them to CFLAGS if supported
+AC_DEFUN([CC_CHECK_CFLAG_APPEND], [
+ AC_CACHE_CHECK([if $CC supports $1 flag],
+ AS_TR_SH([cc_cv_cflags_$1]),
+ CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here!
+ )
+
+ AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
+ [CFLAGS="$CFLAGS $1"; DEBUG_CFLAGS="$DEBUG_CFLAGS $1"; $2], [$3])
+])
+
+dnl CC_CHECK_CFLAGS_APPEND([FLAG1 FLAG2], [action-if-found], [action-if-not])
+AC_DEFUN([CC_CHECK_CFLAGS_APPEND], [
+ for flag in $1; do
+ CC_CHECK_CFLAG_APPEND($flag, [$2], [$3])
+ done
+])
+
+dnl Check if the flag is supported by linker (cacheable)
+dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
+
AC_DEFUN([CC_CHECK_LDFLAGS], [
AC_CACHE_CHECK([if $CC supports $1 flag],
AS_TR_SH([cc_cv_ldflags_$1]),
@@ -63,7 +91,7 @@ AC_DEFUN([CC_CHECK_LDFLAGS], [
LDFLAGS="$LDFLAGS $1"
AC_LINK_IFELSE([int main() { return 1; }],
[eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
- [eval "AS_TR_SH([cc_cv_ldflags_$1])='no'"])
+ [eval "AS_TR_SH([cc_cv_ldflags_$1])="])
LDFLAGS="$ac_save_LDFLAGS"
])
@@ -71,6 +99,31 @@ AC_DEFUN([CC_CHECK_LDFLAGS], [
[$2], [$3])
])
+dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for
+dnl the current linker to avoid undefined references in a shared object.
+AC_DEFUN([CC_NOUNDEFINED], [
+ dnl We check $host for which systems to enable this for.
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ case $host in
+ dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
+ dnl are requested, as different implementations are present; to avoid problems
+ dnl use -Wl,-z,defs only for those platform not behaving this way.
+ *-freebsd* | *-openbsd*) ;;
+ *)
+ dnl First of all check for the --no-undefined variant of GNU ld. This allows
+ dnl for a much more readable commandline, so that people can understand what
+ dnl it does without going to look for what the heck -z defs does.
+ for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do
+ CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"])
+ break
+ done
+ ;;
+ esac
+
+ AC_SUBST([LDFLAGS_NOUNDEFINED])
+])
+
dnl Check for a -Werror flag or equivalent. -Werror is the GCC
dnl and ICC flag that tells the compiler to treat all the warnings
dnl as fatal. We usually need this option to make sure that some
diff --git a/m4/shave.m4 b/m4/shave.m4
deleted file mode 100644
index 0a3509e5..00000000
--- a/m4/shave.m4
+++ /dev/null
@@ -1,77 +0,0 @@
-dnl Make automake/libtool output more friendly to humans
-dnl Damien Lespiau <damien.lespiau@gmail.com>
-dnl
-dnl SHAVE_INIT([shavedir],[default_mode])
-dnl
-dnl shavedir: the directory where the shave scripts are, it defaults to
-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 * 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 LIBTOOL, you don't want the configure tests to have these variables
-dnl re-defined.
-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],
-[
- dnl you can tweak the default value of enable_shave
- m4_if([$2], [enable], [_SHAVE_ARG_ENABLE(yes)], [_SHAVE_ARG_ENABLE(no)])
-
- if test x"$enable_shave" = xyes; then
- dnl where can we find the shave scripts?
- m4_if([$1],,
- [shavedir="$ac_pwd"],
- [shavedir="$ac_pwd/$1"])
- AC_SUBST(shavedir)
-
- dnl make is now quiet
- AC_SUBST([MAKEFLAGS], [-s])
- AC_SUBST([AM_MAKEFLAGS], ['`test -z $V && echo -s`'])
-
- dnl we need sed
- AC_CHECK_PROG(SED,sed,sed,false)
-
- dnl substitute libtool
- SHAVE_SAVED_LIBTOOL=$LIBTOOL
- LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'"
- AC_SUBST(LIBTOOL)
-
- dnl substitute cc/cxx
- SHAVE_SAVED_CC=$CC
- SHAVE_SAVED_CXX=$CXX
- SHAVE_SAVED_FC=$FC
- SHAVE_SAVED_F77=$F77
- SHAVE_SAVED_OBJC=$OBJC
- CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}"
- CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}"
- FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}"
- F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}"
- OBJC="${SHELL} ${shavedir}/shave objc ${SHAVE_SAVED_OBJC}"
- AC_SUBST(CC)
- AC_SUBST(CXX)
- AC_SUBST(FC)
- AC_SUBST(F77)
- AC_SUBST(OBJC)
-
- V=@
- else
- V=1
- fi
- Q='$(V:1=)'
- AC_SUBST(V)
- AC_SUBST(Q)
-])
-
diff --git a/po/LINGUAS b/po/LINGUAS
index 2efd94e0..660ebee9 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -9,6 +9,7 @@ es
fi
fr
gu
+hi
it
kn
mr
diff --git a/po/as.po b/po/as.po
index 74197d91..b2468a43 100644
--- a/po/as.po
+++ b/po/as.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx.pulseaudio.as\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-08 12:35+0530\n"
"Last-Translator: Amitakhya Phukan <aphukan@fedoraproject.org>\n"
"Language-Team: Assamese <fedora-trans-as@redhat.com>\n"
@@ -16,51 +16,7 @@ msgstr ""
"X-Generator: Lokalize 0.3\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "Analog Mono"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "Analog Stereo"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "Digital Stereo (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "Digital Stereo (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "Analog ছাৰাউণà§à¦¡ 4.০"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Digital ছাৰাউণà§à¦¡ 4.০ (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "Analog ছাৰাউণà§à¦¡ 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "Analog ছাৰাউণà§à¦¡ 5.০"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "Analog ছাৰাউণà§à¦¡ 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Digital ছাৰাউণà§à¦¡ 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "Analog ছাৰাউণà§à¦¡ 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -72,7 +28,7 @@ msgstr ""
"অতি সমà§à¦­à§± à¦à¦‡à¦Ÿà§‹ ALSA চালক '%s' ৰ à¦à¦Ÿà¦¾ বাগ । অনà§à¦—à§à§°à¦¹ কৰি à¦à¦‡ সমসà§à¦¯à¦¾ ALSA বিকাশকক "
"জনাওক ।"
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -84,7 +40,7 @@ msgstr ""
"অতি সমà§à¦­à§± à¦à¦‡à¦Ÿà§‹ ALSA চালক '%s' ৰ à¦à¦Ÿà¦¾ বাগ । অনà§à¦—à§à§°à¦¹ কৰি à¦à¦‡ সমসà§à¦¯à¦¾ ALSA বিকাশকক "
"জনাওক ।"
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -96,11 +52,24 @@ msgstr ""
"অতি সমà§à¦­à§± à¦à¦‡à¦Ÿà§‹ ALSA চালক '%s' ৰ à¦à¦Ÿà¦¾ বাগ । অনà§à¦—à§à§°à¦¹ কৰি à¦à¦‡ সমসà§à¦¯à¦¾ ALSA বিকাশকক "
"জনাওক ।"
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "আভà§à¦¯à¦¨à§à¦¤à§°à§€à¦£ অ'ডিঅ'"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "মোডেম"
@@ -480,15 +449,25 @@ msgstr "অৱসà§à¦¥à¦¾à¦¸à§‚চক পঞà§à¦œà¦¿à¦•à¦¾ %s বà§à¦¯à§±à¦¹à
msgid "Running in system mode: %s"
msgstr "পà§à§°à¦£à¦¾à¦²à§€ মোডত চলিছে: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() বà§à¦¯à§°à§à¦¥ ।"
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "নতà§à¦¨ high-resolution timers পোৱা হয়! অভিননà§à¦¦à¦¨!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -496,28 +475,28 @@ msgstr ""
"শà§à§°à§€à¦®à¦¾à¦¨, আপোনাৰ কাৰà§à¦£à§‡à¦² পূৰণি! high-resolution timer সকà§à§°à¦¿à§Ÿ থকা Linux ক আজি "
"উপদেশ দিয়া হয়!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() বà§à¦¯à§°à§à¦¥ ।"
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "ডেমন আৰমà§à¦­ কৰিবলৈ বà§à¦¯à§°à§à¦¥ ।"
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr ""
"তà§à¦²à¦¿ লোৱা মডিউল নোহোৱাকে ডেমন আৰমà§à¦­ কৰা হৈছে, কোনো কাম সঞà§à¦šà¦¾à¦²à¦¨ কৰা সমà§à¦­à§± নহয় ।"
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "ডেমন আৰমà§à¦­ কৰা সমà§à¦ªà§‚ৰà§à¦£ ।"
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "ডেমন বনà§à¦§ কৰাৰ পà§à§°à¦•à§à§°à¦¿à§Ÿà¦¾ আৰমà§à¦­ কৰা হৈছে ।"
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "ডেমন বনà§à¦§ কৰা হৈছে ।"
@@ -886,237 +865,237 @@ msgstr "পà§à§°à¦£à¦¾à¦²à§€à§° নীতিয়ে PulseAudio ক high-priority
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr "পà§à§°à¦£à¦¾à¦²à§€à§° নীতিয়ে PulseAudio ক real-time scheduling পাবলৈ নিদিয়ে ।"
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "মোনো"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "সনà§à¦®à§à¦–ত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "সনà§à¦®à§à¦–ত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "সনà§à¦®à§à¦–ত বাওà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "পিছত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "পিছত বাওà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "পিছত সোà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Low Frequency Emmiter"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "সনà§à¦®à§à¦–ত কেনà§à¦¦à§à§°à§°-বাওà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "সনà§à¦®à§à¦–ত কেনà§à¦¦à§à§°à§°-সোà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "কাষত বাওà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "কাষত সোà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ০"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ০"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৩"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৪"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৪"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৬"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৭"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৮"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৯"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১০"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১১"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১২"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৩"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৪"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৫"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৬"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৭"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৮"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ১৯"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২০"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২১"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২২"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৩"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৪"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৫"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৬"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৭"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৮"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ২৯"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৩০"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "অ'কà§à¦¸à¦¿à¦²à§‡à§°à¦¿ ৩১"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "ওপৰত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "ওপৰত সনà§à¦®à§à¦–ত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "ওপৰত সনà§à¦®à§à¦–ত বাওà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "ওপৰত সনà§à¦®à§à¦–ত বাওà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "ওপৰত পিছত কেনà§à¦¦à§à§°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "ওপৰত পিছত বাওà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "ওপৰত পিছত সোà¦à¦«à¦¾à¦²à§‡"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(অবৈধ)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "সà§à¦Ÿà¦¿à§°à¦¿à¦“"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "ছাৰাউণà§à¦¡ ৪.০"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "ছাৰাউণà§à¦¡ ৪.১"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "ছাৰাউণà§à¦¡ ৫.০"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "ছাৰাউণà§à¦¡ ৫.১"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "ছাৰাউণà§à¦¡ ৭.১"
@@ -1399,7 +1378,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() বà§à¦¯à§°à§à¦¥: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "<b>সংযোগৰ মোড</b>: %s<br>\n"
@@ -1556,7 +1535,7 @@ msgstr ""
"libpulse ৰ সৈতে সঙà§à¦•à¦²à¦¨ কৰা হৈছে %s\n"
"libpulse ৰ সৈতে যà§à¦•à§à¦¤ %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "চেনেল মেপ '%s' বৈধ নহয়\n"
@@ -1625,7 +1604,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "চানেকি সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
@@ -1657,7 +1636,7 @@ msgid "playback"
msgstr "পà§à¦²à§‡-বেক"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() বà§à¦¯à§°à§à¦¥ ।\n"
@@ -1667,7 +1646,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() বà§à¦¯à§°à§à¦¥ ।\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() বà§à¦¯à§°à§à¦¥ ।\n"
@@ -1682,7 +1661,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() বà§à¦¯à§°à§à¦¥ ।\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() বà§à¦¯à§°à§à¦¥ ।\n"
@@ -1712,7 +1691,7 @@ msgstr "পà§à¦¨à§°à¦¾à§°à¦®à§à¦­ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "সতৰà§à¦•à¦¬à¦¾à§°à§à¦¤à¦¾: ধà§à¦¬à¦¨à¦¿ সেৱক সà§à¦¥à¦¾à¦¨à§€à§Ÿ নহয়, সà§à¦¥à¦—িত কৰা নহয় ।\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT পà§à§°à¦¾à¦ªà§à¦¤ হৈছে, পà§à§°à¦¸à§à¦¥à¦¾à¦¨ কৰা হৈছে ।\n"
@@ -1752,32 +1731,32 @@ msgstr ""
"libpulse ৰ সৈতে সঙà§à¦•à¦²à¦¨ কৰা হৈছে %s\n"
"libpulse ৰ সৈতে যà§à¦•à§à¦¤ %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "পৰিসংখà§à¦¯à¦¾à¦¨ পাবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "বৰà§à¦¤à§à¦¤à¦®à¦¾à¦¨à§‡ বà§à¦¯à§±à¦¹à§ƒà¦¤: %u blocks containing %s bytes total.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "সমà§à¦ªà§‚ৰà§à¦£ জীৱনকালত বিতৰণ কৰা: %u blocks containing %s bytes total.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "চানেকি কেশà§à¦¬à§° মাপ: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "সেৱক সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1800,12 +1779,12 @@ msgstr ""
"অবিকলà§à¦ªà¦¿à¦¤ উৎস: %s\n"
"কà§à¦•à¦¿: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "চিঙà§à¦• সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1844,12 +1823,22 @@ msgstr ""
"\tগà§à¦£:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tপাৰà§à¦¶à§à¦¬à§°à§‚প:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tসকà§à§°à¦¿à§Ÿ পাৰà§à¦¶à§à¦¬à§°à§‚প: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "উৎস সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1888,20 +1877,20 @@ msgstr ""
"\tগà§à¦£:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/a"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "মডিউল সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1918,12 +1907,12 @@ msgstr ""
"\tগà§à¦£:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "গà§à§°à¦¾à¦¹à¦• সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1938,12 +1927,12 @@ msgstr ""
"\tগà§à¦£:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "কাৰà§à¦¡ সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1960,22 +1949,22 @@ msgstr ""
"\tগà§à¦£:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tপাৰà§à¦¶à§à¦¬à§°à§‚প:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tসকà§à§°à¦¿à§Ÿ পাৰà§à¦¶à§à¦¬à§°à§‚প: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "চিঙà§à¦• নিবেশ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2012,12 +2001,12 @@ msgstr ""
"\tগà§à¦£:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "উৎস আউটপà§à¦Ÿ সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2046,12 +2035,12 @@ msgstr ""
"\tগà§à¦£:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "চানেকি সংকà§à§°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à§°à¦¾à¦ªà§à¦¤ কৰিবলৈ বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2082,22 +2071,22 @@ msgstr ""
"\tগà§à¦£:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "বà§à¦¯à§°à§à¦¥à¦¤à¦¾: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "চানেকি আপল'ড বà§à¦¯à§°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "নথিপতà§à§°à§° অসময়ত হোৱা সমাপà§à¦¤à¦¿\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2112,6 +2101,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2143,7 +2134,7 @@ msgstr ""
" -n, --client-name=NAME How to call this client on the "
"server\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2154,64 +2145,74 @@ msgstr ""
"libpulseৰ সৈতে সঙà§à¦•à¦²à¦¨ কৰা %s\n"
"libpulse-ৰ সৈতে যà§à¦•à§à¦¤ %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "তà§à¦²à¦¿ লোৱাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ অনà§à¦—à§à§°à¦¹ কৰে à¦à¦•à¦Ÿà¦¿ চানেকি নথিপতà§à§° উলà§à¦²à§‡à¦– কৰà§à¦¨\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "শবà§à¦¦à§‡à§° নথিপতà§à§° খà§à¦²à¦¿à¦¬à¦²à§ˆ বà§à¦¯à§°à§à¦¥ ।\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "à¦à¦Ÿà¦¾ %s সà§à¦Ÿà§à§°à¦¿à¦® চানেকি নিৰà§à¦§à¦¾à§°à¦£ '%s' ৰ সৈতে খোলা হৈছে ।\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "বাজানোৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ চানেকি নথিপতà§à§° উলà§à¦²à§‡à¦– কৰা আৱশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "আà¦à¦¤à§°à¦¾à¦¬à¦²à§ˆ à¦à¦Ÿà¦¾ চানেকি নাম দিব লাগিব \n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "চিঙà§à¦• ইনপà§à¦Ÿ ইনà§à¦¡à§‡à¦•à§à¦¸ আৰৠà¦à¦Ÿà¦¾ চিঙà§à¦• নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "উৎস আউটপà§à¦Ÿ ইনà§à¦¡à§‡à¦•à§à¦¸ আৰৠà¦à¦•à¦Ÿà¦¿ উৎস নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "মডিউলৰ নাম আৰৠতৰà§à¦• নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "মডিউল ইনà§à¦¡à§‡à¦•à§à¦¸ নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr "à¦à¦•à¦¾à¦§à¦¿à¦• চিঙà§à¦• নিৰà§à¦§à¦¾à§°à¦£ কৰা যাবে না । বà§à¦²à¦¿à§Ÿà§‡à¦¨ মান নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦• ।\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr "à¦à¦•à¦¾à¦§à¦¿à¦• উৎস নিৰà§à¦§à¦¾à§°à¦£ কৰা যাবে না । বà§à¦²à¦¿à§Ÿà§‡à¦¨ মান নিৰà§à¦§à¦¾à§°à¦£ কৰা আৱশà§à¦¯à¦• ।\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "কাৰà§à¦¡à§‡à§° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ আৰৠà¦à¦•à¦Ÿà¦¿ পাৰà§à¦¶à§à¦¬à§°à§‚পৰ নাম উলà§à¦²à§‡à¦– কৰা আৱশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "কাৰà§à¦¡à§‡à§° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ আৰৠà¦à¦•à¦Ÿà¦¿ পাৰà§à¦¶à§à¦¬à§°à§‚পৰ নাম উলà§à¦²à§‡à¦– কৰা আৱশà§à¦¯à¦•\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "কাৰà§à¦¡à§‡à§° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ আৰৠà¦à¦•à¦Ÿà¦¿ পাৰà§à¦¶à§à¦¬à§°à§‚পৰ নাম উলà§à¦²à§‡à¦– কৰা আৱশà§à¦¯à¦•\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "সঞà§à¦šà¦¾à¦²à¦¨à§° বাবে আদেশ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ নহয় ।\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() বà§à¦¯à§°à§à¦¥: %s"
@@ -2336,7 +2337,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "autospawn লক পà§à§°à§Ÿà§‹à¦— কৰিবলৈ বà§à¦¯à§°à§à¦¥ ।"
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2352,7 +2353,7 @@ msgstr ""
"POLLOUT নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হোৱাৰি পিছতো আমি উথিলো -- কিনà§à¦¤à§ তাৰ পিছৰ snd_pcm_avail() ঠ০ "
"দিলে বা অনà§à¦¯ à¦à¦Ÿà¦¾ মান < min_avail."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2368,31 +2369,16 @@ msgstr ""
"POLLIN নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হোৱাৰি পিছতো আমি উথিলো -- কিনà§à¦¤à§ তাৰ পিছৰ snd_pcm_avail() ঠ০ "
"দিলে বা অনà§à¦¯ à¦à¦Ÿà¦¾ মান < min_avail."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "নিৰà§à¦—ম %s + নিবেশ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "নিৰà§à¦—ম %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "নিবেশ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "বনà§à¦§"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "High Fidelity Playback (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "Telephony Duplex (HSP/HFP)"
@@ -2400,6 +2386,48 @@ msgstr "Telephony Duplex (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "PulseAudio ধà§à¦¬à¦¨à¦¿ সেৱক"
+#~ msgid "Analog Mono"
+#~ msgstr "Analog Mono"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "Analog Stereo"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Digital Stereo (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Digital Stereo (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Analog ছাৰাউণà§à¦¡ 4.০"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Digital ছাৰাউণà§à¦¡ 4.০ (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Analog ছাৰাউণà§à¦¡ 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Analog ছাৰাউণà§à¦¡ 5.০"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Analog ছাৰাউণà§à¦¡ 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Digital ছাৰাউণà§à¦¡ 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Analog ছাৰাউণà§à¦¡ 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "নিৰà§à¦—ম %s + নিবেশ %s"
+
+#~ msgid "Output %s"
+#~ msgstr "নিৰà§à¦—ম %s"
+
+#~ msgid "Input %s"
+#~ msgstr "নিবেশ %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "সফলতাৰে সà§à¦Ÿà§à§°à¦¿à¦® নিৰà§à¦®à¦¿à¦¤ হৈছে\n"
diff --git a/po/bn_IN.po b/po/bn_IN.po
index a629a429..9214f16c 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-08 16:21+0530\n"
"Last-Translator: Runa Bhattacharjee <runab@fedoraproject.org>\n"
"Language-Team: Bengali INDIA <fedora-trans-bn_in@redhat.com>\n"
@@ -17,51 +17,7 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— মোনো"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সà§à¦Ÿà¦¿à¦°à¦¿à¦“"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "ডিজিটà§à¦¯à¦¾à¦² সà§à¦Ÿà¦¿à¦°à¦¿à¦“ (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "ডিজিটà§à¦¯à¦¾à¦² সà§à¦Ÿà¦¿à¦°à¦¿à¦“ (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সà§à¦Ÿà¦¿à¦°à¦¿à¦“ ৪.০"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "ডিজিটà§à¦¯à¦¾à¦² সারাউনà§à¦¡ ৪.০ (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৪.১"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৫.০"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৫.১"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "ডিজিটà§à¦¯à¦¾à¦² সারাউনà§à¦¡ ৫.১ (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৭.১"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -73,7 +29,7 @@ msgstr ""
"সমà§à¦­à¦¬à¦¤ à¦à¦Ÿà¦¿ ALSA ডà§à¦°à¦¾à¦‡à¦­à¦¾à¦° '%s'-র à¦à¦•à¦Ÿà¦¿ বাগ। অনà§à¦—à§à¦°à¦¹ করে à¦à¦‡ সমসà§à¦¯à¦¾ সমà§à¦¬à¦¨à§à¦§à§‡ ALSA "
"ডিভেলপরদের সূচিত করà§à¦¨à¥¤"
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -85,7 +41,7 @@ msgstr ""
"সমà§à¦­à¦¬à¦¤ à¦à¦Ÿà¦¿ ALSA ডà§à¦°à¦¾à¦‡à¦­à¦¾à¦° '%s'-র à¦à¦•à¦Ÿà¦¿ বাগ। অনà§à¦—à§à¦°à¦¹ করে à¦à¦‡ সমসà§à¦¯à¦¾ সমà§à¦¬à¦¨à§à¦§à§‡ ALSA "
"ডিভেলপরদের সূচিত করà§à¦¨à¥¤"
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -97,11 +53,24 @@ msgstr ""
"সমà§à¦­à¦¬à¦¤ à¦à¦Ÿà¦¿ ALSA ডà§à¦°à¦¾à¦‡à¦­à¦¾à¦° '%s'-র à¦à¦•à¦Ÿà¦¿ বাগ। অনà§à¦—à§à¦°à¦¹ করে à¦à¦‡ সমসà§à¦¯à¦¾ সমà§à¦¬à¦¨à§à¦§à§‡ ALSA "
"ডিভেলপরদের সূচিত করà§à¦¨à¥¤"
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "অভà§à¦¯à¦¨à§à¦¤à¦°à§€à¦£ অডিও"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "মোডেম"
@@ -483,42 +452,52 @@ msgstr "অবসà§à¦¥à¦¾à¦¸à§‚চক ডিরেকà§à¦Ÿà¦°à¦¿ %s বà§à¦¯à
msgid "Running in system mode: %s"
msgstr "সিসà§à¦Ÿà§‡à¦® মোডে চলছে: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() বà§à¦¯à¦°à§à¦¥à¥¤"
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "উচà§à¦š-রেসোলিউশনের নতà§à¦¨ টাইমার উপলবà§à¦§ রয়েছে! পরীকà§à¦·à¦¾ করে দেখà§à¦¨!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
msgstr "উচà§à¦š-রেসোলিউশনের নতà§à¦¨ টাইমার সহ Linux সকà§à¦°à¦¿à§Ÿ করা বাঞà§à¦›à¦¨à§€à§Ÿ!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() বà§à¦¯à¦°à§à¦¥à¥¤"
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "ডেমন আরমà§à¦­ করতে বà§à¦¯à¦°à§à¦¥à¥¤"
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr ""
"লোড করা মডিউল বিনা ডেমন আরমà§à¦­ করা হয়েছে à¦à¦¬à¦‚ কোনো করà§à¦® সঞà§à¦šà¦¾à¦²à¦¨ করা সমà§à¦­à¦¬ নয়।"
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "ডেমন আরমà§à¦­ করা হয়েছে।"
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "ডেমন বনà§à¦§ করার পà§à¦°à¦•à§à¦°à¦¿à§Ÿà¦¾ আরমà§à¦­ করা হয়েছে।"
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "ডেমন বনà§à¦§ করা হয়েছে।"
@@ -900,237 +879,237 @@ msgstr ""
"সিসà§à¦Ÿà§‡à¦®à§‡à¦° নিয়ম-নীতির কারণে PulseAudio দà§à¦¬à¦¾à¦°à¦¾ রিয়েল-টাইম শিডিউলিং পà§à¦°à§Ÿà§‹à¦— করা "
"সমà§à¦­à¦¬ হচà§à¦›à§‡ না।"
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "মোনো"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "সামনে কেনà§à¦¦à§à¦°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "সামনে বাà¦à¦¦à¦¿à¦•à§‡"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "সামনে ডানদিকে"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "পিছনে কেনà§à¦¦à§à¦°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "পিছনে বাà¦à¦¦à¦¿à¦•à§‡"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "পিছনে ডানদিকে"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "কম ফà§à¦°à¦¿à¦•à§‹à§Ÿà§‡à¦¨à§à¦¸à¦¿à¦° নিঃসরণকারী"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "সামনে কেনà§à¦¦à§à¦°à§‡à¦°-বাà¦à¦¦à¦¿à¦•à§‡"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "সামনে কেনà§à¦¦à§à¦°à§‡à¦°-ডানদিকে"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "পাশে বাà¦à¦¦à¦¿à¦•à§‡"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "পাশে ডানদিকে"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ০"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৩"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৪"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৫"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৬"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৭"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৮"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৯"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১০"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১১"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১২"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৩"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৪"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৫"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৬"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৭"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৮"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ১৯"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২০"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২১"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২২"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৩"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৪"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৫"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৬"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৭"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৮"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ২৯"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৩০"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "অকà§à¦¸à¦¿à¦²à¦¾à¦°à¦¿ ৩১"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "উপরে কেনà§à¦¦à§à¦°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "উপরে সামনে কেনà§à¦¦à§à¦°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "উপরে সামনে বাà¦à¦¦à¦¿à¦•à§‡"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "উপরে সামনে ডানদিকে"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "উপরে পিছনে কেনà§à¦¦à§à¦°à¦¸à§à¦¥à¦¿à¦¤"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "উপরে পিছনে বাà¦à¦¦à¦¿à¦•à§‡"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "উপরে পিছনে ডানদিকে"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(অবৈধ)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "সà§à¦Ÿà¦¿à¦°à¦¿à¦“"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "সারাউনà§à¦¡ ৪.০"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "সারাউনà§à¦¡ ৪.১"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "সারাউনà§à¦¡ ৫.০"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "সারাউনà§à¦¡ ৫.১"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "সারাউনà§à¦¡ ৭.১"
@@ -1416,7 +1395,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() বà§à¦¯à¦°à§à¦¥: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "সংযোগ বিফল: %s\n"
@@ -1571,7 +1550,7 @@ msgstr ""
"libpulse সহযোগে কমà§à¦ªà¦¾à¦‡à¦² করা হয়েছে %s\n"
"libpulse-র সাথে যà§à¦•à§à¦¤ %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "চà§à¦¯à¦¾à¦¨à§‡à¦² মà§à¦¯à¦¾à¦ª '%s' বৈধ নয়\n"
@@ -1640,7 +1619,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
@@ -1672,7 +1651,7 @@ msgid "playback"
msgstr "পà§à¦²à§‡-বà§à¦¯à¦¾à¦•"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() বà§à¦¯à¦°à§à¦¥à¥¤\n"
@@ -1682,7 +1661,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() বà§à¦¯à¦°à§à¦¥à¥¤\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() বà§à¦¯à¦°à§à¦¥à¥¤\n"
@@ -1697,7 +1676,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() বà§à¦¯à¦°à§à¦¥à¥¤\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() বà§à¦¯à¦°à§à¦¥à¥¤\n"
@@ -1727,7 +1706,7 @@ msgstr "পà§à¦¨à¦°à¦¾à¦°à¦®à§à¦­ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "সতরà§à¦•à¦¬à¦¾à¦°à§à¦¤à¦¾: শবà§à¦¦à§‡à¦° সারà§à¦­à¦¾à¦°à¦Ÿà¦¿ সà§à¦¥à¦¾à¦¨à§€à§Ÿ নয় ও সà§à¦¥à¦—িত করা হচà§à¦›à§‡ না।\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে, পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ করা হয়েছে।\n"
@@ -1767,33 +1746,33 @@ msgstr ""
"libpulse সহযোগে কমà§à¦ªà¦¾à¦‡à¦² করা হয়েছে %s\n"
"libpulse-র সাথে যà§à¦•à§à¦¤ %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "পরিসংখà§à¦¯à¦¾à¦¨: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "বরà§à¦¤à¦®à¦¾à¦¨à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤: %u বà§à¦²à¦•à§‡à¦° মধà§à¦¯à§‡ উপসà§à¦¥à¦¿à¦¤ সরà§à¦¬à¦®à§‹à¦Ÿ %s বাইট।\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr ""
"সমà§à¦ªà§‚রà§à¦£ করà§à¦®à¦•à¦¾à¦²à§‡à¦° জনà§à¦¯ বরাদà§à¦¦ করা হয়েছে: %u বà§à¦²à¦•à§‡à¦° মধà§à¦¯à§‡ উপসà§à¦¥à¦¿à¦¤ সরà§à¦¬à¦®à§‹à¦Ÿ %s বাইট।\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² কà§à¦¯à¦¾à¦¶à§‡à¦° মাপ: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "সারà§à¦­à¦¾à¦° সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1816,12 +1795,12 @@ msgstr ""
"ডিফলà§à¦Ÿ সোরà§à¦¸: %s\n"
"কà§à¦•à¦¿: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "সিংক সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1860,12 +1839,22 @@ msgstr ""
"\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tপà§à¦°à§‹à¦«à¦¾à¦‡à¦²:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tসকà§à¦°à¦¿à§Ÿ পà§à¦°à§‹à¦«à¦¾à¦‡à¦²: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "সোরà§à¦¸ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1904,20 +1893,20 @@ msgstr ""
"\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/a"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "মডিউল সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1934,12 +1923,12 @@ msgstr ""
"\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1954,12 +1943,12 @@ msgstr ""
"\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "কারà§à¦¡ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1976,22 +1965,22 @@ msgstr ""
"\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tপà§à¦°à§‹à¦«à¦¾à¦‡à¦²:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tসকà§à¦°à¦¿à§Ÿ পà§à¦°à§‹à¦«à¦¾à¦‡à¦²: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "সিংক ইনপà§à¦Ÿ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2028,12 +2017,12 @@ msgstr ""
"\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "সোরà§à¦¸ আউটপà§à¦Ÿ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2062,13 +2051,13 @@ msgstr ""
"\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করতে বà§à¦¯à¦°à§à¦¥: %s\n"
# Lazy = low quality sample
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2099,22 +2088,22 @@ msgstr ""
"\tবিবিধ বৈশিষà§à¦Ÿà§à¦¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "বà§à¦¯à¦°à§à¦¥à¦¤à¦¾: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² আপলোড করতে বà§à¦¯à¦°à§à¦¥: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "সমà§à¦ªà§‚রà§à¦£ হওয়ার পূরà§à¦¬à§‡ ফাইল সমাপà§à¦¤ হয়েছে\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2129,6 +2118,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2158,7 +2149,7 @@ msgstr ""
" -s, --server=SERVER সংযোগ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ চিহà§à¦¨à¦¿à¦¤ সারà§à¦­à¦¾à¦°\n"
" -n, --client-name=NAME সারà§à¦­à¦¾à¦°à§‡à¦° মধà§à¦¯à§‡ à¦à¦‡ কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿà§‡à¦° পরিচয়\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2169,64 +2160,74 @@ msgstr ""
"libpulse সহযোগে কমà§à¦ªà¦¾à¦‡à¦² করা %s\n"
"libpulse-র সাথে যà§à¦•à§à¦¤ %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "লোড করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ অনà§à¦—à§à¦°à¦¹ করে à¦à¦•à¦Ÿà¦¿ সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² ফাইল উলà§à¦²à§‡à¦– করà§à¦¨\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "শবà§à¦¦à§‡à¦° ফাইল খà§à¦²à¦¤à§‡ বà§à¦¯à¦°à§à¦¥à¥¤\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "à¦à¦•à¦Ÿà¦¿ %s সà§à¦Ÿà§à¦°à¦¿à¦® '%s' সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² বৈশিষà§à¦Ÿà§à¦¯ সহ খোলা হচà§à¦›à§‡à¥¤\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "বাজানোর উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² ফাইল উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "অপসারণের উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ সà§à¦¯à¦¾à¦®à§à¦ªà§‡à¦² ফাইল উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "সিংক ইনপà§à¦Ÿ ইনà§à¦¡à§‡à¦•à§à¦¸ ও à¦à¦•à¦Ÿà¦¿ সিংক নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "সোরà§à¦¸ আউটপà§à¦Ÿ ইনà§à¦¡à§‡à¦•à§à¦¸ ও à¦à¦•à¦Ÿà¦¿ সোরà§à¦¸ নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "মডিউলের নাম ও আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "মডিউল ইনà§à¦¡à§‡à¦•à§à¦¸ নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr "à¦à¦•à¦¾à¦§à¦¿à¦• সিংক নিরà§à¦§à¦¾à¦°à¦£ করা যাবে না। বà§à¦²à¦¿à§Ÿà§‡à¦¨ মান নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•à¥¤\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr "à¦à¦•à¦¾à¦§à¦¿à¦• সোরà§à¦¸ নিরà§à¦§à¦¾à¦°à¦£ করা যাবে না। বà§à¦²à¦¿à§Ÿà§‡à¦¨ মান নিরà§à¦§à¦¾à¦°à¦£ করা আবশà§à¦¯à¦•à¥¤\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "কারà§à¦¡à§‡à¦° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ ও à¦à¦•à¦Ÿà¦¿ পà§à¦°à§‹à¦«à¦¾à¦‡à¦²à§‡à¦° নাম উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "কারà§à¦¡à§‡à¦° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ ও à¦à¦•à¦Ÿà¦¿ পà§à¦°à§‹à¦«à¦¾à¦‡à¦²à§‡à¦° নাম উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "কারà§à¦¡à§‡à¦° নাম/ইনà§à¦¡à§‡à¦•à§à¦¸ ও à¦à¦•à¦Ÿà¦¿ পà§à¦°à§‹à¦«à¦¾à¦‡à¦²à§‡à¦° নাম উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "কোনো কমানà§à¦¡ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হয়নি।\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() বà§à¦¯à¦°à§à¦¥: %s"
@@ -2351,7 +2352,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "autospawn লক পà§à¦°à§Ÿà§‹à¦— করতে বà§à¦¯à¦°à§à¦¥à¥¤"
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2368,7 +2369,7 @@ msgstr ""
"POLLOUT set দà§à¦¬à¦¾à¦°à¦¾ চেতাবনী সৃষà§à¦Ÿà¦¿ হয়েছে -- পরবরà§à¦¤à§€ snd_pcm_avail() থেকে 0 অথবা < "
"min_avail-র থেকে কম অনà§à¦¯ à¦à¦•à¦Ÿà¦¿ মান পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে।"
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2385,31 +2386,16 @@ msgstr ""
"POLLIN set দà§à¦¬à¦¾à¦°à¦¾ চেতাবনী সৃষà§à¦Ÿà¦¿ হয়েছে -- পরবরà§à¦¤à§€ snd_pcm_avail() থেকে 0 অথবা < "
"min_avail-র থেকে কম অনà§à¦¯ à¦à¦•à¦Ÿà¦¿ মান পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে।"
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "আউটপà§à¦Ÿ %s + ইনপà§à¦Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "আউটপà§à¦Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "ইনপà§à¦Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "বনà§à¦§"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "হাই-ফিডেলিটি পà§à¦²à§‡-বà§à¦¯à¦¾à¦• (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "টেলিফোনি ডà§à¦ªà§à¦²à§‡ (HSP/HFP)"
@@ -2417,6 +2403,48 @@ msgstr "টেলিফোনি ডà§à¦ªà§à¦²à§‡ (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "PulseAudio শবà§à¦¦à§‡à¦° সারà§à¦­à¦¾à¦°"
+#~ msgid "Analog Mono"
+#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— মোনো"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সà§à¦Ÿà¦¿à¦°à¦¿à¦“"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "ডিজিটà§à¦¯à¦¾à¦² সà§à¦Ÿà¦¿à¦°à¦¿à¦“ (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "ডিজিটà§à¦¯à¦¾à¦² সà§à¦Ÿà¦¿à¦°à¦¿à¦“ (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সà§à¦Ÿà¦¿à¦°à¦¿à¦“ ৪.০"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "ডিজিটà§à¦¯à¦¾à¦² সারাউনà§à¦¡ ৪.০ (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৪.১"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৫.০"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৫.১"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "ডিজিটà§à¦¯à¦¾à¦² সারাউনà§à¦¡ ৫.১ (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "অà§à¦¯à¦¾à¦¨à¦¾à¦²à¦— সারাউনà§à¦¡ ৭.১"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "আউটপà§à¦Ÿ %s + ইনপà§à¦Ÿ %s"
+
+#~ msgid "Output %s"
+#~ msgstr "আউটপà§à¦Ÿ %s"
+
+#~ msgid "Input %s"
+#~ msgstr "ইনপà§à¦Ÿ %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "সাফলà§à¦¯à§‡à¦° সাথে সà§à¦Ÿà§à¦°à¦¿à¦® নিরà§à¦®à¦¿à¦¤ হয়েছে\n"
diff --git a/po/de_CH.po b/po/de_CH.po
index 3c1f4293..7c069efb 100644
--- a/po/de_CH.po
+++ b/po/de_CH.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-18 12:55+0100\n"
"Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n"
"Language-Team: German <fedora-trans-de@redhat.com>\n"
@@ -18,51 +18,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Language: Swiss German\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "Analog Mono"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "Analog Stereo"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "Digital Stereo (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "Digital Stereo (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "Analog Surround 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Digital Surround 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "Analog Surround 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "Analog Surround 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "Analog Surround 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Digital Surround 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "Analog Surround 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -75,7 +31,7 @@ msgstr ""
"Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie "
"diesen Punkt den ALSA-Entwicklern."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -88,7 +44,7 @@ msgstr ""
"Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie "
"diesen Punkt den ALSA-Entwicklern."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -101,11 +57,24 @@ msgstr ""
"Dies ist wahrscheinlich ein Fehler im ALSA-Treiber '%s'. Bitte melden Sie "
"diesen Punkt den ALSA-Entwicklern."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "Internes Audio"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "Modem"
@@ -482,41 +451,51 @@ msgstr "Nutze Zustands-Verzeichnis %s."
msgid "Running in system mode: %s"
msgstr "Laufe im System-Modus: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() fehlgeschlagen."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "Neue hochauslösende Timer verfügbar! Guten Appetit!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
msgstr "Der Chefkoch empfiehlt: Linux mit aktivierten hochauslösenden Timern!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() fehlgeschlagen."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "Konnte Daemon nicht initialisieren."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "Daemon verweigert Ausführung, da keine Module geladen."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "Start des Daemons abgeschlossen."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "Herunterfahren des Daemon gestartet."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "Daemon beendet."
@@ -893,237 +872,237 @@ msgstr ""
"System-Richtlinien verhindert PulseAudio beim Erlangen der Echtzeit-"
"Terminierung.."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Mono"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Vorne Mitte"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Vorne Links"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Vorne Rechts"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "Hinten Mitte"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "Hinten Links"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "Hinten Rechts"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Niedrigfrequenzemitter"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Vorne Links der Mitte"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Vorne Rechts der Mitte"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Seite Links"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "Seite Rechts"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Zusatz 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Zusatz 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Zusatz 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Zusatz 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Zusatz 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Zusatz 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Zusatz 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Zusatz 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Zusatz 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Zusatz 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Zusatz 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Zusatz 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Zusatz 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Zusatz 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Zusatz 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Zusatz 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Zusatz 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Zusatz 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Zusatz 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Zusatz 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Zusatz 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Zusatz 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Zusatz 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Zusatz 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Zusatz 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Zusatz 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Zusatz 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Zusatz 26"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Zusatz 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Zusatz 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Zusatz 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Zusatz 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "Oben Mitte"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "Oben Vorne Mitte"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "Oben Vorne Links"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "Oben Vorne Rechts"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "Oben Hinten Mitte"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "Oben Hinten Links"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "Oben Hinten Rechts"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(ungültig)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "Stereo"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "Surround 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "Surround 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "Surround 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "Surround 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "Surround 7.1"
@@ -1407,7 +1386,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() fehlgeschlagen: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "Verbindungsfehler: %s\n"
@@ -1555,7 +1534,7 @@ msgstr ""
"Kompiliert mit libpulse %s\n"
"Gelinkt mit libpulse %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "Ungültige Kanal-Zuweisung '%s'\n"
@@ -1624,7 +1603,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n"
@@ -1656,7 +1635,7 @@ msgid "playback"
msgstr "abspielen"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() fehlgeschlagen.\n"
@@ -1666,7 +1645,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() fehlgeschlagen.\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() fehlgeschlagen.\n"
@@ -1681,7 +1660,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() fehlgeschlagen.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() fehlgeschlagen.\n"
@@ -1711,7 +1690,7 @@ msgstr "Resume fehlgeschlagen: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "WARNUNG: Sound-Server läuft nicht lokal, nicht ausgesetzt.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT empfangen, beende.\n"
@@ -1750,32 +1729,32 @@ msgstr ""
"kompiliert mit libpulse %s\n"
"Gelinkt mit libpulse %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "Beziehen der Statistik fehlgeschlagen: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "Momentane Nutzung: %u Blöcke mit insgesamt %s Bytes.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "Während gesamter Laufzeit: %u Blöcke mit insgesamt %s Bytes.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "Sample-Pufferspeichergrösse: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "Beziehen der Server-Information fehlgeschlagen: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1798,12 +1777,12 @@ msgstr ""
"-Standard-Quelle: %s\n"
"Cookie: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "Erhalten der Sink-Informationen fehlgeschlagen: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1842,12 +1821,22 @@ msgstr ""
"\tEigenschaften:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tProfile:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tAktive Profile: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "Beziehen der Quellen-Informationen fehlgeschlagen: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1886,20 +1875,20 @@ msgstr ""
"\tEigenschaften:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "k. A."
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "Beziehen der Modul-Information fehlgeschlagen: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1916,12 +1905,12 @@ msgstr ""
"\tEigenschaften:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "Beziehen der Client-Information fehlgeschlagen: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1936,12 +1925,12 @@ msgstr ""
"\tEigenschaften:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "Beziehen der Karten-Information fehlgeschlagen: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1958,22 +1947,22 @@ msgstr ""
"\tEigenschaften:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tProfile:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tAktive Profile: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "Konnte Sink-Eingabe-Informationen nicht holen: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2010,12 +1999,12 @@ msgstr ""
"\tEigenschaften:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "Konnte Informationen über Quell-Ausgabe nicht holen: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2044,12 +2033,12 @@ msgstr ""
"\tEigenschaften:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2080,22 +2069,22 @@ msgstr ""
"\tEigenschaften:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "Fehlgeschlagen: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "Hochladen des Sample fehlgeschlagen: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "Dateiende ist zu früh aufgetreten\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2110,6 +2099,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2139,7 +2130,7 @@ msgstr ""
" -s, --server=SERVER Name des Zielservers\n"
" -n, --client-name=NAME Rufname des Clients auf dem Server\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2150,45 +2141,45 @@ msgstr ""
"Kompiliert mit libpulse %s\n"
"Gelinkt mit libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "Geben Sie eine zu öffnende Sample-Datei an\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "Sie müssen eine abzuspielende Sample-Datei angeben\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "Sie müssen eine zu löschende Sample-Datei angeben\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "Sie müssen einen Sink-Eingabe-Indexwert und einen Sink angeben\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr ""
"Sie müssen eine Indexwert für die Quell-Ausgabe und eine Quelle angeben\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "Sie müssen einen Modulnamen angeben und Argumente übergeben.\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "Sie müssen einen Indexwert für ein Modul angeben\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
@@ -2196,7 +2187,7 @@ msgstr ""
"Sie sollten nur eine Senke angeben. Sie müssen zumindest einen bool'schen "
"Wert übergeben.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
@@ -2204,15 +2195,25 @@ msgstr ""
"Sie sollten nur eine Quelle angeben. Sie müssen zumindest einen bool'schen "
"Wert übergeben.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "Sie müssen einen Karten-Name/Indexwert und einen Profilnamen angeben\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "Sie müssen einen Karten-Name/Indexwert und einen Profilnamen angeben\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "Sie müssen einen Karten-Name/Indexwert und einen Profilnamen angeben\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "Kein gültiger Befehl angegeben.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_new() fehlgeschlagen: %s"
@@ -2337,7 +2338,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "Fehler beim Zugriff auf Autostart -Sperre."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2355,7 +2356,7 @@ msgstr ""
"von snd_pcm_avail() liefert 0 oder einen anderen Wert zurück, der < "
"min_avail ist."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2373,31 +2374,16 @@ msgstr ""
"von snd_pcm_avail() liefert 0 oder einen anderen Wert zurück, der < "
"min_avail ist."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "Ausgabe %s + Eingabe %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "Ausgang %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "Eingang %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "Aus"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "High Fidelity Playback (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "Telephony Duplex (HSP/HFP)"
@@ -2405,6 +2391,48 @@ msgstr "Telephony Duplex (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "PulseAudio Sound Server"
+#~ msgid "Analog Mono"
+#~ msgstr "Analog Mono"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "Analog Stereo"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Digital Stereo (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Digital Stereo (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Analog Surround 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Digital Surround 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Analog Surround 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Analog Surround 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Analog Surround 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Digital Surround 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Analog Surround 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "Ausgabe %s + Eingabe %s"
+
+#~ msgid "Output %s"
+#~ msgstr "Ausgang %s"
+
+#~ msgid "Input %s"
+#~ msgstr "Eingang %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "Stream erfolgreich erzeugt\n"
diff --git a/po/el.po b/po/el.po
index b66ca5b7..9e593e16 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: el\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2008-08-22 19:40+0300\n"
"Last-Translator: Dimitris Glezos <dimitris@glezos.com>\n"
"Language-Team: Greek <fedora-trans-el@redhat.com>\n"
@@ -16,51 +16,7 @@ msgstr ""
"X-Generator: KAider 0.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -69,7 +25,7 @@ msgid ""
"to the ALSA developers."
msgstr ""
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -78,7 +34,7 @@ msgid ""
"to the ALSA developers."
msgstr ""
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -87,11 +43,24 @@ msgid ""
"to the ALSA developers."
msgstr ""
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr ""
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr ""
@@ -457,15 +426,25 @@ msgstr ""
msgid "Running in system mode: %s"
msgstr ""
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr ""
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr ""
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -473,27 +452,27 @@ msgstr ""
"Δικέ μου, ο πυÏήνας σου είναι για τα μπάζα! Η Ï€Ïόταση του σεφ σήμεÏα είναι "
"Linux με ενεÏγοποιημένα τα high-resolution timers!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr ""
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr ""
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr ""
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr ""
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr ""
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr ""
@@ -789,237 +768,237 @@ msgstr ""
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr ""
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr ""
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr ""
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr ""
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr ""
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr ""
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr ""
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr ""
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr ""
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr ""
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr ""
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr ""
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr ""
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr ""
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr ""
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr ""
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr ""
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr ""
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr ""
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr ""
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr ""
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr ""
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr ""
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr ""
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr ""
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr ""
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr ""
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr ""
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr ""
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr ""
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr ""
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr ""
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr ""
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr ""
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr ""
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr ""
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr ""
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr ""
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr ""
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr ""
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr ""
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr ""
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr ""
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr ""
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr ""
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr ""
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr ""
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr ""
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr ""
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr ""
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr ""
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr ""
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr ""
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr ""
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr ""
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr ""
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr ""
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr ""
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr ""
@@ -1302,7 +1281,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr ""
@@ -1408,7 +1387,7 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, c-format
msgid "Invalid client name '%s'\n"
msgstr ""
@@ -1475,7 +1454,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
msgid "Failed to determine sample specification from file.\n"
msgstr ""
@@ -1506,7 +1485,7 @@ msgid "playback"
msgstr ""
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr ""
@@ -1516,7 +1495,7 @@ msgid "io_new() failed.\n"
msgstr ""
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr ""
@@ -1531,7 +1510,7 @@ msgid "time_new() failed.\n"
msgstr ""
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr ""
@@ -1561,7 +1540,7 @@ msgstr ""
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr ""
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr ""
@@ -1591,32 +1570,32 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr ""
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr ""
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1630,12 +1609,12 @@ msgid ""
"Cookie: %08x\n"
msgstr ""
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1657,12 +1636,22 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, c-format
+msgid "\tPorts:\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, c-format
+msgid "\tActive Port: %s\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1684,20 +1673,20 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr ""
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1708,12 +1697,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1723,12 +1712,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1739,22 +1728,22 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr ""
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -1775,12 +1764,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -1797,12 +1786,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -1820,21 +1809,21 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr ""
-#: ../src/utils/pactl.c:779
+#: ../src/utils/pactl.c:826
#, c-format
msgid ""
"%s [options] stat\n"
@@ -1850,6 +1839,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -1860,7 +1851,7 @@ msgid ""
"server\n"
msgstr ""
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -1868,63 +1859,71 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr ""
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr ""
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr ""
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr ""
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr ""
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr ""
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr ""
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr ""
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr ""
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr ""
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr ""
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr ""
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:1084
+msgid "You have to specify a source name/index and a port name\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr ""
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr ""
@@ -2042,7 +2041,7 @@ msgstr ""
msgid "Cannot access autospawn lock."
msgstr ""
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2053,7 +2052,7 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2064,31 +2063,16 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr ""
diff --git a/po/es.po b/po/es.po
index 0a06a393..596f6931 100644
--- a/po/es.po
+++ b/po/es.po
@@ -2420,4 +2420,3 @@ msgstr "Servidor de Sonido PulseAudio"
#~ msgstr "destino"
#~ msgid "source"
#~ msgstr "fuente"
-
diff --git a/po/fi.po b/po/fi.po
index f5e27bbb..c005658d 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: git trunk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-05 16:24+0300\n"
"Last-Translator: Ville-Pekka Vainio <vpivaini@cs.helsinki.fi>\n"
"Language-Team: Finnish <laatu@lokalisointi.org>\n"
@@ -16,51 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "Analoginen mono"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "Analoginen stereo"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "Digitaalinen stereo (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "Digitaalinen stereo (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "Analoginen tilaääni 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Digitaalinen tilaääni 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "Analoginen tilaääni 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "Analoginen tilaääni 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "Analoginen tilaääni 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Digitaalinen tilaääni 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "Analoginen tilaääni 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -72,7 +28,7 @@ msgstr ""
"Tämä on todennäköisesti ohjelmavirhe ALSA-ajurissa â€%sâ€. Ilmoita tästä "
"ongelmasta ALSA-kehittäjille."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -85,7 +41,7 @@ msgstr ""
"Tämä on todennäköisesti ohjelmavirhe ALSA-ajurissa â€%sâ€. Ilmoita tästä "
"ongelmasta ALSA-kehittäjille."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -98,11 +54,24 @@ msgstr ""
"Tämä on todennäköisesti ohjelmavirhe ALSA-ajurissa â€%sâ€. Ilmoita tästä "
"ongelmasta ALSA-kehittäjille."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "Sisäinen äänentoisto"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "Modeemi"
@@ -488,15 +457,25 @@ msgstr "Käytetään tilahakemistoa %s."
msgid "Running in system mode: %s"
msgstr "Suoritetaan järjestelmätilassa: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() epäonnistui."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "Korkean tarkkuuden ajastimet käytettävissä."
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -504,29 +483,29 @@ msgstr ""
"Hei, ytimesi on kehno! Linux korkean tarkkuuden ajastimien tuella on hyvin "
"suositeltava!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() epäonnistui."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "Taustaprosessin alustus epäonnistui."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr ""
"Taustaprosessin käynnistys ilman ladattavia moduuleita, kieltäydytään "
"toiminnasta."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "Taustaprosessin käynnistys valmis."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "Taustaprosessin sulkeminen käynnistetty."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "Taustaprosessi lopetettu."
@@ -914,237 +893,237 @@ msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr ""
"Järjestelmäkäytäntö estää PulseAudiota saamasta reaaliaikaista ajoitusta."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Mono"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Keski"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Vasen etu"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Oikea etu"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "Takakeski"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "Vasen taka"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "Oikea taka"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Alataajuus"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Vasemmalle keskeltä etu"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Oikealle keskeltä etu"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Vasen sivu"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "Oikea sivu"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Avustava 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Avustava 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Avustava 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Avustava 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Avustava 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Avustava 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Avustava 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Avustava 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Avustava 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Avustava 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Avustava 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Avustava 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Avustava 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Avustava 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Avustava 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Avustava 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Avustava 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Avustava 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Avustava 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Avustava 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Avustava 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Avustava 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Avustava 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Avustava 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Avustava 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Avustava 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Avustava 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Avustava 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Avustava 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Avustava 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Avustava 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Avustava 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "Keski ylä"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "Keski ylä etu"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "Vasen ylä etu"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "Oikea ylä etu"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "Keski ylä taka"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "Vasen ylä taka"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "Oikea ylä taka"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(virheellinen)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "Stereo"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "4.0-tilaääni"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "4.1-tilaääni"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "5.0-tilaääni"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "5.1-tilaääni"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "7.1-tilaääni"
@@ -1427,7 +1406,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() epäonnistui: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "Yhteysvirhe: %s\n"
@@ -1582,7 +1561,7 @@ msgstr ""
"Käännetty libpulsen versiolle %s\n"
"Linkitetty libpulsen versiolle %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "Virheellinen kanavakartta â€%sâ€\n"
@@ -1651,7 +1630,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "Näytetietojen nouto epäonnistui: %s\n"
@@ -1683,7 +1662,7 @@ msgid "playback"
msgstr "toisto"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() epäonnistui.\n"
@@ -1693,7 +1672,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() epäonnistui.\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() epäonnistui.\n"
@@ -1708,7 +1687,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() epäonnistui.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() epäonnistui.\n"
@@ -1738,7 +1717,7 @@ msgstr "Palautus epäonnistui: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "VAROITUS: Äänipalvelin ei ole paikallinen, ei keskeytetä.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "Saatiin SIGINT, lopetetaan.\n"
@@ -1778,32 +1757,32 @@ msgstr ""
"Käännetty libpulsen versiolle %s\n"
"Linkitetty libpulsen versiolle %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "Tilastojen selvittäminen epäonnistui: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "Nyt käytössä: %u lohkoa sisältäen yhteensä %s tavua.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "Koko käyttöaikana varattu: %u lohkoa sisältäen yhteensä %s tavua.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "Näytevälimuistin koko: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "Palvelintietojen selvittäminen epäonnistui: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1826,12 +1805,12 @@ msgstr ""
"Oletuslähde: %s\n"
"Eväste: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "Nielun tietojen nouto epäonnistui: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1870,12 +1849,22 @@ msgstr ""
"\tOminaisuudet:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tProfiilit:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tAktiivinen profiili: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "Lähteen tietojen nouto epäonnistui: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1914,20 +1903,20 @@ msgstr ""
"\tOminaisuudet:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "-"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "Moduulin tietojen nouto epäonnistui: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1944,12 +1933,12 @@ msgstr ""
"\tOminaisuudet:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "Asiakkaan tietojen nouto epäonnistui: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1964,12 +1953,12 @@ msgstr ""
"\tOminaisuudet:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "Kortin tietojen nouto epäonnistui: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1986,22 +1975,22 @@ msgstr ""
"\tOminaisuudet:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tProfiilit:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tAktiivinen profiili: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "Nielun sisääntulon tietojen nouto epäonnistui: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2038,12 +2027,12 @@ msgstr ""
"\tOminaisuudet:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "Lähteen ulostulon tietojen nouto epäonnistui: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2072,12 +2061,12 @@ msgstr ""
"\tOminaisuudet:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "Näytetietojen nouto epäonnistui: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2108,22 +2097,22 @@ msgstr ""
"\tOminaisuudet:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "Epäonnistuminen: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "Näytteen lähettäminen epäonnistui: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "Ennenaikainen tiedoston päättyminen\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2138,6 +2127,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2169,7 +2160,7 @@ msgstr ""
" -n, --client-name=NIMI Kuinka tätä asiakasohjelmaa\n"
" kutsutaan palvelimella\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2180,64 +2171,74 @@ msgstr ""
"Käännetty libpulsen versiolle %s\n"
"Linkitetty libpulsen versiolle %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "Anna ladattava näytetiedosto\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "Äänitiedoston avaaminen epäonnistui.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "Avataan %svirta näytemäärityksellä â€%sâ€.\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "Soitettavan näytteen nimi on annettava\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "Poistettavan näytteen nimi on annettava\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "Nielun syöteindeksi ja nielu on annettava\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "Lähteen ulostuloindeksi ja lähde on annettava\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "Moduulin nimi ja argumentit on annettava.\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "Moduulin indeksi on annettava\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr "Ei voi antaa enempää kuin yhden nielun. Totuusarvo on annettava.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr "Ei voi antaa enempää kuin yhden lähteen. Totuusarvo on annettava.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "Kortin nimi/indeksi ja profiilin nimi on annettava\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "Kortin nimi/indeksi ja profiilin nimi on annettava\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "Kortin nimi/indeksi ja profiilin nimi on annettava\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "Mitään kelvollista komentoa ei annettu.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() epäonnistui: %s"
@@ -2364,7 +2365,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "Automaattisen käynnistyksen lukkoa ei voida käyttää."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2381,7 +2382,7 @@ msgstr ""
"asetettuna, snd_pcm_avail() palautti kuitenkin 0 tai jonkin muun arvon, "
"joka on < min_avail."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2397,31 +2398,16 @@ msgstr ""
"ongelmasta ALSA-kehittäjille. Taustaprosessi herätettiin POLLIN asetettuna, "
"snd_pcm_avail() palautti kuitenkin 0 tai jonkin muun arvon, on < min_avail."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "Ulostulo %s + Sisääntulo %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "Ulostulo %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "Sisääntulo %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "Poissa"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "Korkean äänenlaadun toisto (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr ""
@@ -2429,6 +2415,48 @@ msgstr ""
msgid "PulseAudio Sound Server"
msgstr "PulseAudio-äänipalvelin"
+#~ msgid "Analog Mono"
+#~ msgstr "Analoginen mono"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "Analoginen stereo"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Digitaalinen stereo (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Digitaalinen stereo (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Analoginen tilaääni 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Digitaalinen tilaääni 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Analoginen tilaääni 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Analoginen tilaääni 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Analoginen tilaääni 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Digitaalinen tilaääni 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Analoginen tilaääni 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "Ulostulo %s + Sisääntulo %s"
+
+#~ msgid "Output %s"
+#~ msgstr "Ulostulo %s"
+
+#~ msgid "Input %s"
+#~ msgstr "Sisääntulo %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "Virran luonti onnistui\n"
diff --git a/po/fr.po b/po/fr.po
index 06ec5a15..ca8e2b80 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio trunk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-26 17:22+0200\n"
"Last-Translator: Corentin Perard <corentin.perard@gmail.com>\n"
"Language-Team: French <fedora-trans-fr@redhat.com>\n"
@@ -20,51 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "Mono analogique"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "Stéréo analogique"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "Stéréo numérique (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "Stéréo numérique (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "Surround analogique 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Surround numérique 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "Surround analogique 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "Surround analogique 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "Surround analogique 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Surround numérique 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "Surround analogique 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -77,7 +33,7 @@ msgstr ""
"Il s'agit très probablement d'un bogue dans le pilote ALSA « %s ». Veuillez "
"rapporter ce problème aux développeurs d'ALSA."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -90,7 +46,7 @@ msgstr ""
"Il s'agit très probablement d'un bogue dans le pilote ALSA « %s ». Veuillez "
"rapporter ce problème aux développeurs d'ALSA."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -103,11 +59,24 @@ msgstr ""
"Il s'agit très probablement d'un bogue dans le pilote ALSA « %s ». Veuillez "
"rapporter ce problème aux développeurs d'ALSA."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "Audio interne"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "Modem"
@@ -499,16 +468,26 @@ msgstr "Utilisation du répertoire d'état %s."
msgid "Running in system mode: %s"
msgstr "Exécution en mode système : %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "Échec de pa_pid_file_create()."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr ""
"De nouvelles horloges à haute résolution sont disponibles ! Bon appétit !"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -516,27 +495,27 @@ msgstr ""
"Eh mec, ton noyau il pue ! La recommandation d'aujourd'hui du patron est "
"d'activer les horloges à haute résolution sur ton Linux."
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "Échec de pa_core_new()."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "Échec lors de l'initialisation du démon"
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "Démarrage du démon sans aucun module chargé : refus de fonctionner."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "Démarrage du démon effectué."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "Fermeture du démon initiée."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "Démon terminé."
@@ -930,237 +909,237 @@ msgstr ""
"La politique du système empêche PulseAudio d'acquérir un ordonnancement en "
"temps réel"
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Mono"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Avant centre"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Avant gauche"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Avant droit"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "Arrière centre"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "Arrière gauche"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "Arrière droit"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Émetteur à basse fréquence"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Avant à gauche du centre"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Avant à droite du centre"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Côté gauche"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "Côté droit"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Auxiliaire 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Auxiliaire 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Auxiliaire 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Auxiliaire 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Auxiliaire 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Auxiliaire 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Auxiliaire 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Auxiliaire 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Auxiliaire 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Auxiliaire 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Auxiliaire 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Auxiliaire 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Auxiliaire 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Auxiliaire 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Auxiliaire 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Auxiliaire 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Auxiliaire 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Auxiliaire 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Auxiliaire 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Auxiliaire 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Auxiliaire 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Auxiliaire 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Auxiliaire 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Auxiliaire 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Auxiliaire 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Auxiliaire 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Auxiliaire 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Auxiliaire 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Auxiliaire 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Auxiliaire 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Auxiliaire 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Auxiliaire 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "Centre haut"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "Avant centre haut"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "Avant gauche haut"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "Avant droit haut"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "Arrière centre haut"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "Arrière gauche haut"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "Arrière droit haut"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(invalide)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "Stéréo"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "Surround 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "Surround 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "Surround 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "Surround 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "Surround 7.1"
@@ -1446,7 +1425,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "Échec de pa_stream_connect_record() : %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "Échec lors de la connexion : %s\n"
@@ -1609,7 +1588,7 @@ msgstr ""
"Compilé avec libpulse %s\n"
"Lié avec libpulse %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "Plan des canaux invalide « %s »\n"
@@ -1678,7 +1657,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n"
@@ -1711,7 +1690,7 @@ msgid "playback"
msgstr "lecture"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "Échec de pa_mainloop_new().\n"
@@ -1721,7 +1700,7 @@ msgid "io_new() failed.\n"
msgstr "Échec de io_new().\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "Échec de pa_context_new().\n"
@@ -1736,7 +1715,7 @@ msgid "time_new() failed.\n"
msgstr "Échec de time_new().\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "Échec de pa_mainloop_run().\n"
@@ -1767,7 +1746,7 @@ msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr ""
"AVERTISSEMENT : le serveur de son n'est pas local, suspension annulée.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT reçu, fermeture.\n"
@@ -1807,34 +1786,34 @@ msgstr ""
"Compilé avec libpulse %s\n"
"Lié avec libpulse %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "Échec lors de l'obtention des statistiques : %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "En cours d'utilisation : %u blocs contenant au total %s octets.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr ""
"Alloué pendant l'ensemble de la durée d'exécution : %u blocs contenant au "
"total %s octets.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "Taille du cache de l'échantillon : %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "Échec lors de l'obtention des informations du serveur : %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1857,13 +1836,13 @@ msgstr ""
"Source par défaut : %s\n"
"Cookie : %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "Échec lors de l'obtention des informations sur la destination : %s\n"
# demander à Lennart s'il s'agit de monitor of source
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1902,12 +1881,22 @@ msgstr ""
"\tPropriétés :\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tProfils :\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tProfil actif : %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "Échec lors de l'obtention des informations sur la source : %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1946,20 +1935,20 @@ msgstr ""
"\tPropriétés :\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/d"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "Échec lors de l'obtention des informations du module : %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1976,12 +1965,12 @@ msgstr ""
"\tPropriétés : \n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "Échec lors de l'obtention des informations du client : %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1996,12 +1985,12 @@ msgstr ""
"\tPropriétés :\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "Impossible d'obtenir des informations sur la carte : %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -2018,24 +2007,24 @@ msgstr ""
"\tPropriétés :\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tProfils :\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tProfil actif : %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr ""
"Échec lors de l'obtention des informations de l'entrée de la destination : %"
"s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2072,13 +2061,13 @@ msgstr ""
"\tPropriétés :\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr ""
"Échec lors de l'obtention des informations de la sortie de la source : %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2107,7 +2096,7 @@ msgstr ""
"\tPropriétés :\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n"
@@ -2115,7 +2104,7 @@ msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n"
# Lazy ?
# load-sample-lazy = Create a new entry in the sample cache, but don't load
# the sample immediately. The sample is loaded only when it is first used
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2146,22 +2135,22 @@ msgstr ""
"\tPropriétés :\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "Échec : %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "Échec lors de l'envoi de l'échantillon : %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "Fin prématurée du fichier\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2176,6 +2165,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2207,7 +2198,7 @@ msgstr ""
" -n, --client-name=NOM Définit le nom de ce client sur le "
"serveur\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2218,45 +2209,45 @@ msgstr ""
"Compilé avec libpulse %s\n"
"Lié avec libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "Veuillez indiquer un fichier d'échantillon à charger\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "Échec lors de l'ouverture du fichier audio.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "Vous devez indiquer un nom d'échantillon à lire\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "Vous devez indiquer un nom d'échantillon à supprimer\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr ""
"Vous devez indiquer un index de sortie de destination et une destination\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "Vous devez indiquer un index de sortie de source et une source\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "Vous devez indiquer un nom de module et des paramètres.\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "Vous devez indiquer un index de module\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
@@ -2264,7 +2255,7 @@ msgstr ""
"Vous ne pouvez pas indiquer plus d'une destination. Vous devez indiquer une "
"valeur booléenne.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
@@ -2272,15 +2263,25 @@ msgstr ""
"Vous ne pouvez pas indiquer plus d'une source. Vous devez indiquer une "
"valeur booléenne.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "Vous devez indiquer un nom/un index de carte et un nom de profil\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "Vous devez indiquer un nom/un index de carte et un nom de profil\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "Vous devez indiquer un nom/un index de carte et un nom de profil\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "Aucune commande valide indiquée.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "Échec de pa_context_connect() : %s"
@@ -2409,7 +2410,7 @@ msgstr "write() : %s"
msgid "Cannot access autospawn lock."
msgstr "Impossible d'accèder au verrou autonome."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2426,7 +2427,7 @@ msgstr ""
"le jeu POLLOUT -- cependant un snd_pcm_avail() ultérieur a retourné 0 ou une "
"autre valeur < min_avail."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2443,31 +2444,16 @@ msgstr ""
"le jeu POLLIN -- cependant un snd_pcm_avail() ultérieur a retourné 0 ou une "
"autre valeur < min_avail."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "Sortie %s + Entrée %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "Sortie %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "Entrée %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "Éteint"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "Lecture haute fidélité (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "Telephonie en duplex (HSP/HFP)"
@@ -2475,6 +2461,48 @@ msgstr "Telephonie en duplex (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "Serveur de son PulseAudio"
+#~ msgid "Analog Mono"
+#~ msgstr "Mono analogique"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "Stéréo analogique"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Stéréo numérique (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Stéréo numérique (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Surround analogique 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Surround numérique 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Surround analogique 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Surround analogique 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Surround analogique 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Surround numérique 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Surround analogique 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "Sortie %s + Entrée %s"
+
+#~ msgid "Output %s"
+#~ msgstr "Sortie %s"
+
+#~ msgid "Input %s"
+#~ msgstr "Entrée %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "Création du flux réussie\n"
diff --git a/po/gu.po b/po/gu.po
index bcd5d831..437cd1cd 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-07 14:27+0530\n"
"Last-Translator: Sweta Kothari <swkothar@redhat.com>\n"
"Language-Team: Gujarati\n"
@@ -17,51 +17,7 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "àªàª¨àª¾àª²à«‹àª— મોનો"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "àªàª¨àª¾àª²à«‹àª— સà«àªŸà«‡àª°àª¿àª“"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "ડિજિટલ સà«àªŸà«‡àª°àª¿àª“ (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "ડિજિટલ સà«àªŸà«‡àª°àª¿àª“ (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.2"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -73,7 +29,7 @@ msgstr ""
"ALSA ડà«àª°àª¾àª‡àªµàª° '%s' માં મોટેભાગે આ ભૂલ જેવૠછે. ALSA ડેવલà«àªªàª°à«‹àª®àª¾àª‚ આ સમસà«àª¯àª¾àª¨à«‡ મહેરબાની કરીને "
"અહેવાલ કરો."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -86,7 +42,7 @@ msgstr ""
"ALSA ડà«àª°àª¾àª‡àªµàª° '%s' માં મોટેભાગે આ ભૂલ જેવૠછે. ALSA ડેવલà«àªªàª°à«‹àª®àª¾àª‚ આ સમસà«àª¯àª¾àª¨à«‡ મહેરબાની કરીને "
"અહેવાલ કરો."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -99,11 +55,24 @@ msgstr ""
"ALSA ડà«àª°àª¾àª‡àªµàª° '%s' માં મોટેભાગે આ ભૂલ જેવૠછે. ALSA ડેવલà«àªªàª°à«‹àª®àª¾àª‚ આ સમસà«àª¯àª¾àª¨à«‡ મહેરબાની કરીને "
"અહેવાલ કરો."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "આંતરિક ઓડિયો"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "મોડેમ"
@@ -481,15 +450,25 @@ msgstr "સà«àª¥àª¿àª¤àª¿ ડિરેકà«àªŸàª°à«€ %s ને વાપરી
msgid "Running in system mode: %s"
msgstr "સિસà«àªŸàª® સà«àª¥àª¿àª¤àª¿àª®àª¾àª‚ ચાલી રહà«àª¯à« છે: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() નિષà«àª«àª³."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "તાજૠhigh-resolution ટાઇમરો ઉપલà«àª¬àª§ છે! બોન àªàªªà«‡àªŸàª¾àª‡àªŸ!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -497,27 +476,27 @@ msgstr ""
"મિતà«àª°, તમારૠકરà«àª¨àª²àª®àª¾àª‚ ગડબડ છે! રસોઇયાનà«àª‚ આજે ભલામણ ઠસકà«àª°àª¿àª¯ થયેલ high-resolution "
"ટાઇમરો સાથે Linux નà«àª‚ છે!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() નિષà«àª«àª³."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "ડિમનને શરૂ કરવામાં નિષà«àª«àª³."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "કોઇપણ લોડ થયેલ મોડà«àª¯à«àª²à«‹ વગર ડિમનને શરૂ કરો, કામ કરવા માટે ફરી શરૂ કરી રહà«àª¯àª¾ છે."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "ડિમન પારંભ કરવાનà«àª‚ સમાપà«àª¤ છે."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "ડિમનને બંધ કરવાનà«àª‚ પà«àª°àª¾àª°àª‚ભ થયેલ છે."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "ડિમનનો અંત આવેલ છે."
@@ -885,237 +864,237 @@ msgstr ""
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr "real-time ગોઠવણી પà«àª°àª¾àªªà«àª¤ કરવા માંથી સિસà«àªŸàª® પોલિસી ઠPulseAudio ને અટકાવે છે."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "મોનો"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "આગળનà«àª‚ કેનà«àª¦à«àª°"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "આગળ ડાબે"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "આગળ જમણે"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "રિઅર કેનà«àª¦à«àª°"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "રિઅર ડાબે"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "રિઅર જમણે"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Low Frequency Emmiter"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "આગળ કેનà«àª¦à«àª°àª¨à«€ ડાબે"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "આગળ કેનà«àª¦à«àª°àª¨à«€ જમણે"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "ડાબી બાજà«"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "જમણી બાજà«"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "ઑગà«àªàª¿àª²àª¿àª…રિ 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "ઊંચે કેનà«àª¦à«àª°"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "ઊંચે આગળ કેનà«àª¦à«àª°"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "ઊંચે આગળ ડાબે"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "ઊંચે આગળ જમણે"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "ઊંચે રિઅર કેનà«àª¦à«àª°"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "ઉપર રિઅર ડાબે"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "ઉપર રિઅર જમણે"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(અયોગà«àª¯)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "સà«àªŸà«‡àª°àª¿àª“"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "સરાઉનà«àª¡ 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "સરાઉનà«àª¡ 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "સરાઉનà«àª¡ 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "સરાઉનà«àª¡ 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "સરાઉનà«àª¡ 7.1"
@@ -1398,7 +1377,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() નિષà«àª«àª³: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "જોડાણ નિષà«àª«àª³: %s\n"
@@ -1555,7 +1534,7 @@ msgstr ""
"libpulse %s સાથે કમà«àªªàª¾àª‡àª² થયેલ છે\n"
"libpulse %s સાથે કડી થયેલ છે\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "અયોગà«àª¯ ચેનલ મેપ '%s'\n"
@@ -1624,7 +1603,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "નમૂના જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n"
@@ -1656,7 +1635,7 @@ msgid "playback"
msgstr "પà«àª²à«‡àª¬à«‡àª•"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() નિષà«àª«àª³.\n"
@@ -1666,7 +1645,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() નિષà«àª«àª³.\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() નિષà«àª«àª³.\n"
@@ -1681,7 +1660,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() નિષà«àª«àª³.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() નિષà«àª«àª³.\n"
@@ -1711,7 +1690,7 @@ msgstr "ફરી શરૂ કરવામાં નિષà«àª«àª³àª¤àª¾: %s\n
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "ચેતવણી: સાઉનà«àª¡ સરà«àªµàª° ઠસà«àª¥àª¾àª¨àª¿àª• નથી, થોડા સમય માટે બંધ કરવામાં આવà«àª¯à« નથી.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT મળà«àª¯à«, બહાર નીકળી રહà«àª¯àª¾ છે.\n"
@@ -1750,32 +1729,32 @@ msgstr ""
"libpulse %s સાથે કમà«àªªàª¾àª‡àª² થયેલ છે\n"
"libpulse %s સાથે કડી થયેલ છે\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "પરિસà«àª¥àª¿àª¤àª¿àª“ને મેળવવામાં નિષà«àª«àª³: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "હાલમાં વપરાશમાં છે: %u બà«àª²à«‹àª•à«‹ %s કà«àª² બાઇટોને સમાવી રહà«àª¯àª¾ છે.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "આખી જીંદગી દરમà«àª¯àª¾àª¨ ફાળવેલ છે: %u બà«àª²à«‹àª•à«‹ %s કà«àª² બાઇટોને સમાવી રહà«àª¯àª¾ છે.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "નમૂના કેશ માપ: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "સરà«àªµàª° જાણકારી મેળવવામાં નિષà«àª«àª³àª¤àª¾: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1798,12 +1777,12 @@ msgstr ""
"મૂળભૂત સà«àª¤à«àª°à«‹àª¤: %s\n"
"કà«àª•à«€: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "સિંક જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1842,12 +1821,22 @@ msgstr ""
"\tગà«àª£àª§àª°à«àª®à«‹:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tરૂપરેખાઓ:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tસકà«àª°àª¿àª¯ રૂપરેખા: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "સà«àª¤à«àª°à«‹àª¤ જાણકારીને મેળવવામાં નિષà«àª«àª³: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1886,20 +1875,20 @@ msgstr ""
"\tગà«àª£àª§àª°à«àª®à«‹:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/a"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "મોડà«àª¯à«àª²àª¨à«€ જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1916,12 +1905,12 @@ msgstr ""
"\tગà«àª£àª§àª°à«àª®à«‹:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "કà«àª²àª¾àª‡àª¨à«àªŸ જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1936,12 +1925,12 @@ msgstr ""
"\tગà«àª£àª§àª°à«àª®à«‹:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "કારà«àª¡ જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1958,22 +1947,22 @@ msgstr ""
"\tગà«àª£àª§àª°à«àª®à«‹:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tરૂપરેખાઓ:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tસકà«àª°àª¿àª¯ રૂપરેખા: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "સિંક ઇનપà«àªŸ જાણકારી મેળવવામાં નિષà«àª«àª³àª¤àª¾: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2010,12 +1999,12 @@ msgstr ""
"\tગà«àª£àª§àª°à«àª®à«‹:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "સà«àª¤à«àª°à«‹àª¤ આઉટપà«àªŸ જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2044,12 +2033,12 @@ msgstr ""
"\tગà«àª£àª§àª°à«àª®à«‹:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "નમૂના જાણકારી મેળવવામાં નિષà«àª«àª³: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2080,22 +2069,22 @@ msgstr ""
"\tગà«àª£àª§àª°à«àª®à«‹:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "નિષà«àª«àª³àª¤àª¾: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "નમૂનાને અપલોડ કરવામાં નિષà«àª«àª³: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "ફાઇલનો નિયત સમય પહેલા અંત\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2110,6 +2099,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2139,7 +2130,7 @@ msgstr ""
" -s, --server=SERVER જોડાવા માટે સરà«àªµàª° નà«àª‚ નામ\n"
" -n, --client-name=NAME સરà«àªµàª° પર આ કà«àª²àª¾àª‡àª¨à«àªŸàª¨à«‡ કેવી રીતે કોલ કરશો\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2150,66 +2141,76 @@ msgstr ""
"libpulse %s સાથે કમà«àªªàª¾àª‡àª² થયેલ છે\n"
"libpulse %s સાથે કડી થયેલ છે\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "મહેરબાની કરીને લોડ કરવા માટે નમૂના ફાઇલને સà«àªªàª·à«àªŸ કરો\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "સાઉનà«àª¡ ફાઇલને ખોલવામાં નિષà«àª«àª³.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "નમૂના સà«àªªàª·à«àªŸà«€àª•àª°àª£ '%s' સાથે %s સà«àªŸà«àª°à«€àª®àª¨à«‡ ખોલી રહà«àª¯àª¾ છે.\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "વગાડવા માટે તમારે નમૂના નામને સà«àªªàª·à«àªŸ કરવૠજ પડશે\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "દૂર કરવા માટે તમારે નમૂના નામને સà«àªªàª·à«àªŸ કરવૠજ પડશે\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "સિંક ઇનપà«àªŸ અનà«àª•à«àª°àª®àª£àª¿àª•àª¾ અને સિંકને તમારે સà«àªªàª·à«àªŸ કરવૠજ પડશે\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "તમારે સà«àª¤à«àª°à«‹àª¤ આઉટપà«àªŸ અનà«àª•à«àª°àª®àª£àª¿àª•àª¾ અને સà«àª¤à«àª°à«‹àª¤àª¨à«‡ સà«àªªàª·à«àªŸ કરવૠજ પડશે\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "તમારે મોડà«àª¯à«àª² નામ અને દલીલોને સà«àªªàª·à«àªŸ કરવૠજ પડશે.\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "તમારે મોડà«àª¯à«àª² અનà«àª•à«àª°àª®àª£àª¿àª•àª¾àª¨à«‡ સà«àªªàª·à«àªŸ કરવૠજ પડશે\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr ""
"તમે àªàª• સિંક કરતા વધારે સà«àªªàª·à«àªŸ કરી શકશો નહિં. તમારે બà«àª²àª¿àª¯àª¨ કિંમતને સà«àªªàª·à«àªŸ કરવૠજ પડશે.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr ""
"તમે àªàª• સà«àª¤à«àª°à«‹àª¤ કરતા વધારે સà«àªªàª·à«àªŸ કરી શકશો નહિં. તમારે બà«àª²àª¿àª¯àª¨ કિંમતને સà«àªªàª·à«àªŸ કરવૠજ પડશે.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "તમારે કારà«àª¡ નામ/અનà«àª•à«àª°àª®àª£àª¿àª•àª¾ અને રૂપરેખા નામને સà«àªªàª·à«àªŸ કરવૠજ પડશે\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "તમારે કારà«àª¡ નામ/અનà«àª•à«àª°àª®àª£àª¿àª•àª¾ અને રૂપરેખા નામને સà«àªªàª·à«àªŸ કરવૠજ પડશે\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "તમારે કારà«àª¡ નામ/અનà«àª•à«àª°àª®àª£àª¿àª•àª¾ અને રૂપરેખા નામને સà«àªªàª·à«àªŸ કરવૠજ પડશે\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "યોગà«àª¯ આદેશ સà«àªªàª·à«àªŸ થયેલ નથી.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() નિષà«àª«àª³: %s"
@@ -2334,7 +2335,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "autospawn તાળાને દાખલ કરી શકાતૠનથી."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2351,7 +2352,7 @@ msgstr ""
"POLLOUT સà«àª¯à«‹àªœàª¨ સાથે આપણે જાગેલ હતા -- છતાંપણ ના પછીનà«àª‚ snd_pcm_avail() ને 0 પાછો મળે "
"છે અથવા બીજી કિંમત < min_avail."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2368,31 +2369,16 @@ msgstr ""
"POLLOUT સà«àª¯à«‹àªœàª¨ સાથે આપણે જાગેલ હતા -- છતાંપણ ના પછીનà«àª‚ snd_pcm_avail() ને 0 પાછો મળે "
"છે અથવા બીજી કિંમત < min_avail."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "આઉટપà«àªŸ %s + ઇનપà«àªŸ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "આઉટપà«àªŸ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "ઇનપà«àªŸ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "બંધ"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "High Fidelity Playback (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "Telephony Duplex (HSP/HFP)"
@@ -2400,6 +2386,48 @@ msgstr "Telephony Duplex (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "PulseAudio સાઉનà«àª¡ સરà«àªµàª°"
+#~ msgid "Analog Mono"
+#~ msgstr "àªàª¨àª¾àª²à«‹àª— મોનો"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "àªàª¨àª¾àª²à«‹àª— સà«àªŸà«‡àª°àª¿àª“"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "ડિજિટલ સà«àªŸà«‡àª°àª¿àª“ (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "ડિજિટલ સà«àªŸà«‡àª°àª¿àª“ (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 4.2"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "àªàª¨àª¾àª²à«‹àª— સરાઉનà«àª¡ 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "આઉટપà«àªŸ %s + ઇનપà«àªŸ %s"
+
+#~ msgid "Output %s"
+#~ msgstr "આઉટપà«àªŸ %s"
+
+#~ msgid "Input %s"
+#~ msgstr "ઇનપà«àªŸ %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "સà«àªŸà«àª°à«€àª® સફળતાપૂરà«àªµàª• બનાવેલ છે\n"
diff --git a/po/hi.po b/po/hi.po
index 1b2efa5b..91a27120 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx.pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-05 08:27+0000\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-06-08 12:01+0530\n"
"Last-Translator: Rajesh Ranjan <rajesh672@gmail.com>\n"
"Language-Team: Hindi <hindi.sf.net>\n"
@@ -15,55 +15,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"\n"
"\n"
"\n"
-#: ../src/modules/alsa/alsa-util.c:530
-msgid "Analog Mono"
-msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— मोनो"
-
-#: ../src/modules/alsa/alsa-util.c:536
-msgid "Analog Stereo"
-msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹"
-
-#: ../src/modules/alsa/alsa-util.c:542
-msgid "Digital Stereo (IEC958)"
-msgstr "डिजिटल सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹ (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:548
-msgid "Digital Stereo (HDMI)"
-msgstr "डिजिटल सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹ (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:555
-msgid "Analog Surround 4.0"
-msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:562
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "डिजिटल सरà¥à¤°à¤¾à¤‰à¤‚ड 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:570
-msgid "Analog Surround 4.1"
-msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:578
-msgid "Analog Surround 5.0"
-msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:586
-msgid "Analog Surround 5.1"
-msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:594
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "डिजिटल सरà¥à¤°à¤¾à¤‰à¤‚ड 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:603
-msgid "Analog Surround 7.1"
-msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1609
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -71,11 +28,11 @@ msgid ""
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
"to the ALSA developers."
msgstr ""
-"snd_pcm_avail() ने à¤à¤• मान दिया जो अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ रूप से बड़ा है: %lu बाइट (%lu "
-"ms).\n"
-"अधिक संभव है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ करें."
+"snd_pcm_avail() ने à¤à¤• मान दिया जो अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ रूप से बड़ा है: %lu बाइट (%lu ms).\n"
+"अधिक संभव है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ "
+"करें."
-#: ../src/modules/alsa/alsa-util.c:1649
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -83,11 +40,11 @@ msgid ""
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
"to the ALSA developers."
msgstr ""
-"snd_pcm_delay() ने à¤à¤• मान दिया जो अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ रूप से बड़ा है: %li बाइट (%s%"
-"lu ms).\n"
-"अधिक संभव है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ करें."
+"snd_pcm_delay() ने à¤à¤• मान दिया जो अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ रूप से बड़ा है: %li बाइट (%s%lu ms).\n"
+"अधिक संभव है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ "
+"करें."
-#: ../src/modules/alsa/alsa-util.c:1695
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -95,14 +52,29 @@ msgid ""
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
"to the ALSA developers."
msgstr ""
-"snd_pcm_mmap_begin() ने à¤à¤• मान दिया जो अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ रूप से बड़ा है: %lu बाइट (%lu ms).\n"
-"अधिक संभव है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ करें."
+"snd_pcm_mmap_begin() ने à¤à¤• मान दिया जो अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ रूप से बड़ा है: %lu बाइट (%lu "
+"ms).\n"
+"अधिक संभव है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ "
+"करें."
+
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
-#: ../src/pulsecore/sink.c:2061
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "आंतरिक ऑडियो"
-#: ../src/pulsecore/sink.c:2067
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "मॉडेम"
@@ -172,104 +144,104 @@ msgstr "अधिकार पà¥à¤°à¤¾à¤ªà¥à¤¤ नहीं कर सकतà¤
msgid "PolicyKit responded with '%s'"
msgstr "PolicyKit ने '%s' के साथ अनà¥à¤•à¥à¤°à¤¿à¤¯à¤¾ किया"
-#: ../src/daemon/main.c:137
+#: ../src/daemon/main.c:142
#, c-format
msgid "Got signal %s."
msgstr "%s संकेत पाया."
-#: ../src/daemon/main.c:164
+#: ../src/daemon/main.c:169
msgid "Exiting."
msgstr "बाहर हो रहा है."
-#: ../src/daemon/main.c:182
+#: ../src/daemon/main.c:187
#, c-format
msgid "Failed to find user '%s'."
msgstr "'%s' उपयोकà¥à¤¤à¤¾ ढूंढ़ने में विफल."
-#: ../src/daemon/main.c:187
+#: ../src/daemon/main.c:192
#, c-format
msgid "Failed to find group '%s'."
msgstr "'%s' समूह ढूंढ़ने में विफल."
-#: ../src/daemon/main.c:191
+#: ../src/daemon/main.c:196
#, c-format
msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)."
msgstr "'%s' (UID %lu) उपयोकà¥à¤¤à¤¾ व '%s' (GID %lu) समूह पाया."
-#: ../src/daemon/main.c:196
+#: ../src/daemon/main.c:201
#, c-format
msgid "GID of user '%s' and of group '%s' don't match."
msgstr "'%s' उपयोकà¥à¤¤à¤¾ और '%s' समूह का GID मेल नहीं खाता है"
-#: ../src/daemon/main.c:201
+#: ../src/daemon/main.c:206
#, c-format
msgid "Home directory of user '%s' is not '%s', ignoring."
msgstr "'%s' उपयोकà¥à¤¤à¤¾ की घर निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ '%s' नहीं है, अनदेखा कर रहा है."
-#: ../src/daemon/main.c:204 ../src/daemon/main.c:209
+#: ../src/daemon/main.c:209 ../src/daemon/main.c:214
#, c-format
msgid "Failed to create '%s': %s"
msgstr "'%s' बनाने में विफल: %s"
-#: ../src/daemon/main.c:216
+#: ../src/daemon/main.c:221
#, c-format
msgid "Failed to change group list: %s"
msgstr "समूह सूची पाने में विफल: %s"
-#: ../src/daemon/main.c:232
+#: ../src/daemon/main.c:237
#, c-format
msgid "Failed to change GID: %s"
msgstr "GID बदलने में विफल: %s"
-#: ../src/daemon/main.c:248
+#: ../src/daemon/main.c:253
#, c-format
msgid "Failed to change UID: %s"
msgstr "UID बदलने में विफल: %s"
-#: ../src/daemon/main.c:262
+#: ../src/daemon/main.c:267
msgid "Successfully dropped root privileges."
msgstr "रूट अधिकार सफलतापूरà¥à¤µà¤• छोड़ा."
-#: ../src/daemon/main.c:270
+#: ../src/daemon/main.c:275
msgid "System wide mode unsupported on this platform."
msgstr "इस पà¥à¤²à¥ˆà¤Ÿà¤«à¥‰à¤°à¥à¤® पर असमरà¥à¤¥à¤¿à¤¤ तंतà¥à¤° वà¥à¤¯à¤¾à¤ªà¤• विधि."
-#: ../src/daemon/main.c:288
+#: ../src/daemon/main.c:293
#, c-format
msgid "setrlimit(%s, (%u, %u)) failed: %s"
msgstr "setrlimit(%s, (%u, %u)) विफल: %s"
-#: ../src/daemon/main.c:462
+#: ../src/daemon/main.c:481
msgid "Failed to parse command line."
msgstr "कमांड लाइन विशà¥à¤²à¥‡à¤·à¤£ में विफल."
-#: ../src/daemon/main.c:486
+#: ../src/daemon/main.c:505
#, c-format
msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr "हम '%s' समूह में हैं, उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ नियोजन की अनà¥à¤®à¤¤à¤¿ के साथ."
-#: ../src/daemon/main.c:493
+#: ../src/daemon/main.c:512
#, c-format
msgid "We're in the group '%s', allowing real-time scheduling."
msgstr "हम '%s' समूह में हैं, वासà¥à¤¤à¤µà¤¿à¤• समय नियोजन को अनà¥à¤®à¤¤à¤¿ देते हà¥à¤."
-#: ../src/daemon/main.c:501
+#: ../src/daemon/main.c:520
msgid "PolicyKit grants us acquire-high-priority privilege."
msgstr "PolicyKit उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ अधिकार अधिगà¥à¤°à¤¹à¤£ हमें देती है."
-#: ../src/daemon/main.c:504
+#: ../src/daemon/main.c:523
msgid "PolicyKit refuses acquire-high-priority privilege."
msgstr "PolicyKit उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ अधिकार अधिगà¥à¤°à¤¹à¤£ असà¥à¤µà¥€à¤•à¥ƒà¤¤ करती है."
-#: ../src/daemon/main.c:509
+#: ../src/daemon/main.c:528
msgid "PolicyKit grants us acquire-real-time privilege."
msgstr "PolicyKit हमें देती है वासà¥à¤¤à¤µà¤¿à¤• समय अधिकार अधिगà¥à¤°à¤¹à¤£."
-#: ../src/daemon/main.c:512
+#: ../src/daemon/main.c:531
msgid "PolicyKit refuses acquire-real-time privilege."
msgstr "PolicyKit सà¥à¤µà¥€à¤•à¥ƒà¤¤ करती है वासà¥à¤¤à¤µà¤¿à¤• समय अधिकार अधिगà¥à¤°à¤¹à¤£."
-#: ../src/daemon/main.c:541
+#: ../src/daemon/main.c:560
#, c-format
msgid ""
"Called SUID root and real-time and/or high-priority scheduling was requested "
@@ -281,230 +253,252 @@ msgid ""
"appropriate PolicyKit privileges, or become a member of '%s', or increase "
"the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user."
msgstr ""
-"SUID रूट को आहà¥à¤µà¤¾à¤¨ किया और वासà¥à¤¤à¤µà¤¿à¤• समय/या उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ नियोजन को इस विनà¥à¤¯à¤¾à¤¸ में निवेदन किया गया था. हालांकि, हमें जरूरी अधिकार कम है:\n"
-"हम '%s' समूह में नहीं है, PolicyKit निवेदित अधिकार हमें देने से मना करता है और हम RLIMIT_NICE/RLIMIT_RTPRIO संसाधन सीमा को बढ़ाना नहीं है.\n"
-"वासà¥à¤¤à¤µà¤¿à¤• समय/या उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ नियोजन को सकà¥à¤°à¤¿à¤¯ करने के लिठकृपया उचित PolicyKit अधिकार अधिगà¥à¤°à¤¹à¤¿à¤¤ करें, या '%s' का सदसà¥à¤¯ बनें, RLIMIT_NICE/RLIMIT_RTPRIO संसाधन सीमा को इस उपयोकà¥à¤¤à¤¾ के लिठबढ़ाà¤à¤."
-
-#: ../src/daemon/main.c:566
-msgid "High-priority scheduling enabled in configuration but not allowed by policy."
-msgstr "विनà¥à¤¯à¤¾à¤¸ में उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ नियोजन सकà¥à¤°à¤¿à¤¯ है लेकिन नीति के दà¥à¤µà¤¾à¤°à¤¾ अनà¥à¤®à¤¤à¤¿ पà¥à¤°à¤¾à¤ªà¥à¤¤ नहीं है."
+"SUID रूट को आहà¥à¤µà¤¾à¤¨ किया और वासà¥à¤¤à¤µà¤¿à¤• समय/या उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ नियोजन को इस विनà¥à¤¯à¤¾à¤¸ में "
+"निवेदन किया गया था. हालांकि, हमें जरूरी अधिकार कम है:\n"
+"हम '%s' समूह में नहीं है, PolicyKit निवेदित अधिकार हमें देने से मना करता है और हम "
+"RLIMIT_NICE/RLIMIT_RTPRIO संसाधन सीमा को बढ़ाना नहीं है.\n"
+"वासà¥à¤¤à¤µà¤¿à¤• समय/या उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ नियोजन को सकà¥à¤°à¤¿à¤¯ करने के लिठकृपया उचित PolicyKit "
+"अधिकार अधिगà¥à¤°à¤¹à¤¿à¤¤ करें, या '%s' का सदसà¥à¤¯ बनें, RLIMIT_NICE/RLIMIT_RTPRIO संसाधन सीमा "
+"को इस उपयोकà¥à¤¤à¤¾ के लिठबढ़ाà¤à¤."
+
+#: ../src/daemon/main.c:585
+msgid ""
+"High-priority scheduling enabled in configuration but not allowed by policy."
+msgstr ""
+"विनà¥à¤¯à¤¾à¤¸ में उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ नियोजन सकà¥à¤°à¤¿à¤¯ है लेकिन नीति के दà¥à¤µà¤¾à¤°à¤¾ अनà¥à¤®à¤¤à¤¿ पà¥à¤°à¤¾à¤ªà¥à¤¤ नहीं है."
-#: ../src/daemon/main.c:595
+#: ../src/daemon/main.c:614
msgid "Successfully increased RLIMIT_RTPRIO"
msgstr "सफलतापूरà¥à¤µà¤• बढ़ा हà¥à¤† RLIMIT_RTPRIO"
-#: ../src/daemon/main.c:598
+#: ../src/daemon/main.c:617
#, c-format
msgid "RLIMIT_RTPRIO failed: %s"
msgstr "RLIMIT_RTPRIO विफल: %s"
-#: ../src/daemon/main.c:605
+#: ../src/daemon/main.c:624
msgid "Giving up CAP_NICE"
msgstr "CAP_NICE छोड़ रहा है"
-#: ../src/daemon/main.c:612
-msgid "Real-time scheduling enabled in configuration but not allowed by policy."
+#: ../src/daemon/main.c:631
+msgid ""
+"Real-time scheduling enabled in configuration but not allowed by policy."
msgstr "विनà¥à¤¯à¤¾à¤¸ में वासà¥à¤¤à¤µà¤¿à¤• समय नियोजन लेकिन नीति के दà¥à¤µà¤¾à¤°à¤¾ अनà¥à¤®à¤¤à¤¿ पà¥à¤°à¤¾à¤ªà¥à¤¤ नहीं."
-#: ../src/daemon/main.c:673
+#: ../src/daemon/main.c:692
msgid "Daemon not running"
msgstr "डेमॉन नहीं कारà¥à¤¯à¤¶à¥€à¤²"
-#: ../src/daemon/main.c:675
+#: ../src/daemon/main.c:694
#, c-format
msgid "Daemon running as PID %u"
msgstr "डेमॉन बतौर PID %u चल रहा है"
-#: ../src/daemon/main.c:685
+#: ../src/daemon/main.c:704
#, c-format
msgid "Failed to kill daemon: %s"
msgstr "डेमॉन हटाने में विफल: %s"
-#: ../src/daemon/main.c:703
+#: ../src/daemon/main.c:722
msgid ""
"This program is not intended to be run as root (unless --system is "
"specified)."
msgstr ""
-"यह पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® बतौर रूट चलाने के लिठइचà¥à¤›à¤¿à¤¤ नहीं है (unless --system is "
-"specified)."
+"यह पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® बतौर रूट चलाने के लिठइचà¥à¤›à¤¿à¤¤ नहीं है (unless --system is specified)."
-#: ../src/daemon/main.c:705
+#: ../src/daemon/main.c:724
msgid "Root privileges required."
msgstr "रूट अधिकार जरूरी."
-#: ../src/daemon/main.c:710
+#: ../src/daemon/main.c:729
msgid "--start not supported for system instances."
msgstr "--start not supported for system instances."
-#: ../src/daemon/main.c:715
+#: ../src/daemon/main.c:734
msgid "Running in system mode, but --disallow-exit not set!"
msgstr "तंतà¥à¤° मोड में चल रहा है, लेकिन --disallow-exit सेट नहीं!"
-#: ../src/daemon/main.c:718
+#: ../src/daemon/main.c:737
msgid "Running in system mode, but --disallow-module-loading not set!"
msgstr "तंतà¥à¤° मोड में चल रहा है, लेकिन --disallow-module-loading सेट नहीं!"
-#: ../src/daemon/main.c:721
+#: ../src/daemon/main.c:740
msgid "Running in system mode, forcibly disabling SHM mode!"
msgstr "तंतà¥à¤° मोड में चल रहा है, SHM मोड बाधà¥à¤¯ रूप से निषà¥à¤•à¥à¤°à¤¿à¤¯!"
-#: ../src/daemon/main.c:726
+#: ../src/daemon/main.c:745
msgid "Running in system mode, forcibly disabling exit idle time!"
msgstr "तंतà¥à¤° मोड में चल रहा है, निकास निषà¥à¤•à¥à¤°à¤¿à¤¯ समय बाधà¥à¤¯ रूप से निषà¥à¤•à¥à¤°à¤¿à¤¯!"
-#: ../src/daemon/main.c:753
+#: ../src/daemon/main.c:772
msgid "Failed to acquire stdio."
msgstr "stdio पाने में विफल."
-#: ../src/daemon/main.c:759
+#: ../src/daemon/main.c:778
#, c-format
msgid "pipe failed: %s"
msgstr "पाइप विफल: %s"
-#: ../src/daemon/main.c:764
+#: ../src/daemon/main.c:783
#, c-format
msgid "fork() failed: %s"
msgstr "fork() विफल: %s"
-#: ../src/daemon/main.c:778
+#: ../src/daemon/main.c:797
#, c-format
msgid "read() failed: %s"
msgstr "read() विफल: %s"
-#: ../src/daemon/main.c:784
+#: ../src/daemon/main.c:803
msgid "Daemon startup failed."
msgstr "डेमॉन आरंभ विफल."
-#: ../src/daemon/main.c:786
+#: ../src/daemon/main.c:805
msgid "Daemon startup successful."
msgstr "डेमॉन आरंभ सफल."
-#: ../src/daemon/main.c:856
+#: ../src/daemon/main.c:875
#, c-format
msgid "This is PulseAudio %s"
msgstr "यह पलà¥à¤¸à¤‘डियो %s है."
-#: ../src/daemon/main.c:857
+#: ../src/daemon/main.c:876
#, c-format
msgid "Compilation host: %s"
msgstr "Compilation host: %s"
-#: ../src/daemon/main.c:858
+#: ../src/daemon/main.c:877
#, c-format
msgid "Compilation CFLAGS: %s"
msgstr "Compilation CFLAGS: %s"
-#: ../src/daemon/main.c:861
+#: ../src/daemon/main.c:880
#, c-format
msgid "Running on host: %s"
msgstr "मेजबान पर चल रहा है: %s"
-#: ../src/daemon/main.c:864
+#: ../src/daemon/main.c:883
#, c-format
msgid "Found %u CPUs."
msgstr "%u CPU पाया."
-#: ../src/daemon/main.c:866
+#: ../src/daemon/main.c:885
#, c-format
msgid "Page size is %lu bytes"
msgstr "पृषà¥à¤  आकार %lu बाइट है."
-#: ../src/daemon/main.c:869
+#: ../src/daemon/main.c:888
msgid "Compiled with Valgrind support: yes"
msgstr "वेलगà¥à¤°à¤¿à¤‚ड समरà¥à¤¥à¤¨ से कंपाइल: हाà¤"
-#: ../src/daemon/main.c:871
+#: ../src/daemon/main.c:890
msgid "Compiled with Valgrind support: no"
msgstr "वेलगà¥à¤°à¤¿à¤‚ड समरà¥à¤¥à¤¨ से कंपाइल: नहीं"
-#: ../src/daemon/main.c:874
+#: ../src/daemon/main.c:893
#, c-format
msgid "Running in valgrind mode: %s"
msgstr "वेलगà¥à¤°à¤¿à¤‚ड विधि में चल रहा है: %s"
-#: ../src/daemon/main.c:877
+#: ../src/daemon/main.c:896
msgid "Optimized build: yes"
msgstr "अनà¥à¤•à¥‚लित बिलà¥à¤¡: हाà¤"
-#: ../src/daemon/main.c:879
+#: ../src/daemon/main.c:898
msgid "Optimized build: no"
msgstr "अनà¥à¤•à¥‚लित बिलà¥à¤¡: नहीं"
-#: ../src/daemon/main.c:883
+#: ../src/daemon/main.c:902
msgid "NDEBUG defined, all asserts disabled."
msgstr "NDEBUG परिभाषित, सभी निषà¥à¤•à¥à¤°à¤¿à¤¯."
-#: ../src/daemon/main.c:885
+#: ../src/daemon/main.c:904
msgid "FASTPATH defined, only fast path asserts disabled."
msgstr "FASTPATH परिभाषित, केव तेज पथ à¤à¤¸à¤°à¥à¤Ÿ निषà¥à¤•à¥à¤°à¤¿à¤¯."
-#: ../src/daemon/main.c:887
+#: ../src/daemon/main.c:906
msgid "All asserts enabled."
msgstr "सभी à¤à¤¸à¤°à¥à¤Ÿ सकà¥à¤·à¤®."
-#: ../src/daemon/main.c:891
+#: ../src/daemon/main.c:910
msgid "Failed to get machine ID"
msgstr "मशीन ID पाने में विफल"
-#: ../src/daemon/main.c:894
+#: ../src/daemon/main.c:913
#, c-format
msgid "Machine ID is %s."
msgstr "मशीन ID %s है."
-#: ../src/daemon/main.c:899
+#: ../src/daemon/main.c:917
+#, fuzzy, c-format
+msgid "Session ID is %s."
+msgstr "मशीन ID %s है."
+
+#: ../src/daemon/main.c:923
#, c-format
msgid "Using runtime directory %s."
msgstr "रनटाइम निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ %s का पà¥à¤°à¤¯à¥‹à¤— कर रहा है."
-#: ../src/daemon/main.c:904
+#: ../src/daemon/main.c:928
#, c-format
msgid "Using state directory %s."
msgstr "सà¥à¤Ÿà¥‡à¤Ÿ निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ %s का पà¥à¤°à¤¯à¥‹à¤— कर रहा है."
-#: ../src/daemon/main.c:907
+#: ../src/daemon/main.c:931
#, c-format
msgid "Running in system mode: %s"
msgstr "तंतà¥à¤° मोड में चल रहा है: %s"
-#: ../src/daemon/main.c:922
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() विफल."
-#: ../src/daemon/main.c:934
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "ताज़ा उचà¥à¤š विभेदन टाइमर उपलबà¥à¤§! आनंद लें!"
-#: ../src/daemon/main.c:936
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
-msgstr "आपका करà¥à¤¨à¥‡à¤² बà¥à¤°à¥€ सà¥à¤¥à¤¿à¤¤à¤¿ में है! सलाह है कि उचà¥à¤š विभेदन यà¥à¤•à¥à¤¤ लिनकà¥à¤¸ सकà¥à¤°à¤¿à¤¯ किया जाना चाहिà¤!"
+msgstr ""
+"आपका करà¥à¤¨à¥‡à¤² बà¥à¤°à¥€ सà¥à¤¥à¤¿à¤¤à¤¿ में है! सलाह है कि उचà¥à¤š विभेदन यà¥à¤•à¥à¤¤ लिनकà¥à¤¸ सकà¥à¤°à¤¿à¤¯ किया जाना चाहिà¤!"
-#: ../src/daemon/main.c:948
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() विफल."
-#: ../src/daemon/main.c:1010
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "डेमॉन आरंभ करने में विफल."
-#: ../src/daemon/main.c:1015
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "बिना लोड मॉडà¥à¤¯à¥‚ल के डेमॉन आरंभ, काम करने से असà¥à¤µà¥€à¤•à¤¾à¤° कर रहा है."
-#: ../src/daemon/main.c:1032
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "डेमॉन आरंभन पूरà¥à¤£."
-#: ../src/daemon/main.c:1038
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "डेमॉन बनà¥à¤¦ किया जाना आरंभ."
-#: ../src/daemon/main.c:1056
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "डेमॉन अवरोधित."
-#: ../src/daemon/cmdline.c:121
+#: ../src/daemon/cmdline.c:115
#, c-format
msgid ""
"%s [options]\n"
@@ -647,15 +641,15 @@ msgstr ""
"\n"
" -n Don't load default script file\n"
-#: ../src/daemon/cmdline.c:252
+#: ../src/daemon/cmdline.c:247
msgid "--daemonize expects boolean argument"
msgstr "--daemonize के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:259
+#: ../src/daemon/cmdline.c:254
msgid "--fail expects boolean argument"
msgstr "--fail के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:269
+#: ../src/daemon/cmdline.c:264
msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one "
"of debug, info, notice, warn, error)."
@@ -663,52 +657,52 @@ msgstr ""
"--log-level expects log level argument (either numeric in range 0..4 or one "
"of debug, info, notice, warn, error)."
-#: ../src/daemon/cmdline.c:281
+#: ../src/daemon/cmdline.c:276
msgid "--high-priority expects boolean argument"
msgstr "--high-priority के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:288
+#: ../src/daemon/cmdline.c:283
msgid "--realtime expects boolean argument"
msgstr "--realtime के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:295
+#: ../src/daemon/cmdline.c:290
msgid "--disallow-module-loading expects boolean argument"
msgstr "--disallow-module-loading के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:302
+#: ../src/daemon/cmdline.c:297
msgid "--disallow-exit expects boolean argument"
msgstr "--disallow-exit के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:309
+#: ../src/daemon/cmdline.c:304
msgid "--use-pid-file expects boolean argument"
msgstr "--use-pid-file के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:326
+#: ../src/daemon/cmdline.c:321
msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'."
msgstr "अवैध लॉग लकà¥à¤·à¥à¤¯: use either 'syslog', 'stderr' or 'auto'."
-#: ../src/daemon/cmdline.c:333
+#: ../src/daemon/cmdline.c:328
msgid "--log-time expects boolean argument"
msgstr "--log-time के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:340
+#: ../src/daemon/cmdline.c:335
msgid "--log-meta expects boolean argument"
msgstr "--log-meta के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:359
+#: ../src/daemon/cmdline.c:354
#, c-format
msgid "Invalid resample method '%s'."
msgstr "अवैध पà¥à¤¨à¤ƒ पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ विधि '%s'."
-#: ../src/daemon/cmdline.c:366
+#: ../src/daemon/cmdline.c:361
msgid "--system expects boolean argument"
msgstr "--system के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:373
+#: ../src/daemon/cmdline.c:368
msgid "--no-cpu-limit expects boolean argument"
msgstr "--no-cpu-limit के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
-#: ../src/daemon/cmdline.c:380
+#: ../src/daemon/cmdline.c:375
msgid "--disable-shm expects boolean argument"
msgstr "--disable-shm के लिठबà¥à¤²à¤¿à¤¯à¤¨ तरà¥à¤• की आशा है"
@@ -747,81 +741,88 @@ msgstr "उपयोग: %s\n"
msgid "Load Once: %s\n"
msgstr "à¤à¤• बार लोड करें: %s\n"
-#: ../src/daemon/dumpmodules.c:77
+#: ../src/daemon/dumpmodules.c:75
+#, c-format
+msgid "DEPRECATION WARNING: %s\n"
+msgstr ""
+
+#: ../src/daemon/dumpmodules.c:79
#, c-format
msgid "Path: %s\n"
msgstr "पथ: %s\n"
-#: ../src/daemon/daemon-conf.c:215
+#: ../src/daemon/daemon-conf.c:216
#, c-format
msgid "[%s:%u] Invalid log target '%s'."
msgstr "[%s:%u] अवैध लॉग लकà¥à¤·à¥à¤¯ '%s'."
-#: ../src/daemon/daemon-conf.c:231
+#: ../src/daemon/daemon-conf.c:232
#, c-format
msgid "[%s:%u] Invalid log level '%s'."
msgstr "[%s:%u] अवैध लॉग सà¥à¤¤à¤° '%s'."
-#: ../src/daemon/daemon-conf.c:247
+#: ../src/daemon/daemon-conf.c:248
#, c-format
msgid "[%s:%u] Invalid resample method '%s'."
msgstr "[%s:%u] अवैध पà¥à¤¨à¤ƒ नमूना विधि '%s'."
-#: ../src/daemon/daemon-conf.c:270
+#: ../src/daemon/daemon-conf.c:271
#, c-format
msgid "[%s:%u] Invalid rlimit '%s'."
msgstr "[%s:%u] अवैध rlimit '%s'."
-#: ../src/daemon/daemon-conf.c:277
+#: ../src/daemon/daemon-conf.c:278
#, c-format
msgid "[%s:%u] rlimit not supported on this platform."
msgstr "[%s:%u] rlimit इस पà¥à¤²à¥‡à¤Ÿà¤«à¥‰à¤°à¥à¤® पर समरà¥à¤¥à¤¿à¤¤ नहीं."
-#: ../src/daemon/daemon-conf.c:293
+#: ../src/daemon/daemon-conf.c:294
#, c-format
msgid "[%s:%u] Invalid sample format '%s'."
msgstr "[%s:%u] अवैध पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ पà¥à¤°à¤¾à¤°à¥‚प '%s'."
-#: ../src/daemon/daemon-conf.c:311
+#: ../src/daemon/daemon-conf.c:312
#, c-format
msgid "[%s:%u] Invalid sample rate '%s'."
msgstr "[%s:%u] अवैध पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ दर '%s'."
-#: ../src/daemon/daemon-conf.c:335
+#: ../src/daemon/daemon-conf.c:336
#, c-format
msgid "[%s:%u] Invalid sample channels '%s'."
msgstr "[%s:%u] अवैध पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ चैनल '%s'."
-#: ../src/daemon/daemon-conf.c:353
+#: ../src/daemon/daemon-conf.c:354
#, c-format
msgid "[%s:%u] Invalid channel map '%s'."
msgstr "[%s:%u] अवैध चैनल मानचितà¥à¤° '%s'."
-#: ../src/daemon/daemon-conf.c:371
+#: ../src/daemon/daemon-conf.c:372
#, c-format
msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr "[%s:%u] टà¥à¤•à¤¡à¤¼à¥‡ '%s' की अवैध संखà¥à¤¯à¤¾."
-#: ../src/daemon/daemon-conf.c:389
+#: ../src/daemon/daemon-conf.c:390
#, c-format
msgid "[%s:%u] Invalid fragment size '%s'."
msgstr "[%s:%u] अवैध खंड आकार '%s'."
-#: ../src/daemon/daemon-conf.c:407
+#: ../src/daemon/daemon-conf.c:408
#, c-format
msgid "[%s:%u] Invalid nice level '%s'."
msgstr "[%s:%u] अवैध नाइस सà¥à¤¤à¤° '%s'."
-#: ../src/daemon/daemon-conf.c:522
+#: ../src/daemon/daemon-conf.c:524
#, c-format
msgid "Failed to open configuration file: %s"
msgstr "विनà¥à¤¯à¤¾à¤¸ फ़ाइल खोलने में विफल: %s"
-#: ../src/daemon/daemon-conf.c:538
+#: ../src/daemon/daemon-conf.c:540
msgid ""
"The specified default channel map has a different number of channels than "
"the specified default number of channels."
-msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ तयशà¥à¤¦à¤¾ चैनल मानचितà¥à¤° के पास चैनल की भिनà¥à¤¨ संखà¥à¤¯à¤¾ है चैनल की तयशà¥à¤¦à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ संखà¥à¤¯à¤¾ के बनिसà¥à¤ªà¤¤."
+msgstr ""
+"निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ तयशà¥à¤¦à¤¾ चैनल मानचितà¥à¤° के पास चैनल की भिनà¥à¤¨ संखà¥à¤¯à¤¾ है चैनल की तयशà¥à¤¦à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ संखà¥à¤¯à¤¾ "
+"के बनिसà¥à¤ªà¤¤."
#: ../src/daemon/daemon-conf.c:616
#, c-format
@@ -845,7 +846,8 @@ msgid "Start the PulseAudio Sound System"
msgstr "पलà¥à¤¸à¤‘डियो धà¥à¤µà¤¨à¤¿ तंतà¥à¤° पà¥à¤°à¤¾à¤°à¤‚भ करें"
#: ../src/daemon/org.pulseaudio.policy.in.h:1
-msgid "High-priority scheduling (negative Unix nice level) for the PulseAudio daemon"
+msgid ""
+"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon"
msgstr "उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ अनà¥à¤¸à¥‚चन (negative Unix nice level) PulseAudio डेमॉन के लिà¤"
#: ../src/daemon/org.pulseaudio.policy.in.h:2
@@ -853,244 +855,245 @@ msgid "Real-time scheduling for the PulseAudio daemon"
msgstr "पलà¥à¤¸à¤‘डियो डेमॉन के लिठवासà¥à¤¤à¤µà¤¿à¤• समय नियोजन"
#: ../src/daemon/org.pulseaudio.policy.in.h:3
-msgid "System policy prevents PulseAudio from acquiring high-priority scheduling."
+msgid ""
+"System policy prevents PulseAudio from acquiring high-priority scheduling."
msgstr "तंतà¥à¤° नीति PulseAudio को रोकती है उचà¥à¤š पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾ अनà¥à¤¸à¥‚चन के लिà¤."
#: ../src/daemon/org.pulseaudio.policy.in.h:4
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr "तंतà¥à¤° नीति PulseAudio को वासà¥à¤¤à¤µà¤¿à¤• समय अनà¥à¤¸à¥‚चन पाने से रोकती है."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "मोनो"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "अगà¥à¤° केंदà¥à¤°"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "अगà¥à¤° बायाà¤"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "अगà¥à¤° दाहिना"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "पशà¥à¤š केंदà¥à¤°"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "पशà¥à¤š बायां"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "पशà¥à¤š दाहिना"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "निमà¥à¤¨ आवृतà¥à¤¤à¤¿ निकासकरà¥à¤¤à¤¾"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "केंदà¥à¤° का अगà¥à¤° वाम"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "केंदà¥à¤° का अगà¥à¤° दकà¥à¤·à¤¿à¤£"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "किनारा वाम"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "किनारा दायाà¤"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "सहायक 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "सहायक 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "सहायक 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "सहायक 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "सहायक 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "सहायक 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "सहायक 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "सहायक 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "सहायक 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "सहायक 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "सहायक 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "सहायक 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "सहायक 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "सहायक 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "सहायक 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "सहायक 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "सहायक 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "सहायक 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "सहायक 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "सहायक 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "सहायक 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "सहायक 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "सहायक 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "सहायक 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "सहायक 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "सहायक 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "सहायक 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "सहायक 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "सहायक 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "सहायक 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "सहायक 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "सहायक 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "शीरà¥à¤· केंदà¥à¤°"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "शीरà¥à¤· अगà¥à¤° केंदà¥à¤°"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "शीरà¥à¤· अगà¥à¤° वाम"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "ऊपर अगà¥à¤° दायाà¤"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "ऊपर पशà¥à¤š केंदà¥à¤°"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "ऊपर पशà¥à¤š बायाà¤"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "ऊपर पशà¥à¤š दायाà¤"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:170 ../src/pulse/volume.c:196
-#: ../src/pulse/volume.c:216 ../src/pulse/volume.c:246
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(अवैध)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "सरà¥à¤°à¤¾à¤‰à¤‚ड 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "सरà¥à¤°à¤¾à¤‰à¤‚ड 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "सरà¥à¤°à¤¾à¤‰à¤‚ड 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "सरà¥à¤°à¤¾à¤‰à¤‚ड 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "सरà¥à¤°à¤¾à¤‰à¤‚ड 7.1"
@@ -1223,201 +1226,196 @@ msgstr "%u B"
msgid "XOpenDisplay() failed"
msgstr "XOpenDisplay() विफल"
-#: ../src/pulse/client-conf-x11.c:78
+#: ../src/pulse/client-conf-x11.c:93
msgid "Failed to parse cookie data"
msgstr "कà¥à¤•à¥€ आंकड़ा के विशà¥à¤²à¥‡à¤·à¤£ में विफल"
-#: ../src/pulse/client-conf.c:120
+#: ../src/pulse/client-conf.c:110
#, c-format
msgid "Failed to open configuration file '%s': %s"
msgstr "विनà¥à¤¯à¤¾à¤¸ फ़ाइल '%s' खोलने में विफल: %s"
-#: ../src/pulse/context.c:539
+#: ../src/pulse/context.c:546
msgid "No cookie loaded. Attempting to connect without."
msgstr "कोई कà¥à¤•à¥€ नहीं लोड किया गया. इसके बिना कनेकà¥à¤Ÿ करने की कोशिश कर रहा हूà¤."
-#: ../src/pulse/context.c:669
+#: ../src/pulse/context.c:676
#, c-format
msgid "fork(): %s"
msgstr "fork(): %s"
-#: ../src/pulse/context.c:722
+#: ../src/pulse/context.c:729
#, c-format
msgid "waitpid(): %s"
msgstr "waitpid(): %s"
-#: ../src/pulse/context.c:1387
+#: ../src/pulse/context.c:1403
#, c-format
msgid "Received message for unknown extension '%s'"
msgstr "अजà¥à¤žà¤¾à¤¤ विसà¥à¤¤à¤¾à¤° '%s' के लिठसंदेश पà¥à¤°à¤¾à¤ªà¥à¤¤"
-#: ../src/utils/pacat.c:94
+#: ../src/utils/pacat.c:107
+#, c-format
+msgid "Failed to drain stream: %s\n"
+msgstr "Failed to drain stream: %s\n"
+
+#: ../src/utils/pacat.c:112
+msgid "Playback stream drained.\n"
+msgstr "पà¥à¤²à¥‡à¤¬à¥ˆà¤• सà¥à¤Ÿà¥à¤°à¥€à¤® खतà¥à¤®.\n"
+
+#: ../src/utils/pacat.c:122
+msgid "Draining connection to server.\n"
+msgstr "सरà¥à¤µà¤° में कनेकà¥à¤¶à¤¨ ले जा रहा है.\n"
+
+#: ../src/utils/pacat.c:135
+#, c-format
+msgid "pa_stream_drain(): %s\n"
+msgstr "pa_stream_drain(): %s\n"
+
+#: ../src/utils/pacat.c:158
#, c-format
msgid "pa_stream_write() failed: %s\n"
msgstr "pa_stream_write() विफल: %s\n"
-#: ../src/utils/pacat.c:133
+#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262
#, c-format
msgid "pa_stream_peek() failed: %s\n"
msgstr "pa_stream_peek() विफल: %s\n"
-#: ../src/utils/pacat.c:169
-#, c-format
+#: ../src/utils/pacat.c:302
msgid "Stream successfully created.\n"
msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® सफलतापूरà¥à¤µà¤• निरà¥à¤®à¤¿à¤¤.\n"
-#: ../src/utils/pacat.c:172
+#: ../src/utils/pacat.c:305
#, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr "pa_stream_get_buffer_attr() विफल: %s\n"
-#: ../src/utils/pacat.c:176
+#: ../src/utils/pacat.c:309
#, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr "बफ़र मेटà¥à¤°à¤¿à¤•à¥à¤¸: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
-#: ../src/utils/pacat.c:179
+#: ../src/utils/pacat.c:312
#, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr "बफ़र मेटà¥à¤°à¤¿à¤•à¥à¤¸: maxlength=%u, fragsize=%u\n"
-#: ../src/utils/pacat.c:183
+#: ../src/utils/pacat.c:316
#, c-format
msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr "नमूना सà¥à¤ªà¥‡à¤• '%s' का पà¥à¤°à¤¯à¥‹à¤—, चैनल मैप '%s'.\n"
-#: ../src/utils/pacat.c:187
+#: ../src/utils/pacat.c:320
#, c-format
msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr "यà¥à¤•à¥à¤¤à¤¿ %s (%u, %ssuspended) से कनेकà¥à¤Ÿà¥‡à¤¡.\n"
-#: ../src/utils/pacat.c:197
+#: ../src/utils/pacat.c:330
#, c-format
msgid "Stream error: %s\n"
msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® तà¥à¤°à¥à¤Ÿà¤¿: %s\n"
-#: ../src/utils/pacat.c:207
+#: ../src/utils/pacat.c:340
#, c-format
msgid "Stream device suspended.%s \n"
msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® यà¥à¤•à¥à¤¤à¤¿ सà¥à¤¥à¤—ित.%s \n"
-#: ../src/utils/pacat.c:209
+#: ../src/utils/pacat.c:342
#, c-format
msgid "Stream device resumed.%s \n"
msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® यà¥à¤•à¥à¤¤à¤¿ पà¥à¤¨à¤°à¥à¤¬à¤¹à¤¾à¤².%s \n"
-#: ../src/utils/pacat.c:217
+#: ../src/utils/pacat.c:350
#, c-format
msgid "Stream underrun.%s \n"
msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® अंडररन.%s \n"
-#: ../src/utils/pacat.c:224
+#: ../src/utils/pacat.c:357
#, c-format
msgid "Stream overrun.%s \n"
msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® ओवररन.%s \n"
-#: ../src/utils/pacat.c:231
+#: ../src/utils/pacat.c:364
#, c-format
msgid "Stream started.%s \n"
msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® आरंभ.%s \n"
-#: ../src/utils/pacat.c:238
+#: ../src/utils/pacat.c:371
#, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® यà¥à¤•à¥à¤¤à¤¿ %s (%u, %ssuspended).%s में खिसकाया गया \n"
-#: ../src/utils/pacat.c:238
+#: ../src/utils/pacat.c:371
msgid "not "
msgstr "नहीं "
-#: ../src/utils/pacat.c:245
+#: ../src/utils/pacat.c:378
#, c-format
msgid "Stream buffer attributes changed.%s \n"
msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® बफ़र गà¥à¤£ परिवरà¥à¤¤à¤¿à¤¤.%s \n"
-#: ../src/utils/pacat.c:278
+#: ../src/utils/pacat.c:411
#, c-format
msgid "Connection established.%s \n"
msgstr "कनेकà¥à¤¶à¤¨ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤.%s \n"
-#: ../src/utils/pacat.c:281
+#: ../src/utils/pacat.c:414
#, c-format
msgid "pa_stream_new() failed: %s\n"
msgstr "pa_stream_new() विफल: %s\n"
-#: ../src/utils/pacat.c:309
+#: ../src/utils/pacat.c:442
#, c-format
msgid "pa_stream_connect_playback() failed: %s\n"
msgstr "pa_stream_connect_playback() विफल: %s\n"
-#: ../src/utils/pacat.c:315
+#: ../src/utils/pacat.c:448
#, c-format
msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() विफल: %s\n"
-#: ../src/utils/pacat.c:329 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:762 ../src/utils/paplay.c:183
+#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "कनेकà¥à¤¶à¤¨ विफल.%s \n"
-#: ../src/utils/pacat.c:349 ../src/utils/paplay.c:75
-#, c-format
-msgid "Failed to drain stream: %s\n"
-msgstr "Failed to drain stream: %s\n"
-
-#: ../src/utils/pacat.c:354 ../src/utils/paplay.c:80
-#, c-format
-msgid "Playback stream drained.\n"
-msgstr "पà¥à¤²à¥‡à¤¬à¥ˆà¤• सà¥à¤Ÿà¥à¤°à¥€à¤® खतà¥à¤®.\n"
-
-#: ../src/utils/pacat.c:364 ../src/utils/paplay.c:92
-#, c-format
-msgid "Draining connection to server.\n"
-msgstr "सरà¥à¤µà¤° में कनेकà¥à¤¶à¤¨ ले जा रहा है.\n"
-
-#: ../src/utils/pacat.c:390
-#, c-format
+#: ../src/utils/pacat.c:495
msgid "Got EOF.\n"
msgstr "EOF पाया.\n"
-#: ../src/utils/pacat.c:396
-#, c-format
-msgid "pa_stream_drain(): %s\n"
-msgstr "pa_stream_drain(): %s\n"
-
-#: ../src/utils/pacat.c:406
+#: ../src/utils/pacat.c:500
#, c-format
msgid "read() failed: %s\n"
msgstr "read() विफल: %s\n"
-#: ../src/utils/pacat.c:438
+#: ../src/utils/pacat.c:532
#, c-format
msgid "write() failed: %s\n"
msgstr "write() विफल: %s\n"
-#: ../src/utils/pacat.c:459
-#, c-format
+#: ../src/utils/pacat.c:553
msgid "Got signal, exiting.\n"
msgstr "संकेत पाया, निकल रहा है.\n"
-#: ../src/utils/pacat.c:473
+#: ../src/utils/pacat.c:567
#, c-format
msgid "Failed to get latency: %s\n"
msgstr "Failed to get latency: %s\n"
-#: ../src/utils/pacat.c:478
+#: ../src/utils/pacat.c:572
#, c-format
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr "समय: %0.3f sec; लैटेंसी: %0.0f usec. \r"
-#: ../src/utils/pacat.c:498
+#: ../src/utils/pacat.c:592
#, c-format
msgid "pa_stream_update_timing_info() failed: %s\n"
msgstr "pa_stream_update_timing_info() विफल: %s\n"
-#: ../src/utils/pacat.c:511
-#, c-format
+#: ../src/utils/pacat.c:605
+#, fuzzy, c-format
msgid ""
"%s [options]\n"
"\n"
@@ -1443,8 +1441,10 @@ msgid ""
"44100)\n"
" --format=SAMPLEFORMAT The sample type, one of s16le, "
"s16be, u8, float32le,\n"
-" float32be, ulaw, alaw, s32le, s32be "
-"(defaults to s16ne)\n"
+" float32be, ulaw, alaw, s32le, s32be, "
+"s24le, s24be,\n"
+" s24-32le, s24-32be (defaults to "
+"s16ne)\n"
" --channels=CHANNELS The number of channels, 1 for mono, "
"2 for stereo\n"
" (defaults to 2)\n"
@@ -1467,6 +1467,11 @@ msgid ""
"bytes.\n"
" --process-time=BYTES Request the specified process time "
"per request in bytes.\n"
+" --property=PROPERTY=VALUE Set the specified property to the "
+"specified value.\n"
+" --raw Record/play raw PCM data.\n"
+" --file-format=FFORMAT Record/play formatted PCM data.\n"
+" --list-file-formats List available file formats.\n"
msgstr ""
"%s [options]\n"
"\n"
@@ -1517,7 +1522,7 @@ msgstr ""
" --process-time=BYTES Request the specified process time "
"per request in bytes.\n"
-#: ../src/utils/pacat.c:612
+#: ../src/utils/pacat.c:727
#, c-format
msgid ""
"pacat %s\n"
@@ -1528,89 +1533,133 @@ msgstr ""
"लिबपलà¥à¤¸ %s के साथ कंपाइल\n"
"लिबपलà¥à¤¸ %s के साथ लिंक\n"
-#: ../src/utils/pacat.c:669
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
+#, fuzzy, c-format
+msgid "Invalid client name '%s'\n"
+msgstr "अवैध चैनल मानचितà¥à¤° '%s'\n"
+
+#: ../src/utils/pacat.c:776
+#, fuzzy, c-format
+msgid "Invalid stream name '%s'\n"
+msgstr "अवैध पà¥à¤¨à¤ƒ पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ विधि '%s'."
+
+#: ../src/utils/pacat.c:813
#, c-format
msgid "Invalid channel map '%s'\n"
msgstr "अवैध चैनल मानचितà¥à¤° '%s'\n"
-#: ../src/utils/pacat.c:698
+#: ../src/utils/pacat.c:842
#, c-format
msgid "Invalid latency specification '%s'\n"
msgstr "अवैध लैटेंसी विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾ '%s'\n"
-#: ../src/utils/pacat.c:705
+#: ../src/utils/pacat.c:849
#, c-format
msgid "Invalid process time specification '%s'\n"
msgstr "अवैध पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ समय विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾ '%s'\n"
-#: ../src/utils/pacat.c:716
+#: ../src/utils/pacat.c:861
+#, fuzzy, c-format
+msgid "Invalid property '%s'\n"
+msgstr "अवैध पà¥à¤¨à¤ƒ पà¥à¤°à¤¤à¤¿à¤¦à¤°à¥à¤¶ विधि '%s'."
+
+#: ../src/utils/pacat.c:878
#, c-format
+msgid "Unknown file format %s."
+msgstr ""
+
+#: ../src/utils/pacat.c:897
msgid "Invalid sample specification\n"
msgstr "अवैध नमूना विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾\n"
-#: ../src/utils/pacat.c:721
+#: ../src/utils/pacat.c:907
+#, c-format
+msgid "open(): %s\n"
+msgstr "open(): %s\n"
+
+#: ../src/utils/pacat.c:912
#, c-format
+msgid "dup2(): %s\n"
+msgstr "dup2(): %s\n"
+
+#: ../src/utils/pacat.c:919
+msgid "Too many arguments.\n"
+msgstr "कई वितरà¥à¤•.\n"
+
+#: ../src/utils/pacat.c:930
+#, fuzzy
+msgid "Failed to generate sample specification for file.\n"
+msgstr "नमूना सूचना पाने में विफल: %s\n"
+
+#: ../src/utils/pacat.c:950
+#, fuzzy
+msgid "Failed to open audio file.\n"
+msgstr "धà¥à¤µà¤¨à¤¿ फ़ाइल खोलने में विफल.\n"
+
+#: ../src/utils/pacat.c:956
+msgid ""
+"Warning: specified sample specification will be overwritten with "
+"specification from file.\n"
+msgstr ""
+
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
+#, fuzzy
+msgid "Failed to determine sample specification from file.\n"
+msgstr "नमूना सूचना पाने में विफल: %s\n"
+
+#: ../src/utils/pacat.c:968
+msgid "Warning: Failed to determine channel map from file.\n"
+msgstr ""
+
+#: ../src/utils/pacat.c:979
msgid "Channel map doesn't match sample specification\n"
msgstr "चैनल मानचितà¥à¤° नमूना विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾ के मेल नहीं खाता\n"
-#: ../src/utils/pacat.c:728
-#, c-format
-msgid "Opening a %s stream with sample specification '%s'.\n"
+#: ../src/utils/pacat.c:990
+msgid "Warning: failed to write channel map to file.\n"
+msgstr ""
+
+#: ../src/utils/pacat.c:1005
+#, fuzzy, c-format
+msgid ""
+"Opening a %s stream with sample specification '%s' and channel map '%s'.\n"
msgstr "%s सà¥à¤Ÿà¥à¤°à¥€à¤® को किसी नमूना विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾ '%s' के साथ खोल रहा है.\n"
-#: ../src/utils/pacat.c:728
+#: ../src/utils/pacat.c:1006
msgid "recording"
msgstr "रिकारà¥à¤¡à¤¿à¤‚ग"
-#: ../src/utils/pacat.c:728
+#: ../src/utils/pacat.c:1006
msgid "playback"
msgstr "पà¥à¤²à¥‡à¤¬à¥ˆà¤•"
-#: ../src/utils/pacat.c:736
-#, c-format
-msgid "open(): %s\n"
-msgstr "open(): %s\n"
-
-#: ../src/utils/pacat.c:741
-#, c-format
-msgid "dup2(): %s\n"
-msgstr "dup2(): %s\n"
-
-#: ../src/utils/pacat.c:751
-#, c-format
-msgid "Too many arguments.\n"
-msgstr "कई वितरà¥à¤•.\n"
-
-#: ../src/utils/pacat.c:764 ../src/utils/pasuspender.c:280
-#: ../src/utils/pactl.c:1017 ../src/utils/paplay.c:381
+#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() विफल.\n"
-#: ../src/utils/pacat.c:785
-#, c-format
+#: ../src/utils/pacat.c:1051
msgid "io_new() failed.\n"
msgstr "io_new() विफल.\n"
-#: ../src/utils/pacat.c:791 ../src/utils/pasuspender.c:293
-#: ../src/utils/pactl.c:1031 ../src/utils/paplay.c:396
+#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() विफल.\n"
-#: ../src/utils/pacat.c:799 ../src/utils/pactl.c:1037
-#: ../src/utils/paplay.c:404
-#, c-format
-msgid "pa_context_connect() failed: %s"
+#: ../src/utils/pacat.c:1066
+#, fuzzy, c-format
+msgid "pa_context_connect() failed: %s\n"
msgstr "pa_context_connect() विफल: %s"
-#: ../src/utils/pacat.c:810
-#, c-format
+#: ../src/utils/pacat.c:1077
msgid "time_new() failed.\n"
msgstr "time_new() विफल.\n"
-#: ../src/utils/pacat.c:817 ../src/utils/pasuspender.c:301
-#: ../src/utils/pactl.c:1042 ../src/utils/paplay.c:410
+#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() विफल.\n"
@@ -1640,8 +1689,7 @@ msgstr "पà¥à¤¨à¤°à¥à¤¬à¤¹à¤¾à¤²à¥€ में विफल: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "चेतावनी: धà¥à¤µà¤¨à¤¿ सरà¥à¤µà¤° सà¥à¤¥à¤¾à¤¨à¥€à¤¯ नहीं है, सà¥à¤¥à¤—ित नहीं कर रहा है.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:768
-#: ../src/utils/paplay.c:191
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT पाया, निकल रहा है.\n"
@@ -1670,7 +1718,7 @@ msgstr ""
"to\n"
"\n"
-#: ../src/utils/pasuspender.c:251
+#: ../src/utils/pasuspender.c:248
#, c-format
msgid ""
"pasuspender %s\n"
@@ -1681,32 +1729,32 @@ msgstr ""
"लिबपलà¥à¤¸ %s से कंपाइल\n"
"लिबपलà¥à¤¸ %s से कड़ीबदà¥à¤§\n"
-#: ../src/utils/pactl.c:108
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "आंकड़े पाने में विफल: %s\n"
-#: ../src/utils/pactl.c:114
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "पà¥à¤°à¤¯à¥‹à¤— में मà¥à¤¦à¥à¤°à¤¾: %u बà¥à¤²à¥‰à¤• %s बाइट कà¥à¤² समाहित करता है.\n"
-#: ../src/utils/pactl.c:117
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "संपूरà¥à¤£ जीवनचकà¥à¤° के दौरान आबंटित: %u बà¥à¤²à¥‰à¤• %s बाइट कà¥à¤² को समाहित करता है.\n"
-#: ../src/utils/pactl.c:120
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "नमूना कैश आकार: %s\n"
-#: ../src/utils/pactl.c:129
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "सरà¥à¤µà¤° सूचना पाने में विफल: %s\n"
-#: ../src/utils/pactl.c:137
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1729,12 +1777,12 @@ msgstr ""
"तयशà¥à¤¦à¤¾ सà¥à¤°à¥‹à¤¤: %s\n"
"कà¥à¤•à¥€: %08x\n"
-#: ../src/utils/pactl.c:178
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "सिंक सूचना पाने में विफल: %s\n"
-#: ../src/utils/pactl.c:194
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1773,12 +1821,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:258
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tProfiles:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tActive Profile: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "सà¥à¤°à¥‹à¤¤ सूचना पाने में विफल: %s\n"
-#: ../src/utils/pactl.c:274
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1817,20 +1875,20 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:306 ../src/utils/pactl.c:350 ../src/utils/pactl.c:385
-#: ../src/utils/pactl.c:422 ../src/utils/pactl.c:481 ../src/utils/pactl.c:482
-#: ../src/utils/pactl.c:492 ../src/utils/pactl.c:536 ../src/utils/pactl.c:537
-#: ../src/utils/pactl.c:543 ../src/utils/pactl.c:586 ../src/utils/pactl.c:587
-#: ../src/utils/pactl.c:594
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/a"
-#: ../src/utils/pactl.c:324
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "मॉडà¥à¤¯à¥‚ल सूचना पाने में विफल: %s\n"
-#: ../src/utils/pactl.c:342
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1847,12 +1905,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:361
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "कà¥à¤²à¤¾à¤‡à¤‚ट सूचना पाने में विफल: %s\n"
-#: ../src/utils/pactl.c:379
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1867,12 +1925,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:396
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "कारà¥à¤¡ सूचना पाने में विफल: %s\n"
-#: ../src/utils/pactl.c:414
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1889,22 +1947,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:428
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tProfiles:\n"
-#: ../src/utils/pactl.c:434
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tActive Profile: %s\n"
-#: ../src/utils/pactl.c:445
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "सिंक इनपà¥à¤Ÿ सूचना पाने में विफल: %s\n"
-#: ../src/utils/pactl.c:464
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -1941,12 +1999,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:503
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "सà¥à¤°à¥‹à¤¤ आउटपà¥à¤Ÿ सूचना पाने में विफल: %s\n"
-#: ../src/utils/pactl.c:523
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -1975,12 +2033,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:554
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "नमूना सूचना पाने में विफल: %s\n"
-#: ../src/utils/pactl.c:572
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2011,23 +2069,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:602 ../src/utils/pactl.c:612
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "विफलता: %s\n"
-#: ../src/utils/pactl.c:636
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "नमूना अफलोड करने में विफल: %s\n"
-#: ../src/utils/pactl.c:653
-#, c-format
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "फ़ाइल का असामयिक अंत\n"
-#: ../src/utils/pactl.c:774
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2042,6 +2099,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2073,7 +2132,7 @@ msgstr ""
" -n, --client-name=NAME How to call this client on the "
"server\n"
-#: ../src/utils/pactl.c:826
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2084,70 +2143,82 @@ msgstr ""
"लिबपलà¥à¤¸ %s से कंपाइल\n"
"लिबपलà¥à¤¸ %s से कड़ीबदà¥à¤§\n"
-#: ../src/utils/pactl.c:865
-#, c-format
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "लोड करने के लिठकिसी नमूना फ़ाइल निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करें\n"
-#: ../src/utils/pactl.c:887
-#, c-format
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "धà¥à¤µà¤¨à¤¿ फ़ाइल खोलने में विफल.\n"
-#: ../src/utils/pactl.c:899
-#, c-format
+#: ../src/utils/pactl.c:951
+#, fuzzy
+msgid "Warning: Failed to determine sample specification from file.\n"
+msgstr "%s सà¥à¤Ÿà¥à¤°à¥€à¤® को किसी नमूना विनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿà¤¤à¤¾ '%s' के साथ खोल रहा है.\n"
+
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "आपने किसी नमूना नाम को बजाने के लिठनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n"
-#: ../src/utils/pactl.c:911
-#, c-format
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "आपने किसी नमूना नाम को हटाने के लिठनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n"
-#: ../src/utils/pactl.c:919
-#, c-format
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "आपने किसी सिंक इनपà¥à¤Ÿ सूची और सिंक को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n"
-#: ../src/utils/pactl.c:928
-#, c-format
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "आपने किसी सिंक सà¥à¤°à¥‹à¤¤ आउटपà¥à¤Ÿ और सà¥à¤°à¥‹à¤¤ को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n"
-#: ../src/utils/pactl.c:942
-#, c-format
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "आपने किसी मॉडà¥à¤¯à¥‚ल नाम और वितरà¥à¤• को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n"
-#: ../src/utils/pactl.c:962
-#, c-format
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "आपने किसी मॉडà¥à¤¯à¥‚ल सूची को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया है\n"
-#: ../src/utils/pactl.c:972
-#, c-format
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
-msgstr "आप à¤à¤• सिंक से अधिक निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ नहीं कर सकते हैं. आपको किसी बà¥à¤²à¤¿à¤¯à¤¨ मान को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना है.\n"
+msgstr ""
+"आप à¤à¤• सिंक से अधिक निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ नहीं कर सकते हैं. आपको किसी बà¥à¤²à¤¿à¤¯à¤¨ मान को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना "
+"है.\n"
-#: ../src/utils/pactl.c:985
-#, c-format
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
-msgstr "आप à¤à¤• सà¥à¤°à¥‹à¤¤ से अधिक निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ नहीं कर सकते हैं. आपको किसी बà¥à¤²à¤¿à¤¯à¤¨ मान को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना है.\n"
+msgstr ""
+"आप à¤à¤• सà¥à¤°à¥‹à¤¤ से अधिक निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ नहीं कर सकते हैं. आपको किसी बà¥à¤²à¤¿à¤¯à¤¨ मान को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना "
+"है.\n"
-#: ../src/utils/pactl.c:997
-#, c-format
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "आपको किसी कारà¥à¤¡ नाम/सूची और पà¥à¤°à¥‹à¤«à¤¼à¤¾à¤‡à¤² नाम को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना है.\n"
-#: ../src/utils/pactl.c:1012
-#, c-format
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "आपको किसी कारà¥à¤¡ नाम/सूची और पà¥à¤°à¥‹à¤«à¤¼à¤¾à¤‡à¤² नाम को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना है.\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "आपको किसी कारà¥à¤¡ नाम/सूची और पà¥à¤°à¥‹à¤«à¤¼à¤¾à¤‡à¤² नाम को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करना है.\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "कोई वैध कमांड निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ नहीं.\n"
+#: ../src/utils/pactl.c:1122
+#, c-format
+msgid "pa_context_connect() failed: %s"
+msgstr "pa_context_connect() विफल: %s"
+
#: ../src/utils/pax11publish.c:61
#, c-format
msgid ""
@@ -2227,129 +2298,48 @@ msgstr "कà¥à¤•à¥€ आंकड़ा लोड करने में विà
msgid "Not yet implemented.\n"
msgstr "अभी तक कारà¥à¤¯à¤¾à¤¨à¥à¤µà¤¿à¤¤ नहीं.\n"
-#: ../src/utils/pacmd.c:64
+#: ../src/utils/pacmd.c:61
+msgid "No PulseAudio daemon running, or not running as session daemon."
+msgstr ""
+
+#: ../src/utils/pacmd.c:66
#, c-format
msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s"
msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s"
-#: ../src/utils/pacmd.c:81
+#: ../src/utils/pacmd.c:83
#, c-format
msgid "connect(): %s"
msgstr "connect(): %s"
-#: ../src/utils/pacmd.c:89
+#: ../src/utils/pacmd.c:91
msgid "Failed to kill PulseAudio daemon."
msgstr "PulseAudio डेमॉन को मारने में विफल."
-#: ../src/utils/pacmd.c:97
+#: ../src/utils/pacmd.c:99
msgid "Daemon not responding."
msgstr "डेमॉन पà¥à¤°à¤¤à¤¿à¤•à¥à¤°à¤¿à¤¯à¤¾ नहीं दे रहा है."
-#: ../src/utils/pacmd.c:144
+#: ../src/utils/pacmd.c:146
#, c-format
msgid "select(): %s"
msgstr "select(): %s"
-#: ../src/utils/pacmd.c:154 ../src/utils/pacmd.c:171
+#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173
#, c-format
msgid "read(): %s"
msgstr "read(): %s"
-#: ../src/utils/pacmd.c:187 ../src/utils/pacmd.c:201
+#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203
#, c-format
msgid "write(): %s"
msgstr "write(): %s"
-#: ../src/utils/paplay.c:139
-#, c-format
-msgid "Stream successfully created\n"
-msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® सफलतापूरà¥à¤µà¤• बनाया गया\n"
-
-#: ../src/utils/paplay.c:144
-#, c-format
-msgid "Stream errror: %s\n"
-msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® तà¥à¤°à¥à¤Ÿà¤¿: %s\n"
-
-#: ../src/utils/paplay.c:165
-#, c-format
-msgid "Connection established.\n"
-msgstr "कनेकà¥à¤¶à¤¨ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤.\n"
-
-#: ../src/utils/paplay.c:198
-#, c-format
-msgid ""
-"%s [options] [FILE]\n"
-"\n"
-" -h, --help Show this help\n"
-" --version Show version\n"
-"\n"
-" -v, --verbose Enable verbose operation\n"
-"\n"
-" -s, --server=SERVER The name of the server to connect "
-"to\n"
-" -d, --device=DEVICE The name of the sink to connect to\n"
-" -n, --client-name=NAME How to call this client on the "
-"server\n"
-" --stream-name=NAME How to call this stream on the "
-"server\n"
-" --volume=VOLUME Specify the initial (linear) volume "
-"in range 0...65536\n"
-" --channel-map=CHANNELMAP Set the channel map to the use\n"
-msgstr ""
-"%s [options] [FILE]\n"
-"\n"
-" -h, --help Show this help\n"
-" --version Show version\n"
-"\n"
-" -v, --verbose Enable verbose operation\n"
-"\n"
-" -s, --server=SERVER The name of the server to connect "
-"to\n"
-" -d, --device=DEVICE The name of the sink to connect to\n"
-" -n, --client-name=NAME How to call this client on the "
-"server\n"
-" --stream-name=NAME How to call this stream on the "
-"server\n"
-" --volume=VOLUME Specify the initial (linear) volume "
-"in range 0...65536\n"
-" --channel-map=CHANNELMAP Set the channel map to the use\n"
-
-#: ../src/utils/paplay.c:255
-#, c-format
-msgid ""
-"paplay %s\n"
-"Compiled with libpulse %s\n"
-"Linked with libpulse %s\n"
-msgstr ""
-"paplay %s\n"
-"लिबपलà¥à¤¸ %s से कंपाइल\n"
-"लिबपलà¥à¤¸ %s से कड़ीबदà¥à¤§\n"
-
-#: ../src/utils/paplay.c:292
-#, c-format
-msgid "Invalid channel map\n"
-msgstr "अवैध चैनल मानचितà¥à¤°\n"
-
-#: ../src/utils/paplay.c:314
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "फ़ाइल '%s' खोलने में विफल\n"
-
-#: ../src/utils/paplay.c:350
-#, c-format
-msgid "Channel map doesn't match file.\n"
-msgstr "चैनल मानचितà¥à¤° फ़ाइल से मेल नहीं खाता है.\n"
-
-#: ../src/utils/paplay.c:376
-#, c-format
-msgid "Using sample spec '%s'\n"
-msgstr "नमूना सà¥à¤ªà¥‡à¤• '%s' का पà¥à¤°à¤¯à¥‹à¤— कर रहा है\n"
-
#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207
msgid "Cannot access autospawn lock."
msgstr "autospawn लॉक की पहà¥à¤à¤š नहीं ले सकता है."
-#: ../src/modules/alsa/alsa-sink.c:393 ../src/modules/alsa/alsa-sink.c:535
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2359,12 +2349,14 @@ msgid ""
"We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() "
"returned 0 or another value < min_avail."
msgstr ""
-"ALSA ने यà¥à¤•à¥à¤¤à¤¿ में नया आंकड़ा लिखने के लिठहमें तैयार किया, लेकिन वहाठवासà¥à¤¤à¤µ में लिखने के लिठकà¥à¤› नहीं था!\n"
-"अधिक संभव है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. कृपया इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ करें.\n"
-"हमें POLLOUT सेट के साथ तैयार किया गया है -- हालांकि परवरà¥à¤¤à¥€ snd_pcm_avail() "
-"ने 0 या दूसरा मान < min_avail दिया."
+"ALSA ने यà¥à¤•à¥à¤¤à¤¿ में नया आंकड़ा लिखने के लिठहमें तैयार किया, लेकिन वहाठवासà¥à¤¤à¤µ में लिखने के लिठ"
+"कà¥à¤› नहीं था!\n"
+"अधिक संभव है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. कृपया इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को "
+"रिपोरà¥à¤Ÿ करें.\n"
+"हमें POLLOUT सेट के साथ तैयार किया गया है -- हालांकि परवरà¥à¤¤à¥€ snd_pcm_avail() ने 0 या "
+"दूसरा मान < min_avail दिया."
-#: ../src/modules/alsa/alsa-source.c:377 ../src/modules/alsa/alsa-source.c:510
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2374,40 +2366,137 @@ msgid ""
"We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() "
"returned 0 or another value < min_avail."
msgstr ""
-"ALSA ने यà¥à¤•à¥à¤¤à¤¿ में नया आंकड़ा पढ़ने के लिठहमें तैयार किया, लेकिन वहाठवासà¥à¤¤à¤µ में पढ़ने के लिठकà¥à¤› नहीं था!\n"
-"अधिक संभव है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. कृपया इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को रिपोरà¥à¤Ÿ करें.\n"
-"हमें POLLIN सेट के साथ तैयार किया गया है -- हालांकि परवरà¥à¤¤à¥€ snd_pcm_avail() "
-"ने 0 या दूसरा मान < min_avail दिया."
-
-#: ../src/modules/alsa/module-alsa-card.c:114
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "आउटपà¥à¤Ÿ %s + इनपà¥à¤Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:117
-#, c-format
-msgid "Output %s"
-msgstr "आउटपà¥à¤Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:121
-#, c-format
-msgid "Input %s"
-msgstr "इनपà¥à¤Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:170
-#: ../src/modules/bluetooth/module-bluetooth-device.c:1864
+"ALSA ने यà¥à¤•à¥à¤¤à¤¿ में नया आंकड़ा पढ़ने के लिठहमें तैयार किया, लेकिन वहाठवासà¥à¤¤à¤µ में पढ़ने के लिठकà¥à¤› "
+"नहीं था!\n"
+"अधिक संभव है कि यह ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' में à¤à¤• बग है. कृपया इस मà¥à¤¦à¥à¤¦à¥‡ को ALSA डेवलेपर को "
+"रिपोरà¥à¤Ÿ करें.\n"
+"हमें POLLIN सेट के साथ तैयार किया गया है -- हालांकि परवरà¥à¤¤à¥€ snd_pcm_avail() ने 0 या "
+"दूसरा मान < min_avail दिया."
+
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "बंद"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:1834
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "उचà¥à¤š विशà¥à¤µà¤¸à¤¨à¥€à¤¯à¤¤à¤¾à¤¯à¥à¤•à¥à¤¤à¤¿ पà¥à¤²à¥‡à¤¬à¥ˆà¤• (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:1849
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "टेलिफोनी डà¥à¤¯à¥‚पà¥à¤²à¥‡à¤•à¥à¤¸ (HSP/HFP)"
-#: ../src/modules/reserve-wrap.c:125
+#: ../src/modules/reserve-wrap.c:151
msgid "PulseAudio Sound Server"
msgstr "पलà¥à¤¸à¤‘डियो धà¥à¤µà¤¨à¤¿ सरà¥à¤µà¤°"
+#~ msgid "Analog Mono"
+#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— मोनो"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "डिजिटल सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹ (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "डिजिटल सà¥à¤Ÿà¥€à¤°à¤¿à¤¯à¥‹ (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "डिजिटल सरà¥à¤°à¤¾à¤‰à¤‚ड 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "डिजिटल सरà¥à¤°à¤¾à¤‰à¤‚ड 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "à¤à¤¨à¤¾à¤²à¥‰à¤— सरà¥à¤°à¤¾à¤‰à¤‚ड 7.1"
+
+#~ msgid "Stream successfully created\n"
+#~ msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® सफलतापूरà¥à¤µà¤• बनाया गया\n"
+
+#~ msgid "Stream errror: %s\n"
+#~ msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® तà¥à¤°à¥à¤Ÿà¤¿: %s\n"
+
+#~ msgid "Connection established.\n"
+#~ msgstr "कनेकà¥à¤¶à¤¨ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤.\n"
+
+#~ msgid ""
+#~ "%s [options] [FILE]\n"
+#~ "\n"
+#~ " -h, --help Show this help\n"
+#~ " --version Show version\n"
+#~ "\n"
+#~ " -v, --verbose Enable verbose operation\n"
+#~ "\n"
+#~ " -s, --server=SERVER The name of the server to connect "
+#~ "to\n"
+#~ " -d, --device=DEVICE The name of the sink to connect "
+#~ "to\n"
+#~ " -n, --client-name=NAME How to call this client on the "
+#~ "server\n"
+#~ " --stream-name=NAME How to call this stream on the "
+#~ "server\n"
+#~ " --volume=VOLUME Specify the initial (linear) "
+#~ "volume in range 0...65536\n"
+#~ " --channel-map=CHANNELMAP Set the channel map to the use\n"
+#~ msgstr ""
+#~ "%s [options] [FILE]\n"
+#~ "\n"
+#~ " -h, --help Show this help\n"
+#~ " --version Show version\n"
+#~ "\n"
+#~ " -v, --verbose Enable verbose operation\n"
+#~ "\n"
+#~ " -s, --server=SERVER The name of the server to connect "
+#~ "to\n"
+#~ " -d, --device=DEVICE The name of the sink to connect "
+#~ "to\n"
+#~ " -n, --client-name=NAME How to call this client on the "
+#~ "server\n"
+#~ " --stream-name=NAME How to call this stream on the "
+#~ "server\n"
+#~ " --volume=VOLUME Specify the initial (linear) "
+#~ "volume in range 0...65536\n"
+#~ " --channel-map=CHANNELMAP Set the channel map to the use\n"
+
+#~ msgid ""
+#~ "paplay %s\n"
+#~ "Compiled with libpulse %s\n"
+#~ "Linked with libpulse %s\n"
+#~ msgstr ""
+#~ "paplay %s\n"
+#~ "लिबपलà¥à¤¸ %s से कंपाइल\n"
+#~ "लिबपलà¥à¤¸ %s से कड़ीबदà¥à¤§\n"
+
+#~ msgid "Invalid channel map\n"
+#~ msgstr "अवैध चैनल मानचितà¥à¤°\n"
+
+#~ msgid "Failed to open file '%s'\n"
+#~ msgstr "फ़ाइल '%s' खोलने में विफल\n"
+
+#~ msgid "Channel map doesn't match file.\n"
+#~ msgstr "चैनल मानचितà¥à¤° फ़ाइल से मेल नहीं खाता है.\n"
+
+#~ msgid "Using sample spec '%s'\n"
+#~ msgstr "नमूना सà¥à¤ªà¥‡à¤• '%s' का पà¥à¤°à¤¯à¥‹à¤— कर रहा है\n"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "आउटपà¥à¤Ÿ %s + इनपà¥à¤Ÿ %s"
+
+#~ msgid "Output %s"
+#~ msgstr "आउटपà¥à¤Ÿ %s"
+
+#~ msgid "Input %s"
+#~ msgstr "इनपà¥à¤Ÿ %s"
diff --git a/po/it.po b/po/it.po
index a54f3ead..3ecca4e4 100644
--- a/po/it.po
+++ b/po/it.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-20 22:34+0200\n"
"Last-Translator: mario_santagiuliana <mario at marionline.it>\n"
"Language-Team: Italian <fedora-trans-it at redhat.com>\n"
@@ -19,51 +19,7 @@ msgstr ""
"X-Generator: Lokalize 0.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "Mono analogico"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "Stereo analogico"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "Stereo digitale (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "Stereo digitale (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "Surround analogico 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Surround digitale 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "Surround analogico 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "Surround analogico 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "Surround analogico 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Surround digitale 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "Surround analogico 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -75,7 +31,7 @@ msgstr ""
"Molto probabilmente si tratta di un bug nel driver ALSA «%s». Segnalare "
"questo problema agli sviluppatori ALSA."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -87,7 +43,7 @@ msgstr ""
"Molto probabilmente si tratta di un bug nel driver ALSA «%s». Segnalare "
"questo problema agli sviluppatori ALSA."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -100,11 +56,24 @@ msgstr ""
"Molto probabilmente si tratta di un bug nel driver ALSA «%s». Segnalare "
"questo problema agli sviluppatori ALSA."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "Audio interno"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "Modem"
@@ -494,17 +463,27 @@ msgstr "In uso directory di stato %s."
msgid "Running in system mode: %s"
msgstr "In esecuzione in modalità sistema: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() non riuscita."
# io mi domando e dico..... mah!
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "Disponibili timer high-resolution freschi freschi! Buon appetito!"
# $REPEAT_PREVIOUS_COMMENT_HERE
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -512,27 +491,27 @@ msgstr ""
"Hey, questo kernel è andato a male! Lo chef oggi raccomanda Linux con i "
"timer high-resolution abilitati!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() non riuscita."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "Inizializzazione del demone non riuscita."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "Avvio del demone senza alcun modulo caricato, rifiuta di lavorare."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "Completato l'avvio del demone."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "Iniziato l'arresto del demone."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "Demone terminato."
@@ -942,239 +921,239 @@ msgstr ""
"La politica di sistema previene PulseAudio dall'ottenere lo scheduling real-"
"time."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Mono"
# frontale centrale non si usa in HiFi
# solo centrale.
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Centrale"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Frontale sinistro"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Frontale destro"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "Centrale posteriore"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "Posteriore sinistro"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "Posteriore destro"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Emettitore basse frequenze"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Frontale sinistra-del-centro"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Frontale destra-del-centro"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Laterale sinistro"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "Laterale destro"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Ausiliario 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Ausiliario 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Ausiliario 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Ausiliario 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Ausiliario 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Ausiliario 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Ausiliario 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Ausiliario 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Ausiliario 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Ausiliario 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Ausiliario 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Ausiliario 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Ausiliario 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Ausiliario 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Ausiliario 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Ausiliario 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Ausiliario 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Ausiliario 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Ausiliario 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Ausiliario 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Ausiliario 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Ausiliario 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Ausiliario 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Ausiliario 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Ausiliario 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Ausiliario 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Ausiliario 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Ausiliario 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Ausiliario 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Ausiliario 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Ausiliario 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Ausiliario 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "Centrale superiore"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "Superiore frontale centrale"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "Superiore frontale sinistro"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "Superiore frontale destro"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "Superiore posteriore centrale"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "Superiore posteriore sinistro"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "Superiore posteriore destro"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(non valido)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "Stereo"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "Surround 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "Surround 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "Surround 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "Surround 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "Surround 7.1"
@@ -1459,7 +1438,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() non riuscita: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "Connessione non riuscita: %s\n"
@@ -1629,7 +1608,7 @@ msgstr ""
"Compilato con libpulse %s\n"
"Link eseguito con libpulse %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "Mappa di canali \"%s\" non valida\n"
@@ -1699,7 +1678,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "Recupero delle informazioni del campione non riuscito: %s\n"
@@ -1731,7 +1710,7 @@ msgid "playback"
msgstr "riproduzione"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() non riuscita.\n"
@@ -1741,7 +1720,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() non riuscita.\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() non riuscita.\n"
@@ -1756,7 +1735,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() non riuscita.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() non riuscita.\n"
@@ -1787,7 +1766,7 @@ msgstr "Ripristino non riuscito: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "ATTENZIONE: server audio non locale, impossibile sospendere.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "Ricevuto SIGINT, in uscita.\n"
@@ -1827,34 +1806,34 @@ msgstr ""
"Compilato con libpulse %s\n"
"Link eseguito con libpulse %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "Recupero delle statistiche non riuscito: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "Attualmente in uso: %u blocchi contenenti %s byte in totale.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr ""
"Allocati durante l'intera esecuzione: %u blocchi contenenti %s byte in "
"totale.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "Dimensione della cache dei campioni: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "Recupero delle informazioni del server non riuscito: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1877,7 +1856,7 @@ msgstr ""
"Sorgente predefinita: %s\n"
"Cookie: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "Recupero delle informazioni del sink non riuscito: %s\n"
@@ -1885,7 +1864,7 @@ msgstr "Recupero delle informazioni del sink non riuscito: %s\n"
# nel relativo messaggio per il source
# c'è "monitor of sink", quindi assumo che
# qui dovesse essere "monitor of source"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1924,12 +1903,22 @@ msgstr ""
"\tProprietà:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tProfili:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tProfilo attivo: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "Recupero delle informazioni della sorgente non riuscito: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1968,20 +1957,20 @@ msgstr ""
"\tProprietà:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "N/D"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "Recupero delle informazioni del modulo non riuscito: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1998,12 +1987,12 @@ msgstr ""
"\tProprietà:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "Recupero delle informazioni del client non riuscito: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -2018,12 +2007,12 @@ msgstr ""
"\tProprietà:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "Recupero delle informazioni della scheda non riuscito: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -2040,12 +2029,12 @@ msgstr ""
"\tProprietà:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tProfili:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tProfilo attivo: %s\n"
@@ -2054,13 +2043,13 @@ msgstr "\tProfilo attivo: %s\n"
# A stream that is connected to an output device, i.e. an input for a sink.
#
# from http://pulseaudio.org/wiki/WritingVolumeControlUIs
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr ""
"Recupero delle informazioni dell'ingresso per il sink non riuscito: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2101,13 +2090,13 @@ msgstr ""
# A stream that is connected to an input device, i.e. an output of a source.
#
# from http://pulseaudio.org/wiki/WritingVolumeControlUIs
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr ""
"Recupero delle informazioni dell'uscita per la sorgente non riuscito: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2136,13 +2125,13 @@ msgstr ""
"\tProprietà:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "Recupero delle informazioni del campione non riuscito: %s\n"
# campiona lazy??
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2173,22 +2162,22 @@ msgstr ""
"\tProprietà:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "Fallimento: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "Caricamento del campione non riuscito: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "Fine del file prematura\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2203,6 +2192,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2232,7 +2223,7 @@ msgstr ""
" -s, --server=SERVER Il nome del server a cui connettersi\n"
" -n, --client-name=NOME Come chiamare questo client sul server\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2243,44 +2234,44 @@ msgstr ""
"Compilato con libpulse %s\n"
"Link eseguito con libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "Specificare un file campione da caricare\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "Apertura del file audio non riuscita.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "Apertura di uno stream %s con specifica di campionamento \"%s\".\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "È necessario specificare un nome di campione da riprodurre\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "È necessario specificare un nome di campione da rimuovere\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "È necessario specificare un ingresso per sink e un sink\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "È necessario specificare una uscita per sorgente e una sorgente\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "È necessario specificare un nome di modulo e gli argomenti.\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "È necessario specificare un indice di modulo\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
@@ -2288,7 +2279,7 @@ msgstr ""
"Non è possibile specificare più di un sink. È necessario specificare un "
"valore booleano.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
@@ -2296,16 +2287,28 @@ msgstr ""
"Non è possibile specificare più di una sorgente. È necessario specificare un "
"valore booleano.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr ""
"È necessario specificare un nome/indice di scheda e un nome di profilo.\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr ""
+"È necessario specificare un nome/indice di scheda e un nome di profilo.\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr ""
+"È necessario specificare un nome/indice di scheda e un nome di profilo.\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "Nessun comando valido specificato.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() non riuscita: %s"
@@ -2432,7 +2435,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "Impossibile accedere al lock di autospawn."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2449,7 +2452,7 @@ msgstr ""
"Ci si è alzati con impostato POLLOUT -- come sempre un subsequent "
"snd_pcm_avail() ritorna 0 o un altro valore < min_avail."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2466,31 +2469,16 @@ msgstr ""
"Ci si è alzati con impostato POLLIN -- come sempre un subsequent "
"snd_pcm_avail() ritorna 0 o un altro valore < min_avail."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "Output %s + Input %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "Output %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "Input %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "Spento"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "Playback ad alta fidabilità (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "Doppino Telefonico (HSP/HFP)"
@@ -2498,6 +2486,48 @@ msgstr "Doppino Telefonico (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "Server sonoro PulseAudio"
+#~ msgid "Analog Mono"
+#~ msgstr "Mono analogico"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "Stereo analogico"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Stereo digitale (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Stereo digitale (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Surround analogico 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Surround digitale 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Surround analogico 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Surround analogico 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Surround analogico 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Surround digitale 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Surround analogico 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "Output %s + Input %s"
+
+#~ msgid "Output %s"
+#~ msgstr "Output %s"
+
+#~ msgid "Input %s"
+#~ msgstr "Input %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "Creazione dello stream riuscita\n"
diff --git a/po/kn.po b/po/kn.po
index 9752be38..b6636504 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx.pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-07 11:13+0530\n"
"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
"Language-Team: Kannada <en@li.org>\n"
@@ -17,51 +17,7 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "ಅನಲಾಗೠಮೊನೊ"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "ಅನಲಾಗೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "ಡಿಜಿಟಲೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹ (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "ಡಿಜಿಟಲೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹ (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "ಅನಲಾಗೠ4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "ಅನಲಾಗೠಸರೌಂಡೠ4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "ಅನಲಾಗೠಸರೌಂಡೠ5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "ಅನಲಾಗೠಸರೌಂಡೠ5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -73,7 +29,7 @@ msgstr ""
"ಇದಕà³à²•à³† ALSA ಚಾಲಕ '%s' ದಲà³à²²à²¿à²¨ ಒಂದೠದೋಷದ ಕಾರಣವಿರಬಹà³à²¦à³. ದಯವಿಟà³à²Ÿà³à²ˆ ತೊಂದರೆಯನà³à²¨à³ ALSA "
"ವಿಕಸನಗಾರರ ಗಮನಕà³à²•à³† ತನà³à²¨à²¿."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -85,7 +41,7 @@ msgstr ""
"ಇದಕà³à²•à³† ALSA ಚಾಲಕ '%s' ದಲà³à²²à²¿à²¨ ಒಂದೠದೋಷದ ಕಾರಣವಿರಬಹà³à²¦à³. ದಯವಿಟà³à²Ÿà³à²ˆ ತೊಂದರೆಯನà³à²¨à³ ALSA "
"ವಿಕಸನಗಾರರ ಗಮನಕà³à²•à³† ತನà³à²¨à²¿."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -97,11 +53,24 @@ msgstr ""
"ಇದಕà³à²•à³† ALSA ಚಾಲಕ '%s' ದಲà³à²²à²¿à²¨ ಒಂದೠದೋಷದ ಕಾರಣವಿರಬಹà³à²¦à³. ದಯವಿಟà³à²Ÿà³à²ˆ ತೊಂದರೆಯನà³à²¨à³ ALSA "
"ವಿಕಸನಗಾರರ ಗಮನಕà³à²•à³† ತನà³à²¨à²¿."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "ಆಂತರಿಕ ಆಡಿಯೊ"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "ಮಾಡೆಮà³:"
@@ -489,15 +458,25 @@ msgstr "ಸà³à²¥à²¿à²¤à²¿ ಕೋಶ %s ಅನà³à²¨à³ ಬಳಸಿಕೊಂಡ
msgid "Running in system mode: %s"
msgstr "ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ಕà³à²°à²®à²¦à²²à³à²²à²¿ ಚಲಾಯಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() ವಿಫಲಗೊಂಡಿದೆ."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "ತಾಜಾ ರೆಸಲà³à²¯à³‚ಶನೠಟೈಮರೠಲಭà³à²¯à²µà²¿à²¦à³†! Bon appetit!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -505,27 +484,27 @@ msgstr ""
"ಮಹಾಶಯರೆ, ನಿಮà³à²® ಕರà³à²¨à²²à³ ಕೊಳೆತà³à²¹à³‹à²—ಿದೆ! ಅತà³à²¯à³à²¤à³à²¤à²® ರೆಸಲà³à²¯à³‚ಶನೠಟೈಮರೠಅನà³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸಲಾದ "
"ಲಿನಕà³à²¸à²¨à³à²¨à³ ಬಳಸà³à²µà²‚ತೆ ಅಡà³à²—ೆಯವರೠಸಲಹೆ ಮಾಡà³à²¤à³à²¤à²¿à²¦à³à²¦à²¾à²°à³†!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() ವಿಫಲಗೊಂಡಿದೆ."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "ಡೀಮನೠಅನà³à²¨à³ ಆರಂಭಿಸಲೠವಿಫಲಗೊಂಡಿದೆ."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "ಲೋಡೠಮಾಡಲಾದ ಯಾವà³à²¦à³† ಡೀಮನೠಇಲà³à²²à²¦à³† ಆರಂಭಗೊಂಡಿದೆ, ಕೆಲಸ ಮಾಡಲೠನಿರಾಕರಿಸಿದೆ."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "ಡೀಮನೠಆರಂಭಗೊಳಿಕೆ ಪೂರà³à²£à²—ೊಂಡಿದೆ."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "ಡೀಮನೠಸà³à²¥à²—ಿತಗೊಳಿಕೆಯನà³à²¨à³ ಆರಂಭಿಸಲಾಗಿದೆ."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "ಡೀಮನೠಅನà³à²¨à³ ಅಂತà³à²¯à²—ೊಳಿಸಲಾಗಿದೆ."
@@ -902,237 +881,237 @@ msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr ""
"PulseAudio ರಿಯಲà³-ಟೈಮà³â€Œ ಶೆಡà³à²¯à³‚ಲಿಂಗೠಅನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à²¦à²‚ತೆ ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ಪಾಲಿಸಿಯೠತಡೆಯà³à²¤à³à²¤à²¦à³†."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "ಮೊನೊ"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "ಎದà³à²°à²¿à²¨ ಮಧà³à²¯à²­à²¾à²—"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "ಎದà³à²°à²¿à²¨ ಎಡಭಾಗ"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "ಎದà³à²°à²¿à²¨ ಬಲಭಾಗ"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "ಹಿಂಬದಿಯ ಮಧà³à²¯à²­à²¾à²—"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "ಹಿಂಬದಿಯ ಎಡಭಾಗ"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "ಹಿಂಬದಿಯ ಬಲಭಾಗ"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "ಕೆಳಮಟà³à²Ÿà²¦ ಫà³à²°à³€à²•à³à²µà³†à²¨à³à²¸à²¿ ಉತà³à²ªà²¾à²¦à²•"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "ಮಧà³à²¯à²¦ ಎಡಭಾಗದ ಎದà³à²°à³à²­à²¾à²—"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "ಮಧà³à²¯à²¦ ಬಲಭಾಗದ ಎದà³à²°à³à²­à²¾à²—"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "ಬದಿಯ ಎಡಭಾಗ"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "ಬದಿಯ ಬಲಭಾಗ"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "ಸಹಾಯಕ 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "ಸಹಾಯಕ 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "ಸಹಾಯಕ 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "ಸಹಾಯಕ 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "ಸಹಾಯಕ 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "ಸಹಾಯಕ 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "ಸಹಾಯಕ 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "ಸಹಾಯಕ 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "ಸಹಾಯಕ 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "ಸಹಾಯಕ 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "ಸಹಾಯಕ 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "ಸಹಾಯಕ 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "ಸಹಾಯಕ 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "ಸಹಾಯಕ 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "ಸಹಾಯಕ 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "ಸಹಾಯಕ 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "ಸಹಾಯಕ 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "ಸಹಾಯಕ 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "ಸಹಾಯಕ 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "ಸಹಾಯಕ 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "ಸಹಾಯಕ 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "ಸಹಾಯಕ 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "ಸಹಾಯಕ 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "ಸಹಾಯಕ 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "ಸಹಾಯಕ 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "ಸಹಾಯಕ 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "ಸಹಾಯಕ 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "ಸಹಾಯಕ 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "ಸಹಾಯಕ 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "ಸಹಾಯಕ 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "ಸಹಾಯಕ 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "ಸಹಾಯಕ 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "ಮೇಲಿನ ಮಧà³à²¯à²­à²¾à²—"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "ಮೇಲಿನ ಎದà³à²°à²¿à²¨ ಮಧà³à²¯à²­à²¾à²—"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "ಮೇಲಿನ ಎದà³à²°à²¿à²¨ ಎಡಭಾಗ"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "ಮೇಲಿನ ಎದà³à²°à²¿à²¨ ಬಲಭಾಗ"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "ಮೇಲಿನ ಹಿಂಬದಿಯ ಮಧà³à²¯à²­à²¾à²—"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "ಮೇಲಿನ ಹಿಂಬದಿಯ ಎಡಭಾಗ"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "ಮೇಲಿನ ಹಿಂಬದಿಯ ಬಲಭಾಗ"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(ಅಮಾನà³à²¯)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "ಸà³à²Ÿà³€à²°à²¿à²¯à³‹"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "ಸರೌಂಡà³â€Œ 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "ಸರೌಂಡà³â€Œ 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "ಸರೌಂಡà³â€Œ 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "ಸರೌಂಡà³â€Œ 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "ಸರೌಂಡà³â€Œ 7.1"
@@ -1416,7 +1395,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() failed: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "ಸಂಪರà³à²•à²¦ ವಿಫಲತೆ: %s\n"
@@ -1570,7 +1549,7 @@ msgstr ""
"libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲೠಮಾಡಲಾಗಿದೆ\n"
"libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಚಾನಲೠನಕà³à²·à³† '%s'\n"
@@ -1639,7 +1618,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "ನಮೂನೆಯ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
@@ -1671,7 +1650,7 @@ msgid "playback"
msgstr "ಪà³à²²à³‡à²¬à³à²¯à²¾à²•à³â€Œ"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() failed.\n"
@@ -1681,7 +1660,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() ವಿಫಲಗೊಂಡಿದೆ.\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() failed.\n"
@@ -1696,7 +1675,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() failed.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() failed.\n"
@@ -1726,7 +1705,7 @@ msgstr "ಮರಳಿ ಆರಂಭಿಸಲೠವಿಫಲಗೊಂಡಿದೆ:
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "ಎಚà³à²šà²°à²¿à²•à³†: ಧà³à²µà²¨à²¿ ಪರಿಚಾರಕವೠಸà³à²¥à²³à³€à²¯à²µà²¾à²—ಿಲà³à²², ತಾತà³à²•à²¾à²²à²¿à²•à²µà²¾à²—ಿ ತಡೆಹಿಡಿಯಲಾಗà³à²¤à³à²¤à²¿à²²à³à²².\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT ದೊರೆತಿದೆ, ನಿರà³à²—ಮಿಸà³à²¤à³à²¤à²¿à²¦à³†.\n"
@@ -1765,34 +1744,34 @@ msgstr ""
"libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲೠಮಾಡಲಾಗಿದೆ\n"
"libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "ಅಂಕಿಅಂಶಗಳನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "ಪà³à²°à²¸à²•à³à²¤ ಬಳಕೆಯಲà³à²²à²¿à²°à³à²µà³à²¦à³: %u ಖಂಡಗಳೠಒಟà³à²Ÿà³ %s ಬೈಟà³â€Œà²—ಳನà³à²¨à³ ಹೊಂದಿದೆ.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr ""
"ಸಂಪೂರà³à²£ ಜೀವಿತಾವಧಿಯ ಸಮಯದಲà³à²²à²¿ ನಿಯೋಜಿಸಲಾಗಿದà³à²¦à³: %u ಖಂಡಗಳೠಒಟà³à²Ÿà³ %s ಬೈಟà³â€Œà²—ಳನà³à²¨à³ "
"ಹೊಂದಿದೆ.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "ನಮೂನೆಯ ಕà³à²¯à²¾à²¶à³† ಗಾತà³à²°: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "ಪರಿಚಾರಕದ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1815,12 +1794,12 @@ msgstr ""
"ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಆಕರ: %s\n"
"ಕà³à²•à²¿: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "ಸಿಂಕà³â€Œ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1859,12 +1838,22 @@ msgstr ""
"\tಗà³à²£à²—ಳà³:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tಪà³à²°à³Šà²«à³ˆà²²à³à²—ಳà³:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tಸಕà³à²°à²¿à²¯ ಪà³à²°à³Šà²«à³ˆà²²à³à²—ಳà³: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "ಆಕರದ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1903,20 +1892,20 @@ msgstr ""
"\tಗà³à²£à²—ಳà³:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "ಅನà³à²µà²¯à²¿à²¸à³à²µà³à²¦à²¿à²²à³à²²"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "ಘಟಕದ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1933,12 +1922,12 @@ msgstr ""
"\tಗà³à²£à²—ಳà³:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "ಕà³à²²à³ˆà²‚ಟಿನ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1953,12 +1942,12 @@ msgstr ""
"\tಗà³à²£à²—ಳà³:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "ಕಾರà³à²¡à²¿à²¨ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1975,22 +1964,22 @@ msgstr ""
"\tಗà³à²£à²—ಳà³:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tಪà³à²°à³Šà²«à³ˆà²²à³à²—ಳà³:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tಸಕà³à²°à²¿à²¯ ಪà³à²°à³Šà²«à³ˆà²²à³à²—ಳà³: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "ಸಿಂಕà³â€Œ ಇನà³â€Œà²ªà³à²Ÿà³ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2027,12 +2016,12 @@ msgstr ""
"\tಗà³à²£à²—ಳà³:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "ಆಕರದ ಔಟà³â€Œà²ªà³à²Ÿà³ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2061,12 +2050,12 @@ msgstr ""
"\tಗà³à²£à²—ಳà³:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "ನಮೂನೆಯ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆದà³à²•à³Šà²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2097,22 +2086,22 @@ msgstr ""
"\tಗà³à²£à²—ಳà³:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "ವಿಫಲತೆ: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "ನಮೂನೆಯನà³à²¨à³ ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "ಕಡತದ ಅಪà³à²°à²¾à²ªà³à²¤ ಸಮಯದಲà³à²²à²¿ ಅಂತà³à²¯\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2127,6 +2116,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2157,7 +2148,7 @@ msgstr ""
" -n, --client-name=NAME ಪರಿಚಾರಕದಲà³à²²à²¿ ಈ ಕà³à²²à³ˆà²‚ಟಿನಲà³à²²à²¿ à²à²¨à³†à²‚ದೠ"
"ಕರೆಯಬೇಕà³\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2168,44 +2159,44 @@ msgstr ""
"libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲೠಮಾಡಲಾಗಿದೆ\n"
"libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "ಲೋಡೠಮಾಡಬೇಕಿರà³à²µ ಒಂದೠಕಡತದ ನಮೂನೆಯನà³à²¨à³ ಸೂಚಿಸಿ\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "ಧà³à²µà²¨à²¿ ಕಡತವನà³à²¨à³ ತೆರೆಯà³à²µà²²à³à²²à²¿ ವಿಫಲಗೊಂಡಿದೆ.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "ಒಂದೠ%s ಸà³à²Ÿà³à²°à³€à²®à³â€Œ ಅನà³à²¨à³ ನಮೂನೆ ವಿವರಣೆ '%s' ಯೊಂದಿಗೆ ತೆರೆಯಲಾಗà³à²¤à³à²¤à²¿à²¦à³†.\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "ಚಲಾಯಿಸಲೠನೀವೠಒಂದೠನಮೂನೆಯ ಹೆಸರನà³à²¨à³ ಸೂಚಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "ತೆಗೆದೠಹಾಕಲೠನೀವೠಒಂದೠನಮೂನೆಯ ಹೆಸರನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "ನೀವೠಒಂದೠಸಿಂಕೠಇನà³â€Œà²ªà³à²Ÿà³ ಸೂಚಿಯನà³à²¨à³ ಹಾಗೠಒಂದೠಸಿಂಕà³â€Œ ಅನà³à²¨à³ ಸೂಚಿಸಬೇಕà³.\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "ನೀವೠಒಂದೠಆಕರ ಔಟà³â€Œà²ªà³à²Ÿà³ ಸೂಚಿಯನà³à²¨à³ ಹಾಗೠಒಂದೠಆಕರವನà³à²¨à³ ಸೂಚಿಸಬೇಕà³.\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "ನೀವೠಒಂದೠಘಟಕದ ಹೆಸರನà³à²¨à³ ಹಾಗೠಆರà³à²—à³à²®à³†à²‚ಟà³à²—ಳನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "ನೀವೠಒಂದೠಘಟಕ ಸೂಚಿಯನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
@@ -2213,7 +2204,7 @@ msgstr ""
"ನೀವೠಒಂದಕà³à²•à²¿à²‚ತ ಹೆಚà³à²šà²¿à²¨ ಸಿಂಕನà³à²¨à³ ಸೂಚಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²². ನೀವೠಒಂದೠಬೂಲಿಯನà³â€Œ ಮೌಲà³à²¯à²µà²¨à³à²¨à³ "
"ಸೂಚಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
@@ -2221,15 +2212,25 @@ msgstr ""
"ನೀವೠಒಂದಕà³à²•à²¿à²‚ತ ಹೆಚà³à²šà²¿à²¨ ಆಕರವನà³à²¨à³ ಸೂಚಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²². ನೀವೠಒಂದೠಬೂಲಿಯನà³â€Œ ಮೌಲà³à²¯à²µà²¨à³à²¨à³ "
"ಸೂಚಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "ಒಂದೠಕಾರà³à²¡à²¿à²¨ ಹೆಸರà³/ಸೂಚಿಯನà³à²¨à³ ಹಾಗೠಪà³à²°à³Šà²«à³ˆà²²à³â€Œ ಹೆಸರನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "ಒಂದೠಕಾರà³à²¡à²¿à²¨ ಹೆಸರà³/ಸೂಚಿಯನà³à²¨à³ ಹಾಗೠಪà³à²°à³Šà²«à³ˆà²²à³â€Œ ಹೆಸರನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "ಒಂದೠಕಾರà³à²¡à²¿à²¨ ಹೆಸರà³/ಸೂಚಿಯನà³à²¨à³ ಹಾಗೠಪà³à²°à³Šà²«à³ˆà²²à³â€Œ ಹೆಸರನà³à²¨à³ ಸೂಚಿಸಬೇಕà³\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "ಯಾವà³à²¦à³† ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಸೂಚಿಸಲಾಗಿಲà³à²².\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() failed: %s"
@@ -2355,7 +2356,7 @@ msgstr "ಬರೆ(): %s"
msgid "Cannot access autospawn lock."
msgstr "ಸà³à²µà²¯à²‚ಹೆಚà³à²šà²¿à²¸à³à²µà²¿à²•à³†à²¯ ಲಾಕೠಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಸಾಧà³à²¯à²µà²¿à²²à³à²²."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2370,7 +2371,7 @@ msgstr ""
"ವಿಕಸನಗಾರರ ಗಮನಕà³à²•à³† ತನà³à²¨à²¿.POLLOUT ಸೆಟà³â€Œà²¨à²¿à²‚ದ ನಾವೠಎಚà³à²šà³†à²¤à³à²¤à³à²—ೊಂಡಿದà³à²¦à³‡à²µà³† -- ಆದರೆ ನಂತರದ "
"snd_pcm_avail() 0 ಅಥವ min_avail ಕà³à²•à²¿à²‚ತ ಚಿಕà³à²•à²¦à²¾à²¦ ಇನà³à²¨à³Šà²‚ದೠಮೌಲà³à²¯à²µà²¨à³à²¨à³ ಮರಳಿಸಿದೆ."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2385,31 +2386,16 @@ msgstr ""
"ವಿಕಸನಗಾರರ ಗಮನಕà³à²•à³† ತನà³à²¨à²¿.POLLIN ಸೆಟà³â€Œà²¨à²¿à²‚ದ ನಾವೠಎಚà³à²šà³†à²¤à³à²¤à³à²—ೊಂಡಿದà³à²¦à³‡à²µà³† -- ಆದರೆ ನಂತರದ "
"snd_pcm_avail() 0 ಅಥವ min_avail ಕà³à²•à²¿à²‚ತ ಚಿಕà³à²•à²¦à²¾à²¦ ಇನà³à²¨à³Šà²‚ದೠಮೌಲà³à²¯à²µà²¨à³à²¨à³ ಮರಳಿಸಿದೆ."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "ಔಟà³â€Œà²ªà³à²Ÿà³ %s + ಇನà³â€Œà²ªà³à²Ÿà³ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "ಔಟà³â€Œà²ªà³à²Ÿà³ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "ಇನà³â€Œà²ªà³à²Ÿà³ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "ಜಡ"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "ಹೈ ಫಿಡಿಲಿಟಿ ಪà³à²²à³‡à²¬à³à²¯à²¾à²•à³ (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "ಟೆಲಿಫೋನಿ ಡà³à²¯à³‚ಪà³à²²à³†à²•à³à²¸à³â€Œ (HSP/HFP)"
@@ -2417,6 +2403,48 @@ msgstr "ಟೆಲಿಫೋನಿ ಡà³à²¯à³‚ಪà³à²²à³†à²•à³à²¸à³â€Œ (HSP/HF
msgid "PulseAudio Sound Server"
msgstr "ಪಲà³à²¸à³â€à²†à²¡à²¿à²¯à³‹ ಧà³à²µà²¨à²¿ ಪರಿಚಾರಕ"
+#~ msgid "Analog Mono"
+#~ msgstr "ಅನಲಾಗೠಮೊನೊ"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "ಅನಲಾಗೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "ಡಿಜಿಟಲೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹ (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "ಡಿಜಿಟಲೠಸà³à²Ÿà³€à²°à²¿à²¯à³‹ (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "ಅನಲಾಗೠ4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "ಅನಲಾಗೠಸರೌಂಡೠ4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "ಅನಲಾಗೠಸರೌಂಡೠ5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "ಅನಲಾಗೠಸರೌಂಡೠ5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "ಡಿಜಿಟಲೠಸರೌಂಡೠ7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "ಔಟà³â€Œà²ªà³à²Ÿà³ %s + ಇನà³â€Œà²ªà³à²Ÿà³ %s"
+
+#~ msgid "Output %s"
+#~ msgstr "ಔಟà³â€Œà²ªà³à²Ÿà³ %s"
+
+#~ msgid "Input %s"
+#~ msgstr "ಇನà³â€Œà²ªà³à²Ÿà³ %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "ಸà³à²Ÿà³à²°à³€à²®à²¨à³à²¨à³ ಯಶಸà³à²µà²¿à²¯à²¾à²—ಿ ನಿರà³à²®à²¿à²¸à²²à²¾à²—ಿದೆ\n"
diff --git a/po/mr.po b/po/mr.po
index 4daf9547..6e3c759a 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx.pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-06 13:43+0530\n"
"Last-Translator: Sandeep Shedmake <sandeep.shedmake@gmail.com>\n"
"Language-Team: marathi\n"
@@ -17,51 +17,7 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "à¤à¤¨à¤²à¥‰à¤— मोनो"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "à¤à¤¨à¤²à¥‰à¤— सà¥à¤Ÿà¤¿à¤°à¥€à¤“"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "डिजीटल सà¥à¤Ÿà¤¿à¤°à¥€à¤“ (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "डिजीटल सà¥à¤Ÿà¤¿à¤°à¥€à¤“ (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "डिजीटल सराऊनà¥à¤¡ 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "डिजीटल सराऊनà¥à¤¡ 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -73,7 +29,7 @@ msgstr ""
"हे सहसा ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' अंतरà¥à¤—त बग अशू शकते. कृपया या अडचणीस ALSA डेवà¥à¤¹à¤²à¤ªà¤° करीता "
"कळवा."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -85,7 +41,7 @@ msgstr ""
"हे सहसा ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' अंतरà¥à¤—त बग अशू शकते. कृपया या अडचणीस ALSA डेवà¥à¤¹à¤²à¤ªà¤° करीता "
"कळवा."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -97,11 +53,24 @@ msgstr ""
"हे सहसा ALSA डà¥à¤°à¤¾à¤‡à¤µà¤° '%s' अंतरà¥à¤—त बग अशू शकते. कृपया या अडचणीस ALSA डेवà¥à¤¹à¤²à¤ªà¤° करीता "
"कळवा."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "आंतरीक ऑडिओ"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "मोडेम"
@@ -477,15 +446,25 @@ msgstr "सà¥à¤¥à¤¿à¤¤à¥€ डिरेकà¥à¤Ÿà¥à¤°à¥€ %s वापरत आ
msgid "Running in system mode: %s"
msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ पदà¥à¤§à¤¤à¥€à¤¤ कारà¥à¤¯à¤°à¤¤: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() अपयशी."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "नवीन उचà¥à¤š-बिंदूता टाइमर उपलबà¥à¤§! Bon appetit!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -493,27 +472,27 @@ msgstr ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() अपयशी."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "डिमन पà¥à¤°à¤¾à¤°à¤‚भ करणà¥à¤¯à¤¾à¤¸ अपयशी."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "विना विभाग दाखल केलà¥à¤¯à¤¾à¤¸ डिमन पà¥à¤°à¤¾à¤°à¤‚भ à¤à¤¾à¤²à¥‡, कारà¥à¤¯ करणà¥à¤¯à¤¾à¤¸ नकार."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "डिमन सà¥à¤Ÿà¤¾à¤°à¥à¤Ÿà¤…प पूरà¥à¤£ à¤à¤¾à¤²à¥‡."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "डिमन पूरà¥à¤£à¤ªà¤£à¥‡ बंद करणà¥à¤¯à¤¾à¤¸ पà¥à¤°à¤¾à¤°à¤‚भ केले."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "डिमन नषà¥à¤Ÿ केले."
@@ -882,237 +861,237 @@ msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ करार PulseAudio ला उचà¥à¤š-पà¥
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ करार PulseAudio ला रियल-टाइम वेळपतà¥à¤°à¤• पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤ªà¤¾à¤¸à¥‚न रोखते."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "मोनो"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "समोर मधà¥à¤¯à¤­à¤¾à¤—ी"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "समोर डावीकडे"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "समोर उजवीकडे"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "पाठीमागे भधà¥à¤¯à¤­à¤¾à¤—ी"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "पाठीमागे डावीकडे"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "पाठीमागे उजवीकडे"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "कमी कà¥à¤°à¤¿à¤•à¥à¤µà¥‡à¤¨à¥à¤¸à¥€ सà¥à¤¤à¥à¤°à¥‹à¤¤"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "समोर डावी-कडील-मधà¥à¤¯à¤­à¤¾à¤—ी"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "समोर उजवी-कडील-मधà¥à¤¯à¤­à¤¾à¤—ी"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "डावी बाजू"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "उजवी बाजू"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "ऑकà¥à¤œà¥€à¤²à¤°à¥€ 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "वरील मधà¥à¤¯"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "वरील समोरचे मधà¥à¤¯"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "वरील समोरचे डावे"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "वरील समोरचे उजवे"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "वरील पाठीमागचे मधà¥à¤¯"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "वरील पाठीमागचे डावे"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "वरील पाठीमागचे उजवे"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(अवैध)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "सà¥à¤Ÿà¤¿à¤°à¥€à¤“"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "सराऊनà¥à¤¡ 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "सराऊनà¥à¤¡ 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "सराऊनà¥à¤¡ 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "सराऊनà¥à¤¡ 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "सराऊनà¥à¤¡ 7.1"
@@ -1395,7 +1374,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() अपयशी: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "जà¥à¤³à¤µà¤£à¥€ अपयशी: %s\n"
@@ -1552,7 +1531,7 @@ msgstr ""
"libpulse %s शी कंपाई केले\n"
"libpulse %s शी लिंक केले\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "अवैध वाहिनी नकाशा '%s'\n"
@@ -1621,7 +1600,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "सॅमà¥à¤ªà¤² माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
@@ -1653,7 +1632,7 @@ msgid "playback"
msgstr "पà¥à¤²à¥‡à¤¬à¥…क"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() अपयशी.\n"
@@ -1663,7 +1642,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() अपयशी.\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() अपयशी.\n"
@@ -1678,7 +1657,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() अपयशी.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() अपयशी.\n"
@@ -1708,7 +1687,7 @@ msgstr "पà¥à¤¨à¥à¤¹à¤¾ चालू करणà¥à¤¯à¤¾à¤¸ अपयशी: %
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "सावधानता: आवाज सरà¥à¤µà¤° सà¥à¤¥à¤¾à¤¨à¥€à¤¯ नाही, ससà¥à¤ªà¥‡à¤‚ड करत नाही.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤¾à¤²à¥‡, बाहेर पडत आहे.\n"
@@ -1748,32 +1727,32 @@ msgstr ""
"libpulse %s शी कंपाई केले\n"
"libpulse %s शी लिंक केले\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "आकडेवारी पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "वरà¥à¤¤à¤®à¤¾à¤¨à¤•à¥à¤·à¤£à¥€ वापरणीत आहे: %2$s बाईटसॠसमाविषà¥à¤Ÿà¥€à¤¤ à¤à¤•à¥‚ण %1$u बà¥à¤²à¥‰à¤•à¥à¤¸à¥ .\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "संपूरà¥à¤£ कारà¥à¤¯à¤•à¤¾à¤³à¤µà¥‡à¤³à¥€ लागू केले: %2$s बाईटसॠसमाविषà¥à¤Ÿà¥€à¤¤ à¤à¤•à¥‚ण %1$u बà¥à¤²à¥‰à¤•à¥à¤¸à¥ .\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "सॅपल कॅशे आकार: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "सरà¥à¤µà¤° माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1796,12 +1775,12 @@ msgstr ""
"मà¥à¤²à¤­à¥‚त सà¥à¤¤à¥à¤°à¥‹à¤¤: %s\n"
"कà¥à¤•à¥€à¤œ: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "sink माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1840,12 +1819,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tसंकà¥à¤·à¤¿à¤ªà¥à¤¤ माहिती:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tसकà¥à¤°à¥€à¤¯ संकà¥à¤·à¤¿à¤ªà¥à¤¤ माहिती: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "सà¥à¤¤à¥à¤°à¥‹à¤¤ माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1884,20 +1873,20 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/a"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "विभाग माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1914,12 +1903,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "कà¥à¤²à¤¾à¤à¤‚ट माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1934,12 +1923,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "कारà¥à¤¡ माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1956,22 +1945,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tसंकà¥à¤·à¤¿à¤ªà¥à¤¤ माहिती:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tसकà¥à¤°à¥€à¤¯ संकà¥à¤·à¤¿à¤ªà¥à¤¤ माहिती: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "सिंक इनपà¥à¤Ÿ माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2008,12 +1997,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "सà¥à¤¤à¥à¤°à¥‹à¤¤ आऊटपà¥à¤Ÿ माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2042,12 +2031,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "सॅमà¥à¤ªà¤² माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2078,22 +2067,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "अपयशी: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "सॅमà¥à¤ªà¤² अपलोड करणà¥à¤¯à¤¾à¤¸ अपयशी: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "फाइलची अयोगà¥à¤¯ समापà¥à¤¤à¥€\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2108,6 +2097,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2139,7 +2130,7 @@ msgstr ""
" -n, --client-name=NAME How to call this client on the "
"server\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2150,44 +2141,44 @@ msgstr ""
"libpulse %s सह कंपाईल केले\n"
"libpulse %s सह जà¥à¤³à¤²à¥‡\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "कृपया दाखल करणà¥à¤¯à¤¾à¤œà¥‹à¤—ी तातà¥à¤ªà¥‚रà¥à¤¤à¥€ फाइल निशà¥à¤šà¤¿à¤¤ करा\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "आवाज फाइल उघडणà¥à¤¯à¤¾à¤¸ अपयशी.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "%s सà¥à¤Ÿà¥à¤°à¥€à¤® सॅमà¥à¤ªà¤² संयोजना '%s' शी उघडत आहे.\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "चालविणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ तातà¥à¤ªà¥‚रà¥à¤¤à¥‡ नाव निशà¥à¤šà¤¿à¤¤ करावे लागेल\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "काढूण टाकणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ तातà¥à¤ªà¥‚रà¥à¤¤à¥‡ नाव निशà¥à¤šà¤¿à¤¤ करावे लागेल\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ सिंक इनपà¥à¤Ÿ निरà¥à¤¦à¥‡à¤¶à¤¾à¤‚क व सिंक निशà¥à¤šà¤¿à¤¤ करावे लागेल\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ आऊट इनडेकà¥à¤¸ सà¥à¤¤à¥à¤°à¥‹à¤¤ व सà¥à¤¤à¥à¤°à¥‹à¤¤ निशà¥à¤šà¤¿à¤¤ करावे लागेल\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ विभागाचे नाव व बाब निशà¥à¤šà¤¿à¤¤ करावे लागेल.\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ विभाग निरà¥à¤¦à¥‡à¤¶à¤¾à¤‚क निशà¥à¤šà¤¿à¤¤ करावे लागेल\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
@@ -2195,7 +2186,7 @@ msgstr ""
"तà¥à¤®à¥à¤¹à¥€ à¤à¤•à¤¾à¤ªà¥‡à¤•à¥à¤·à¤¾ जासà¥à¤¤ सिंक निशà¥à¤šà¤¿à¤¤ करू शकत नाही. तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ बूलीयन मूलà¥à¤¯ निशà¥à¤šà¤¿à¤¤ करावे "
"लागेल.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
@@ -2203,15 +2194,25 @@ msgstr ""
"तà¥à¤®à¥à¤¹à¥€ à¤à¤•à¤¾à¤ªà¥‡à¤•à¥à¤·à¤¾ जासà¥à¤¤ सà¥à¤¤à¥à¤°à¥‹à¤¤ निशà¥à¤šà¤¿à¤¤ करू शकत नाही. तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ बूलीयन मूलà¥à¤¯ निशà¥à¤šà¤¿à¤¤ करावे "
"लागेल.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ कारà¥à¤¡ नाव/निरà¥à¤¦à¥‡à¤¶à¤¾à¤‚क व संकà¥à¤·à¤¿à¤ªà¥à¤¤ नाव निशà¥à¤šà¤¿à¤¤ करावे\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ कारà¥à¤¡ नाव/निरà¥à¤¦à¥‡à¤¶à¤¾à¤‚क व संकà¥à¤·à¤¿à¤ªà¥à¤¤ नाव निशà¥à¤šà¤¿à¤¤ करावे\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ कारà¥à¤¡ नाव/निरà¥à¤¦à¥‡à¤¶à¤¾à¤‚क व संकà¥à¤·à¤¿à¤ªà¥à¤¤ नाव निशà¥à¤šà¤¿à¤¤ करावे\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "वैध आदेश निशà¥à¤šà¤¿à¤¤ केले नाही.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() अपयशी: %s"
@@ -2336,7 +2337,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "autospawn कà¥à¤²à¥‚प करीता पà¥à¤°à¤µà¥‡à¤¶ पà¥à¤°à¤¾à¤ªà¥à¤¯ अशकà¥à¤¯."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2351,7 +2352,7 @@ msgstr ""
"POLLOUT दà¥à¤µà¤¾à¤°à¥‡ सजà¥à¤œ होणे शकà¥à¤¯ आहे -- तरी परसà¥à¤ªà¤° snd_pcm_avail() ने 0 पूरविले किंवा इतर "
"मूलà¥à¤¯ < min_avail असावे."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2366,31 +2367,16 @@ msgstr ""
"POLLIN दà¥à¤µà¤¾à¤°à¥‡ सजà¥à¤œ होणे शकà¥à¤¯ आहे -- तरी परसà¥à¤ªà¤° snd_pcm_avail() ने 0 पूरविले किंवा इतर "
"मूलà¥à¤¯ < min_avail असावे."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "आऊटपà¥à¤Ÿ %s + इनपà¥à¤Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "आऊटपà¥à¤Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "इनपà¥à¤Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "बंद करा"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "High Fidelity Playback (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "Telephony Duplex (HSP/HFP)"
@@ -2398,6 +2384,48 @@ msgstr "Telephony Duplex (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "PulseAudio आवाज सरà¥à¤µà¤°"
+#~ msgid "Analog Mono"
+#~ msgstr "à¤à¤¨à¤²à¥‰à¤— मोनो"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सà¥à¤Ÿà¤¿à¤°à¥€à¤“"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "डिजीटल सà¥à¤Ÿà¤¿à¤°à¥€à¤“ (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "डिजीटल सà¥à¤Ÿà¤¿à¤°à¥€à¤“ (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "डिजीटल सराऊनà¥à¤¡ 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "डिजीटल सराऊनà¥à¤¡ 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "à¤à¤¨à¤²à¥‰à¤— सराऊनà¥à¤¡ 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "आऊटपà¥à¤Ÿ %s + इनपà¥à¤Ÿ %s"
+
+#~ msgid "Output %s"
+#~ msgstr "आऊटपà¥à¤Ÿ %s"
+
+#~ msgid "Input %s"
+#~ msgstr "इनपà¥à¤Ÿ %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "सà¥à¤Ÿà¥à¤°à¥€à¤® यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ बनवले\n"
diff --git a/po/nl.po b/po/nl.po
index 83d6d378..a75efed0 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-15 21:04+0200\n"
"Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\n"
"Language-Team: Dutch <nl@li.org>\n"
@@ -17,51 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "Analoog mono"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "Analoog stereo"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "Digitaal stereo (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "Digitaal stereo (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "Analoog surround 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Digitaal surround 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "Analoog surround 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "Analoog surround 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "Analoog surround 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Digitaal surround 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "Analoog surround 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -74,7 +30,7 @@ msgstr ""
"Waarschijnlijk is dit een bug in de ALSA driver '%s'. Rapporteer dit "
"probleem a.u.b. aan de ALSA ontwikkelaars."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -87,7 +43,7 @@ msgstr ""
"Waarschijnlijk is dit een bug in de ALSA driver '%s'. Rapporteer dit "
"probleem a.u.b. aan de ALSA ontwikkelaars."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -100,11 +56,24 @@ msgstr ""
"Waarschijnlijk is dit een bug in de ALSA driver '%s'. Rapporteer dit "
"probleem a.u.b aan de ALSA ontwikkelaars."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "Intern geluid"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "Modem"
@@ -485,15 +454,25 @@ msgstr "Verbruik van state map %s."
msgid "Running in system mode: %s"
msgstr "Draaiend in systeem mode: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() mislukte."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "Verse high-resolution timers beschikbaar! Smakelijk eten!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -501,27 +480,27 @@ msgstr ""
"Kerel, je kernel stinkt! De aanbeveling van de chef is vandaag Linux met "
"aangezette high-resolution timers!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() mislukte."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "Initialiseren van de daemon mislukte."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "Daemon opgestart zonder geladen modules, dat werkt niet."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "Daemon opstarten is klaar."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "Daemon afsluiten is begonnen."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "Daemon is afgesloten."
@@ -898,237 +877,237 @@ msgstr ""
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr ""
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Mono"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Voor midden"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Voor links"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Voor rechts"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "Achter midden"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "Achter links"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "Achter rechta"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Lage frequentie zender"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Voor links-van-het-midden"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Voor rechts-van-het-midden"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Zijkant links"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "Zijkant rechts"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Auxiliary 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Auxiliary 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Auxiliary 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Auxiliary 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Auxiliary 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Auxiliary 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Auxiliary 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Auxiliary 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Auxiliary 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Auxiliary 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Auxiliary 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Auxiliary 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Auxiliary 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Auxiliary 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Auxiliary 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Auxiliary· 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Auxiliary 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Auxiliary 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Auxiliary 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Auxiliary 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Auxiliary 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Auxiliary 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Auxiliary 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Auxiliary 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Auxiliary 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Auxiliary 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Auxiliary 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Auxiliary 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Auxiliary 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Auxiliary 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Auxiliary 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Auxiliary 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "Boven midden"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "Boven voor midden"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "Boven voor links"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "Boven voor rechts"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "Boven achter midden"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "boven achter links"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "boven achter rechts"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(ongeldig)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "Stereo"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "Surround 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "Surround 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "Surround 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "Surround 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "Surround 7.1"
@@ -1411,7 +1390,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr ""
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr ""
@@ -1517,7 +1496,7 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "Ongeldige resample methode '%s'."
@@ -1585,7 +1564,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
msgid "Failed to determine sample specification from file.\n"
msgstr ""
@@ -1616,7 +1595,7 @@ msgid "playback"
msgstr ""
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr ""
@@ -1626,7 +1605,7 @@ msgid "io_new() failed.\n"
msgstr ""
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr ""
@@ -1641,7 +1620,7 @@ msgid "time_new() failed.\n"
msgstr ""
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr ""
@@ -1671,7 +1650,7 @@ msgstr ""
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr ""
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr ""
@@ -1701,32 +1680,32 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr ""
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr ""
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1740,12 +1719,12 @@ msgid ""
"Cookie: %08x\n"
msgstr ""
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1767,12 +1746,22 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, c-format
+msgid "\tPorts:\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "Auteur: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1794,20 +1783,20 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr ""
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1818,12 +1807,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1833,12 +1822,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1849,22 +1838,22 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr ""
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -1885,12 +1874,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -1907,12 +1896,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -1930,21 +1919,21 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr ""
-#: ../src/utils/pactl.c:779
+#: ../src/utils/pactl.c:826
#, c-format
msgid ""
"%s [options] stat\n"
@@ -1960,6 +1949,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -1970,7 +1961,7 @@ msgid ""
"server\n"
msgstr ""
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -1978,63 +1969,71 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr ""
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr ""
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr ""
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr ""
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr ""
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr ""
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr ""
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr ""
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr ""
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr ""
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr ""
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr ""
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:1084
+msgid "You have to specify a source name/index and a port name\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr ""
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr ""
@@ -2152,7 +2151,7 @@ msgstr ""
msgid "Cannot access autospawn lock."
msgstr ""
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2163,7 +2162,7 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2174,34 +2173,52 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr ""
#: ../src/modules/reserve-wrap.c:151
msgid "PulseAudio Sound Server"
msgstr ""
+
+#~ msgid "Analog Mono"
+#~ msgstr "Analoog mono"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "Analoog stereo"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Digitaal stereo (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Digitaal stereo (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Analoog surround 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Digitaal surround 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Analoog surround 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Analoog surround 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Analoog surround 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Digitaal surround 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Analoog surround 7.1"
diff --git a/po/or.po b/po/or.po
index 634e15fc..1fcf836e 100644
--- a/po/or.po
+++ b/po/or.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx.pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-09 13:16+0530\n"
"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
"Language-Team: Oriya <oriya-it@googlegroups.com>\n"
@@ -23,51 +23,7 @@ msgstr ""
"\n"
"\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "ଅନà­à¬°à­‚ପ ମୋନୋ"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "ଅନà­à¬°à­‚ପ ଷà­à¬Ÿà­‡à¬°à¬¿à¬“"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "ସାଂଖିକ ଷà­à¬Ÿà­‡à¬°à¬¿à¬“ (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "ସାଂଖିକ ଷà­à¬Ÿà­‡à¬°à¬¿à¬“ (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "ଅନà­à¬°à­‚ପ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "ସାଂଖିକ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "ଅନà­à¬°à­‚ପ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "ଅନà­à¬°à­‚ପ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "ଅନà­à¬°à­‚ପ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "ସାଂଖିକ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "ଅନà­à¬°à­‚ପ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -80,7 +36,7 @@ msgstr ""
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
"to the ALSA developers."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -93,7 +49,7 @@ msgstr ""
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
"to the ALSA developers."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -106,11 +62,24 @@ msgstr ""
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
"to the ALSA developers."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "ଆଭà­à­Ÿà¬¨à­à¬¤à¬°à­€à¬£ ଧà­à­±à¬¨à¬¿"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "ମଡେମ"
@@ -486,15 +455,25 @@ msgstr "ସà­à¬¥à¬¿à¬¤à¬¿ ଡିରେକà­à¬Ÿà­‹à¬°à­€ %s କୠବà­à­Ÿà¬¬
msgid "Running in system mode: %s"
msgstr "ତନà­à¬¤à­à¬° ଧାରାରେ ଚାଲà­à¬…ଛି: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() ବିଫଳ ହୋଇଛି।"
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "ସତେଜ ଉଚà­à¬š-ବିଭେଦନ ସମୟ ମାପକ ଉପଲବà­à¬§! Bon appetit!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -502,27 +481,27 @@ msgstr ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() ବିଫଳ ହୋଇଛି।"
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "ଡେମନକୠଆରମà­à¬­ କରିବାରେ ବିଫଳ।"
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "ଧାରଣ ହୋଇଥିବା à¬à¬•à¬•à¬¾à¬‚ଶଗà­à¬¡à¬¼à¬¿à¬• ବିନା ଡେମନ ଆରମà­à¬­ ହୋଇଛି, କାରà­à¬¯à­à­Ÿ କରିବାକୠବାରଣ କରà­à¬…ଛି।"
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "ଡେମନ ଆରମà­à¬­ ସମà­à¬ªà­‚ରà­à¬£à­à¬£ ହୋଇଛି।"
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "ଡେମନ ବନà­à¬¦à¬•à­ ଆରମà­à¬­ କରାଯାଇଛି।"
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "ଡେମନକୠସମାପà­à¬¤ କରାଯାଇଛି।"
@@ -890,237 +869,237 @@ msgstr "ତନà­à¬¤à­à¬° ନୀତି PulseAudio କୠଉଚà­à¬š-ପà­à¬°
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr "ତନà­à¬¤à­à¬° ନୀତି PulseAudio କୠପà­à¬°à¬•à­ƒà¬¤-ସମୟ ଯୋଜନାକୠଗà­à¬°à¬¹à¬£ କରିବାରୠଅଟକାଇଥାà¬à¥¤"
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "ମୋନୋ"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "ସାମà­à¬¨à¬¾ ପାଖ କେନà­à¬¦à­à¬°"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "ସାମà­à¬¨à¬¾ ବାମ ପାଖ"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "ସାମà­à¬¨à¬¾ ଡ଼ାହାଣ ପାଖ"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "ପଛ ପାଖ କେନà­à¬¦à­à¬°"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "ପଛ ବାମ ପାଖ"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "ପଛ ଡ଼ାହାଣ ପାଖ"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "ନିମà­à¬¨ ଆବୃତà­à¬¤à¬¿ ପରିତà­à­Ÿà¬¾à¬— କାରୀ"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "ସାମà­à¬¨à¬¾ କେନà­à¬¦à­à¬°-ର-ବାମ ପାଖ"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "ସାମà­à¬¨à¬¾ କେନà­à¬¦à­à¬°-ର-ଡ଼ାହାଣ ପାଖ"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "ବାମ ପାରà­à¬¶à­à­±"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "ଡ଼ାହାଣ ପାରà­à¬¶à­à­±"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "ସହାୟକ 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "ସହାୟକ 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "ସହାୟକ 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "ସହାୟକ 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "ସହାୟକ 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "ସହାୟକ 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "ସହାୟକ 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "ସହାୟକ 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "ସହାୟକ 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "ସହାୟକ 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "ସହାୟକ 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "ସହାୟକ 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "ସହାୟକ 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "ସହାୟକ 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "ସହାୟକ 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "ସହାୟକ 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "ସହାୟକ 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "ସହାୟକ 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "ସହାୟକ 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "ସହାୟକ 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "ସହାୟକ 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "ସହାୟକ 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "ସହାୟକ 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "ସହାୟକ 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "ସହାୟକ 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "ସହାୟକ 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "ସହାୟକ 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "ସହାୟକ 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "ସହାୟକ 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "ସହାୟକ 28"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "ସହାୟକ 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "ସହାୟକ 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "ଉପର କେନà­à¬¦à­à¬°"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "ଉପର ସମà­à¬¨à¬¾ ପାଖ କେନà­à¬¦à­à¬°"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "ଉପର ସାମà­à¬¨à¬¾ ବାମ ପାଖ"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "ଉପର ସାମà­à¬¨à¬¾ ଡ଼ାହାଣ ପାଖ"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "ଉପର ପଛ ପାଖ କେନà­à¬¦à­à¬°"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "ଉପର ପଛ ବାମ ପାଖ"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "ଉପର ପଛ ଡ଼ାହାଣ ପାଖ"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(ଅବୈଧ)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "ଷà­à¬Ÿà­‡à¬°à¬¿à¬“"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "ଚତà­à¬ƒ ପାରà­à¬¶à­à­± 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "ଚତà­à¬ƒ ପାରà­à¬¶à­à­± 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "ଚତà­à¬ƒ ପାରà­à¬¶à­à­± 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "ଚତà­à¬ƒ ପାରà­à¬¶à­à­± 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "ଚତà­à¬ƒ ପାରà­à¬¶à­à­± 7.1"
@@ -1403,7 +1382,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() ବିଫଳ ହୋଇଛି: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "ସଂଯୋଗ ବିଫଳ ହୋଇଛି: %s\n"
@@ -1557,7 +1536,7 @@ msgstr ""
"libpulse %s ସହିତ ସଂକଳିତ\n"
"libpulse %s ସହିତ ସଂଯà­à¬•à­à¬¤\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "ଅବୈଧ ଚà­à­Ÿà¬¾à¬¨à­‡à¬² ମà­à­Ÿà¬¾à¬ª '%s'\n"
@@ -1626,7 +1605,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "ନମà­à¬¨à¬¾ ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n"
@@ -1658,7 +1637,7 @@ msgid "playback"
msgstr "ପଛଚଲା"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() ବିଫଳ ହୋଇଛି।\n"
@@ -1668,7 +1647,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() ବିଫଳ ହୋଇଛି।\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() ବିଫଳ ହୋଇଛି।\n"
@@ -1683,7 +1662,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() ବିଫଳ ହୋଇଛି।\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() ବିଫଳ ହୋଇଛି।\n"
@@ -1713,7 +1692,7 @@ msgstr "ପà­à¬¨à¬ƒ ଚଳନ କରିବାରେ ବିଫଳ: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "WARNING: ଧà­à­±à¬¨à¬¿ ସରà­à¬­à¬°à¬Ÿà¬¿ ସà­à¬¥à¬¾à¬¨à­€à­Ÿ ନà­à¬¹à¬, ନିଲମà­à¬¬à¬¿à¬¤ କରà­à¬¨à¬¾à¬¹à¬¿à¬à¥¤\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT ପାଇଛି, ଉତà­à¬¸à¬¾à¬¹à¬¿à¬¤ କରà­à¬…ଛି।\n"
@@ -1752,32 +1731,32 @@ msgstr ""
"libpulse %s ସହିତ ସଂକଳିତ\n"
"libpulse %s ସହିତ ସଂଯà­à¬•à­à¬¤\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "ପରିସଂଖà­à­Ÿà¬¾à¬¨ ପାଇବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "ବରà­à¬¤à­à¬¤à¬®à¬¾à¬¨ ବà­à­Ÿà¬¬à¬¹à¬¾à¬°à¬°à­‡ ଅଛି: %u ବà­à¬²à¬• ସମà­à¬¦à¬¾à­Ÿ %s ବାଇଟ ଧାରଣ କରିଥାà¬à¥¤\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "ସମଗà­à¬° ଜୀବନରେ ବଣà­à¬Ÿà¬¿à¬¤ ହୋଇଥାà¬: %u ବà­à¬²à¬• ସମà­à¬¦à¬¾à­Ÿ %s ବାଇଟ ଧାରଣ କରିଥାà¬à¥¤\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "ନମà­à¬¨à¬¾ କà­à­Ÿà¬¾à¬¶à­‡ ଆକାର: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "ସରà­à¬­à¬° ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1800,12 +1779,12 @@ msgstr ""
"ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଉତà­à¬¸: %s\n"
"କà­à¬•à¬¿: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "ସିଙà­à¬• ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1844,12 +1823,22 @@ msgstr ""
"\tଗà­à¬£à¬§à¬°à­à¬®:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tରୂପରେଖଗà­à¬¡à¬¼à¬¿à¬•:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tସକà­à¬°à¬¿à­Ÿ ରୂପରେଖା: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "ଉତà­à¬¸ ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1888,20 +1877,20 @@ msgstr ""
"\tଗà­à¬£à¬§à¬°à­à¬®:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/a"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "à¬à¬•à¬•à¬¾à¬‚ଶ ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1918,12 +1907,12 @@ msgstr ""
"\tଗà­à¬£à¬§à¬°à­à¬®:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "ଗà­à¬°à¬¾à¬¹à¬• ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1938,12 +1927,12 @@ msgstr ""
"\tଗà­à¬£à¬§à¬°à­à¬®:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "କାରà­à¬¡ ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1960,22 +1949,22 @@ msgstr ""
"\tଗà­à¬£à¬§à¬°à­à¬®:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tରୂପରେଖଗà­à¬¡à¬¼à¬¿à¬•:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tସକà­à¬°à¬¿à­Ÿ ରୂପରେଖା: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "ସିଙà­à¬• ନିବେଶ ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2012,12 +2001,12 @@ msgstr ""
"\tଗà­à¬£à¬§à¬°à­à¬®:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "ଉତà­à¬¸ ଫଳାଫଳ ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2046,12 +2035,12 @@ msgstr ""
"\tଗà­à¬£à¬§à¬°à­à¬®:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "ନମà­à¬¨à¬¾ ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2082,22 +2071,22 @@ msgstr ""
"\tଗà­à¬£à¬§à¬°à­à¬®:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "ବିଫଳତା: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "ନମà­à¬¨à¬¾à¬•à­ ଧାରଣ କରିବାରେ ବିଫଳ: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "ଫାଇଲର ସମୟ ପୂରà­à¬¬ ସମାପà­à¬¤à¬¿\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2112,6 +2101,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2143,7 +2134,7 @@ msgstr ""
" -n, --client-name=NAME How to call this client on the "
"server\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2154,44 +2145,44 @@ msgstr ""
"libpulse %s ସହିତ ସଂକଳିତ\n"
"libpulse %s ସହିତ ସଂଯà­à¬•à­à¬¤\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "ଧାରଣ କରିବା ପାଇଠଗୋଟିଠନà­à¬®à¬¨à¬¾ ଫାଇଲ ଉଲà­à¬²à­‡à¬– କରନà­à¬¤à­\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "ଧà­à­±à¬¨à¬¿ ଫାଇଲ ଖୋଲିବାରେ ବିଫଳ।\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "ନମà­à¬¨à¬¾ ବିଶେଷ ଲକà­à¬·à¬£ '%s' ସହିତ ଗୋଟିଠ%s ଧାରାକୠଖୋଲà­à¬…ଛି।\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "ଚଲାଇବା ପାଇଠଆପଣଙà­à¬•à­ ଗୋଟିଠନମà­à¬¨à¬¾ ନାମ ଉଲà­à¬²à­‡à¬– କରିବାକୠହେବ\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "କାଢ଼ିବା ପାଇଠଆପଣଙà­à¬•à­ ଗୋଟିଠନମà­à¬¨à¬¾ ନାମ ଉଲà­à¬²à­‡à¬– କରିବାକୠହେବ\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "ଆପଣଙà­à¬•à­ ଗୋଟିଠସିଙà­à¬• ନିବେଶ ଅନà­à¬•à­à¬°à¬®à¬£à¬¿à¬•à¬¾ à¬à¬¬à¬‚ ଗୋଟିଠସିଙà­à¬• ଉଲà­à¬²à­‡à¬– କରିବାକୠହେବ\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "ଆପଣଙà­à¬•à­ ଗୋଟିଠଉତà­à¬¸ ନିରà­à¬—ମ ଅନà­à¬•à­à¬°à¬®à¬£à¬¿à¬•à¬¾ à¬à¬¬à¬‚ ଗୋଟିଠଉତà­à¬¸ ଉଲà­à¬²à­‡à¬– କରିବାକୠହେବ\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "ଆପଣଙà­à¬•à­ ଗୋଟିଠà¬à¬•à¬•à¬¾à¬‚ଶ ନାମ à¬à¬¬à¬‚ ସà­à­±à¬¤à¬¨à­à¬¤à­à¬°à¬šà¬°à¬—à­à¬¡à¬¼à¬¿à¬•à­ ଉଲà­à¬²à­‡à¬– କରିବା ଉଚିତ।\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "ଆପଣଙà­à¬•à­ ଗୋଟିଠà¬à¬•à¬•à¬¾à¬‚ଶ ଅନà­à¬•à­à¬°à¬®à¬£à¬¿à¬•à¬¾à¬•à­ ଉଲà­à¬²à­‡à¬– କରିବା ଉଚିତ ନà­à¬¹à¬\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
@@ -2199,7 +2190,7 @@ msgstr ""
"ଆପଣଙà­à¬•à­ ଗୋଟିà¬à¬°à­ ଅଧିକ ସିଙà­à¬• ଉଲà­à¬²à­‡à¬– କରିବାକୠପଡ଼ିନପାରେ। ଆପଣଙà­à¬•à­ ଗୋଟିଠବà­à¬²à¬¿à¬†à¬¨ ମୂଲà­à­Ÿ ଉଲà­à¬²à­‡à¬– କରିବାକୠ"
"ହେବ।\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
@@ -2207,15 +2198,25 @@ msgstr ""
"ଆପଣଙà­à¬•à­ ଗୋଟିà¬à¬°à­ ଅଧିକ ଉତà­à¬¸ ଉଲà­à¬²à­‡à¬– କରିବାକୠପଡ଼ିନପାରେ। ଆପଣଙà­à¬•à­ ଗୋଟିଠବà­à¬²à¬¿à¬†à¬¨ ମୂଲà­à­Ÿ ଉଲà­à¬²à­‡à¬– କରିବାକୠ"
"ହେବ।\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "ଆପଣଙà­à¬•à­ ଗୋଟିଠକାରà­à¬¡ ନାମ/ଅନà­à¬•à­à¬°à¬®à¬£à¬¿à¬•à¬¾ à¬à¬¬à¬‚ ରୂପରେଖା ନାମ ଉଲà­à¬²à­‡à¬– କରିବାକୠହେବ\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "ଆପଣଙà­à¬•à­ ଗୋଟିଠକାରà­à¬¡ ନାମ/ଅନà­à¬•à­à¬°à¬®à¬£à¬¿à¬•à¬¾ à¬à¬¬à¬‚ ରୂପରେଖା ନାମ ଉଲà­à¬²à­‡à¬– କରିବାକୠହେବ\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "ଆପଣଙà­à¬•à­ ଗୋଟିଠକାରà­à¬¡ ନାମ/ଅନà­à¬•à­à¬°à¬®à¬£à¬¿à¬•à¬¾ à¬à¬¬à¬‚ ରୂପରେଖା ନାମ ଉଲà­à¬²à­‡à¬– କରିବାକୠହେବ\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "କୌଣସି ବୈଧ ନିରà­à¬¦à­à¬¦à­‡à¬¶ ଉଲà­à¬²à­‡à¬– କରାଯାଇନାହିà¬à¥¤\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() ବିଫଳ ହୋଇଛି: %s"
@@ -2339,7 +2340,7 @@ msgstr "ଲେଖନà­à¬¤à­(): %s"
msgid "Cannot access autospawn lock."
msgstr "autospawn ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿà¬¤à¬¾à¬•à­ ଅଭିଗମà­à­Ÿ କରିହେଉ ନାହିà¬"
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2356,7 +2357,7 @@ msgstr ""
"We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() "
"returned 0 or another value < min_avail."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2373,31 +2374,16 @@ msgstr ""
"We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() "
"returned 0 or another value < min_avail."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "ଫଳାଫଳ %s + ନିବେଶ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "ଫଳାଫଳ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "ନିବେଶ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "ଅଫ"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "ଉଚà­à¬š ଫିଡିଲିଟି ପଛଚଲା (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "ଟେଲିଫୋନି ଡà­à­Ÿà­à¬ªà­à¬²à­‡à¬•à­à¬¸ (HSP/HFP)"
@@ -2405,6 +2391,48 @@ msgstr "ଟେଲିଫୋନି ଡà­à­Ÿà­à¬ªà­à¬²à­‡à¬•à­à¬¸ (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "PulseAudio ଧà­à­±à¬¨à¬¿ ସରà­à¬­à¬°"
+#~ msgid "Analog Mono"
+#~ msgstr "ଅନà­à¬°à­‚ପ ମୋନୋ"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "ଅନà­à¬°à­‚ପ ଷà­à¬Ÿà­‡à¬°à¬¿à¬“"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "ସାଂଖିକ ଷà­à¬Ÿà­‡à¬°à¬¿à¬“ (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "ସାଂଖିକ ଷà­à¬Ÿà­‡à¬°à¬¿à¬“ (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "ଅନà­à¬°à­‚ପ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "ସାଂଖିକ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "ଅନà­à¬°à­‚ପ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "ଅନà­à¬°à­‚ପ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "ଅନà­à¬°à­‚ପ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "ସାଂଖିକ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "ଅନà­à¬°à­‚ପ ଚତà­à¬°à­à¬ªà¬¾à¬°à­à¬¶à­à­± 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "ଫଳାଫଳ %s + ନିବେଶ %s"
+
+#~ msgid "Output %s"
+#~ msgstr "ଫଳାଫଳ %s"
+
+#~ msgid "Input %s"
+#~ msgstr "ନିବେଶ %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "ଧାରା ସଫଳତାର ସହିତ ନିରà­à¬®à¬¿à¬¤ ହୋଇଛି\n"
diff --git a/po/pa.po b/po/pa.po
index e36cb5c3..5f5585e0 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx.pa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-06-06 07:38+0530\n"
"Last-Translator: A S Alam <aalam@users.sf.net>\n"
"Language-Team: American English <punjabi-users@lists.sf.net>\n"
@@ -19,51 +19,7 @@ msgstr ""
"X-Generator: Lokalize 0.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਮੋਨੋ"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਟੀਰੀਓ"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "ਡਿਜ਼ੀਟਲ ਸਟੀਰੀਓ (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "ਡਿਜ਼ਿਟਲ ਸਟੀਰੀਓ (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "ਡਿਜ਼ਿਟਲ ਸਰਾਊਂਡਿੰਗ 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "ਡਿਜ਼ਿਟਲ ਸਰਾਊਂਡਿੰਗ 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -74,7 +30,7 @@ msgstr ""
"snd_pcm_avail() ਤੋਂ ਇੱਕ ਮà©à©±à¨² ਮਿਲਿਆ ਹੈ, ਜੋ ਬਹà©à¨¤ ਵੱਡਾ ਹੈ: %lu ਬਾਈਟ (%lu ms)।\n"
"ਇਹ ALSA ਡਰਾਈਵਰ '%s' ਵਿਚਲਾ ਬੱਗ ਲੱਗਦਾ ਹੈ। ਇਸ ਮà©à©±à¨¦à©‡ ਦੀ ALSA ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਰਿਪੋਰਟ ਦਿਓ ਜੀ।"
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -85,7 +41,7 @@ msgstr ""
"snd_pcm_delay() ਤੋਂ ਇੱਕ ਮà©à©±à¨² ਮਿਲਿਆ ਹੈ, ਜੋ ਬਹà©à¨¤ ਵੱਡਾ ਹੈ: %li ਬਾਈਟ (%s%lu ms)।\n"
"ਇਹ ALSA ਡਰਾਈਵਰ '%s' ਵਿਚਲਾ ਬੱਗ ਲੱਗਦਾ ਹੈ। ਇਸ ਮà©à©±à¨¦à©‡ ਦੀ ALSA ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਰਿਪੋਰਟ ਦਿਓ ਜੀ।"
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -96,11 +52,24 @@ msgstr ""
"snd_pcm_mmap_begin() ਤੋਂ ਇੱਕ ਮà©à©±à¨² ਮਿਲਿਆ ਹੈ, ਜੋ ਬਹà©à¨¤ ਵੱਡਾ ਹੈ: %lu ਬਾਈਟ (%lu ms)।\n"
"ਇਹ ALSA ਡਰਾਈਵਰ '%s' ਵਿਚਲਾ ਬੱਗ ਲੱਗਦਾ ਹੈ। ਇਸ ਮà©à©±à¨¦à©‡ ਦੀ ALSA ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਰਿਪੋਰਟ ਦਿਓ ਜੀ।"
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "ਅੰਦਰੂਨੀ ਆਡੀਓ"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "ਮਾਡਮ"
@@ -474,42 +443,52 @@ msgstr "ਸਟੇਟ ਡਾਇਰੈਕਟਰੀ %s ਦੀ ਵਰਤੋਂ।"
msgid "Running in system mode: %s"
msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() ਫੇਲà©à¨¹ ਹੈ।"
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "ਤਾਜ਼ੀ ਹਾਈ-ਰੈਜ਼ੋਲੂਸ਼ਨ ਟਾਈਮਰ ਉਪਲੱਬਧ ਹੈ! Bon appetit!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
msgstr ""
"ਮਿੱਤਰਾ, ਤੇਰਾ ਕਰਨਲ ਪà©à¨°à¨¾à¨£à¨¾ ਹੈ! ਚੀਫ ਦੀ ਅੱਜ ਦੀ ਸਿਫਾਰਸ਼ ਹਾਈ-ਰੈਜ਼ੋਲੂਸ਼ਨ ਟਾਈਮਰ ਯੋਗ ਨਾਲ ਲੀਨਕਸ ਹੈ!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() ਫੇਲà©à¨¹ ਹੈ।"
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "ਡੈਮਨ ਸ਼à©à¨°à©‚ ਕਰਨ ਵਿੱਚ ਫੇਲà©à¨¹à¥¤"
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "ਡੈਮਨ ਸ਼à©à¨°à©‚ਆਤੀ ਬਿਨਾਂ ਕਿਸੇ ਲੋਡ ਕੀਤੇ ਮੈਡਿਊਲ, ਕੰਮ ਕਰਨ ਤੋਂ ਰੋਕ ਰਿਹਾ ਹੈ।"
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "ਡੈਮਨ ਸ਼à©à¨°à©‚ਆਤੀ ਮà©à¨•à©°à¨®à¨²à¥¤"
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "ਡੈਮਨ ਬੰਦ ਕਰਨਾ ਸ਼à©à¨°à©‚ ਹੋ ਗਿਆ।"
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "ਡੈਮਨ ਬੰਦ ਹੋ ਗਿਆ।"
@@ -876,237 +855,237 @@ msgstr "ਸਿਸਟਮ ਪਾਲਸੀ ਪਲਸਆਡੀਓ ਨੂੰ ਵਧà©
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr "ਸਿਸਟਮ ਪਾਲਸੀ ਪਲਸਆਡੀਓ ਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ ਰੀਅਲ-ਟਾਈਮ ਪà©à¨°à¨¾à¨ªà¨¤ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ।"
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "ਮੋਨੋ"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "ਅੱਗੇ ਸੈਂਟਰ"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "ਅੱਗੇ ਖੱਬੇ"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "ਅੱਗੇ ਸੱਜਾ"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "ਪਿੱਛੇ ਸੈਂਟਰ"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "ਪਿੱਛੇ ਖੱਬਾ"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "ਪਿੱਛੇ ਸੱਜਾ"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "ਘੱਟ ਫਰੀਕਿਊਂਸੀ ਇੱਮਟਰ"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "ਅੱਗੇ ਸੈਂਟਰ ਦਾ ਖੱਬੇ"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "ਅੱਗੇ ਸੈਂਟਰ ਦਾ ਸੱਜਾ"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "ਖੱਬੇ ਪਾਸੇ"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "ਸੱਜੇ ਪਾਸੇ"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "à¨à¨—ਜਿਲਰੀ 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "à¨à¨—ਜਿਲਰੀ 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "à¨à¨—ਜਿਲਰੀ 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "à¨à¨—ਜਿਲਰੀ 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "à¨à¨—ਜਿਲਰੀ 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "à¨à¨—ਜਿਲਰੀ 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "à¨à¨—ਜਿਲਰੀ 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "à¨à¨—ਜਿਲਰੀ 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "à¨à¨—ਜਿਲਰੀ 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "à¨à¨—ਜਿਲਰੀ 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "à¨à¨—ਜਿਲਰੀ 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "à¨à¨—ਜਿਲਰੀ 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "à¨à¨—ਜਿਲਰੀ 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "à¨à¨—ਜਿਲਰੀ 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "à¨à¨—ਜਿਲਰੀ 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "à¨à¨—ਜਿਲਰੀ 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "à¨à¨—ਜਿਲਰੀ 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "à¨à¨—ਜਿਲਰੀ 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "à¨à¨—ਜਿਲਰੀ 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "à¨à¨—ਜਿਲਰੀ 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "à¨à¨—ਜਿਲਰੀ 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "à¨à¨—ਜਿਲਰੀ 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "à¨à¨—ਜਿਲਰੀ 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "à¨à¨—ਜਿਲਰੀ 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "à¨à¨—ਜਿਲਰੀ 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "à¨à¨—ਜਿਲਰੀ 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "à¨à¨—ਜਿਲਰੀ 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "à¨à¨—ਜਿਲਰੀ 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "à¨à¨—ਜਿਲਰੀ 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "à¨à¨—ਜਿਲਰੀ 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "à¨à¨—ਜਿਲਰੀ 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "à¨à¨—ਜਿਲਰੀ 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "ਉੱਤੇ ਕੇਂਦਰੀ"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "ਉੱਤੇ ਅੱਗੇ ਸੈਂਟਰ"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "ਉੱਤੇ ਅੱਗੇ ਖੱਬੇ"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "ਉੱਤੇ ਅੱਗੇ ਸੱਜੇ"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "ਉੱਤੇ ਪਿੱਛੇ ਸੈਂਟਰ"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "ਉੱਤੇ ਪਿੱਛੇ ਖੱਬੇ"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "ਉੱਤੇ ਪਿੱਛੇ ਸੱਜੇ"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(ਅਢà©à©±à¨•à¨µà¨¾à¨‚)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "ਸਟੀਰੀਓ"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "ਸਰਾਊਂਡਿੰਗ 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "ਸਰਾਊਂਡਿੰਗ 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "ਸਰਾਊਂਡਿੰਗ 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "ਸਰਾਊਂਡਿੰਗ 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "ਸਰਾਊਂਡਿੰਗ 7.1"
@@ -1389,7 +1368,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() ਫੇਲà©à¨¹ ਹੈ: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "ਕà©à¨¨à©ˆà¨•à¨¶à¨¨ ਫੇਲ: %s\n"
@@ -1546,7 +1525,7 @@ msgstr ""
"libpulse %s ਦੇ ਕੰਪਾਇਲ\n"
"libpulse %s ਨਾਲ ਲਿੰਕ ਕੀਤਾ\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਚੈਨਲ ਮੈਪ '%s'\n"
@@ -1615,7 +1594,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "ਸੈਂਪਲ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n"
@@ -1647,7 +1626,7 @@ msgid "playback"
msgstr "ਪਲੇਅਬੈਕ"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() ਫੇਲà©à¨¹ ਹੈ।\n"
@@ -1657,7 +1636,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() ਫੇਲà©à¨¹ ਹੈ।\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() ਫੇਲà©à¨¹ ਹੈ।\n"
@@ -1672,7 +1651,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() ਫੇਲà©à¨¹ ਹੈ।\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() ਫੇਲà©à¨¹ ਹੈ।\n"
@@ -1702,7 +1681,7 @@ msgstr "ਮà©à©œ-ਪà©à¨°à¨¾à¨ªà¨¤à©€ ਫੇਲ: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "ਚੇਤਾਵਨੀ: ਸਾਊਂਡ ਸਰਵਰ ਲੋਕਲ ਨਹੀਂ ਹੈ, ਸਸਪੈਂਡ ਨਹੀਂ ਹੋ ਰਿਹਾ।\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT ਮਿਲਿਆ, ਬੰਦ ਹੋ ਰਿਹਾ ਹੈ।\n"
@@ -1742,32 +1721,32 @@ msgstr ""
"libpulse %s ਨਾਲ ਕੰਪਾਇਲ\n"
"libpulse %s ਨਾਲ ਲਿੰਕ\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "ਅੰਕੜੇ ਪà©à¨°à¨¾à¨ªà¨¤à©€ ਫੇਲà©à¨¹: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "ਹà©à¨£ ਵਰਤੋਂ ਵਿੱਚ ਹੈ: %u ਬਲਾਕ ਵਿੱਚ ਕà©à©±à¨² %s ਬਾਈਟ ਹਨ।\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "ਪੂਰੇ ਲਾਈਫਟਾਈਮ ਵਿੱਚ ਜਾਰੀ ਕੀਤਾ ਗਿਆ: %u ਬਲਾਕ ਵਿੱਚ ਕà©à©±à¨² %s ਬਾਈਟ ਹਨ।\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "ਸੈਂਪਲ ਕੈਸ਼ ਸਾਈਜ਼: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "ਸਰਵਰ ਜਾਣਕਾਰੀ ਪà©à¨°à¨¾à¨ªà¨¤ ਕਰਨ ਵਿੱਚ ਫੇਲ ਹੋਇਆ: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1790,12 +1769,12 @@ msgstr ""
"Default Source: %s\n"
"Cookie: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "ਸਿੰਕ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲà©à¨¹: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1834,12 +1813,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tਪਰੋਫਾਈਲ:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tਸਰਗਰਮ ਪਰੋਫਾਈਲ: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "ਸਰੋਤ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1878,20 +1867,20 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "ਉਪਲੱਬਧ ਨਹੀਂ"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "ਮੋਡੀਊਲ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1908,12 +1897,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "ਕਲਾਇਟ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1928,12 +1917,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "ਕਾਰਡ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1950,22 +1939,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tਪਰੋਫਾਈਲ:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tਸਰਗਰਮ ਪਰੋਫਾਈਲ: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "ਇੰਪà©à©±à¨Ÿ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲà©à¨¹: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2002,12 +1991,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "ਸਰੋਤ ਆਉਟਪà©à©±à¨Ÿ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2036,12 +2025,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "ਸੈਂਪਲ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2072,22 +2061,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "ਫੇਲà©à¨¹: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "ਸੈਂਪਲ ਅੱਪਲੋਡ ਕਰਨ ਵਿੱਚ ਫੇਲ: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "ਫਾਇਲ ਦਾ ਸਮੇਂ ਤੋਂ ਪਹਿਲਾਂ ਅੰਤ\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2102,6 +2091,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2133,7 +2124,7 @@ msgstr ""
" -n, --client-name=NAME How to call this client on the "
"server\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2144,64 +2135,74 @@ msgstr ""
"Compiled with libpulse %s\n"
"Linked with libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "ਲੋਡ ਕਰਨ ਲਈ ਸੈਂਪਲ ਫਾਇਲ ਦਿਓ\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "ਸਾਊਂਡ ਫਾਇਲ ਖੋਲà©à¨¹à¨£ ਲਈ ਫੇਲà©à¨¹ ਹੈ।\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "ਇੱਕ %s ਸਟਰੀਮ ਨੂੰ ਸੈਂਪਲ ਹਦਾਇਤ '%s' ਨਾਲ ਖੋਲà©à¨¹à¨¿à¨† ਜਾ ਰਿਹਾ ਹੈ।\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "ਖੇਡਣ ਲਈ ਤà©à¨¹à¨¾à¨¨à©‚à©° ਸੈਂਪਲ ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "ਹਟਾਉਣ ਲਈ ਤà©à¨¹à¨¾à¨¨à©‚à©° ਸੈਂਪਲ ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੰਪà©à©±à¨Ÿ ਲਿਸਟ ਅਤੇ ਇੱਕ ਸਿੰਕ ਨੂੰ ਸਿੰਕ ਕਰਨਾ ਪਵੇਗਾ\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਸਰੋਤ ਆਉਟਪà©à©±à¨Ÿ ਲਿਸਟ ਅਤੇ ਇੱਕ ਸਰੋਤ ਦੇਣਾ ਪਵੇਗਾ\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਮੋਡੀਊਲ ਨਾਂ ਅਤੇ ਆਰਗੂਮੈਂਟ ਦੇਣਾ ਪਵੇਗਾ।\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਮੈਡੀਊਲ ਲਿਸਟ ਦੇਣੀ ਪਵੇਗੀ\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr "ਤà©à¨¸à©€à¨‚ ਇੱਕ ਤੋਂ ਵੱਧ ਸਿੰਕ ਨਹੀਂ ਦੇ ਸਕਦੇ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਬà©à¨²à©€à¨…ਨ ਮà©à©±à¨² ਦੇਣਾ ਪਵੇਗਾ।\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr "ਤà©à¨¸à©€à¨‚ ਇੱਕ ਤੋਂ ਵੱਧ ਸਰੋਤ ਨਹੀਂ ਦੇ ਸਕਦੇ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਬà©à¨²à©€à¨…ਨ ਮà©à©±à¨² ਦੇਣਾ ਪਵੇਗਾ।\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਕਾਰਡ ਨਾਂ/ਲਿਸਟ ਅਤੇ ਪਰੋਫਾਈਲ ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਕਾਰਡ ਨਾਂ/ਲਿਸਟ ਅਤੇ ਪਰੋਫਾਈਲ ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਕਾਰਡ ਨਾਂ/ਲਿਸਟ ਅਤੇ ਪਰੋਫਾਈਲ ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "ਕੋਈ ਯੋਗ ਕਮਾਂਡ ਨਹੀਂ ਦਿੱਤੀ।\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() ਫੇਲà©à¨¹ ਹੈ: %s"
@@ -2326,7 +2327,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "autospawn ਲਾਕ ਵਰਤ ਨਹੀਂ ਸਕਦਾ।"
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2343,7 +2344,7 @@ msgstr ""
"We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() "
"returned 0 or another value < min_avail."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2360,31 +2361,16 @@ msgstr ""
"We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() "
"returned 0 or another value < min_avail."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "ਆਉਟਪà©à©±à¨Ÿ %s + ਇੰਪà©à©±à¨Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "ਆਉਟਪà©à©±à¨Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "ਇੰਪà©à©±à¨Ÿ %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "ਬੰਦ"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "ਹਾਈ ਫਡੈਲਿਟੀ ਪਲੇਅਬੈਕ (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "ਟੈਲੀਫੋਨੀ ਡà©à¨ªà¨²à©ˆà¨•à¨¸ (HSP/HFP)"
@@ -2392,6 +2378,48 @@ msgstr "ਟੈਲੀਫੋਨੀ ਡà©à¨ªà¨²à©ˆà¨•à¨¸ (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "ਪਲਸਆਡੀਓ ਸਾਊਂਡ ਡਰਾਇਵਰ"
+#~ msgid "Analog Mono"
+#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਮੋਨੋ"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਟੀਰੀਓ"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "ਡਿਜ਼ੀਟਲ ਸਟੀਰੀਓ (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "ਡਿਜ਼ਿਟਲ ਸਟੀਰੀਓ (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "ਡਿਜ਼ਿਟਲ ਸਰਾਊਂਡਿੰਗ 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "ਡਿਜ਼ਿਟਲ ਸਰਾਊਂਡਿੰਗ 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "à¨à¨¨à¨¾à¨²à¨¾à¨— ਸਰਾਊਂਡਿੰਗ 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "ਆਉਟਪà©à©±à¨Ÿ %s + ਇੰਪà©à©±à¨Ÿ %s"
+
+#~ msgid "Output %s"
+#~ msgstr "ਆਉਟਪà©à©±à¨Ÿ %s"
+
+#~ msgid "Input %s"
+#~ msgstr "ਇੰਪà©à©±à¨Ÿ %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "ਸਟਰੀਮ ਠੀਕ ਤਰà©à¨¹à¨¾à¨‚ ਬਣਾਈ ਗਈ।\n"
diff --git a/po/pt.po b/po/pt.po
index 2facec9c..b44d622d 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-05 08:27+0000\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: \n"
"Last-Translator: Rui Gouveia <rui.gouveia@globaltek.pt>\n"
"Language-Team: pt <fedora-trans-pt@redhat.com>\n"
@@ -12,82 +12,63 @@ msgstr ""
"X-Poedit-Language: Portuguese\n"
"X-Poedit-Country: PORTUGAL\n"
-#: ../src/modules/alsa/alsa-util.c:530
-msgid "Analog Mono"
-msgstr "Mono Analógico"
-
-#: ../src/modules/alsa/alsa-util.c:536
-msgid "Analog Stereo"
-msgstr "Estéreo Analógico"
-
-#: ../src/modules/alsa/alsa-util.c:542
-msgid "Digital Stereo (IEC958)"
-msgstr "Estéreo Digital (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:548
-msgid "Digital Stereo (HDMI)"
-msgstr "Estéreo Digital (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:555
-msgid "Analog Surround 4.0"
-msgstr "Analog Surround 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:562
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Surround Digital 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:570
-msgid "Analog Surround 4.1"
-msgstr "Analog Surround 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:578
-msgid "Analog Surround 5.0"
-msgstr "Analog Surround 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:586
-msgid "Analog Surround 5.1"
-msgstr "Analog Surround 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:594
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Surround Digital 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:603
-msgid "Analog Surround 7.1"
-msgstr "Analog Surround 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1609
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
-"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers."
+"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
+"ms).\n"
+"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
+"to the ALSA developers."
msgstr ""
-"snd_pcm_avail() retornou um valor excepcionalmente elevado: %lu bytes (%lu ms).\n"
-"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este problema aos programadores do ALSA."
+"snd_pcm_avail() retornou um valor excepcionalmente elevado: %lu bytes (%lu "
+"ms).\n"
+"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este "
+"problema aos programadores do ALSA."
-#: ../src/modules/alsa/alsa-util.c:1649
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
-"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%lu ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers."
+"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
+"lu ms).\n"
+"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
+"to the ALSA developers."
msgstr ""
-"snd_pcm_delay() retornou um valor excepcionalmente elevado: %li bytes (%s%lu ms).\n"
-"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este problema aos programadores do ALSA."
+"snd_pcm_delay() retornou um valor excepcionalmente elevado: %li bytes (%s%lu "
+"ms).\n"
+"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este "
+"problema aos programadores do ALSA."
-#: ../src/modules/alsa/alsa-util.c:1695
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
-"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes (%lu ms).\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers."
+"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
+"(%lu ms).\n"
+"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
+"to the ALSA developers."
msgstr ""
-"snd_pcm_mmap_begin() retornou um valor excepcionalmente elevado: %lu bytes (%lu ms).\n"
-"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este problema aos programadores do ALSA."
+"snd_pcm_mmap_begin() retornou um valor excepcionalmente elevado: %lu bytes (%"
+"lu ms).\n"
+"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este "
+"problema aos programadores do ALSA."
-#: ../src/pulsecore/sink.c:2061
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "Ãudio Interno"
-#: ../src/pulsecore/sink.c:2067
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "Modem"
@@ -157,326 +138,371 @@ msgstr "Não foi possível obter autenticação: %s"
msgid "PolicyKit responded with '%s'"
msgstr "PolicyKit respondeu com '%s'"
-#: ../src/daemon/main.c:137
+#: ../src/daemon/main.c:142
#, c-format
msgid "Got signal %s."
msgstr "Foi obtido o sinal %s."
-#: ../src/daemon/main.c:164
+#: ../src/daemon/main.c:169
msgid "Exiting."
msgstr "A sair."
-#: ../src/daemon/main.c:182
+#: ../src/daemon/main.c:187
#, c-format
msgid "Failed to find user '%s'."
msgstr "Falha ao procurar o utilizador '%s'."
-#: ../src/daemon/main.c:187
+#: ../src/daemon/main.c:192
#, c-format
msgid "Failed to find group '%s'."
msgstr "Falha ao procurar o grupo '%s'."
-#: ../src/daemon/main.c:191
+#: ../src/daemon/main.c:196
#, c-format
msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)."
msgstr "Foi encontrado utilizador '%s' (UID %lu) e grupo '%s' (GID %lu)."
-#: ../src/daemon/main.c:196
+#: ../src/daemon/main.c:201
#, c-format
msgid "GID of user '%s' and of group '%s' don't match."
msgstr "GID do utilizador '%s' e do grupo '%s' não coincidem."
-#: ../src/daemon/main.c:201
+#: ../src/daemon/main.c:206
#, c-format
msgid "Home directory of user '%s' is not '%s', ignoring."
msgstr "Directório pessoal do utilizador '%s' não é '%s'. A ignorar."
-#: ../src/daemon/main.c:204
-#: ../src/daemon/main.c:209
+#: ../src/daemon/main.c:209 ../src/daemon/main.c:214
#, c-format
msgid "Failed to create '%s': %s"
msgstr "Falha ao criar o '%s': %s"
-#: ../src/daemon/main.c:216
+#: ../src/daemon/main.c:221
#, c-format
msgid "Failed to change group list: %s"
msgstr "Falhou a alteração da lista de grupos: %s"
-#: ../src/daemon/main.c:232
+#: ../src/daemon/main.c:237
#, c-format
msgid "Failed to change GID: %s"
msgstr "Não foi possível mudar o GID: %s"
-#: ../src/daemon/main.c:248
+#: ../src/daemon/main.c:253
#, c-format
msgid "Failed to change UID: %s"
msgstr "Não foi possível mudar o UID: %s"
-#: ../src/daemon/main.c:262
+#: ../src/daemon/main.c:267
msgid "Successfully dropped root privileges."
msgstr "Privilégios de root cedidos com sucesso."
-#: ../src/daemon/main.c:270
+#: ../src/daemon/main.c:275
msgid "System wide mode unsupported on this platform."
msgstr "Modo de sistema não suportado nesta plataforma."
-#: ../src/daemon/main.c:288
+#: ../src/daemon/main.c:293
#, c-format
msgid "setrlimit(%s, (%u, %u)) failed: %s"
msgstr "setrlimit(%s, (%u, %u)) falhou: %s"
-#: ../src/daemon/main.c:462
+#: ../src/daemon/main.c:481
msgid "Failed to parse command line."
msgstr "Não foi possível processar linha de comando."
-#: ../src/daemon/main.c:486
+#: ../src/daemon/main.c:505
#, c-format
msgid "We're in the group '%s', allowing high-priority scheduling."
msgstr "Estamos no grupo '%s', permitindo escalonamento de alta-prioridade."
-#: ../src/daemon/main.c:493
+#: ../src/daemon/main.c:512
#, c-format
msgid "We're in the group '%s', allowing real-time scheduling."
msgstr "Estamos no grupo '%s', permitindo escalonamento em tempo real."
-#: ../src/daemon/main.c:501
+#: ../src/daemon/main.c:520
msgid "PolicyKit grants us acquire-high-priority privilege."
-msgstr "O PolicyKit permite-nos o privilégio \"acquire-high-priority\" (adquirir alta prioridade)."
+msgstr ""
+"O PolicyKit permite-nos o privilégio \"acquire-high-priority\" (adquirir "
+"alta prioridade)."
-#: ../src/daemon/main.c:504
+#: ../src/daemon/main.c:523
msgid "PolicyKit refuses acquire-high-priority privilege."
-msgstr "O PolicyKit recusa-nos o privilégio \"acquire-high-priority\" (adquirir alta prioridade)."
+msgstr ""
+"O PolicyKit recusa-nos o privilégio \"acquire-high-priority\" (adquirir alta "
+"prioridade)."
-#: ../src/daemon/main.c:509
+#: ../src/daemon/main.c:528
msgid "PolicyKit grants us acquire-real-time privilege."
-msgstr "O PolicyKit permite-nos o privilégio \"acquire-real-time\" (adquirir tempo real)."
+msgstr ""
+"O PolicyKit permite-nos o privilégio \"acquire-real-time\" (adquirir tempo "
+"real)."
-#: ../src/daemon/main.c:512
+#: ../src/daemon/main.c:531
msgid "PolicyKit refuses acquire-real-time privilege."
-msgstr "O PolicyKit recusa-nos o privilégio \"acquire-real-time\" (adquirir tempo real)."
+msgstr ""
+"O PolicyKit recusa-nos o privilégio \"acquire-real-time\" (adquirir tempo "
+"real)."
-#: ../src/daemon/main.c:541
+#: ../src/daemon/main.c:560
#, c-format
msgid ""
-"Called SUID root and real-time and/or high-priority scheduling was requested in the configuration. However, we lack the necessary privileges:\n"
-"We are not in group '%s', PolicyKit refuse to grant us the requested privileges and we have no increase RLIMIT_NICE/RLIMIT_RTPRIO resource limits.\n"
-"For enabling real-time/high-priority scheduling please acquire the appropriate PolicyKit privileges, or become a member of '%s', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user."
+"Called SUID root and real-time and/or high-priority scheduling was requested "
+"in the configuration. However, we lack the necessary privileges:\n"
+"We are not in group '%s', PolicyKit refuse to grant us the requested "
+"privileges and we have no increase RLIMIT_NICE/RLIMIT_RTPRIO resource "
+"limits.\n"
+"For enabling real-time/high-priority scheduling please acquire the "
+"appropriate PolicyKit privileges, or become a member of '%s', or increase "
+"the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user."
msgstr ""
-#: ../src/daemon/main.c:566
-msgid "High-priority scheduling enabled in configuration but not allowed by policy."
-msgstr "Escalonamento de alta prioridade activo na configuração, mas não permitido pela politica."
+#: ../src/daemon/main.c:585
+msgid ""
+"High-priority scheduling enabled in configuration but not allowed by policy."
+msgstr ""
+"Escalonamento de alta prioridade activo na configuração, mas não permitido "
+"pela politica."
-#: ../src/daemon/main.c:595
+#: ../src/daemon/main.c:614
msgid "Successfully increased RLIMIT_RTPRIO"
msgstr "RLIMIT_RTPRIO aumentado com sucesso"
-#: ../src/daemon/main.c:598
+#: ../src/daemon/main.c:617
#, c-format
msgid "RLIMIT_RTPRIO failed: %s"
msgstr "RLIMIT_RTPRIO falhou: %s"
-#: ../src/daemon/main.c:605
+#: ../src/daemon/main.c:624
msgid "Giving up CAP_NICE"
msgstr "A desistir de CAP_NICE"
-#: ../src/daemon/main.c:612
-msgid "Real-time scheduling enabled in configuration but not allowed by policy."
-msgstr "Escalonamento em tempo real activo na configuração, mas não permitido pela politica."
+#: ../src/daemon/main.c:631
+msgid ""
+"Real-time scheduling enabled in configuration but not allowed by policy."
+msgstr ""
+"Escalonamento em tempo real activo na configuração, mas não permitido pela "
+"politica."
-#: ../src/daemon/main.c:673
+#: ../src/daemon/main.c:692
msgid "Daemon not running"
msgstr "Serviço não está a executar"
-#: ../src/daemon/main.c:675
+#: ../src/daemon/main.c:694
#, c-format
msgid "Daemon running as PID %u"
msgstr "Serviço a executar como PID %u"
-#: ../src/daemon/main.c:685
+#: ../src/daemon/main.c:704
#, c-format
msgid "Failed to kill daemon: %s"
msgstr "Tentativa de matar serviço falhou: %s"
-#: ../src/daemon/main.c:703
-msgid "This program is not intended to be run as root (unless --system is specified)."
-msgstr "Este programa não pretende ser executado como root (a não ser que a opção --system seja especificada)."
+#: ../src/daemon/main.c:722
+msgid ""
+"This program is not intended to be run as root (unless --system is "
+"specified)."
+msgstr ""
+"Este programa não pretende ser executado como root (a não ser que a opção --"
+"system seja especificada)."
-#: ../src/daemon/main.c:705
+#: ../src/daemon/main.c:724
msgid "Root privileges required."
msgstr "São necessários privilégios de root."
-#: ../src/daemon/main.c:710
+#: ../src/daemon/main.c:729
msgid "--start not supported for system instances."
msgstr "--start não é suportado para instâncias do sistema."
-#: ../src/daemon/main.c:715
+#: ../src/daemon/main.c:734
msgid "Running in system mode, but --disallow-exit not set!"
msgstr "A executar em modo de sistema, mas --disallow-exit não está definido!"
-#: ../src/daemon/main.c:718
+#: ../src/daemon/main.c:737
msgid "Running in system mode, but --disallow-module-loading not set!"
-msgstr "A executar em modo de sistema, mas --disallow-module-loading não está definido!"
+msgstr ""
+"A executar em modo de sistema, mas --disallow-module-loading não está "
+"definido!"
-#: ../src/daemon/main.c:721
+#: ../src/daemon/main.c:740
msgid "Running in system mode, forcibly disabling SHM mode!"
msgstr "A executar em modo de sistema, a forçar a desactivação do modo SHM!"
-#: ../src/daemon/main.c:726
+#: ../src/daemon/main.c:745
msgid "Running in system mode, forcibly disabling exit idle time!"
-msgstr "A executar em modo de sistema, a forçar a desactivação da saída por inactividade!"
+msgstr ""
+"A executar em modo de sistema, a forçar a desactivação da saída por "
+"inactividade!"
-#: ../src/daemon/main.c:753
+#: ../src/daemon/main.c:772
msgid "Failed to acquire stdio."
msgstr "Não foi possível adquirir o stdio."
-#: ../src/daemon/main.c:759
+#: ../src/daemon/main.c:778
#, c-format
msgid "pipe failed: %s"
msgstr "pipe falhou: %s"
-#: ../src/daemon/main.c:764
+#: ../src/daemon/main.c:783
#, c-format
msgid "fork() failed: %s"
msgstr "fork() falhou: %s"
-#: ../src/daemon/main.c:778
+#: ../src/daemon/main.c:797
#, c-format
msgid "read() failed: %s"
msgstr "read() falhou: %s"
-#: ../src/daemon/main.c:784
+#: ../src/daemon/main.c:803
msgid "Daemon startup failed."
msgstr "Arranque do serviço falhou."
-#: ../src/daemon/main.c:786
+#: ../src/daemon/main.c:805
msgid "Daemon startup successful."
msgstr "Arranque do serviço sucedeu."
-#: ../src/daemon/main.c:856
+#: ../src/daemon/main.c:875
#, c-format
msgid "This is PulseAudio %s"
msgstr "Isto é PulseAudio %s"
-#: ../src/daemon/main.c:857
+#: ../src/daemon/main.c:876
#, c-format
msgid "Compilation host: %s"
msgstr "Máquina de compilação: %s"
-#: ../src/daemon/main.c:858
+#: ../src/daemon/main.c:877
#, c-format
msgid "Compilation CFLAGS: %s"
msgstr "CFLAGS utilizadas na compilação: %s"
-#: ../src/daemon/main.c:861
+#: ../src/daemon/main.c:880
#, c-format
msgid "Running on host: %s"
msgstr "A executar na máquina: %s"
-#: ../src/daemon/main.c:864
+#: ../src/daemon/main.c:883
#, c-format
msgid "Found %u CPUs."
msgstr "Foram encontrados %u CPUs."
-#: ../src/daemon/main.c:866
+#: ../src/daemon/main.c:885
#, c-format
msgid "Page size is %lu bytes"
msgstr "Tamanho da página é %lu bytes"
-#: ../src/daemon/main.c:869
+#: ../src/daemon/main.c:888
msgid "Compiled with Valgrind support: yes"
msgstr "Compilado com suporte para Valgrind: sim"
-#: ../src/daemon/main.c:871
+#: ../src/daemon/main.c:890
msgid "Compiled with Valgrind support: no"
msgstr "Compilado com suporte para Valgrind: não"
-#: ../src/daemon/main.c:874
+#: ../src/daemon/main.c:893
#, c-format
msgid "Running in valgrind mode: %s"
msgstr "A executar em modo \"valgrind\": %s"
-#: ../src/daemon/main.c:877
+#: ../src/daemon/main.c:896
msgid "Optimized build: yes"
msgstr "Optimizado: sim"
-#: ../src/daemon/main.c:879
+#: ../src/daemon/main.c:898
msgid "Optimized build: no"
msgstr "Compilação optimizada: não"
-#: ../src/daemon/main.c:883
+#: ../src/daemon/main.c:902
msgid "NDEBUG defined, all asserts disabled."
msgstr "NDEBUG definido, todas as declarações desactivadas."
-#: ../src/daemon/main.c:885
+#: ../src/daemon/main.c:904
msgid "FASTPATH defined, only fast path asserts disabled."
msgstr "FASTPATH definido, apenas as declarações \"fast path\" desactivadas."
-#: ../src/daemon/main.c:887
+#: ../src/daemon/main.c:906
msgid "All asserts enabled."
msgstr "Todas as declarações desactivadas."
-#: ../src/daemon/main.c:891
+#: ../src/daemon/main.c:910
msgid "Failed to get machine ID"
msgstr "A tentativa de ler o ID da máquina falhou"
-#: ../src/daemon/main.c:894
+#: ../src/daemon/main.c:913
#, c-format
msgid "Machine ID is %s."
msgstr "O ID da máquina é %s."
-#: ../src/daemon/main.c:899
+#: ../src/daemon/main.c:917
+#, fuzzy, c-format
+msgid "Session ID is %s."
+msgstr "O ID da máquina é %s."
+
+#: ../src/daemon/main.c:923
#, c-format
msgid "Using runtime directory %s."
msgstr "Execução a utilizar o directório %s"
-#: ../src/daemon/main.c:904
+#: ../src/daemon/main.c:928
#, c-format
msgid "Using state directory %s."
msgstr "A manter o estado no directório %s."
-#: ../src/daemon/main.c:907
+#: ../src/daemon/main.c:931
#, c-format
msgid "Running in system mode: %s"
msgstr "Execução em modo de sistema: %s"
-#: ../src/daemon/main.c:922
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() falhou."
-#: ../src/daemon/main.c:934
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "Timer \"frescos\" de alta resolução disponíveis. Bom apetite!"
-#: ../src/daemon/main.c:936
-msgid "Dude, your kernel stinks! The chef's recommendation today is Linux with high-resolution timers enabled!"
-msgstr "Oh pá, o teu kernel não presta! O prato do dia recomendado é Linux com timers de alta resolução activos!"
+#: ../src/daemon/main.c:963
+msgid ""
+"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
+"resolution timers enabled!"
+msgstr ""
+"Oh pá, o teu kernel não presta! O prato do dia recomendado é Linux com "
+"timers de alta resolução activos!"
-#: ../src/daemon/main.c:948
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() falhou."
-#: ../src/daemon/main.c:1010
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "Falha ao inicializar serviço."
-#: ../src/daemon/main.c:1015
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "Serviço arrancou sem módulos carregados. A recusar trabalhar."
-#: ../src/daemon/main.c:1032
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "Arranque do serviço completo."
-#: ../src/daemon/main.c:1038
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "Encerramento do serviço iniciado."
-#: ../src/daemon/main.c:1056
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "Serviço terminado."
-#: ../src/daemon/cmdline.c:121
+#: ../src/daemon/cmdline.c:115
#, fuzzy, c-format
msgid ""
"%s [options]\n"
@@ -487,37 +513,48 @@ msgid ""
" --dump-conf Dump default configuration\n"
" --dump-modules Dump list of available modules\n"
" --dump-resample-methods Dump available resample methods\n"
-" --cleanup-shm Cleanup stale shared memory segments\n"
-" --start Start the daemon if it is not running\n"
+" --cleanup-shm Cleanup stale shared memory "
+"segments\n"
+" --start Start the daemon if it is not "
+"running\n"
" -k --kill Kill a running daemon\n"
-" --check Check for a running daemon (only returns exit code)\n"
+" --check Check for a running daemon (only "
+"returns exit code)\n"
"\n"
"OPTIONS:\n"
" --system[=BOOL] Run as system-wide instance\n"
" -D, --daemonize[=BOOL] Daemonize after startup\n"
" --fail[=BOOL] Quit when startup fails\n"
" --high-priority[=BOOL] Try to set high nice level\n"
-" (only available as root, when SUID or\n"
+" (only available as root, when SUID "
+"or\n"
" with elevated RLIMIT_NICE)\n"
" --realtime[=BOOL] Try to enable realtime scheduling\n"
-" (only available as root, when SUID or\n"
+" (only available as root, when SUID "
+"or\n"
" with elevated RLIMIT_RTPRIO)\n"
-" --disallow-module-loading[=BOOL] Disallow module user requested module\n"
+" --disallow-module-loading[=BOOL] Disallow module user requested "
+"module\n"
" loading/unloading after startup\n"
" --disallow-exit[=BOOL] Disallow user requested exit\n"
-" --exit-idle-time=SECS Terminate the daemon when idle and this\n"
+" --exit-idle-time=SECS Terminate the daemon when idle and "
+"this\n"
" time passed\n"
-" --module-idle-time=SECS Unload autoloaded modules when idle and\n"
+" --module-idle-time=SECS Unload autoloaded modules when idle "
+"and\n"
" this time passed\n"
-" --scache-idle-time=SECS Unload autoloaded samples when idle and\n"
+" --scache-idle-time=SECS Unload autoloaded samples when idle "
+"and\n"
" this time passed\n"
" --log-level[=LEVEL] Increase or set verbosity level\n"
" -v Increase the verbosity level\n"
" --log-target={auto,syslog,stderr} Specify the log target\n"
-" --log-meta[=BOOL] Include code location in log messages\n"
+" --log-meta[=BOOL] Include code location in log "
+"messages\n"
" --log-time[=BOOL] Include timestamps in log messages\n"
" --log-backtrace=FRAMES Include a backtrace in log messages\n"
-" -p, --dl-search-path=PATH Set the search path for dynamic shared\n"
+" -p, --dl-search-path=PATH Set the search path for dynamic "
+"shared\n"
" objects (plugins)\n"
" --resample-method=METHOD Use the specified resampling method\n"
" (See --dump-resample-methods for\n"
@@ -528,10 +565,12 @@ msgid ""
" --disable-shm[=BOOL] Disable shared memory support.\n"
"\n"
"STARTUP SCRIPT:\n"
-" -L, --load=\"MODULE ARGUMENTS\" Load the specified plugin module with\n"
+" -L, --load=\"MODULE ARGUMENTS\" Load the specified plugin module "
+"with\n"
" the specified argument\n"
" -F, --file=FILENAME Run the specified script\n"
-" -C Open a command line on the running TTY\n"
+" -C Open a command line on the running "
+"TTY\n"
" after startup\n"
"\n"
" -n Don't load default script file\n"
@@ -542,114 +581,146 @@ msgstr ""
" -h, --help Mostra esta ajuda\n"
" --version Mostra versão\n"
" --dump-conf Despeja configuração por omissão\n"
-" --dump-modules Despeja lista de módulos disponíveis\n"
-" --dump-resample-methods Despeja métodos \"resample\" disponíveis\n"
-" --cleanup-shm Limpar segmentos de memória partilhados encravados\n"
-" --start Inicia o serviço, se ainda não estiver a executar\n"
-" -k --kill Termina o serviço, se estiver a executar \n"
-" --check Verifica se o serviço está a executar (apenas retorna um código de saída)\n"
+" --dump-modules Despeja lista de módulos "
+"disponíveis\n"
+" --dump-resample-methods Despeja métodos \"resample\" "
+"disponíveis\n"
+" --cleanup-shm Limpar segmentos de memória "
+"partilhados encravados\n"
+" --start Inicia o serviço, se ainda não "
+"estiver a executar\n"
+" -k --kill Termina o serviço, se estiver a "
+"executar \n"
+" --check Verifica se o serviço está a "
+"executar (apenas retorna um código de saída)\n"
"\n"
"OPTIONS:\n"
" --system[=BOOL] Executa em modo de sistema\n"
" -D, --daemonize[=BOOL] Passa serviço depois de executar\n"
" --fail[=BOOL] Termina quando o arranque falha\n"
-" --high-priority[=BOOL] Tenta definir um alto nível de execução\n"
-" (apenas disponível como root, quando é SUID ou\n"
+" --high-priority[=BOOL] Tenta definir um alto nível de "
+"execução\n"
+" (apenas disponível como root, quando "
+"é SUID ou\n"
" com níveis elevados de RLIMIT_NICE)\n"
-" --realtime[=BOOL] Tenta activar escalonamento em tempo real\n"
-" (apenas disponível como root, quando é SUID ou\n"
-" com níveis elevados de RLIMIT_RTPRIO)\n"
-" --disallow-module-loading[=BOOL] Desautoriza o carregamento/descarregamento\n"
-" de módulos, pelo utilizador, depois do arranque\n"
-" --disallow-exit[=BOOL] Desautoriza pedidos de saída do utilizador\n"
-" --exit-idle-time=SECS Termina o serviço quando inactivo e já passou\n"
+" --realtime[=BOOL] Tenta activar escalonamento em tempo "
+"real\n"
+" (apenas disponível como root, quando "
+"é SUID ou\n"
+" com níveis elevados de "
+"RLIMIT_RTPRIO)\n"
+" --disallow-module-loading[=BOOL] Desautoriza o carregamento/"
+"descarregamento\n"
+" de módulos, pelo utilizador, depois "
+"do arranque\n"
+" --disallow-exit[=BOOL] Desautoriza pedidos de saída do "
+"utilizador\n"
+" --exit-idle-time=SECS Termina o serviço quando inactivo e "
+"já passou\n"
" este tempo\n"
-" --module-idle-time=SECS Descarregar módulos de carregamento automático quando inactivo e\n"
+" --module-idle-time=SECS Descarregar módulos de carregamento "
+"automático quando inactivo e\n"
" passou este tempo\n"
-" --scache-idle-time=SECS Descarregar amostras de carregamento automático quando inactivas e\n"
+" --scache-idle-time=SECS Descarregar amostras de carregamento "
+"automático quando inactivas e\n"
" passou este tempo\n"
-" --log-level[=LEVEL] Aumenta ou define o nível de verbosidade\n"
+" --log-level[=LEVEL] Aumenta ou define o nível de "
+"verbosidade\n"
" -v Aumenta o nível de verbosidade\n"
" --log-target={auto,syslog,stderr} Especifica o ficheiro de registo\n"
-" --log-meta[=BOOL] Inclui código de localização na mensagem de registo\n"
+" --log-meta[=BOOL] Inclui código de localização na "
+"mensagem de registo\n"
" --log-time[=BOOL] Inclui tempo na mensagem de registo\n"
-" --log-backtrace=FRAMES Inclui informação de tracagem na mensagem de registo\n"
-" -p, --dl-search-path=PATH Define o caminho de procura para os plugins partilhados dinâmicos\n"
-" --resample-method=METHOD Utilizar o método de \"resampling\" especificado\n"
+" --log-backtrace=FRAMES Inclui informação de tracagem na "
+"mensagem de registo\n"
+" -p, --dl-search-path=PATH Define o caminho de procura para os "
+"plugins partilhados dinâmicos\n"
+" --resample-method=METHOD Utilizar o método de \"resampling\" "
+"especificado\n"
" (Ver --dump-resample-methods para\n"
" possíveis valores)\n"
" --use-pid-file[=BOOL] Criar um ficheiro com o PID\n"
-" --no-cpu-limit[=BOOL] Não instala limitadores de load no CPU em\n"
+" --no-cpu-limit[=BOOL] Não instala limitadores de load no "
+"CPU em\n"
" plataformas que o suportam.\n"
-" --disable-shm[=BOOL] Desactivar suporte para memória partilhada.\n"
+" --disable-shm[=BOOL] Desactivar suporte para memória "
+"partilhada.\n"
"\n"
"STARTUP SCRIPT:\n"
-" -L, --load=\"MODULE ARGUMENTS\" Load the specified plugin module with\n"
+" -L, --load=\"MODULE ARGUMENTS\" Load the specified plugin module "
+"with\n"
" the specified argument\n"
" -F, --file=FILENAME Run the specified script\n"
-" -C Open a command line on the running TTY\n"
+" -C Open a command line on the running "
+"TTY\n"
" after startup\n"
"\n"
" -n Don't load default script file\n"
-#: ../src/daemon/cmdline.c:252
+#: ../src/daemon/cmdline.c:247
msgid "--daemonize expects boolean argument"
msgstr "--daemonize espera argumento booleano"
-#: ../src/daemon/cmdline.c:259
+#: ../src/daemon/cmdline.c:254
msgid "--fail expects boolean argument"
msgstr "--fail espera argumento booleano"
-#: ../src/daemon/cmdline.c:269
-msgid "--log-level expects log level argument (either numeric in range 0..4 or one of debug, info, notice, warn, error)."
-msgstr "--log-level espera um argumento para o nível de log (numérico no intervalo 0..4 ou um dos seguintes: debug, info, notice, warn, error)."
+#: ../src/daemon/cmdline.c:264
+msgid ""
+"--log-level expects log level argument (either numeric in range 0..4 or one "
+"of debug, info, notice, warn, error)."
+msgstr ""
+"--log-level espera um argumento para o nível de log (numérico no intervalo "
+"0..4 ou um dos seguintes: debug, info, notice, warn, error)."
-#: ../src/daemon/cmdline.c:281
+#: ../src/daemon/cmdline.c:276
msgid "--high-priority expects boolean argument"
msgstr "--high-priority espera argumento booleano"
-#: ../src/daemon/cmdline.c:288
+#: ../src/daemon/cmdline.c:283
msgid "--realtime expects boolean argument"
msgstr "--realtime espera argumento booleano"
-#: ../src/daemon/cmdline.c:295
+#: ../src/daemon/cmdline.c:290
msgid "--disallow-module-loading expects boolean argument"
msgstr "--disallow-module-loading espera argumento booleano"
-#: ../src/daemon/cmdline.c:302
+#: ../src/daemon/cmdline.c:297
msgid "--disallow-exit expects boolean argument"
msgstr "--disallow-exit espera argumento booleano"
-#: ../src/daemon/cmdline.c:309
+#: ../src/daemon/cmdline.c:304
msgid "--use-pid-file expects boolean argument"
msgstr "--use-pid-file espera argumento booleano"
-#: ../src/daemon/cmdline.c:326
+#: ../src/daemon/cmdline.c:321
msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'."
-msgstr "Destino de ficheiro de registo inválido: utilize 'syslog', 'stderr' ou 'auto'."
+msgstr ""
+"Destino de ficheiro de registo inválido: utilize 'syslog', 'stderr' ou "
+"'auto'."
-#: ../src/daemon/cmdline.c:333
+#: ../src/daemon/cmdline.c:328
msgid "--log-time expects boolean argument"
msgstr "--log-time espera argumento booleano"
-#: ../src/daemon/cmdline.c:340
+#: ../src/daemon/cmdline.c:335
msgid "--log-meta expects boolean argument"
msgstr "--log-meta espera argumento booleano"
-#: ../src/daemon/cmdline.c:359
+#: ../src/daemon/cmdline.c:354
#, c-format
msgid "Invalid resample method '%s'."
msgstr "Método de resample inválido '%s'."
-#: ../src/daemon/cmdline.c:366
+#: ../src/daemon/cmdline.c:361
msgid "--system expects boolean argument"
msgstr "--system espera argumento booleano"
-#: ../src/daemon/cmdline.c:373
+#: ../src/daemon/cmdline.c:368
msgid "--no-cpu-limit expects boolean argument"
msgstr "--no-cpu-limit espera argumento booleano"
-#: ../src/daemon/cmdline.c:380
+#: ../src/daemon/cmdline.c:375
msgid "--disable-shm expects boolean argument"
msgstr "--disable-shm espera argumento booleano"
@@ -688,78 +759,85 @@ msgstr "Utilização: %s\n"
msgid "Load Once: %s\n"
msgstr "Carregar Uma Vez: %s\n"
-#: ../src/daemon/dumpmodules.c:77
+#: ../src/daemon/dumpmodules.c:75
+#, c-format
+msgid "DEPRECATION WARNING: %s\n"
+msgstr ""
+
+#: ../src/daemon/dumpmodules.c:79
#, c-format
msgid "Path: %s\n"
msgstr "Caminho: %s\n"
-#: ../src/daemon/daemon-conf.c:215
+#: ../src/daemon/daemon-conf.c:216
#, c-format
msgid "[%s:%u] Invalid log target '%s'."
msgstr "[%s:%u] ficheiro registo de destino inválido '%s'."
-#: ../src/daemon/daemon-conf.c:231
+#: ../src/daemon/daemon-conf.c:232
#, c-format
msgid "[%s:%u] Invalid log level '%s'."
msgstr "[%s:%u] Nível do ficheiro de registo inválido '%s'."
-#: ../src/daemon/daemon-conf.c:247
+#: ../src/daemon/daemon-conf.c:248
#, c-format
msgid "[%s:%u] Invalid resample method '%s'."
msgstr ""
-#: ../src/daemon/daemon-conf.c:270
+#: ../src/daemon/daemon-conf.c:271
#, c-format
msgid "[%s:%u] Invalid rlimit '%s'."
msgstr "[%s:%u] rlimit inválido '%s'."
-#: ../src/daemon/daemon-conf.c:277
+#: ../src/daemon/daemon-conf.c:278
#, c-format
msgid "[%s:%u] rlimit not supported on this platform."
msgstr "[%s:%u] rlimit não é suportado nesta plataforma."
-#: ../src/daemon/daemon-conf.c:293
+#: ../src/daemon/daemon-conf.c:294
#, c-format
msgid "[%s:%u] Invalid sample format '%s'."
msgstr "[%s:%u] Formato da amostra inválido '%s'."
-#: ../src/daemon/daemon-conf.c:311
+#: ../src/daemon/daemon-conf.c:312
#, c-format
msgid "[%s:%u] Invalid sample rate '%s'."
msgstr ""
-#: ../src/daemon/daemon-conf.c:335
+#: ../src/daemon/daemon-conf.c:336
#, c-format
msgid "[%s:%u] Invalid sample channels '%s'."
msgstr ""
-#: ../src/daemon/daemon-conf.c:353
+#: ../src/daemon/daemon-conf.c:354
#, c-format
msgid "[%s:%u] Invalid channel map '%s'."
msgstr ""
-#: ../src/daemon/daemon-conf.c:371
+#: ../src/daemon/daemon-conf.c:372
#, c-format
msgid "[%s:%u] Invalid number of fragments '%s'."
msgstr "[%s:%u] Número inválido de fragmentos '%s'."
-#: ../src/daemon/daemon-conf.c:389
+#: ../src/daemon/daemon-conf.c:390
#, c-format
msgid "[%s:%u] Invalid fragment size '%s'."
msgstr "[%s:%u] Tamanho do fragmento inválido '%s'."
-#: ../src/daemon/daemon-conf.c:407
+#: ../src/daemon/daemon-conf.c:408
#, c-format
msgid "[%s:%u] Invalid nice level '%s'."
msgstr "[%s:%u] nível nice inválido '%s'."
-#: ../src/daemon/daemon-conf.c:522
+#: ../src/daemon/daemon-conf.c:524
#, c-format
msgid "Failed to open configuration file: %s"
msgstr "Falha ao abrir ficheiro de configuração: %s"
-#: ../src/daemon/daemon-conf.c:538
-msgid "The specified default channel map has a different number of channels than the specified default number of channels."
+#: ../src/daemon/daemon-conf.c:540
+msgid ""
+"The specified default channel map has a different number of channels than "
+"the specified default number of channels."
msgstr ""
#: ../src/daemon/daemon-conf.c:616
@@ -784,7 +862,8 @@ msgid "Start the PulseAudio Sound System"
msgstr "Inciar o Sistema de Som PulseAudio"
#: ../src/daemon/org.pulseaudio.policy.in.h:1
-msgid "High-priority scheduling (negative Unix nice level) for the PulseAudio daemon"
+msgid ""
+"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon"
msgstr ""
#: ../src/daemon/org.pulseaudio.policy.in.h:2
@@ -792,248 +871,245 @@ msgid "Real-time scheduling for the PulseAudio daemon"
msgstr ""
#: ../src/daemon/org.pulseaudio.policy.in.h:3
-msgid "System policy prevents PulseAudio from acquiring high-priority scheduling."
+msgid ""
+"System policy prevents PulseAudio from acquiring high-priority scheduling."
msgstr ""
#: ../src/daemon/org.pulseaudio.policy.in.h:4
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr ""
-#: ../src/pulse/channelmap.c:103
-#: ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Mono"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Frontal Central"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Frontal Esquerda"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Frontal Direita"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "Traseira Central"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "Traseira Esquerda"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "Traseira Direita"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Emissor de Baixa Frequência"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Central Centro-Esquerda"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Central Centro-Direita"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Lateral Esquerda"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "Lateral Direita"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Auxiliar 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Auxiliar 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Auxiliar 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Auxiliar 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Auxiliar 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Auxiliar 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Auxiliar 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Auxiliar 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Auxiliar 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Auxiliar 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Auxiliar 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Auxiliar 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Auxiliar 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Auxiliar 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Auxiliar 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Auxiliar 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Auxiliar 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Auxiliar 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Auxiliar 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Auxiliar 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Auxiliar 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Auxiliar 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Auxiliar 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Auxiliar 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Auxiliar 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Auxiliar 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Auxiliar 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Auxiliar 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Auxiliar 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Auxiliar 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Auxiliar 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Auxiliar 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "Topo Centro"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "Topo Central Centro"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "Topo Frontal Esquerda"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "Topo Frontal Direita"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "Topo Traseira Centro"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "Topo Traseira Esquerda"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "Topo Traseira Direita"
-#: ../src/pulse/channelmap.c:476
-#: ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:170
-#: ../src/pulse/volume.c:196
-#: ../src/pulse/volume.c:216
-#: ../src/pulse/volume.c:246
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(inválido)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "Estéreo"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "Surround 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "Surround 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "Surround 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "Surround 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "Surround 7.1"
@@ -1162,210 +1238,199 @@ msgstr "%.1f KiB"
msgid "%u B"
msgstr "%u B"
-#: ../src/pulse/client-conf-x11.c:55
-#: ../src/utils/pax11publish.c:100
+#: ../src/pulse/client-conf-x11.c:55 ../src/utils/pax11publish.c:100
msgid "XOpenDisplay() failed"
msgstr "XOpenDisplay() falhou"
-#: ../src/pulse/client-conf-x11.c:78
+#: ../src/pulse/client-conf-x11.c:93
msgid "Failed to parse cookie data"
msgstr "Não foi possível processar dados da cookie"
-#: ../src/pulse/client-conf.c:120
+#: ../src/pulse/client-conf.c:110
#, c-format
msgid "Failed to open configuration file '%s': %s"
msgstr "Falha ao abrir ficheiro de configuração '%s': %s"
-#: ../src/pulse/context.c:539
+#: ../src/pulse/context.c:546
msgid "No cookie loaded. Attempting to connect without."
msgstr "Nenhuma cookie carregada. A tentar ligar sem cookie."
-#: ../src/pulse/context.c:669
+#: ../src/pulse/context.c:676
#, c-format
msgid "fork(): %s"
msgstr "fork(): %s"
-#: ../src/pulse/context.c:722
+#: ../src/pulse/context.c:729
#, c-format
msgid "waitpid(): %s"
msgstr "waitpid(): %s"
-#: ../src/pulse/context.c:1387
+#: ../src/pulse/context.c:1403
#, c-format
msgid "Received message for unknown extension '%s'"
msgstr "Recebida mensagem para extensão desconhecida '%s'"
-#: ../src/utils/pacat.c:94
+#: ../src/utils/pacat.c:107
+#, c-format
+msgid "Failed to drain stream: %s\n"
+msgstr "Falhou ao esvaziar fluxo: %s\n"
+
+#: ../src/utils/pacat.c:112
+msgid "Playback stream drained.\n"
+msgstr ""
+
+#: ../src/utils/pacat.c:122
+msgid "Draining connection to server.\n"
+msgstr ""
+
+#: ../src/utils/pacat.c:135
+#, c-format
+msgid "pa_stream_drain(): %s\n"
+msgstr "pa_stream_drain(): %s\n"
+
+#: ../src/utils/pacat.c:158
#, c-format
msgid "pa_stream_write() failed: %s\n"
msgstr "pa_stream_write() falhou: %s\n"
-#: ../src/utils/pacat.c:133
+#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262
#, c-format
msgid "pa_stream_peek() failed: %s\n"
msgstr "pa_stream_peek() falhou: %s\n"
-#: ../src/utils/pacat.c:169
-#, c-format
+#: ../src/utils/pacat.c:302
msgid "Stream successfully created.\n"
msgstr "Fluxo criado com sucesso.\n"
-#: ../src/utils/pacat.c:172
+#: ../src/utils/pacat.c:305
#, c-format
msgid "pa_stream_get_buffer_attr() failed: %s\n"
msgstr "pa_stream_get_buffer_attr() falhou: %s\n"
-#: ../src/utils/pacat.c:176
+#: ../src/utils/pacat.c:309
#, c-format
msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
msgstr "Métricas do Buffer: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"
-#: ../src/utils/pacat.c:179
+#: ../src/utils/pacat.c:312
#, c-format
msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
msgstr "Métricas do Buffer: maxlength=%u, fragsize=%u\n"
-#: ../src/utils/pacat.c:183
+#: ../src/utils/pacat.c:316
#, c-format
msgid "Using sample spec '%s', channel map '%s'.\n"
msgstr ""
-#: ../src/utils/pacat.c:187
+#: ../src/utils/pacat.c:320
#, c-format
msgid "Connected to device %s (%u, %ssuspended).\n"
msgstr "Ligado ao dispositivo %s (%u, %ssuspended).\n"
-#: ../src/utils/pacat.c:197
+#: ../src/utils/pacat.c:330
#, c-format
msgid "Stream error: %s\n"
msgstr "Erro de fluxo: %s\n"
-#: ../src/utils/pacat.c:207
+#: ../src/utils/pacat.c:340
#, c-format
msgid "Stream device suspended.%s \n"
msgstr ""
-#: ../src/utils/pacat.c:209
+#: ../src/utils/pacat.c:342
#, c-format
msgid "Stream device resumed.%s \n"
msgstr ""
-#: ../src/utils/pacat.c:217
+#: ../src/utils/pacat.c:350
#, c-format
msgid "Stream underrun.%s \n"
msgstr "Fluxo com falta de dados.%s \n"
-#: ../src/utils/pacat.c:224
+#: ../src/utils/pacat.c:357
#, c-format
msgid "Stream overrun.%s \n"
msgstr "Fluxo com excesso de dados.%s \n"
-#: ../src/utils/pacat.c:231
+#: ../src/utils/pacat.c:364
#, c-format
msgid "Stream started.%s \n"
msgstr "Fluxo iniciado.%s \n"
-#: ../src/utils/pacat.c:238
+#: ../src/utils/pacat.c:371
#, c-format
msgid "Stream moved to device %s (%u, %ssuspended).%s \n"
msgstr ""
-#: ../src/utils/pacat.c:238
+#: ../src/utils/pacat.c:371
msgid "not "
msgstr "negação"
-#: ../src/utils/pacat.c:245
+#: ../src/utils/pacat.c:378
#, c-format
msgid "Stream buffer attributes changed.%s \n"
msgstr ""
-#: ../src/utils/pacat.c:278
+#: ../src/utils/pacat.c:411
#, c-format
msgid "Connection established.%s \n"
msgstr "Ligação Estabelecida.%s \n"
-#: ../src/utils/pacat.c:281
+#: ../src/utils/pacat.c:414
#, c-format
msgid "pa_stream_new() failed: %s\n"
msgstr "pa_stream_new() falhou: %s\n"
-#: ../src/utils/pacat.c:309
+#: ../src/utils/pacat.c:442
#, c-format
msgid "pa_stream_connect_playback() failed: %s\n"
msgstr "pa_stream_connect_playback() falhou: %s\n"
-#: ../src/utils/pacat.c:315
+#: ../src/utils/pacat.c:448
#, c-format
msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() falhou: %s\n"
-#: ../src/utils/pacat.c:329
-#: ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:762
-#: ../src/utils/paplay.c:183
+#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "Ligação falhou: %s\n"
-#: ../src/utils/pacat.c:349
-#: ../src/utils/paplay.c:75
-#, c-format
-msgid "Failed to drain stream: %s\n"
-msgstr "Falhou ao esvaziar fluxo: %s\n"
-
-#: ../src/utils/pacat.c:354
-#: ../src/utils/paplay.c:80
-#, c-format
-msgid "Playback stream drained.\n"
-msgstr ""
-
-#: ../src/utils/pacat.c:364
-#: ../src/utils/paplay.c:92
-#, c-format
-msgid "Draining connection to server.\n"
-msgstr ""
-
-#: ../src/utils/pacat.c:390
-#, c-format
+#: ../src/utils/pacat.c:495
msgid "Got EOF.\n"
msgstr "Obtive EOF.\n"
-#: ../src/utils/pacat.c:396
-#, c-format
-msgid "pa_stream_drain(): %s\n"
-msgstr "pa_stream_drain(): %s\n"
-
-#: ../src/utils/pacat.c:406
+#: ../src/utils/pacat.c:500
#, c-format
msgid "read() failed: %s\n"
msgstr "read() falhou: %s\n"
-#: ../src/utils/pacat.c:438
+#: ../src/utils/pacat.c:532
#, c-format
msgid "write() failed: %s\n"
msgstr "write() falhou: %s\n"
-#: ../src/utils/pacat.c:459
-#, c-format
+#: ../src/utils/pacat.c:553
msgid "Got signal, exiting.\n"
msgstr "Recebido sinal, a sair.\n"
-#: ../src/utils/pacat.c:473
+#: ../src/utils/pacat.c:567
#, c-format
msgid "Failed to get latency: %s\n"
msgstr "Falhou a obtenção da latência: %s\n"
-#: ../src/utils/pacat.c:478
+#: ../src/utils/pacat.c:572
#, c-format
msgid "Time: %0.3f sec; Latency: %0.0f usec. \r"
msgstr "Tempo: %0.3f sec; Latency: %0.0f usec. \r"
-#: ../src/utils/pacat.c:498
+#: ../src/utils/pacat.c:592
#, c-format
msgid "pa_stream_update_timing_info() failed: %s\n"
msgstr "pa_stream_update_timing_info() falhou: %s\n"
-#: ../src/utils/pacat.c:511
+#: ../src/utils/pacat.c:605
#, c-format
msgid ""
"%s [options]\n"
@@ -1378,30 +1443,54 @@ msgid ""
"\n"
" -v, --verbose Enable verbose operations\n"
"\n"
-" -s, --server=SERVER The name of the server to connect to\n"
-" -d, --device=DEVICE The name of the sink/source to connect to\n"
-" -n, --client-name=NAME How to call this client on the server\n"
-" --stream-name=NAME How to call this stream on the server\n"
-" --volume=VOLUME Specify the initial (linear) volume in range 0...65536\n"
-" --rate=SAMPLERATE The sample rate in Hz (defaults to 44100)\n"
-" --format=SAMPLEFORMAT The sample type, one of s16le, s16be, u8, float32le,\n"
-" float32be, ulaw, alaw, s32le, s32be (defaults to s16ne)\n"
-" --channels=CHANNELS The number of channels, 1 for mono, 2 for stereo\n"
+" -s, --server=SERVER The name of the server to connect "
+"to\n"
+" -d, --device=DEVICE The name of the sink/source to "
+"connect to\n"
+" -n, --client-name=NAME How to call this client on the "
+"server\n"
+" --stream-name=NAME How to call this stream on the "
+"server\n"
+" --volume=VOLUME Specify the initial (linear) volume "
+"in range 0...65536\n"
+" --rate=SAMPLERATE The sample rate in Hz (defaults to "
+"44100)\n"
+" --format=SAMPLEFORMAT The sample type, one of s16le, "
+"s16be, u8, float32le,\n"
+" float32be, ulaw, alaw, s32le, s32be, "
+"s24le, s24be,\n"
+" s24-32le, s24-32be (defaults to "
+"s16ne)\n"
+" --channels=CHANNELS The number of channels, 1 for mono, "
+"2 for stereo\n"
" (defaults to 2)\n"
-" --channel-map=CHANNELMAP Channel map to use instead of the default\n"
-" --fix-format Take the sample format from the sink the stream is\n"
+" --channel-map=CHANNELMAP Channel map to use instead of the "
+"default\n"
+" --fix-format Take the sample format from the sink "
+"the stream is\n"
" being connected to.\n"
-" --fix-rate Take the sampling rate from the sink the stream is\n"
+" --fix-rate Take the sampling rate from the sink "
+"the stream is\n"
" being connected to.\n"
-" --fix-channels Take the number of channels and the channel map\n"
-" from the sink the stream is being connected to.\n"
+" --fix-channels Take the number of channels and the "
+"channel map\n"
+" from the sink the stream is being "
+"connected to.\n"
" --no-remix Don't upmix or downmix channels.\n"
-" --no-remap Map channels by index instead of name.\n"
-" --latency=BYTES Request the specified latency in bytes.\n"
-" --process-time=BYTES Request the specified process time per request in bytes.\n"
+" --no-remap Map channels by index instead of "
+"name.\n"
+" --latency=BYTES Request the specified latency in "
+"bytes.\n"
+" --process-time=BYTES Request the specified process time "
+"per request in bytes.\n"
+" --property=PROPERTY=VALUE Set the specified property to the "
+"specified value.\n"
+" --raw Record/play raw PCM data.\n"
+" --file-format=FFORMAT Record/play formatted PCM data.\n"
+" --list-file-formats List available file formats.\n"
msgstr ""
-#: ../src/utils/pacat.c:612
+#: ../src/utils/pacat.c:727
#, c-format
msgid ""
"pacat %s\n"
@@ -1409,96 +1498,133 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
-#: ../src/utils/pacat.c:669
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
+#, fuzzy, c-format
+msgid "Invalid client name '%s'\n"
+msgstr "Método de resample inválido '%s'."
+
+#: ../src/utils/pacat.c:776
+#, fuzzy, c-format
+msgid "Invalid stream name '%s'\n"
+msgstr "Método de resample inválido '%s'."
+
+#: ../src/utils/pacat.c:813
#, c-format
msgid "Invalid channel map '%s'\n"
msgstr ""
-#: ../src/utils/pacat.c:698
+#: ../src/utils/pacat.c:842
#, c-format
msgid "Invalid latency specification '%s'\n"
msgstr "Especificação da latência inválida '%s'\n"
-#: ../src/utils/pacat.c:705
+#: ../src/utils/pacat.c:849
#, c-format
msgid "Invalid process time specification '%s'\n"
msgstr ""
-#: ../src/utils/pacat.c:716
+#: ../src/utils/pacat.c:861
+#, fuzzy, c-format
+msgid "Invalid property '%s'\n"
+msgstr "Método de resample inválido '%s'."
+
+#: ../src/utils/pacat.c:878
#, c-format
+msgid "Unknown file format %s."
+msgstr ""
+
+#: ../src/utils/pacat.c:897
msgid "Invalid sample specification\n"
msgstr "Especificação da amostra inválida\n"
-#: ../src/utils/pacat.c:721
+#: ../src/utils/pacat.c:907
#, c-format
+msgid "open(): %s\n"
+msgstr "open(): %s\n"
+
+#: ../src/utils/pacat.c:912
+#, c-format
+msgid "dup2(): %s\n"
+msgstr "dup2(): %s\n"
+
+#: ../src/utils/pacat.c:919
+msgid "Too many arguments.\n"
+msgstr "demasiados argumentos.\n"
+
+#: ../src/utils/pacat.c:930
+#, fuzzy
+msgid "Failed to generate sample specification for file.\n"
+msgstr "não foi possível obter informações da amostra: %s\n"
+
+#: ../src/utils/pacat.c:950
+#, fuzzy
+msgid "Failed to open audio file.\n"
+msgstr "Falha ao abrir ficheiro de som.\n"
+
+#: ../src/utils/pacat.c:956
+msgid ""
+"Warning: specified sample specification will be overwritten with "
+"specification from file.\n"
+msgstr ""
+
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
+#, fuzzy
+msgid "Failed to determine sample specification from file.\n"
+msgstr "não foi possível obter informações da amostra: %s\n"
+
+#: ../src/utils/pacat.c:968
+msgid "Warning: Failed to determine channel map from file.\n"
+msgstr ""
+
+#: ../src/utils/pacat.c:979
msgid "Channel map doesn't match sample specification\n"
msgstr ""
-#: ../src/utils/pacat.c:728
+#: ../src/utils/pacat.c:990
+msgid "Warning: failed to write channel map to file.\n"
+msgstr ""
+
+#: ../src/utils/pacat.c:1005
#, c-format
-msgid "Opening a %s stream with sample specification '%s'.\n"
+msgid ""
+"Opening a %s stream with sample specification '%s' and channel map '%s'.\n"
msgstr ""
-#: ../src/utils/pacat.c:728
+#: ../src/utils/pacat.c:1006
msgid "recording"
msgstr "a gravar"
-#: ../src/utils/pacat.c:728
+#: ../src/utils/pacat.c:1006
msgid "playback"
msgstr "reprodução"
-#: ../src/utils/pacat.c:736
-#, c-format
-msgid "open(): %s\n"
-msgstr "open(): %s\n"
-
-#: ../src/utils/pacat.c:741
-#, c-format
-msgid "dup2(): %s\n"
-msgstr "dup2(): %s\n"
-
-#: ../src/utils/pacat.c:751
-#, c-format
-msgid "Too many arguments.\n"
-msgstr "demasiados argumentos.\n"
-
-#: ../src/utils/pacat.c:764
-#: ../src/utils/pasuspender.c:280
-#: ../src/utils/pactl.c:1017
-#: ../src/utils/paplay.c:381
+#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() falhou.\n"
-#: ../src/utils/pacat.c:785
-#, c-format
+#: ../src/utils/pacat.c:1051
msgid "io_new() failed.\n"
msgstr "io_new() falhou.\n"
-#: ../src/utils/pacat.c:791
-#: ../src/utils/pasuspender.c:293
-#: ../src/utils/pactl.c:1031
-#: ../src/utils/paplay.c:396
+#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() falhou.\n"
-#: ../src/utils/pacat.c:799
-#: ../src/utils/pactl.c:1037
-#: ../src/utils/paplay.c:404
-#, c-format
-msgid "pa_context_connect() failed: %s"
+#: ../src/utils/pacat.c:1066
+#, fuzzy, c-format
+msgid "pa_context_connect() failed: %s\n"
msgstr "pa_context_connect() falhou: %s"
-#: ../src/utils/pacat.c:810
-#, c-format
+#: ../src/utils/pacat.c:1077
msgid "time_new() failed.\n"
msgstr "time_new() falhou.\n"
-#: ../src/utils/pacat.c:817
-#: ../src/utils/pasuspender.c:301
-#: ../src/utils/pactl.c:1042
-#: ../src/utils/paplay.c:410
+#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() falhou.\n"
@@ -1528,9 +1654,7 @@ msgstr "Falhou ao restaurar: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "Atenção: Servidor de Som não local, suspender ignorado.\n"
-#: ../src/utils/pasuspender.c:176
-#: ../src/utils/pactl.c:768
-#: ../src/utils/paplay.c:191
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "Obtido SIGINT, a sair.\n"
@@ -1547,11 +1671,12 @@ msgid ""
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
-" -s, --server=SERVER The name of the server to connect to\n"
+" -s, --server=SERVER The name of the server to connect "
+"to\n"
"\n"
msgstr ""
-#: ../src/utils/pasuspender.c:251
+#: ../src/utils/pasuspender.c:248
#, c-format
msgid ""
"pasuspender %s\n"
@@ -1559,32 +1684,32 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
-#: ../src/utils/pactl.c:108
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "Falhou a obtenção de estatísticas: %s\n"
-#: ../src/utils/pactl.c:114
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr ""
-#: ../src/utils/pactl.c:117
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr ""
-#: ../src/utils/pactl.c:120
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "Tamanho cache da amostra: %s\n"
-#: ../src/utils/pactl.c:129
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "Não foi possível obter informações do servidor: %s\n"
-#: ../src/utils/pactl.c:137
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1598,12 +1723,12 @@ msgid ""
"Cookie: %08x\n"
msgstr ""
-#: ../src/utils/pactl.c:178
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "não foi possível obter informações do depósito: %s\n"
-#: ../src/utils/pactl.c:194
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1625,12 +1750,22 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:258
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tPrefis:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tPerfil Activo: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "não foi possível obter informações da fonte: %s\n"
-#: ../src/utils/pactl.c:274
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1652,28 +1787,20 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:306
-#: ../src/utils/pactl.c:350
-#: ../src/utils/pactl.c:385
-#: ../src/utils/pactl.c:422
-#: ../src/utils/pactl.c:481
-#: ../src/utils/pactl.c:482
-#: ../src/utils/pactl.c:492
-#: ../src/utils/pactl.c:536
-#: ../src/utils/pactl.c:537
-#: ../src/utils/pactl.c:543
-#: ../src/utils/pactl.c:586
-#: ../src/utils/pactl.c:587
-#: ../src/utils/pactl.c:594
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/d"
-#: ../src/utils/pactl.c:324
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "não foi possível obter informações do módulo: %s\n"
-#: ../src/utils/pactl.c:342
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1684,12 +1811,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:361
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "não foi possível obter informações do cliente: %s\n"
-#: ../src/utils/pactl.c:379
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1699,12 +1826,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:396
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "não foi possível obter informações da carta: %s\n"
-#: ../src/utils/pactl.c:414
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1715,22 +1842,22 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:428
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tPrefis:\n"
-#: ../src/utils/pactl.c:434
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tPerfil Activo: %s\n"
-#: ../src/utils/pactl.c:445
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:464
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -1751,12 +1878,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:503
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:523
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -1773,12 +1900,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:554
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "não foi possível obter informações da amostra: %s\n"
-#: ../src/utils/pactl.c:572
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -1796,23 +1923,21 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:602
-#: ../src/utils/pactl.c:612
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "Falhou: %s\n"
-#: ../src/utils/pactl.c:636
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "Não foi possível enviar amostra: %s\n"
-#: ../src/utils/pactl.c:653
-#, c-format
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "Fim prematuro de ficheiro\n"
-#: ../src/utils/pactl.c:774
+#: ../src/utils/pactl.c:826
#, c-format
msgid ""
"%s [options] stat\n"
@@ -1828,15 +1953,19 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
"\n"
-" -s, --server=SERVER The name of the server to connect to\n"
-" -n, --client-name=NAME How to call this client on the server\n"
+" -s, --server=SERVER The name of the server to connect "
+"to\n"
+" -n, --client-name=NAME How to call this client on the "
+"server\n"
msgstr ""
-#: ../src/utils/pactl.c:826
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -1847,66 +1976,81 @@ msgstr ""
"Compilado com libpulse %s\n"
"Linkado com libpulse %s\n"
-#: ../src/utils/pactl.c:865
-#, c-format
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "Por favor, especifique um ficheiro de amostra para carregar\n"
-#: ../src/utils/pactl.c:887
-#, c-format
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "Falha ao abrir ficheiro de som.\n"
-#: ../src/utils/pactl.c:899
-#, c-format
+#: ../src/utils/pactl.c:951
+msgid "Warning: Failed to determine sample specification from file.\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "Tem de especificar um nome de amostra para reproduzir\n"
-#: ../src/utils/pactl.c:911
-#, c-format
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "Tem de especificar um nome de amostra para remover\n"
-#: ../src/utils/pactl.c:919
-#, c-format
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "Tem de especificar um índice de entrada de depósito e um depósito\n"
-#: ../src/utils/pactl.c:928
-#, c-format
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "Tem de especificar um índice de saída de fonte e uma fonte\n"
-#: ../src/utils/pactl.c:942
-#, c-format
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "Tem de especificar um nome de módulo e argumentos.\n"
-#: ../src/utils/pactl.c:962
-#, c-format
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "Tem de especificar um índice de módulo\n"
-#: ../src/utils/pactl.c:972
-#, c-format
-msgid "You may not specify more than one sink. You have to specify a boolean value.\n"
-msgstr "Não pode especificar mais do que um depósito. Tem de especificar um valor booleano.\n"
+#: ../src/utils/pactl.c:1037
+msgid ""
+"You may not specify more than one sink. You have to specify a boolean "
+"value.\n"
+msgstr ""
+"Não pode especificar mais do que um depósito. Tem de especificar um valor "
+"booleano.\n"
-#: ../src/utils/pactl.c:985
-#, c-format
-msgid "You may not specify more than one source. You have to specify a boolean value.\n"
-msgstr "Não pode especificar mais do que uma fonte. Tem de especificar um valor booleano.\n"
+#: ../src/utils/pactl.c:1050
+msgid ""
+"You may not specify more than one source. You have to specify a boolean "
+"value.\n"
+msgstr ""
+"Não pode especificar mais do que uma fonte. Tem de especificar um valor "
+"booleano.\n"
-#: ../src/utils/pactl.c:997
-#, c-format
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "Tem de especificar um nome/índice de carta e um nome de perfil\n"
-#: ../src/utils/pactl.c:1012
-#, c-format
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "Tem de especificar um nome/índice de carta e um nome de perfil\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "Tem de especificar um nome/índice de carta e um nome de perfil\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "O comando especificado é inválido.\n"
+#: ../src/utils/pactl.c:1122
+#, c-format
+msgid "pa_context_connect() failed: %s"
+msgstr "pa_context_connect() falhou: %s"
+
#: ../src/utils/pax11publish.c:61
#, c-format
msgid ""
@@ -1914,7 +2058,8 @@ msgid ""
"\n"
" -d Show current PulseAudio data attached to X11 display (default)\n"
" -e Export local PulseAudio data to X11 display\n"
-" -i Import PulseAudio data from X11 display to local environment variables and cookie file.\n"
+" -i Import PulseAudio data from X11 display to local environment "
+"variables and cookie file.\n"
" -r Remove PulseAudio data from X11 display\n"
msgstr ""
@@ -1978,163 +2123,160 @@ msgstr "Não foi possível carregar os dados da cookie\n"
msgid "Not yet implemented.\n"
msgstr "Ainda não implementado.\n"
-#: ../src/utils/pacmd.c:64
+#: ../src/utils/pacmd.c:61
+msgid "No PulseAudio daemon running, or not running as session daemon."
+msgstr ""
+
+#: ../src/utils/pacmd.c:66
#, c-format
msgid "socket(PF_UNIX, SOCK_STREAM, 0): %s"
msgstr "socket(PF_UNIX, SOCK_STREAM, 0): %s"
-#: ../src/utils/pacmd.c:81
+#: ../src/utils/pacmd.c:83
#, c-format
msgid "connect(): %s"
msgstr "connect(): %s"
-#: ../src/utils/pacmd.c:89
+#: ../src/utils/pacmd.c:91
msgid "Failed to kill PulseAudio daemon."
msgstr "Não foi possível terminar o serviço PulseAudio."
-#: ../src/utils/pacmd.c:97
+#: ../src/utils/pacmd.c:99
msgid "Daemon not responding."
msgstr "Serviço não responde."
-#: ../src/utils/pacmd.c:144
+#: ../src/utils/pacmd.c:146
#, c-format
msgid "select(): %s"
msgstr "select(): %s"
-#: ../src/utils/pacmd.c:154
-#: ../src/utils/pacmd.c:171
+#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173
#, c-format
msgid "read(): %s"
msgstr "read(): %s"
-#: ../src/utils/pacmd.c:187
-#: ../src/utils/pacmd.c:201
+#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203
#, c-format
msgid "write(): %s"
msgstr "write(): %s"
-#: ../src/utils/paplay.c:139
-#, c-format
-msgid "Stream successfully created\n"
-msgstr "Fluxo criado com sucesso\n"
-
-#: ../src/utils/paplay.c:144
-#, c-format
-msgid "Stream errror: %s\n"
-msgstr "Erro de fluxo: %s\n"
-
-#: ../src/utils/paplay.c:165
-#, c-format
-msgid "Connection established.\n"
-msgstr "Ligação Estabelecida.\n"
+#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207
+msgid "Cannot access autospawn lock."
+msgstr "Impossível aceder ao lock \"autospawn\"."
-#: ../src/utils/paplay.c:198
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
-"%s [options] [FILE]\n"
-"\n"
-" -h, --help Show this help\n"
-" --version Show version\n"
-"\n"
-" -v, --verbose Enable verbose operation\n"
-"\n"
-" -s, --server=SERVER The name of the server to connect to\n"
-" -d, --device=DEVICE The name of the sink to connect to\n"
-" -n, --client-name=NAME How to call this client on the server\n"
-" --stream-name=NAME How to call this stream on the server\n"
-" --volume=VOLUME Specify the initial (linear) volume in range 0...65536\n"
-" --channel-map=CHANNELMAP Set the channel map to the use\n"
+"ALSA woke us up to write new data to the device, but there was actually "
+"nothing to write!\n"
+"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
+"to the ALSA developers.\n"
+"We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() "
+"returned 0 or another value < min_avail."
msgstr ""
+"ALSA acordou-nos para escrever novos dados para o dispositivo, mas não havia "
+"nada para escrever!\n"
+"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este "
+"problema aos programadores do ALSA.\n"
+"Fomos acordados pelo conjunto POLLOUT -- contudo uma chamada a seguir de "
+"snd_pcm_avail() retornou 0 ou outro valor < min_avail."
-#: ../src/utils/paplay.c:255
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
-"paplay %s\n"
-"Compiled with libpulse %s\n"
-"Linked with libpulse %s\n"
+"ALSA woke us up to read new data from the device, but there was actually "
+"nothing to read!\n"
+"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
+"to the ALSA developers.\n"
+"We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() "
+"returned 0 or another value < min_avail."
msgstr ""
-"paplay %s\n"
-"Compilado com libpulse %s\n"
-"Linkado com libpulse %s\n"
+"ALSA acordou-nos para ler novos dados do dispositivo, mas não havia nada "
+"para ler!\n"
+"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este "
+"problema aos programadores do ALSA.\n"
+"Fomos acordados pelo conjunto POLLIN -- contudo uma chamada a seguir de "
+"snd_pcm_avail() retornou 0 ou outro valor < min_avail."
+
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
+msgid "Off"
+msgstr "Desligado"
-#: ../src/utils/paplay.c:292
-#, c-format
-msgid "Invalid channel map\n"
-msgstr ""
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
+msgid "High Fidelity Playback (A2DP)"
+msgstr "Reprodução Alta Fidelidade (A2DP)"
-#: ../src/utils/paplay.c:314
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Falha ao abrir o ficheiro '%s'\n"
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
+msgid "Telephony Duplex (HSP/HFP)"
+msgstr "Telefonia Duplex (HSP/HFP)"
-#: ../src/utils/paplay.c:350
-#, c-format
-msgid "Channel map doesn't match file.\n"
-msgstr ""
+#: ../src/modules/reserve-wrap.c:151
+msgid "PulseAudio Sound Server"
+msgstr "Servidor de Som PulseAudio"
-#: ../src/utils/paplay.c:376
-#, c-format
-msgid "Using sample spec '%s'\n"
-msgstr "Utilizando especificação da amostra '%s'\n"
+#~ msgid "Analog Mono"
+#~ msgstr "Mono Analógico"
-#: ../src/pulsecore/lock-autospawn.c:126
-#: ../src/pulsecore/lock-autospawn.c:207
-msgid "Cannot access autospawn lock."
-msgstr "Impossível aceder ao lock \"autospawn\"."
+#~ msgid "Analog Stereo"
+#~ msgstr "Estéreo Analógico"
-#: ../src/modules/alsa/alsa-sink.c:393
-#: ../src/modules/alsa/alsa-sink.c:535
-#, c-format
-msgid ""
-"ALSA woke us up to write new data to the device, but there was actually nothing to write!\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers.\n"
-"We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail."
-msgstr ""
-"ALSA acordou-nos para escrever novos dados para o dispositivo, mas não havia nada para escrever!\n"
-"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este problema aos programadores do ALSA.\n"
-"Fomos acordados pelo conjunto POLLOUT -- contudo uma chamada a seguir de snd_pcm_avail() retornou 0 ou outro valor < min_avail."
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Estéreo Digital (IEC958)"
-#: ../src/modules/alsa/alsa-source.c:377
-#: ../src/modules/alsa/alsa-source.c:510
-#, c-format
-msgid ""
-"ALSA woke us up to read new data from the device, but there was actually nothing to read!\n"
-"Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers.\n"
-"We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail."
-msgstr ""
-"ALSA acordou-nos para ler novos dados do dispositivo, mas não havia nada para ler!\n"
-"Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este problema aos programadores do ALSA.\n"
-"Fomos acordados pelo conjunto POLLIN -- contudo uma chamada a seguir de snd_pcm_avail() retornou 0 ou outro valor < min_avail."
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Estéreo Digital (HDMI)"
-#: ../src/modules/alsa/module-alsa-card.c:114
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "Saída %s + Entrada %s"
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Analog Surround 4.0"
-#: ../src/modules/alsa/module-alsa-card.c:117
-#, c-format
-msgid "Output %s"
-msgstr "Saída %s"
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Surround Digital 4.0 (IEC958/AC3)"
-#: ../src/modules/alsa/module-alsa-card.c:121
-#, c-format
-msgid "Input %s"
-msgstr "Entrada %s"
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Analog Surround 4.1"
-#: ../src/modules/alsa/module-alsa-card.c:170
-#: ../src/modules/bluetooth/module-bluetooth-device.c:1864
-msgid "Off"
-msgstr "Desligado"
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Analog Surround 5.0"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:1834
-msgid "High Fidelity Playback (A2DP)"
-msgstr "Reprodução Alta Fidelidade (A2DP)"
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Analog Surround 5.1"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:1849
-msgid "Telephony Duplex (HSP/HFP)"
-msgstr "Telefonia Duplex (HSP/HFP)"
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Surround Digital 5.1 (IEC958/AC3)"
-#: ../src/modules/reserve-wrap.c:125
-msgid "PulseAudio Sound Server"
-msgstr "Servidor de Som PulseAudio"
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Analog Surround 7.1"
+
+#~ msgid "Stream successfully created\n"
+#~ msgstr "Fluxo criado com sucesso\n"
+
+#~ msgid "Stream errror: %s\n"
+#~ msgstr "Erro de fluxo: %s\n"
+
+#~ msgid "Connection established.\n"
+#~ msgstr "Ligação Estabelecida.\n"
+
+#~ msgid ""
+#~ "paplay %s\n"
+#~ "Compiled with libpulse %s\n"
+#~ "Linked with libpulse %s\n"
+#~ msgstr ""
+#~ "paplay %s\n"
+#~ "Compilado com libpulse %s\n"
+#~ "Linkado com libpulse %s\n"
+
+#~ msgid "Failed to open file '%s'\n"
+#~ msgstr "Falha ao abrir o ficheiro '%s'\n"
+
+#~ msgid "Using sample spec '%s'\n"
+#~ msgstr "Utilizando especificação da amostra '%s'\n"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "Saída %s + Entrada %s"
+
+#~ msgid "Output %s"
+#~ msgstr "Saída %s"
+#~ msgid "Input %s"
+#~ msgstr "Entrada %s"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index c89acf2e..fd4f5391 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2008-11-21 01:21-0300\n"
"Last-Translator: Henrique (LonelySpooky) Junior <lspooky@fedoraproject.org>\n"
"Language-Team: Brazilian-Portuguese <fedora-trans-pt_br@redhat.com>\n"
@@ -18,51 +18,7 @@ msgstr ""
"X-Poedit-Language: Brazilian Portuguese\n"
"X-Poedit-Country: Brazil\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -71,7 +27,7 @@ msgid ""
"to the ALSA developers."
msgstr ""
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -80,7 +36,7 @@ msgid ""
"to the ALSA developers."
msgstr ""
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -89,12 +45,25 @@ msgid ""
"to the ALSA developers."
msgstr ""
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
#, fuzzy
msgid "Internal Audio"
msgstr "Erro interno"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr ""
@@ -471,15 +440,25 @@ msgstr "Usando o diretório de estado %s."
msgid "Running in system mode: %s"
msgstr "Executando em modo do sistema: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() falhou."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "Timers de alta resolução frequinhos disponíveis! Bon appetit!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -487,28 +466,28 @@ msgstr ""
"Cara, teu kernel fede! A recomendação do chef hoje é Linux com timers de "
"alta resolução habilitados!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() falhou."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "Falha em iniciar o daemon."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr ""
"O Daemon iniciou sem qualquer módulo carregado, recusando-se a trabalhar."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "A partida dos Daemon está completa."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "O encerramento do Daemon foi iniciado."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "Daemon terminado."
@@ -886,237 +865,237 @@ msgstr "Estamos no grupo '%s', permitindo escalonamento de alta prioridade."
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr ""
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Mono"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Fronto-cental"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Frontal esquerdo"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Frontal direito"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "Posterior central"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "Posterior esquerdo"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "Posterior direito"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Emissor de baixa freqüência"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Frontal Esquerdo do centro"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Frontal Direito do centro"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Lateral esquedo"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "Lateral direito"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Auxiliar 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Auxiliar 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Auxiliar 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Auxiliar 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Auxiliar 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Auxiliar 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Auxiliar 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Auxiliar 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Auxiliar 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Auxiliar 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Auxiliar 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Auxiliar 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Auxiliar 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Auxiliar13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Auxiliar 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Auxiliar 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Auxiliar 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Auxiliar 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Auxiliar 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Auxiliar 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Auxiliar 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Auxiliar 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Auxiliar 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Auxiliar 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Auxiliar 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Auxiliar 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Auxiliar 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Auxiliar 26"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Auxiliar 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Auxiliar 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Auxiliar 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Auxiliar 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "Central Superior"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "Central Frontal Superior"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "Frontal Superior Esquerdo"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "Fontal Superior Direito"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "Central Superior Posterior"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "Posterior Superior Esquerdo"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "Posterior Superior Direito"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(Inválido)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr ""
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr ""
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr ""
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr ""
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr ""
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr ""
@@ -1399,7 +1378,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() falhou: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "Falha na conexão: %s\n"
@@ -1552,7 +1531,7 @@ msgstr ""
"Compilado com libpulse %s\n"
"Linkado com libpulse %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "Mapa de canal inválido '%s'\n"
@@ -1621,7 +1600,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "Falha em obter informações sobre a amostragem: %s\n"
@@ -1653,7 +1632,7 @@ msgid "playback"
msgstr "playback"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() falhou.\n"
@@ -1663,7 +1642,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() falhou.\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() falhou.\n"
@@ -1678,7 +1657,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() falhou.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() falhou.\n"
@@ -1710,7 +1689,7 @@ msgstr ""
"AVISO: O servidor de som não é local, Sound server is not local, não está em "
"suspenso.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "Recebido o SIGINT, saindo.\n"
@@ -1749,32 +1728,32 @@ msgstr ""
"Compilado com libpulse %s\n"
"Linkado com libpulse %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "Falha em obter as estatísticas: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "Em uso no momento: %u blocos contendo %s bytes no total.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "Alocado por todo o tempo: %u blocos contendo %s bytes no total.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "Tamanho do cache para amostragem: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "Falha em obter a informação do servidor: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, fuzzy, c-format
msgid ""
"User name: %s\n"
@@ -1796,12 +1775,12 @@ msgstr ""
"Fonte padrão %s\n"
"Cookie: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "Falha em obter a informação do destino: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, fuzzy, c-format
msgid ""
"Sink #%u\n"
@@ -1835,12 +1814,22 @@ msgstr ""
"Propriedades:\n"
"%s"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, c-format
+msgid "\tPorts:\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "O pipe falhou: %s"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "Falha em obter a informação da fonte: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, fuzzy, c-format
msgid ""
"Source #%u\n"
@@ -1874,20 +1863,20 @@ msgstr ""
"Propriedades:\n"
"%s"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/a"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "Falha em obter a informação do módulo: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, fuzzy, c-format
msgid ""
"Module #%u\n"
@@ -1903,12 +1892,12 @@ msgstr ""
"Contador de uso: %s\n"
"Auto descarregar: %s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "Falhou ao obter a informação do cliente: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, fuzzy, c-format
msgid ""
"Client #%u\n"
@@ -1923,12 +1912,12 @@ msgstr ""
"Propriedades:\n"
"%s"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, fuzzy, c-format
msgid "Failed to get card information: %s\n"
msgstr "Falha em obter a informação do autoload: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, fuzzy, c-format
msgid ""
"Card #%u\n"
@@ -1944,22 +1933,22 @@ msgstr ""
"Propriedades:\n"
"%s"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr ""
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, fuzzy, c-format
msgid "\tActive Profile: %s\n"
msgstr "O pipe falhou: %s"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "Falha na obtenção da informação de entrada do destino: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, fuzzy, c-format
msgid ""
"Sink Input #%u\n"
@@ -1993,12 +1982,12 @@ msgstr ""
"Propriedades:\n"
"%s"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "Falha em obter informações sobre a saída da fonte: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, fuzzy, c-format
msgid ""
"Source Output #%u\n"
@@ -2027,12 +2016,12 @@ msgstr ""
"Propriedades:\n"
"%s"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "Falha em obter informações sobre a amostragem: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, fuzzy, c-format
msgid ""
"Sample #%u\n"
@@ -2061,21 +2050,21 @@ msgstr ""
"Propriedades:\n"
"%s"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "Falha: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "Falha em carregar a amostra: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "Fim prematuro do arquivo\n"
-#: ../src/utils/pactl.c:779
+#: ../src/utils/pactl.c:826
#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
@@ -2091,6 +2080,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2120,7 +2111,7 @@ msgstr ""
" -n, --client-name=NAME Como chamar este cliente no "
"servidor \n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2131,45 +2122,45 @@ msgstr ""
"Compilado com libpulse %s\n"
"Linkado com libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "Por favor, especifique o arquivo de amostra a ser carregado\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "Falha em abrir o arquivo de som.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "Abrindo um %s fluxo com a especificação de amostragem '%s'.\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "Você deve especificar um nome da amostra para ser executada\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "Você deve especificar um nome da amostra para ser removida\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr ""
"Você tem que especificar a entrada para o destino (sink) e um destino(sink)\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "Você tem que especificar um índice de saída da fonte e uma fonte\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "Você deve especificar um nome do módulo e seus argumentos\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "Você deve especificar um índice de um módulo\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
#, fuzzy
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
@@ -2178,7 +2169,7 @@ msgstr ""
"Você não pode especificar mais de um destino. Pelo menos um valor booleano "
"deve ser especificado.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
#, fuzzy
msgid ""
"You may not specify more than one source. You have to specify a boolean "
@@ -2187,17 +2178,29 @@ msgstr ""
"Você não pode especificar mais de uma fonte. Pelo menos um valor booleano "
"deve ser especificado.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
#, fuzzy
msgid "You have to specify a card name/index and a profile name\n"
msgstr ""
"Você tem que especificar a entrada para o destino (sink) e um destino(sink)\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr ""
+"Você tem que especificar a entrada para o destino (sink) e um destino(sink)\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr ""
+"Você tem que especificar a entrada para o destino (sink) e um destino(sink)\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "Nenhum comando válido especificado.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_new() falhou: %s"
@@ -2323,7 +2326,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "Não foi possível acessar a trava de autogeração."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2334,7 +2337,7 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2345,31 +2348,16 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr ""
diff --git a/po/sr.po b/po/sr.po
index 74ece4da..b8c861fe 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-07 23:02+0100\n"
"Last-Translator: MiloÅ¡ KomarÄević <kmilos@gmail.com>\n"
"Language-Team: Serbian <fedora-trans-sr@redhat.com>\n"
@@ -19,52 +19,7 @@ msgstr ""
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Lokalize 0.3\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "Ðналогни моно"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "Ðналогни Ñтерео"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "Дигитални Ñтерео (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "Дигитални Ñтерео (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "Ðналогни окружујући 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Дигитални окружујући 4.0 (IEC958/AC3)"
-
-# Surround можемо превеÑти амбијентални или окружни или можда чак и Ñараунд? -- Игор
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "Ðналогни окружујући 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "Ðналогни окружујући 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "Ðналогни окружујући 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Дигитални окружујући 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "Ðналогни окружујући 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -77,7 +32,7 @@ msgstr ""
"Ово је највероватније грешка у „%s“ ALSA управљачком програму. Пријавите "
"овај проблем ALSA програмерима."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -90,7 +45,7 @@ msgstr ""
"Ово је највероватније грешка у „%s“ ALSA управљачком програму. Пријавите "
"овај проблем ALSA програмерима."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -103,11 +58,24 @@ msgstr ""
"Ово је највероватније грешка у „%s“ ALSA управљачком програму. Пријавите "
"овај проблем ALSA програмерима."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "Унутрашњи звук"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "Модем"
@@ -492,15 +460,25 @@ msgstr "КориÑти Ñе %s директоријум Ñтања."
msgid "Running in system mode: %s"
msgstr "Покренуто у ÑиÑтемÑком режиму: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "ÐеуÑпела функција pa_pid_file_create()."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "ДоÑтупни Ñу нови бројачи виÑоке резолуције! Пријатно!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -508,27 +486,27 @@ msgstr ""
"Ваше језгро није добро подешено за pulseaudio! Препоручује Вам Ñе да "
"кориÑтите Linux језгро Ñа омогућеним бројачима виÑоке резолуције."
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "ÐеуÑпела функција pa_core_new()."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "ÐеуÑпешно покретање демона."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "Демон је покренут без иједног учитаног модула, одбија да ради."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "Покретање демона уÑпешно."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "Покренуто гашење демона."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "Рад демона је прекинут."
@@ -912,237 +890,237 @@ msgstr ""
"СиÑтемÑка политика Ñпречава PulseAudio-у да добије ÑтварновременÑко "
"раÑпоређивање."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Моно"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Предњи централни"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Предњи леви"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Предњи деÑни"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "ПозадинÑки централни"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "ПозадинÑки леви"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "ПозадинÑки деÑни"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Звучник за ниÑке фреквенције"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Предњи лево од центра"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Предњи деÑно од центра"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Лева Ñтрана"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "ДеÑна Ñтрана"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Споредни 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Споредни 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Споредни 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Споредни 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Споредни 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Споредни 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Споредни 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Споредни 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Споредни 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Споредни 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Споредни 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Споредни 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Споредни 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Споредни 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Споредни 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Споредни 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Споредни 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Споредни 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Споредни 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Споредни 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Споредни 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Споредни 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Споредни 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Споредни 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Споредни 024"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Споредни 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Споредни 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Споредни 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Споредни 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Споредни 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Споредни 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Споредни 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "Горњи централни"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "Горњи предњи централни"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "Горњи предњи леви"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "Горњи предњи деÑни"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "Горњи позадинÑки централни"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "Горњи позадинÑки леви"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "Горњи позадинÑки деÑни"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(неиÑправно)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "Стерео"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "Окружујући 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "Окружујући 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "Окружујући 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "Окружујући 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "Окружујући 7.1"
@@ -1426,7 +1404,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "ÐеуÑпела функција pa_stream_connect_record(): %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "ÐеуÑпешно повезивање: %s\n"
@@ -1580,7 +1558,7 @@ msgstr ""
"Компајлирано Ñа libpulse %s\n"
"Повезано Ñа libpulse %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "ÐеиÑправна мапа канала „%s“\n"
@@ -1649,7 +1627,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "Ðије уÑпело добављање података о узорку: %s\n"
@@ -1681,7 +1659,7 @@ msgid "playback"
msgstr "пушта"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "ÐеуÑпела функција pa_mainloop_new().\n"
@@ -1691,7 +1669,7 @@ msgid "io_new() failed.\n"
msgstr "ÐеуÑпела функција io_new() \n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "ÐеуÑпела функција pa_context_new().\n"
@@ -1706,7 +1684,7 @@ msgid "time_new() failed.\n"
msgstr "ÐеуÑпела функција time_new() \n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "ÐеуÑпела функција pa_mainloop_run().\n"
@@ -1736,7 +1714,7 @@ msgstr "ÐеуÑпешно наÑтављање: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "УПОЗОРЕЊЕ: Звучни Ñервер није локални, не зауÑтављам.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "Добих SIGINT, излазим.\n"
@@ -1775,32 +1753,32 @@ msgstr ""
"Компајлирано Ñа libpulse %s\n"
"Повезано Ñа libpulse %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "ÐеуÑпешно добављање ÑтатиÑтике: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "Тренутно у употреби: %u блокова Ñадржи укупно %s бајтова.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "Смештено од покретања: %u блокова Ñадржи укупно %s бајтова.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "Величина кеш меморије узорка: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "ÐеуÑпешно добијање података о Ñерверу: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1823,12 +1801,12 @@ msgstr ""
"Подразумевани извор: %s\n"
"Колачић: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "ÐеуÑпешно добијање података о Ñливнику: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1867,12 +1845,22 @@ msgstr ""
"\tСвојÑтва:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tПрофили:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tÐктивни профил: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "Ðије уÑпело добављање података о извору: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1911,20 +1899,20 @@ msgstr ""
"\tСвојÑтва:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "непознато"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "ÐеуÑпешно добијање података о модулу: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1941,12 +1929,12 @@ msgstr ""
"\tСвојÑтва:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "ÐеуÑпешно добијање података о клијенту: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1961,12 +1949,12 @@ msgstr ""
"\tСвојÑтва:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "ÐеуÑпешно добијање података о картици: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1983,22 +1971,22 @@ msgstr ""
"\tСвојÑтва:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tПрофили:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tÐктивни профил: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "Ðије уÑпело добијање података о улазу Ñливника: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2035,12 +2023,12 @@ msgstr ""
"\tСвојÑтва:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "Ðије уÑпело добијање података о излазу извора: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2069,12 +2057,12 @@ msgstr ""
"\tСвојÑтва:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "Ðије уÑпело добављање података о узорку: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2105,22 +2093,22 @@ msgstr ""
"\tСвојÑтва:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "ÐеуÑпех: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "Ðије уÑпело учитавање узорка: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "Прерани крај датотеке\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2135,6 +2123,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2166,7 +2156,7 @@ msgstr ""
" -n, --client-name=ИМЕ Како назвати овог клијента на "
"Ñерверу\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2177,64 +2167,74 @@ msgstr ""
"Компајлирано Ñа libpulse %s\n"
"Повезано Ñа libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "Ðаведите датотеку узорка коју треба учитати\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "Ðије уÑпело отварање звучне датотеке.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "Отварам ток %s Ñа Ñледећим параметрима узорка „%s“.\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "Морате навеÑти име узорка којег желите пуÑтити\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "Морате навеÑти име узорка којег желите уклонити\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "Морате навеÑти Ð¸Ð½Ð´ÐµÐºÑ ÑƒÐ»Ð°Ð·Ð° у Ñливнику и Ñливник\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "Морате навеÑти Ð¸Ð½Ð´ÐµÐºÑ Ð¸Ð·Ð»Ð°Ð·Ð° у извору и извор\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "Морате навеÑти име и параметре модула.\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "Морате навеÑти Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´ÑƒÐ»Ð°\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr "Можете навеÑти Ñамо један Ñливник. Морате навеÑти логичку вредноÑÑ‚.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr "Можете навеÑти Ñамо један извор. Морате навеÑти логичку вредноÑÑ‚.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "Морате навеÑти име/Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸Ñ†Ðµ и име профила\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "Морате навеÑти име/Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸Ñ†Ðµ и име профила\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "Морате навеÑти име/Ð¸Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸Ñ†Ðµ и име профила\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "Ðи једна иÑправна наредба није наведена.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "ÐеуÑпела функција pa_context_connect(): %s"
@@ -2362,7 +2362,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "Ðије могуће приÑтупити датотеци закључавања за Ñамоумножавање."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2379,7 +2379,7 @@ msgstr ""
"Пробуђени Ñмо Ñа поÑтављеним POLLOUT-ом -- али Ñледећи snd_pcm_avail() је "
"вратио 0 или неку другу вредноÑÑ‚ мању од min_avail."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2396,31 +2396,16 @@ msgstr ""
"Пробуђени Ñмо Ñа поÑтављеним POLLIN-ом -- али Ñледећи snd_pcm_avail() је "
"вратио 0 или неку другу вредноÑÑ‚ мању од min_avail."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "Излаз %s + улаз %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "Излаз %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "Улаз %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "ИÑкључено"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "Репродукција виÑоке тачноÑти (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "ДвоÑтрано телефонирање (HSP/HFP)"
@@ -2428,6 +2413,49 @@ msgstr "ДвоÑтрано телефонирање (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "PulseAudio звучни ÑиÑтем"
+#~ msgid "Analog Mono"
+#~ msgstr "Ðналогни моно"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "Ðналогни Ñтерео"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Дигитални Ñтерео (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Дигитални Ñтерео (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Ðналогни окружујући 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Дигитални окружујући 4.0 (IEC958/AC3)"
+
+# Surround можемо превеÑти амбијентални или окружни или можда чак и Ñараунд? -- Игор
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Ðналогни окружујући 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Ðналогни окружујући 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Ðналогни окружујући 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Дигитални окружујући 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Ðналогни окружујући 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "Излаз %s + улаз %s"
+
+#~ msgid "Output %s"
+#~ msgstr "Излаз %s"
+
+#~ msgid "Input %s"
+#~ msgstr "Улаз %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "Ток уÑпешно направљен\n"
diff --git a/po/sr@latin.po b/po/sr@latin.po
index 9d75b38f..e5b0f7b1 100644
--- a/po/sr@latin.po
+++ b/po/sr@latin.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-07 23:02+0100\n"
"Last-Translator: MiloÅ¡ KomarÄević <kmilos@gmail.com>\n"
"Language-Team: Serbian <fedora-trans-sr@redhat.com>\n"
@@ -19,52 +19,7 @@ msgstr ""
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Lokalize 0.3\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "Analogni mono"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "Analogni stereo"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "Digitalni stereo (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "Digitalni stereo (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "Analogni okružujući 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Digitalni okružujući 4.0 (IEC958/AC3)"
-
-# Surround možemo prevesti ambijentalni ili okružni ili možda Äak i saraund? -- Igor
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "Analogni okružujući 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "Analogni okružujući 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "Analogni okružujući 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Digitalni okružujući 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "Analogni okružujući 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -77,7 +32,7 @@ msgstr ""
"Ovo je najverovatnije greÅ¡ka u „%s“ ALSA upravljaÄkom programu. Prijavite "
"ovaj problem ALSA programerima."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -90,7 +45,7 @@ msgstr ""
"Ovo je najverovatnije greÅ¡ka u „%s“ ALSA upravljaÄkom programu. Prijavite "
"ovaj problem ALSA programerima."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -103,11 +58,24 @@ msgstr ""
"Ovo je najverovatnije greÅ¡ka u „%s“ ALSA upravljaÄkom programu. Prijavite "
"ovaj problem ALSA programerima."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "Unutrašnji zvuk"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "Modem"
@@ -494,15 +462,25 @@ msgstr "Koristi se %s direktorijum stanja."
msgid "Running in system mode: %s"
msgstr "Pokrenuto u sistemskom režimu: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "Neuspela funkcija pa_pid_file_create()."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "Dostupni su novi brojaÄi visoke rezolucije! Prijatno!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -510,27 +488,27 @@ msgstr ""
"VaÅ¡e jezgro nije dobro podeÅ¡eno za pulseaudio! PreporuÄuje Vam se da "
"koristite Linux jezgro sa omogućenim brojaÄima visoke rezolucije."
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "Neuspela funkcija pa_core_new()."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "Neuspešno pokretanje demona."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "Demon je pokrenut bez ijednog uÄitanog modula, odbija da radi."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "Pokretanje demona uspešno."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "Pokrenuto gašenje demona."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "Rad demona je prekinut."
@@ -914,237 +892,237 @@ msgstr ""
"Sistemska politika spreÄava PulseAudiu da dobije stvarnovremensko "
"raspoređivanje."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Mono"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Prednji centralni"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Prednji levi"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Prednji desni"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "Pozadinski centralni"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "Pozadinski levi"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "Pozadinski desni"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "ZvuÄnik za niske frekvencije"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Prednji levo od centra"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Prednji desno od centra"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Leva strana"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "Desna strana"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Sporedni 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Sporedni 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Sporedni 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Sporedni 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Sporedni 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Sporedni 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Sporedni 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Sporedni 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Sporedni 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Sporedni 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Sporedni 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Sporedni 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Sporedni 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Sporedni 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Sporedni 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Sporedni 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Sporedni 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Sporedni 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Sporedni 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Sporedni 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Sporedni 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Sporedni 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Sporedni 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Sporedni 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Sporedni 024"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Sporedni 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Sporedni 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Sporedni 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Sporedni 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Sporedni 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Sporedni 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Sporedni 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "Gornji centralni"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "Gornji prednji centralni"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "Gornji prednji levi"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "Gornji prednji desni"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "Gornji pozadinski centralni"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "Gornji pozadinski levi"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "Gornji pozadinski desni"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(neispravno)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "Stereo"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "Okružujući 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "Okružujući 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "Okružujući 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "Okružujući 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "Okružujući 7.1"
@@ -1428,7 +1406,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "Neuspela funkcija pa_stream_connect_record(): %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "Neuspešno povezivanje: %s\n"
@@ -1583,7 +1561,7 @@ msgstr ""
"Kompajlirano sa libpulse %s\n"
"Povezano sa libpulse %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "Neispravna mapa kanala „%s“\n"
@@ -1652,7 +1630,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "Nije uspelo dobavljanje podataka o uzorku: %s\n"
@@ -1684,7 +1662,7 @@ msgid "playback"
msgstr "pušta"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "Neuspela funkcija pa_mainloop_new().\n"
@@ -1694,7 +1672,7 @@ msgid "io_new() failed.\n"
msgstr "Neuspela funkcija io_new() \n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "Neuspela funkcija pa_context_new().\n"
@@ -1709,7 +1687,7 @@ msgid "time_new() failed.\n"
msgstr "Neuspela funkcija time_new() \n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "Neuspela funkcija pa_mainloop_run().\n"
@@ -1739,7 +1717,7 @@ msgstr "Neuspešno nastavljanje: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "UPOZORENJE: ZvuÄni server nije lokalni, ne zaustavljam.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "Dobih SIGINT, izlazim.\n"
@@ -1778,32 +1756,32 @@ msgstr ""
"Kompajlirano sa libpulse %s\n"
"Povezano sa libpulse %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "Neuspešno dobavljanje statistike: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "Trenutno u upotrebi: %u blokova sadrži ukupno %s bajtova.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "Smešteno od pokretanja: %u blokova sadrži ukupno %s bajtova.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "VeliÄina keÅ¡ memorije uzorka: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "Neuspešno dobijanje podataka o serveru: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1826,12 +1804,12 @@ msgstr ""
"Podrazumevani izvor: %s\n"
"KolaÄić: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "Neuspešno dobijanje podataka o slivniku: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1870,12 +1848,22 @@ msgstr ""
"\tSvojstva:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tProfili:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tAktivni profil: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "Nije uspelo dobavljanje podataka o izvoru: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1914,20 +1902,20 @@ msgstr ""
"\tSvojstva:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "nepoznato"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "Neuspešno dobijanje podataka o modulu: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1944,12 +1932,12 @@ msgstr ""
"\tSvojstva:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "Neuspešno dobijanje podataka o klijentu: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1964,12 +1952,12 @@ msgstr ""
"\tSvojstva:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "Neuspešno dobijanje podataka o kartici: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1986,22 +1974,22 @@ msgstr ""
"\tSvojstva:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tProfili:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tAktivni profil: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "Nije uspelo dobijanje podataka o ulazu slivnika: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2038,12 +2026,12 @@ msgstr ""
"\tSvojstva:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "Nije uspelo dobijanje podataka o izlazu izvora: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2072,12 +2060,12 @@ msgstr ""
"\tSvojstva:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "Nije uspelo dobavljanje podataka o uzorku: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2108,22 +2096,22 @@ msgstr ""
"\tSvojstva:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "Neuspeh: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "Nije uspelo uÄitavanje uzorka: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "Prerani kraj datoteke\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2138,6 +2126,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2169,7 +2159,7 @@ msgstr ""
" -n, --client-name=IME Kako nazvati ovog klijenta na "
"serveru\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2180,64 +2170,74 @@ msgstr ""
"Kompajlirano sa libpulse %s\n"
"Povezano sa libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "Navedite datoteku uzorka koju treba uÄitati\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "Nije uspelo otvaranje zvuÄne datoteke.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "Otvaram tok %s sa sledećim parametrima uzorka „%s“.\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "Morate navesti ime uzorka kojeg želite pustiti\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "Morate navesti ime uzorka kojeg želite ukloniti\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "Morate navesti indeks ulaza u slivniku i slivnik\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "Morate navesti indeks izlaza u izvoru i izvor\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "Morate navesti ime i parametre modula.\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "Morate navesti indeks modula\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr "Možete navesti samo jedan slivnik. Morate navesti logiÄku vrednost.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr "Možete navesti samo jedan izvor. Morate navesti logiÄku vrednost.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "Morate navesti ime/indeks kartice i ime profila\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "Morate navesti ime/indeks kartice i ime profila\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "Morate navesti ime/indeks kartice i ime profila\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "Ni jedna ispravna naredba nije navedena.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "Neuspela funkcija pa_context_connect(): %s"
@@ -2365,7 +2365,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "Nije moguće pristupiti datoteci zakljuÄavanja za samoumnožavanje."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2382,7 +2382,7 @@ msgstr ""
"Probuđeni smo sa postavljenim POLLOUT-om -- ali sledeći snd_pcm_avail() je "
"vratio 0 ili neku drugu vrednost manju od min_avail."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2399,31 +2399,16 @@ msgstr ""
"Probuđeni smo sa postavljenim POLLIN-om -- ali sledeći snd_pcm_avail() je "
"vratio 0 ili neku drugu vrednost manju od min_avail."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "Izlaz %s + ulaz %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "Izlaz %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "Ulaz %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "IskljuÄeno"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "Reprodukcija visoke taÄnosti (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "Dvostrano telefoniranje (HSP/HFP)"
@@ -2431,6 +2416,49 @@ msgstr "Dvostrano telefoniranje (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "PulseAudio zvuÄni sistem"
+#~ msgid "Analog Mono"
+#~ msgstr "Analogni mono"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "Analogni stereo"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Digitalni stereo (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Digitalni stereo (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Analogni okružujući 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Digitalni okružujući 4.0 (IEC958/AC3)"
+
+# Surround možemo prevesti ambijentalni ili okružni ili možda Äak i saraund? -- Igor
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Analogni okružujući 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Analogni okružujući 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Analogni okružujući 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Digitalni okružujući 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Analogni okružujući 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "Izlaz %s + ulaz %s"
+
+#~ msgid "Output %s"
+#~ msgstr "Izlaz %s"
+
+#~ msgid "Input %s"
+#~ msgstr "Ulaz %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "Tok uspešno napravljen\n"
diff --git a/po/sv.po b/po/sv.po
index 5dd365ed..3f91c9ae 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2008-09-05 18:24+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -15,51 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr ""
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -68,7 +24,7 @@ msgid ""
"to the ALSA developers."
msgstr ""
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -77,7 +33,7 @@ msgid ""
"to the ALSA developers."
msgstr ""
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -86,12 +42,25 @@ msgid ""
"to the ALSA developers."
msgstr ""
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
#, fuzzy
msgid "Internal Audio"
msgstr "Internt fel"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr ""
@@ -461,41 +430,51 @@ msgstr ""
msgid "Running in system mode: %s"
msgstr ""
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() misslyckades."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr ""
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
msgstr ""
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() misslyckades."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr ""
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr ""
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr ""
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr ""
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr ""
@@ -795,238 +774,238 @@ msgstr ""
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr ""
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Mono"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Center fram"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Vänster fram"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Höger fram"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "Center bak"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "Vänster bak"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "Höger bak"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr ""
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Vänster-om-center fram"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Höger-om-center fram"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Vänster sida"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "Höger sida"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr ""
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr ""
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr ""
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr ""
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr ""
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr ""
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr ""
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr ""
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr ""
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr ""
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr ""
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr ""
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr ""
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr ""
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr ""
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr ""
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr ""
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr ""
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr ""
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr ""
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr ""
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr ""
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr ""
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr ""
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr ""
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr ""
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr ""
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr ""
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr ""
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr ""
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr ""
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr ""
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr ""
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr ""
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr ""
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr ""
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr ""
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr ""
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr ""
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
#, fuzzy
msgid "(invalid)"
msgstr "Ogiltig"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr ""
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr ""
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr ""
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr ""
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr ""
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr ""
@@ -1309,7 +1288,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() misslyckades: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "Anslutningsfel: %s\n"
@@ -1415,7 +1394,7 @@ msgid ""
"Linked with libpulse %s\n"
msgstr ""
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, c-format
msgid "Invalid client name '%s'\n"
msgstr ""
@@ -1484,7 +1463,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
msgid "Failed to determine sample specification from file.\n"
msgstr ""
@@ -1515,7 +1494,7 @@ msgid "playback"
msgstr ""
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() misslyckades.\n"
@@ -1525,7 +1504,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() misslyckades.\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() misslyckades.\n"
@@ -1540,7 +1519,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() misslyckades.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() misslyckades.\n"
@@ -1570,7 +1549,7 @@ msgstr ""
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr ""
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr ""
@@ -1603,32 +1582,32 @@ msgstr ""
"Kompilerad med libpulse %s\n"
"Länkad med libpulse %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "Misslyckades med att få statistik: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr ""
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr ""
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1642,12 +1621,12 @@ msgid ""
"Cookie: %08x\n"
msgstr ""
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1669,12 +1648,22 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, c-format
+msgid "\tPorts:\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "pipe misslyckades: %s"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1696,20 +1685,20 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr ""
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "Misslyckades med att få modulinformation: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1720,12 +1709,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "Misslyckades med att få klientinformation: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1735,12 +1724,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, fuzzy, c-format
msgid "Failed to get card information: %s\n"
msgstr "Misslyckades med att få modulinformation: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1751,22 +1740,22 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr ""
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, fuzzy, c-format
msgid "\tActive Profile: %s\n"
msgstr "pipe misslyckades: %s"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -1787,12 +1776,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -1809,12 +1798,12 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -1832,21 +1821,21 @@ msgid ""
"\t\t%s\n"
msgstr ""
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "Fel: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr ""
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr ""
-#: ../src/utils/pactl.c:779
+#: ../src/utils/pactl.c:826
#, c-format
msgid ""
"%s [options] stat\n"
@@ -1862,6 +1851,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -1872,7 +1863,7 @@ msgid ""
"server\n"
msgstr ""
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -1883,63 +1874,71 @@ msgstr ""
"Kompilerad med libpulse %s\n"
"Länkad med libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr ""
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "Misslyckades med att öppna ljudfil.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr ""
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr ""
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr ""
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr ""
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr ""
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr ""
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr ""
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr ""
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr ""
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr ""
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:1084
+msgid "You have to specify a source name/index and a port name\n"
+msgstr ""
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr ""
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, fuzzy, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_new() misslyckades.\n"
@@ -2057,7 +2056,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr ""
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2068,7 +2067,7 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2079,31 +2078,16 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr ""
diff --git a/po/ta.po b/po/ta.po
index 003e69ee..a10b0168 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx.pulseaudio\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-12 05:02+0530\n"
"Last-Translator: I. Felix <ifelix@redhat.com>\n"
"Language-Team: Tamil <fedora-trans-ta@redhat.com>\n"
@@ -34,51 +34,7 @@ msgstr ""
"\n"
"\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "Analog Mono"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "Analog Stereo"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "Digital Stereo (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "Digital Stereo (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "Analog Surround 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Digital Surround 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "Analog Surround 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "Analog Surround 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "Analog Surround 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Digital Surround 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "Analog Surround 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -91,7 +47,7 @@ msgstr ""
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
"to the ALSA developers."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -104,7 +60,7 @@ msgstr ""
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
"to the ALSA developers."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -117,11 +73,24 @@ msgstr ""
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
"to the ALSA developers."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "உடà¯à®ªà¯à®± ஆடியோ"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "மாதிரி"
@@ -503,15 +472,25 @@ msgstr "%s நிலை அடைவினை பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à
msgid "Running in system mode: %s"
msgstr "கணினியின௠மà¯à®±à¯ˆà®®à¯ˆà®¯à®¿à®²à¯ இயஙà¯à®•à¯à®•à®¿à®±à®¤à¯: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "உயரà¯à®¨à¯à®¤ திரைதà¯à®¤à®¿à®±à®©à¯ நேரமà¯à®•à®¾à®Ÿà¯à®Ÿà®¿ கிடைகà¯à®•à®¿à®³à®¤à¯! Bon appetit!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -519,27 +498,27 @@ msgstr ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "டோமோனை ஆரமà¯à®ªà®¿à®ªà¯à®ªà®¤à®¿à®²à¯ தோலà¯à®µà®¿."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "டீமான௠தà¯à®µà®•à¯à®•à®®à¯ எநà¯à®¤ தொகà¯à®¤à®¿à®•à®³à¯à®®à¯ à®à®±à¯à®±à®ªà¯à®ªà®Ÿà®¾à®®à®²à¯, வேலையை நிராகரிகà¯à®•à®¿à®±à®¤à¯."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "டோமோன௠தà¯à®µà®•à¯à®•à¯à®µà®¤à¯ à®®à¯à®Ÿà®¿à®µà®Ÿà¯ˆà®¨à¯à®¤à®¤à¯."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "டோமோன௠பணிநிறà¯à®¤à¯à®¤à®®à¯ à®®à¯à®©à¯ˆà®•à®¿à®±à®¤à¯."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "டோமோன௠நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®¤à¯."
@@ -910,237 +889,237 @@ msgstr ""
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr "கணினி கொளà¯à®•à¯ˆ PulseAudio ஠நிகழà¯à®¨à¯‡à®° திடà¯à®Ÿà®®à®¿à®Ÿà¯à®¤à®²à¯ˆ எடà¯à®•à¯à®•à®¿à®±à®¤à¯."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "மோனோ"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "à®®à¯à®©à¯ நடà¯à®µà®¿à®²à¯"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "à®®à¯à®©à¯ இடதà¯"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "à®®à¯à®©à¯ வலதà¯"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "பின௠நடà¯à®µà®¿à®²à¯"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "பின௠இடதà¯"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "பின௠வலதà¯"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "கà¯à®±à¯ˆà®¨à¯à®¤ அலைவரிசை எமà¯à®®à®¿à®Ÿà¯à®Ÿà®°à¯"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "à®®à¯à®©à¯ இடத௠பகà¯à®•à®¤à¯à®¤à®¿à®©à¯ நடà¯à®µà®¿à®²à¯"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "à®®à¯à®©à¯ வலத௠பகà¯à®•à®¤à¯à®¤à®¿à®©à¯ நடà¯à®µà®¿à®²à¯"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "இடத௠பகà¯à®•à®®à¯"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "வலத௠பகà¯à®•à®®à¯"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Auxiliary 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Auxiliary 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Auxiliary 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Auxiliary 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Auxiliary 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Auxiliary 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Auxiliary 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Auxiliary 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Auxiliary 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Auxiliary 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Auxiliary 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Auxiliary 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Auxiliary 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Auxiliary 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Auxiliary 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Auxiliary 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Auxiliary 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Auxiliary 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Auxiliary 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Auxiliary 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Auxiliary 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Auxiliary 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Auxiliary 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Auxiliary 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Auxiliary 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Auxiliary 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Auxiliary 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Auxiliary 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Auxiliary 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Auxiliary 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Auxiliary 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Auxiliary 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "மேல௠நடà¯à®µà®¿à®²"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "மேலை à®®à¯à®©à¯ நடà¯à®µà®¿à®²à¯"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "மேலே à®®à¯à®©à¯ இடதà¯"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "மேலே à®®à¯à®©à¯ வலதà¯"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "மேலே பின௠நடà¯à®µà®¿à®²à¯"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "மேலே பின௠இடதà¯"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "மேலே பின௠வலதà¯"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(தவறான)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "ஸà¯à®Ÿà®¿à®°à®¿à®¯à¯‹"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "Surround 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "Surround 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "Surround 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "Surround 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "Surround 7.1"
@@ -1423,7 +1402,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "இணைபà¯à®ªà®¤à®¿à®²à¯ தோலà¯à®µà®¿: %s\n"
@@ -1580,7 +1559,7 @@ msgstr ""
"Compiled with libpulse %s\n"
"Linked with libpulse %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "தவறான சேனல௠வரைபடம௠'%s'\n"
@@ -1649,7 +1628,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "மாதிரி தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.: %s\n"
@@ -1681,7 +1660,7 @@ msgid "playback"
msgstr "பிணà¯à®£à®©à®¿"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() தோலà¯à®µà®¿.\n"
@@ -1691,7 +1670,7 @@ msgid "io_new() failed.\n"
msgstr "io_பà¯à®¤à®¿à®¯() தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯.(_n) \n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() தோலà¯à®µà®¿.\n"
@@ -1706,7 +1685,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() தோலà¯à®µà®¿.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() தோலà¯à®µà®¿.\n"
@@ -1736,7 +1715,7 @@ msgstr "தொடர à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆ: ஒலி சேவையம௠உளà¯à®³à®®à¯ˆà®µà®¾à®• இலà¯à®²à¯ˆ, இடைநிறà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT பெறபà¯à®ªà®Ÿà¯à®Ÿà®¤à¯, வெளியேறà¯à®•à®¿à®±à®¤à¯.\n"
@@ -1775,33 +1754,33 @@ msgstr ""
"Compiled with libpulse %s\n"
"Linked with libpulse %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "பà¯à®³à¯à®³à®¿à®µà®¿à®µà®°à®¤à¯à®¤à¯ˆ பெற இயலாதà¯: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "தறà¯à®ªà¯‹à®¤à¯ பயனிலà¯à®³à¯à®³à®¤à¯: %u தொகà¯à®¤à®¿à®•à®³à¯ %s பைடà¯à®•à®³à¯ˆ மொதà¯à®¤à®®à®¾à®• கொணà¯à®Ÿà¯à®³à¯à®³à®¤à¯.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr ""
"வாழà¯à®•à¯à®•à¯ˆ à®®à¯à®´à¯à®µà®¤à¯à®®à¯ ஒதà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: %u தொகà¯à®¤à®¿à®•à®³à¯ %s பைடà¯à®•à®³à¯ˆ மொதà¯à®¤à®®à®¾à®• கொணà¯à®Ÿà¯à®³à¯à®³à®¤à¯.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "மாதிரி இடையக அளவà¯: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "சேவையகதà¯à®¤à®¿à®©à¯ தகவலை பெற இயலவிலà¯à®²à¯ˆ: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1824,12 +1803,12 @@ msgstr ""
"à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மூலஙà¯à®•à®³à¯: %s\n"
"கூகà¯à®•à®¿: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "சà¯à®°à¯à®•à¯à®•à®®à®¾à®© தகவலை பெற௠மà¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1868,12 +1847,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tவிவரகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tசெயலà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®²à¯à®³à¯à®³ விவரகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "மூலதà¯à®¤à®¿à®©à¯ தகவலை பெற இயலவிலà¯à®²à¯ˆ: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1912,20 +1901,20 @@ msgstr ""
"\tபணà¯à®ªà¯à®•à®³à¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/a"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "தொகà¯à®¤à®¿ தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1942,12 +1931,12 @@ msgstr ""
"\tபணà¯à®ªà¯à®•à®³à¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "கிளையனà¯à®Ÿà¯ தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1962,12 +1951,12 @@ msgstr ""
"\tபணà¯à®ªà¯à®•à®³à¯:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "அடà¯à®Ÿà¯ˆ தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1984,22 +1973,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tவிவரகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tசெயலà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®²à¯à®³à¯à®³ விவரகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "சிஙà¯à®•à¯ தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2036,12 +2025,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "மூல வெளிபà¯à®ªà®¾à®Ÿà¯ தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2070,12 +2059,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "மாதிரி தகவலை பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2106,22 +2095,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "தோலà¯à®µà®¿: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "மாதிரியை மேமà¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "à®®à¯à®©à¯à®©à®¾à®• கோபà¯à®ªà¯ à®®à¯à®Ÿà®¿à®¤à¯à®¤à®²à¯\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2136,6 +2125,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2167,7 +2158,7 @@ msgstr ""
" -n, --client-name=NAME How to call this client on the "
"server\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2178,51 +2169,51 @@ msgstr ""
"Compiled with libpulse %s\n"
"Linked with libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "à®à®±à¯à®±à¯à®µà®¤à®±à¯à®•à¯ ஒர௠மாதிரி கோபà¯à®ªà®¿à®©à¯ˆ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®µà¯à®®à¯\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "ஒலி கோபà¯à®ªà®¿à®©à¯ˆ திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "ஒர௠%s ஸà¯à®Ÿà¯€à®°à®®à¯ˆ மாதிரி கà¯à®±à®¿à®ªà¯à®ªà¯€à®Ÿà¯ '%s'உடன௠திறகà¯à®•à®¿à®±à®¤à¯.\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "இயகà¯à®•à®¿à®µà®¤à®±à¯à®•à¯ நீஙà¯à®•à®³à¯ ஒர௠மாதிரி பெயர௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "நீகà¯à®•à¯à®µà®¤à®±à¯à®•à¯ நீஙà¯à®•à®³à¯ ஒர௠மாதிரி பெயர௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "நீஙà¯à®•à®³à¯ ஒர௠சிஙà¯à®•à¯ உளà¯à®³à¯€à®Ÿà¯ சà¯à®Ÿà¯à®Ÿà®¿ மறà¯à®±à¯à®®à¯ ஒர௠சிஙà¯à®•à¯ˆ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "நீஙà¯à®•à®³à¯ ஒர௠மூல வெளிபà¯à®ªà®¾à®Ÿà¯ சà¯à®Ÿà¯à®Ÿà®¿ மறà¯à®±à¯à®®à¯ ஒர௠மூலதà¯à®¤à¯ˆ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "தொகà¯à®¤à®¿ பெயர௠மறà¯à®±à¯à®®à¯ விவாதஙà¯à®•à®³à¯ˆ நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯. \n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "தொகà¯à®¤à®¿ அடà¯à®Ÿà®µà®£à¯ˆà®¯à¯ˆ நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr ""
"ஒர௠சிஙà¯à®•à®¿à®±à¯à®•à¯ மேல௠நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®•à¯ கூடாதà¯. பூலியன௠மதிபà¯à®ªà¯ˆ நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
@@ -2230,16 +2221,28 @@ msgstr ""
"ஒர௠மூலதà¯à®¤à®¿à®±à¯à®•à¯ மேல௠நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®•à¯ கூடாதà¯. பூலியன௠மதிபà¯à®ªà¯ˆ நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ "
"வேணà¯à®Ÿà¯à®®à¯.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr ""
"ஒர௠அடà¯à®Ÿà¯ˆ பெயரà¯/ à®®à¯à®©à¯à®ªà®•à¯à®•à®®à¯ மறà¯à®±à¯à®®à¯ ஒர௠விவரசà¯à®šà¯€à®Ÿà¯à®Ÿà¯ பெயர௠நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯ \n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr ""
+"ஒர௠அடà¯à®Ÿà¯ˆ பெயரà¯/ à®®à¯à®©à¯à®ªà®•à¯à®•à®®à¯ மறà¯à®±à¯à®®à¯ ஒர௠விவரசà¯à®šà¯€à®Ÿà¯à®Ÿà¯ பெயர௠நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯ \n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr ""
+"ஒர௠அடà¯à®Ÿà¯ˆ பெயரà¯/ à®®à¯à®©à¯à®ªà®•à¯à®•à®®à¯ மறà¯à®±à¯à®®à¯ ஒர௠விவரசà¯à®šà¯€à®Ÿà¯à®Ÿà¯ பெயர௠நீஙà¯à®•à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿ வேணà¯à®Ÿà¯à®®à¯ \n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "சரியான கடà¯à®Ÿà®³à¯ˆ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ \n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() தோலà¯à®µà®¿: %s"
@@ -2364,7 +2367,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "autospawn பூடà¯à®Ÿà¯ˆ அணà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2375,7 +2378,7 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2386,31 +2389,16 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr ""
@@ -2419,6 +2407,39 @@ msgstr ""
msgid "PulseAudio Sound Server"
msgstr "பளà¯à®¸à¯ ஆடியோ ஒலி கணினி"
+#~ msgid "Analog Mono"
+#~ msgstr "Analog Mono"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "Analog Stereo"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Digital Stereo (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Digital Stereo (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Analog Surround 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Digital Surround 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Analog Surround 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Analog Surround 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Analog Surround 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Digital Surround 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Analog Surround 7.1"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "ஸà¯à®Ÿà®¿à®°à¯€à®®à¯ வெறà¯à®±à®¿à®•à®°à®®à®¾à®• உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯\n"
diff --git a/po/te.po b/po/te.po
index bdc30b9a..d4f79e06 100644
--- a/po/te.po
+++ b/po/te.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx.te\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-08 18:21+0530\n"
"Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n"
"Language-Team: Telugu <en@li.org>\n"
@@ -21,51 +21,7 @@ msgstr ""
"\n"
"\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "ఎనలాగౠమోనో"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "ఎనలాగౠసà±à°Ÿà±€à°°à°¿à°¯à±‹"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "డిజటలౠసà±à°Ÿà±€à°°à°¿à°¯à±‹ (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "డిజిటలౠసà±à°Ÿà±€à°°à°¿à°¯à±‹ (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "ఎనలాగౠసరౌండౠ4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "డిజిటలౠసరౌండౠ4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "ఎనలాగౠసరౌండౠ4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "ఎనలాగౠసరౌండౠ5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "ఎనలాగౠసరౌండౠ5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "డిజిటలౠసరౌండౠ5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "ఎనలాగౠసరౌండౠ7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -77,7 +33,7 @@ msgstr ""
"సాదారణంగా యిది ALSA à°¡à±à°°à±ˆà°µà°°à± '%s' నందలి బగౠకావచà±à°šà±à°¨à±. దయచేసి దీనిని ALSA అభివృదà±à°¦à°¿ కారà±à°²à°•à± "
"నివేదించà±à°®à±."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -89,7 +45,7 @@ msgstr ""
"సాదారణంగా యిది ALSA à°¡à±à°°à±ˆà°µà°°à± '%s' నందౠబగౠకావచà±à°šà±à°¨à± . దయచేసి దీనిని ALSA అభివృదà±à°¦à°¿à°•à°¾à°°à±à°²à°• "
"నివేదించà±à°®à±."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -100,11 +56,24 @@ msgstr ""
"snd_pcm_mmap_begin() à°…à°¨à±à°¨à°¦à°¿ పెదà±à°¦ విలà±à°µà°¨à± యిచà±à°šà°¿à°¨à°¦à°¿: %lu bytes (%lu ms).\n"
"సాదారణంగా యిది ALSA à°¡à±à°°à±ˆà°µà°°à± '%s'నందలి బగౠకావచà±à°šà±à°¨à±. దయచేసి దీనిని ALSA అభివృదà±à°¦à°¿à°•à°¾à°°à±à°²à°¨à± నివేదించండి."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "అంతరà±à°—à°¤ ఆడియో"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "మోడెమà±"
@@ -477,41 +446,51 @@ msgstr "à°¸à±à°¥à°¿à°¤à°¿ డైరెకà±à°Ÿà°°à±€à°¨à± à°µà±à°ªà°¯à±‹à°—à
msgid "Running in system mode: %s"
msgstr "సిసà±à°Ÿà°®à± రీతినందౠవà±à°ªà°¯à±‹à°—à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create() విఫలమైంది."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "తాజా అధిక-తీవà±à°°à°¤ కాలసూచికలౠఅందà±à°¬à°¾à°Ÿà±à°²à±‹ à°µà±à°¨à±à°¨à°¾à°¯à°¿! బానౠఎపటైటà±!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
msgstr "మితà±à°°à°®à°¾, నీ కెరà±à°¨à°²à± చెడిపోయింది! అధిక-తీవà±à°°à°¤ కాలసూచకిలనౠచేతనమౠచేయమని సూచించడమైనది!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new() విఫలమైంది."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "డెమోనౠసిదà±à°¦à°®à±à°šà±‡à°¯à±à°Ÿà°•à± విఫలమైంది."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "à°à°µà°¿à°§à°®à±ˆà°¨ మాడà±à°¯à±‚à°³à±à°³à± లోడవకà±à°‚à°¡à°¾ డెమోనౠపà±à°°à°¾à°°à°‚à°­à°®à±, పనిచేయà±à°Ÿà°•à± తిరసà±à°•à°°à°¿à°‚చబడింది."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "డెమోనౠపà±à°°à°¾à°°à°‚భమౠపూరà±à°¤à±ˆà°¨à°¦à°¿."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "డెమోనౠమూసివేత సిదà±à°¦à°®à±à°šà±‡à°¯à°¬à°¡à°¿à°‚ది."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "డెమోనౠఅంతమà±à°šà±‡à°¯à°¬à°¡à°¿à°‚ది."
@@ -880,237 +859,237 @@ msgstr "సిసà±à°Ÿà°®à± విధానమౠPulseAudio అధిక-à°ªà
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr "సిసà±à°Ÿà°®à± విధానమౠPulseAudio వాసà±à°¤à°µ-సమయ à°ªà±à°°à°£à°¾à°³à°¿à°•à°¨à± పొందకà±à°‚à°¡à°¾ నిరోధిసà±à°¤à±‹à°‚ది."
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "మోనో"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "à°®à±à°‚దౠమధà±à°¯à°¨"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "à°®à±à°‚దౠఎడమవైపà±"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "à°®à±à°‚దౠకà±à°¡à°¿à°µà±ˆà°ªà±"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "వెనà±à°• మధà±à°¯à°¨"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "వెనà±à°• ఎడమవైపà±"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "వెనà±à°• à°•à±à°¡à°¿à°µà±ˆà°ªà±"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "తకà±à°•à±à°µ తరచà±à°¦à°¨à°‚ వెలà±à°µà°°à°¿à°‚à°šà±à°¨à°¦à°¿"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "à°®à±à°‚దౠఎడమ-మధà±à°¯"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "à°®à±à°‚దౠకà±à°¡à°¿-మధà±à°¯"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "à°Žà°¡à°® à°ªà±à°°à°•à±à°•"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "à°•à±à°¡à°¿ à°ªà±à°°à°•à±à°•"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "ఆకà±à°¸à°¿à°²à°°à°¿ 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "పై మధà±à°¯à°¨"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "పైన à°®à±à°‚దౠమధà±à°¯à°¨"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "పైన à°®à±à°‚దౠఎడమవైపà±"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "పైన à°®à±à°‚దౠకà±à°¡à°¿à°µà±ˆà°ªà±"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "పైన వెనà±à°• మధà±à°¯à°¨"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "పైన వెనà±à°• ఎడమవైపà±"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "పైన వెనà±à°• à°•à±à°¡à°¿à°µà±ˆà°ªà±à°¨"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(చెలà±à°²à°¨à°¿)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "à°¸à±à°Ÿà±€à°°à°¿à°¯à±‹"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "సరౌండౠ4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "సరౌండౠ4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "సరౌండౠ5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "సరౌండౠ5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "సరౌండౠ7.1"
@@ -1393,7 +1372,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_record() విఫలమైంది: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "à°…à°¨à±à°¸à°‚ధానమౠవైఫలà±à°¯à°®à±: %s\n"
@@ -1550,7 +1529,7 @@ msgstr ""
"libpulse తో నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది %s\n"
"libpulse లింకైనది %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "చెలà±à°²à°¨à°¿ à°ªà±à°°à°¸à°¾à°°à°®à°¾à°°à±à°— మాపౠ'%s'\n"
@@ -1619,7 +1598,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "మాదిరి సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n"
@@ -1651,7 +1630,7 @@ msgid "playback"
msgstr "à°ªà±à°²à±‡à°¬à°¾à°•à±"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new() విఫలమైంది.\n"
@@ -1661,7 +1640,7 @@ msgid "io_new() failed.\n"
msgstr "io_new() విఫలమైంది.\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new() విఫలమైంది.\n"
@@ -1676,7 +1655,7 @@ msgid "time_new() failed.\n"
msgstr "time_new() విఫలమైంది.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run() విఫలమైంది.\n"
@@ -1706,7 +1685,7 @@ msgstr "తిరిగికొనసాగింపౠవైఫలà±à°¯à°®à±
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "హెచà±à°šà°°à°¿à°•: శబà±à°§à°ªà± సేవిక à°¸à±à°¥à°¾à°¨à°¿à°•à°‚ కాదà±, à°…à°°à±à°§à°¾à°‚తరనిలà±à°ªà±à°¦à°² కావడంలేదà±.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "SIGINT పొందింది, నిషà±à°•à±à°°à°®à°¿à°‚à°šà±à°šà±à°¨à±à°¨à°¦à°¿.\n"
@@ -1746,32 +1725,32 @@ msgstr ""
"libpulse తో నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది %s\n"
"libpulse తో నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "గణాంకాలనౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "à°ªà±à°°à°¸à±à°¤à±à°¤à°‚ à°µà±à°ªà°¯à±‹à°—ంలోవà±à°‚ది: %u à°¬à±à°²à°¾à°•à±â€Œà°²à± %s బైటà±à°²à°¨à± మొతà±à°¤à°‚à°—à°¾ కలిగి à°µà±à°¨à±à°¨à°¾à°¯à°¿.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "మొతà±à°¤à°‚ లైఫà±â€Œà°Ÿà±ˆà°®à±à°²à±‹ కేటాయించబడింది: %u à°¬à±à°²à°¾à°•à±à°²à± %s బైటà±à°²à°¨à± మొతà±à°¤à°‚à°—à°¾ కలిగివà±à°¨à±à°¨à°¾à°¯à°¿.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "మాదిరి à°•à±à°¯à°¾à°šà°¿ పరిమాణమà±: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "సేవిక సమాచారమà±à°¨à± పొందà±à°Ÿà°•à± విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1794,12 +1773,12 @@ msgstr ""
"à°…à°ªà±à°°à°®à±‡à°¯ మూలమà±: %s\n"
"à°•à±à°•à±€: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "సింకౠసమాచారమà±à°¨à± పొందà±à°Ÿà°•à± విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1838,12 +1817,22 @@ msgstr ""
"\tలకà±à°·à°£à°¾à°²à±:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tà°ªà±à°°à±‹à°«à±ˆà°²à±à°¸à±:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tà°•à±à°°à°¿à°¯à°¾à°¶à±€à°² à°ªà±à°°à±Šà°«à±ˆà°²à±: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "మూలమౠసమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1882,20 +1871,20 @@ msgstr ""
"\tలకà±à°·à°£à°¾à°²à±:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "వరà±à°¤à°¿à°‚à°šà°¦à±"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "మాడà±à°¯à±‚లౠసమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1912,12 +1901,12 @@ msgstr ""
"\tలకà±à°·à°£à°¾à°²à±:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "à°•à°•à±à°·à°¿à°¦à°¾à°°à°¿ సమాచారమౠపొందà±à°Ÿà°²à±‹ విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1932,12 +1921,12 @@ msgstr ""
"\tలకà±à°·à°£à°¾à°²à±:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "కారà±à°¡à± సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1954,22 +1943,22 @@ msgstr ""
"\tలకà±à°·à°£à°¾à°²à±:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tà°ªà±à°°à±‹à°«à±ˆà°²à±à°¸à±:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tà°•à±à°°à°¿à°¯à°¾à°¶à±€à°² à°ªà±à°°à±Šà°«à±ˆà°²à±: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "సింకౠఇనà±à°ªà±à°Ÿà± సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2006,12 +1995,12 @@ msgstr ""
"\tలకà±à°·à°£à°¾à°²à±:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "మూలపౠఅవà±à°Ÿà±à°ªà±à°Ÿà± సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2040,12 +2029,12 @@ msgstr ""
"\tలకà±à°·à°£à°¾à°²à±:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "మాదిరి సమాచారమౠపొందà±à°Ÿà°•à± విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2076,22 +2065,22 @@ msgstr ""
"\tలకà±à°·à°£à°¾à°²à±:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "విఫైలà±à°¯à°®à±: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "మాదిరి à°…à°ªà±â€Œà°²à±‹à°¡à± చేయà±à°Ÿà°•à± విఫలమైంది: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "దసà±à°¤à±à°°à°®à± యొకà±à°• అపరిపకà±à°µ à°®à±à°—à°¿à°‚à°ªà±\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2106,6 +2095,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2137,7 +2128,7 @@ msgstr ""
" -n, --client-name=NAME How to call this client on the "
"server\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2148,66 +2139,76 @@ msgstr ""
"libpulse తో నిరà±à°µà°°à±à°¤à°¿à°‚చబడింది%s\n"
"libpulse తో లింకà±à°šà±‡à°¯à°¬à°¡à°¿à°‚ది %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "లోడà±à°µà±à°µà±à°Ÿà°•à± దయచేసి మాదిరి దసà±à°¤à±à°°à°®à±à°¨à± తెలà±à°ªà±à°®à±\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "శబà±à°¦à°ªà± దసà±à°¤à±à°°à°®à±à°¨à± తెరà±à°µà±à°Ÿà°•à± విఫలమైంది.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "%s à°¸à±à°Ÿà±à°°à±€à°®à±â€Œà°¨à± మాదిరి విశదీకరణి '%s'తో తెరà±à°šà±à°šà±à°¨à±à°¨à°¦à°¿.\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "à°ªà±à°²à±‡ చేయà±à°Ÿà°•à± మీరౠమాదిరి నామమà±à°¨à± తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "తొలగించà±à°Ÿà°•à± మీరౠమాదిరి నామమà±à°¨à± తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "మీరౠసింకౠఇనà±à°ªà±à°Ÿà± విషయసూచిక మరియౠసింకౠతెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "మీరౠమూలమౠఅవà±à°Ÿà±à°ªà±à°Ÿà± విషయసూచిక మరియౠమూలమౠతెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "మీరౠమాడà±à°¯à±‚లౠనామమౠమరియౠఆరà±à°—à±à°®à±†à°‚à°Ÿà±à°²à± తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది.\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "మీరౠమాడà±à°¯à±‚లౠవిషయసూచిక తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr ""
"మీరౠవొక సింకౠకనà±à°¨à°¾ యెకà±à°•à±à°µ తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚డకపోవచà±à°šà±. మీరౠబూలియనౠవిలà±à°µà°¨à± తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr ""
"మీరౠవొక మూలమౠకనà±à°¨à°¾ యెకà±à°•à±à°µ తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚డకపోవచà±à°šà±. మీరౠబూలియనౠవిలà±à°µà°¨à± తెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "మీరౠకారà±à°¡à± నామమà±/విషయసూచిక మరియౠపà±à°°à±Šà°«à±ˆà°²à± నామమౠతెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "మీరౠకారà±à°¡à± నామమà±/విషయసూచిక మరియౠపà±à°°à±Šà°«à±ˆà°²à± నామమౠతెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "మీరౠకారà±à°¡à± నామమà±/విషయసూచిక మరియౠపà±à°°à±Šà°«à±ˆà°²à± నామమౠతెలà±à°ªà°µà°²à°¸à°¿ à°µà±à°‚ది\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "à°Žà°Ÿà±à°µà°‚à°Ÿà°¿ విలà±à°µà±ˆà°¨ ఆదేశమౠతెలà±à°ªà°²à±‡à°¦à±.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect() విఫలమైంది: %s"
@@ -2332,7 +2333,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "ఆటోసà±à°ªà°¾à°¨à± తాళంనౠయాకà±à°¸à°¿à°¸à± చేయలేదà±."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2348,7 +2349,7 @@ msgstr ""
"మనమౠPOLLOUT అమరà±à°ªà± à°¦à±à°µà°¾à°°à°¾ జాగరూక పరచబడినామౠ-- à°à°®à±ˆà°¨à°ªà±à°ªà°Ÿà°¿à°•à°¿ snd_pcm_avail() à°…à°¨à±à°¨à°¦à°¿ 0 నౠ"
"యిసà±à°¤à±à°‚ది లేదా వేరొక విలà±à°µ < min_avail యిసà±à°¤à±à°‚ది."
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2364,31 +2365,16 @@ msgstr ""
"మనమౠPOLLOUT అమరà±à°ªà± à°¦à±à°µà°¾à°°à°¾ జాగరూక పరచబడినామౠ-- à°à°®à±ˆà°¨à°ªà±à°ªà°Ÿà°¿à°•à°¿ snd_pcm_avail() à°…à°¨à±à°¨à°¦à°¿ 0 నౠ"
"యిసà±à°¤à±à°‚ది లేదా వేరొక విలà±à°µ < min_avail యిసà±à°¤à±à°‚ది."
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "à°…à°µà±à°Ÿà±à°ªà±à°Ÿà± %s + ఇనà±à°ªà±à°Ÿà± %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "à°…à°µà±à°Ÿà±à°ªà±à°Ÿà± %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "ఇనà±à°ªà±à°Ÿà± %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "ఆఫà±"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "హై ఫెడిలిటి à°ªà±à°²à±‡à°¬à±à°¯à°¾à°•à± (A2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "టెలిఫోనీ డూపà±à°²à±†à°•à±à°¸à± (HSP/HFP)"
@@ -2396,6 +2382,48 @@ msgstr "టెలిఫోనీ డూపà±à°²à±†à°•à±à°¸à± (HSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "పలà±à°¸à± ఆడియో సౌండౠసేవిక"
+#~ msgid "Analog Mono"
+#~ msgstr "ఎనలాగౠమోనో"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "ఎనలాగౠసà±à°Ÿà±€à°°à°¿à°¯à±‹"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "డిజటలౠసà±à°Ÿà±€à°°à°¿à°¯à±‹ (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "డిజిటలౠసà±à°Ÿà±€à°°à°¿à°¯à±‹ (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "ఎనలాగౠసరౌండౠ4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "డిజిటలౠసరౌండౠ4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "ఎనలాగౠసరౌండౠ4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "ఎనలాగౠసరౌండౠ5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "ఎనలాగౠసరౌండౠ5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "డిజిటలౠసరౌండౠ5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "ఎనలాగౠసరౌండౠ7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "à°…à°µà±à°Ÿà±à°ªà±à°Ÿà± %s + ఇనà±à°ªà±à°Ÿà± %s"
+
+#~ msgid "Output %s"
+#~ msgstr "à°…à°µà±à°Ÿà±à°ªà±à°Ÿà± %s"
+
+#~ msgid "Input %s"
+#~ msgstr "ఇనà±à°ªà±à°Ÿà± %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "à°¸à±à°Ÿà±à°°à±€à°®à± సమరà±à°¦à°µà°‚తంగా సృషà±à°Ÿà°¿à°‚చబడింది\n"
diff --git a/po/uk.po b/po/uk.po
index 499e525d..c8b21c37 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-18 11:13+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation@linux.org.ua>\n"
@@ -17,51 +17,7 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "Ðналоговий моно"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "Ðналоговий Ñтерео"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "Цифровий Ñтерео (IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "Цифровий Ñтерео (HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "Ðналоговий об’ємний 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "Цифровий об’ємний 4.0 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "Ðналоговий об’ємний 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "Ðналоговий об’ємний 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "Ðналоговий об’ємний 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "Цифровий об’ємний 5.1 (IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "Ðналоговий об’ємний 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -74,7 +30,7 @@ msgstr ""
"Ймовірно, ви натрапили на ваду у драйвері ALSA «%s». Будь лаÑка, повідомте "
"про цю ваду розробникам ALSA."
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -87,7 +43,7 @@ msgstr ""
"Ймовірно, ви натрапили на ваду у драйвері ALSA «%s». Будь лаÑка, повідомте "
"про цю ваду розробникам ALSA."
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -100,11 +56,24 @@ msgstr ""
"Ймовірно, ви натрапили на ваду у драйвері ALSA «%s». Будь лаÑка, повідомте "
"про цю ваду розробникам ALSA."
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "Вбудоване аудіо"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "Модем"
@@ -498,15 +467,25 @@ msgstr "Каталог Ñтану: %s."
msgid "Running in system mode: %s"
msgstr "ЗапуÑку у загальноÑиÑтемному режимі: %s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_pid_file_create() зазнала невдачі."
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "ДоÑтупні Ñвіжі виÑокоточні таймери! Смачного!"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
@@ -514,29 +493,29 @@ msgstr ""
"Чувак, твоє Ñдро — лайно! Круті пацани рекомендують Linux з увімкненими "
"виÑокоточними таймерами!"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_core_new() зазнала невдачі."
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ фонову Ñлужбу."
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr ""
"ЗапуÑк фонової Ñлужби без жодного завантаженого модулÑ, Ñлужба не буде "
"працездатною."
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "ЗапуÑк фонової Ñлужби завершено."
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "Ініційовано Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ фонової Ñлужби."
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ„Ð¾Ð½Ð¾Ð²Ð¾Ñ— Ñлужби перервано."
@@ -926,237 +905,237 @@ msgstr ""
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr ""
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "Моно"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "Передній центральний"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "Передній лівий"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "Передній правий"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "Задній центральний"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "Задній лівий"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "Задній правий"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "Джерело низьких чаÑтот"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "Передній лівоцентральний"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "Передній правоцентральний"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "Боковий лівий"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "Боковий правий"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "Допоміжний 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "Допоміжний 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "Допоміжний 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "Допоміжний 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "Допоміжний 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "Допоміжний 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "Допоміжний 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "Допоміжний 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "Допоміжний 8"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "Допоміжний 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "Допоміжний 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "Допоміжний 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "Допоміжний 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "Допоміжний 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "Допоміжний 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "Допоміжний 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "Допоміжний 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "Допоміжний 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "Допоміжний 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "Допоміжний 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "Допоміжний 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "Допоміжний 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "Допоміжний 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "Допоміжний 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "Допоміжний 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "Допоміжний 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "Допоміжний 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "Допоміжний 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "Допоміжний 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "Допоміжний 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "Допоміжний 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "Допоміжний 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "Верхній центральний"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "Верхній передній центральний"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "Верхній передній лівий"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "Верхній передній правий"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "Верхній задній центральний"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "Верхній задній лівий"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "Верхній задній правий"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(некоректний)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "Стерео"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "Об'ємний 4.0"
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "Об'ємний 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "Об'ємний 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "Об'ємний 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "Об'ємний 7.1"
@@ -1440,7 +1419,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_stream_connect_record() зазнала невдачі: %s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "Спроба вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі: %s\n"
@@ -1596,7 +1575,7 @@ msgstr ""
"Зібрано з libpulse %s\n"
"З’єднано з libpulse %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "Ðекоректна карта каналів «%s»\n"
@@ -1665,7 +1644,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо фрагмента: %s\n"
@@ -1697,7 +1676,7 @@ msgid "playback"
msgstr "відтвореннÑ"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_mainloop_new() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾.\n"
@@ -1707,7 +1686,7 @@ msgid "io_new() failed.\n"
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ io_new() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾.\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_context_new() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾.\n"
@@ -1722,7 +1701,7 @@ msgid "time_new() failed.\n"
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ time_new() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾.\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_mainloop_run() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾.\n"
@@ -1753,7 +1732,7 @@ msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr ""
"ПОПЕРЕДЖЕÐÐЯ: звуковий Ñервер не Ñ” локальним, його не можна призупинити.\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "Отримано Ñигнал SIGINT, Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸.\n"
@@ -1794,33 +1773,33 @@ msgstr ""
"Зібрано з libpulse %s\n"
"З’єднано з libpulse %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ÑтатиÑтичні дані: %s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "Зараз викориÑтано: %u блоків, що міÑÑ‚ÑÑ‚ÑŒ загалом %s байтів.\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr ""
"Виділено протÑгом Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð°Ð»Ð¾Ð¼: %u блоків, що міÑÑ‚ÑÑ‚ÑŒ %s байтів.\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "Розмір кешу фрагментів: %s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо Ñервера: %s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1843,12 +1822,12 @@ msgstr ""
"Типове джерело: %s\n"
"Кука: %08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо приймача: %s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1887,12 +1866,22 @@ msgstr ""
"\tВлаÑтивоÑÑ‚Ñ–:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tПрофілі:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tÐктивний профіль: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо джерела: %s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1931,20 +1920,20 @@ msgstr ""
"\tВлаÑтивоÑÑ‚Ñ–:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "н/д"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо модулÑ: %s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1961,12 +1950,12 @@ msgstr ""
"\tВлаÑтивоÑÑ‚Ñ–:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо клієнта: %s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1981,12 +1970,12 @@ msgstr ""
"\tВлаÑтивоÑÑ‚Ñ–:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо карти: %s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -2003,22 +1992,22 @@ msgstr ""
"\tВлаÑтивоÑÑ‚Ñ–:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tПрофілі:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tÐктивний профіль: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ відомоÑтей щодо приймача: %s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -2055,12 +2044,12 @@ msgstr ""
"\tВлаÑтивоÑÑ‚Ñ–:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð°: %s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2089,12 +2078,12 @@ msgstr ""
"\tВлаÑтивоÑÑ‚Ñ–:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані щодо фрагмента: %s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2125,22 +2114,22 @@ msgstr ""
"\tВлаÑтивоÑÑ‚Ñ–:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "Помилка: %s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ зразок: %s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "ПередчаÑне Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2155,6 +2144,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2185,7 +2176,7 @@ msgstr ""
"з’єднатиÑÑ\n"
" -n, --client-name=ÐÐЗВРСпоÑіб виклику клієнта на Ñервері\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2196,44 +2187,44 @@ msgstr ""
"Зібрано з libpulse %s\n"
"З’єднано з libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "Будь лаÑка, вкажіть зразковий файл Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ звуковий файл.\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ %s з чаÑтотною Ñпецифікацією «%s».\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "Вам Ñлід вказати назву зразкового файла, Ñкий Ñлід відтворити\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "Вам Ñлід вказати назву зразкового файла, Ñкий Ñлід вилучити\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "Вам Ñлід вказати Ñ–Ð½Ð´ÐµÐºÑ Ð¿Ñ€Ð¸Ð¹Ð¼Ð°Ñ‡Ð° даних Ñ– приймач\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "Вам Ñлід вказати Ñ–Ð½Ð´ÐµÐºÑ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ– джерело\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "Вам Ñлід вказати назву Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ– аргументи.\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "Вам Ñлід вказати Ñ–Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´ÑƒÐ»Ñ\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
@@ -2241,7 +2232,7 @@ msgstr ""
"Ðе можна вказувати більше одного приймача. Вам Ñлід вказати булівÑьке "
"значеннÑ.\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
@@ -2249,15 +2240,25 @@ msgstr ""
"Ðе можна вказувати більше одного джерела. Вам Ñлід вказати булівÑьке "
"значеннÑ.\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "Вам Ñлід вказати назву/Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸ Ñ– назву профілю\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "Вам Ñлід вказати назву/Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸ Ñ– назву профілю\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "Вам Ñлід вказати назву/Ñ–Ð½Ð´ÐµÐºÑ ÐºÐ°Ñ€Ñ‚Ð¸ Ñ– назву профілю\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "Ðе вказано коректної команди.\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "Спроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ pa_context_connect() завершилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾: %s"
@@ -2385,7 +2386,7 @@ msgstr "write(): %s"
msgid "Cannot access autospawn lock."
msgstr "Ðе вдалоÑÑ Ð·Ð½Ñти Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ розгалуженнÑ."
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2396,7 +2397,7 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2407,31 +2408,16 @@ msgid ""
"returned 0 or another value < min_avail."
msgstr ""
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr ""
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr ""
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr ""
@@ -2440,6 +2426,39 @@ msgstr ""
msgid "PulseAudio Sound Server"
msgstr "Звукова ÑиÑтема PulseAudio"
+#~ msgid "Analog Mono"
+#~ msgstr "Ðналоговий моно"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "Ðналоговий Ñтерео"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "Цифровий Ñтерео (IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "Цифровий Ñтерео (HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "Ðналоговий об’ємний 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "Цифровий об’ємний 4.0 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "Ðналоговий об’ємний 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "Ðналоговий об’ємний 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "Ðналоговий об’ємний 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "Цифровий об’ємний 5.1 (IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "Ðналоговий об’ємний 7.1"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "Потік було уÑпішно Ñтворено\n"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 99a67221..2da73fe8 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pulseaudio.master-tx\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-08 00:29+0200\n"
+"POT-Creation-Date: 2009-06-17 23:42+0200\n"
"PO-Revision-Date: 2009-04-06 10:26+1000\n"
"Last-Translator: Leah Liu <lliu@redhat.com>\n"
"Language-Team: Simplified Chinese <zh@li.org>\n"
@@ -20,51 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
-#: ../src/modules/alsa/alsa-util.c:559
-msgid "Analog Mono"
-msgstr "模拟å•å£°é“"
-
-#: ../src/modules/alsa/alsa-util.c:567
-msgid "Analog Stereo"
-msgstr "模拟立体声"
-
-#: ../src/modules/alsa/alsa-util.c:575
-msgid "Digital Stereo (IEC958)"
-msgstr "数字立体声(IEC958)"
-
-#: ../src/modules/alsa/alsa-util.c:583
-msgid "Digital Stereo (HDMI)"
-msgstr "数字立体声(HDMI)"
-
-#: ../src/modules/alsa/alsa-util.c:592
-msgid "Analog Surround 4.0"
-msgstr "模拟环绕 4.0"
-
-#: ../src/modules/alsa/alsa-util.c:601
-msgid "Digital Surround 4.0 (IEC958/AC3)"
-msgstr "数字环绕 4.0(IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:611
-msgid "Analog Surround 4.1"
-msgstr "模拟环绕 4.1"
-
-#: ../src/modules/alsa/alsa-util.c:621
-msgid "Analog Surround 5.0"
-msgstr "模拟环绕 5.0"
-
-#: ../src/modules/alsa/alsa-util.c:631
-msgid "Analog Surround 5.1"
-msgstr "模拟环绕 5.1"
-
-#: ../src/modules/alsa/alsa-util.c:641
-msgid "Digital Surround 5.1 (IEC958/AC3)"
-msgstr "数字环绕 5.1(IEC958/AC3)"
-
-#: ../src/modules/alsa/alsa-util.c:652
-msgid "Analog Surround 7.1"
-msgstr "模拟环绕 7.1"
-
-#: ../src/modules/alsa/alsa-util.c:1769
+#: ../src/modules/alsa/alsa-util.c:1015
#, c-format
msgid ""
"snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu "
@@ -75,7 +31,7 @@ msgstr ""
"snd_pcm_avail() 返回的值éžå¸¸å¤§ï¼š%lu 字节(%lu ms)。\n"
"很å¯èƒ½æ˜¯ ALSA é©±åŠ¨ç¨‹åº '%s' 中的 bugã€‚è¯·å‘ ALSA å¼€å‘者举报这个问题。"
-#: ../src/modules/alsa/alsa-util.c:1810
+#: ../src/modules/alsa/alsa-util.c:1056
#, c-format
msgid ""
"snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%"
@@ -86,7 +42,7 @@ msgstr ""
"snd_pcm_delay() 返回的值éžå¸¸å¤§ï¼š%li 字节(%s%lu ms)。\n"
"很å¯èƒ½æ˜¯ ALSA é©±åŠ¨ç¨‹åº '%s' 中的 bugã€‚è¯·å‘ ALSA å¼€å‘者举报这个问题。"
-#: ../src/modules/alsa/alsa-util.c:1857
+#: ../src/modules/alsa/alsa-util.c:1103
#, c-format
msgid ""
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes "
@@ -97,11 +53,24 @@ msgstr ""
"snd_pcm_mmap_begin() 返回的值éžå¸¸å¤§ï¼š%lu 字节(%lu ms)。\n"
"很å¯èƒ½æ˜¯ ALSA é©±åŠ¨ç¨‹åº '%s' 中的 bugã€‚è¯·å‘ ALSA å¼€å‘者举报这个问题。"
-#: ../src/pulsecore/sink.c:2273
+#: ../src/modules/module-ladspa-sink.c:49
+msgid "Virtual LADSPA sink"
+msgstr ""
+
+#: ../src/modules/module-ladspa-sink.c:53
+msgid ""
+"sink_name=<name for the sink> sink_properties=<properties for the sink> "
+"master=<name of sink to filter> format=<sample format> rate=<sample rate> "
+"channels=<number of channels> channel_map=<channel map> plugin=<ladspa "
+"plugin name> label=<ladspa plugin label> control=<comma seperated list of "
+"input control values>"
+msgstr ""
+
+#: ../src/pulsecore/sink.c:2394
msgid "Internal Audio"
msgstr "内部音频"
-#: ../src/pulsecore/sink.c:2279
+#: ../src/pulsecore/sink.c:2400
msgid "Modem"
msgstr "调制解调器"
@@ -472,41 +441,51 @@ msgstr "正在使用状æ€æ–‡ä»¶å¤¹%s。"
msgid "Running in system mode: %s"
msgstr "正在以系统模å¼è¿è¡Œï¼š%s"
-#: ../src/daemon/main.c:946
+#: ../src/daemon/main.c:934
+msgid ""
+"OK, so you are running PA in system mode. Please note that you most likely "
+"shouldn't be doing that.\n"
+"If you do it nonetheless then it's your own fault if things don't work as "
+"expected.\n"
+"Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an "
+"explanation why system mode is usually a bad idea."
+msgstr ""
+
+#: ../src/daemon/main.c:951
msgid "pa_pid_file_create() failed."
msgstr "pa_pid_file_create()失败。"
-#: ../src/daemon/main.c:956
+#: ../src/daemon/main.c:961
msgid "Fresh high-resolution timers available! Bon appetit!"
msgstr "新鲜的高分辨率计时器开锅了ï¼åƒä¸ªé¥±ï¼"
-#: ../src/daemon/main.c:958
+#: ../src/daemon/main.c:963
msgid ""
"Dude, your kernel stinks! The chef's recommendation today is Linux with high-"
"resolution timers enabled!"
msgstr "è€å…„,你的内核真臭ï¼çŽ°åœ¨æµè¡Œçš„是å¯ç”¨äº†é«˜åˆ†è¾©çŽ‡è®¡åˆ†å™¨çš„Linuxï¼"
-#: ../src/daemon/main.c:983
+#: ../src/daemon/main.c:988
msgid "pa_core_new() failed."
msgstr "pa_core_new()失败。"
-#: ../src/daemon/main.c:1045
+#: ../src/daemon/main.c:1050
msgid "Failed to initialize daemon."
msgstr "åŽå°ç¨‹åºåˆå§‹åŒ–失败。"
-#: ../src/daemon/main.c:1050
+#: ../src/daemon/main.c:1055
msgid "Daemon startup without any loaded modules, refusing to work."
msgstr "åŽå°ç¨‹åºå¯åŠ¨æœªåŠ è½½ä»»ä½•æ¨¡å—,拒ç»å·¥ä½œã€‚"
-#: ../src/daemon/main.c:1067
+#: ../src/daemon/main.c:1072
msgid "Daemon startup complete."
msgstr "åŽå°ç¨‹åºå¯åŠ¨å®Œæˆã€‚"
-#: ../src/daemon/main.c:1073
+#: ../src/daemon/main.c:1078
msgid "Daemon shutdown initiated."
msgstr "开始关闭åŽå°ç¨‹åºã€‚"
-#: ../src/daemon/main.c:1095
+#: ../src/daemon/main.c:1100
msgid "Daemon terminated."
msgstr "åŽå°ç¨‹åºå·²ç»ˆæ­¢ã€‚"
@@ -857,237 +836,237 @@ msgstr "系统策略防止 PulseAudio 获得高优先调度。"
msgid "System policy prevents PulseAudio from acquiring real-time scheduling."
msgstr "系统策略防止 PulseAudio 获得实时调度。"
-#: ../src/pulse/channelmap.c:103 ../src/pulse/channelmap.c:804
+#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747
msgid "Mono"
msgstr "å•å£°é“"
-#: ../src/pulse/channelmap.c:105
+#: ../src/pulse/channelmap.c:107
msgid "Front Center"
msgstr "中å‰"
-#: ../src/pulse/channelmap.c:106
+#: ../src/pulse/channelmap.c:108
msgid "Front Left"
msgstr "å·¦å‰"
-#: ../src/pulse/channelmap.c:107
+#: ../src/pulse/channelmap.c:109
msgid "Front Right"
msgstr "å³å‰"
-#: ../src/pulse/channelmap.c:109
+#: ../src/pulse/channelmap.c:111
msgid "Rear Center"
msgstr "中åŽ"
-#: ../src/pulse/channelmap.c:110
+#: ../src/pulse/channelmap.c:112
msgid "Rear Left"
msgstr "å·¦åŽ"
-#: ../src/pulse/channelmap.c:111
+#: ../src/pulse/channelmap.c:113
msgid "Rear Right"
msgstr "å³åŽ"
-#: ../src/pulse/channelmap.c:113
+#: ../src/pulse/channelmap.c:115
msgid "Low Frequency Emmiter"
msgstr "低频脉冲"
-#: ../src/pulse/channelmap.c:115
+#: ../src/pulse/channelmap.c:117
msgid "Front Left-of-center"
msgstr "å‰å·¦ä¸­å¤®"
-#: ../src/pulse/channelmap.c:116
+#: ../src/pulse/channelmap.c:118
msgid "Front Right-of-center"
msgstr "å‰å³ä¸­å¤®"
-#: ../src/pulse/channelmap.c:118
+#: ../src/pulse/channelmap.c:120
msgid "Side Left"
msgstr "左侧"
-#: ../src/pulse/channelmap.c:119
+#: ../src/pulse/channelmap.c:121
msgid "Side Right"
msgstr "å³ä¾§"
-#: ../src/pulse/channelmap.c:121
+#: ../src/pulse/channelmap.c:123
msgid "Auxiliary 0"
msgstr "辅助 0"
-#: ../src/pulse/channelmap.c:122
+#: ../src/pulse/channelmap.c:124
msgid "Auxiliary 1"
msgstr "辅助 1"
-#: ../src/pulse/channelmap.c:123
+#: ../src/pulse/channelmap.c:125
msgid "Auxiliary 2"
msgstr "辅助 2"
-#: ../src/pulse/channelmap.c:124
+#: ../src/pulse/channelmap.c:126
msgid "Auxiliary 3"
msgstr "辅助 3"
-#: ../src/pulse/channelmap.c:125
+#: ../src/pulse/channelmap.c:127
msgid "Auxiliary 4"
msgstr "辅助 4"
-#: ../src/pulse/channelmap.c:126
+#: ../src/pulse/channelmap.c:128
msgid "Auxiliary 5"
msgstr "辅助 5"
-#: ../src/pulse/channelmap.c:127
+#: ../src/pulse/channelmap.c:129
msgid "Auxiliary 6"
msgstr "辅助 6"
-#: ../src/pulse/channelmap.c:128
+#: ../src/pulse/channelmap.c:130
msgid "Auxiliary 7"
msgstr "辅助 7"
-#: ../src/pulse/channelmap.c:129
+#: ../src/pulse/channelmap.c:131
msgid "Auxiliary 8"
msgstr "辅助 7"
-#: ../src/pulse/channelmap.c:130
+#: ../src/pulse/channelmap.c:132
msgid "Auxiliary 9"
msgstr "辅助 9"
-#: ../src/pulse/channelmap.c:131
+#: ../src/pulse/channelmap.c:133
msgid "Auxiliary 10"
msgstr "辅助 10"
-#: ../src/pulse/channelmap.c:132
+#: ../src/pulse/channelmap.c:134
msgid "Auxiliary 11"
msgstr "辅助 11"
-#: ../src/pulse/channelmap.c:133
+#: ../src/pulse/channelmap.c:135
msgid "Auxiliary 12"
msgstr "辅助 12"
-#: ../src/pulse/channelmap.c:134
+#: ../src/pulse/channelmap.c:136
msgid "Auxiliary 13"
msgstr "辅助 13"
-#: ../src/pulse/channelmap.c:135
+#: ../src/pulse/channelmap.c:137
msgid "Auxiliary 14"
msgstr "辅助 14"
-#: ../src/pulse/channelmap.c:136
+#: ../src/pulse/channelmap.c:138
msgid "Auxiliary 15"
msgstr "辅助 15"
-#: ../src/pulse/channelmap.c:137
+#: ../src/pulse/channelmap.c:139
msgid "Auxiliary 16"
msgstr "辅助 16"
-#: ../src/pulse/channelmap.c:138
+#: ../src/pulse/channelmap.c:140
msgid "Auxiliary 17"
msgstr "辅助 17"
-#: ../src/pulse/channelmap.c:139
+#: ../src/pulse/channelmap.c:141
msgid "Auxiliary 18"
msgstr "辅助 18"
-#: ../src/pulse/channelmap.c:140
+#: ../src/pulse/channelmap.c:142
msgid "Auxiliary 19"
msgstr "辅助 19"
-#: ../src/pulse/channelmap.c:141
+#: ../src/pulse/channelmap.c:143
msgid "Auxiliary 20"
msgstr "辅助 20"
-#: ../src/pulse/channelmap.c:142
+#: ../src/pulse/channelmap.c:144
msgid "Auxiliary 21"
msgstr "辅助 21"
-#: ../src/pulse/channelmap.c:143
+#: ../src/pulse/channelmap.c:145
msgid "Auxiliary 22"
msgstr "辅助 22"
-#: ../src/pulse/channelmap.c:144
+#: ../src/pulse/channelmap.c:146
msgid "Auxiliary 23"
msgstr "辅助 23"
-#: ../src/pulse/channelmap.c:145
+#: ../src/pulse/channelmap.c:147
msgid "Auxiliary 24"
msgstr "辅助 24"
-#: ../src/pulse/channelmap.c:146
+#: ../src/pulse/channelmap.c:148
msgid "Auxiliary 25"
msgstr "辅助 25"
-#: ../src/pulse/channelmap.c:147
+#: ../src/pulse/channelmap.c:149
msgid "Auxiliary 26"
msgstr "辅助 26"
-#: ../src/pulse/channelmap.c:148
+#: ../src/pulse/channelmap.c:150
msgid "Auxiliary 27"
msgstr "辅助 27"
-#: ../src/pulse/channelmap.c:149
+#: ../src/pulse/channelmap.c:151
msgid "Auxiliary 28"
msgstr "辅助 28"
-#: ../src/pulse/channelmap.c:150
+#: ../src/pulse/channelmap.c:152
msgid "Auxiliary 29"
msgstr "辅助 29"
-#: ../src/pulse/channelmap.c:151
+#: ../src/pulse/channelmap.c:153
msgid "Auxiliary 30"
msgstr "辅助 30"
-#: ../src/pulse/channelmap.c:152
+#: ../src/pulse/channelmap.c:154
msgid "Auxiliary 31"
msgstr "辅助 31"
-#: ../src/pulse/channelmap.c:154
+#: ../src/pulse/channelmap.c:156
msgid "Top Center"
msgstr "上中"
-#: ../src/pulse/channelmap.c:156
+#: ../src/pulse/channelmap.c:158
msgid "Top Front Center"
msgstr "上中å‰"
-#: ../src/pulse/channelmap.c:157
+#: ../src/pulse/channelmap.c:159
msgid "Top Front Left"
msgstr "上左å‰"
-#: ../src/pulse/channelmap.c:158
+#: ../src/pulse/channelmap.c:160
msgid "Top Front Right"
msgstr "上å³å‰"
-#: ../src/pulse/channelmap.c:160
+#: ../src/pulse/channelmap.c:162
msgid "Top Rear Center"
msgstr "上中åŽ"
-#: ../src/pulse/channelmap.c:161
+#: ../src/pulse/channelmap.c:163
msgid "Top Rear Left"
msgstr "上左åŽ"
-#: ../src/pulse/channelmap.c:162
+#: ../src/pulse/channelmap.c:164
msgid "Top Rear Right"
msgstr "上å³åŽ"
-#: ../src/pulse/channelmap.c:476 ../src/pulse/sample.c:167
-#: ../src/pulse/volume.c:237 ../src/pulse/volume.c:263
-#: ../src/pulse/volume.c:283 ../src/pulse/volume.c:313
+#: ../src/pulse/channelmap.c:478 ../src/pulse/sample.c:167
+#: ../src/pulse/volume.c:239 ../src/pulse/volume.c:265
+#: ../src/pulse/volume.c:285 ../src/pulse/volume.c:315
msgid "(invalid)"
msgstr "(无效)"
-#: ../src/pulse/channelmap.c:808
+#: ../src/pulse/channelmap.c:751
msgid "Stereo"
msgstr "立体声"
-#: ../src/pulse/channelmap.c:813
+#: ../src/pulse/channelmap.c:756
msgid "Surround 4.0"
msgstr "环绕 4.0 "
-#: ../src/pulse/channelmap.c:819
+#: ../src/pulse/channelmap.c:762
msgid "Surround 4.1"
msgstr "环绕 4.1"
-#: ../src/pulse/channelmap.c:825
+#: ../src/pulse/channelmap.c:768
msgid "Surround 5.0"
msgstr "环绕 5.0"
-#: ../src/pulse/channelmap.c:831
+#: ../src/pulse/channelmap.c:774
msgid "Surround 5.1"
msgstr "环绕 5.1"
-#: ../src/pulse/channelmap.c:838
+#: ../src/pulse/channelmap.c:781
msgid "Surround 7.1"
msgstr "环绕 7.1"
@@ -1370,7 +1349,7 @@ msgid "pa_stream_connect_record() failed: %s\n"
msgstr "pa_stream_connect_playback()失败:%s\n"
#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159
-#: ../src/utils/pactl.c:767
+#: ../src/utils/pactl.c:814
#, c-format
msgid "Connection failure: %s\n"
msgstr "连接失败:%s\n"
@@ -1511,7 +1490,7 @@ msgstr ""
"Compiled with libpulse %s\n"
"Linked with libpulse %s\n"
-#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:851
+#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900
#, fuzzy, c-format
msgid "Invalid client name '%s'\n"
msgstr "无效的通é“映射æè¿°'%s'\n"
@@ -1580,7 +1559,7 @@ msgid ""
"specification from file.\n"
msgstr ""
-#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:895
+#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944
#, fuzzy
msgid "Failed to determine sample specification from file.\n"
msgstr "获å–采样信æ¯å¤±è´¥ï¼š%s\n"
@@ -1612,7 +1591,7 @@ msgid "playback"
msgstr "回放"
#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277
-#: ../src/utils/pactl.c:1033
+#: ../src/utils/pactl.c:1104
#, c-format
msgid "pa_mainloop_new() failed.\n"
msgstr "pa_mainloop_new()失败。\n"
@@ -1622,7 +1601,7 @@ msgid "io_new() failed.\n"
msgstr "io_new()失败。\n"
#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290
-#: ../src/utils/pactl.c:1045
+#: ../src/utils/pactl.c:1116
#, c-format
msgid "pa_context_new() failed.\n"
msgstr "pa_context_new()失败。\n"
@@ -1637,7 +1616,7 @@ msgid "time_new() failed.\n"
msgstr "time_new()失败。\n"
#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298
-#: ../src/utils/pactl.c:1056
+#: ../src/utils/pactl.c:1127
#, c-format
msgid "pa_mainloop_run() failed.\n"
msgstr "pa_mainloop_run()失败。\n"
@@ -1667,7 +1646,7 @@ msgstr "æ¢å¤å¤±è´¥ï¼š%s\n"
msgid "WARNING: Sound server is not local, not suspending.\n"
msgstr "警告:éžæœ¬åœ°å£°éŸ³æœåŠ¡å™¨ï¼Œä¸ä¼šæŒ‚起。\n"
-#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:773
+#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820
#, c-format
msgid "Got SIGINT, exiting.\n"
msgstr "收到SIGINT,正在退出。\n"
@@ -1706,32 +1685,32 @@ msgstr ""
"Compiled with libpulse %s\n"
"Linked with libpulse %s\n"
-#: ../src/utils/pactl.c:113
+#: ../src/utils/pactl.c:128
#, c-format
msgid "Failed to get statistics: %s\n"
msgstr "获å–统计数æ®å¤±è´¥ï¼š%s\n"
-#: ../src/utils/pactl.c:119
+#: ../src/utils/pactl.c:134
#, c-format
msgid "Currently in use: %u blocks containing %s bytes total.\n"
msgstr "当å‰ä½¿ç”¨ï¼š%uå—,总共%s字节。\n"
-#: ../src/utils/pactl.c:122
+#: ../src/utils/pactl.c:137
#, c-format
msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr "整个生命周期所得分é…:%uå—,总共%s字节。\n"
-#: ../src/utils/pactl.c:125
+#: ../src/utils/pactl.c:140
#, c-format
msgid "Sample cache size: %s\n"
msgstr "采样缓存大å°ï¼š%s\n"
-#: ../src/utils/pactl.c:134
+#: ../src/utils/pactl.c:149
#, c-format
msgid "Failed to get server information: %s\n"
msgstr "获å–æœåŠ¡å™¨ä¿¡æ¯å¤±è´¥ï¼š%s\n"
-#: ../src/utils/pactl.c:142
+#: ../src/utils/pactl.c:157
#, c-format
msgid ""
"User name: %s\n"
@@ -1754,12 +1733,12 @@ msgstr ""
"默认æºï¼š %s\n"
"Cookie:%08x\n"
-#: ../src/utils/pactl.c:183
+#: ../src/utils/pactl.c:198
#, c-format
msgid "Failed to get sink information: %s\n"
msgstr "获å–音频出å£ä¿¡æ¯å¤±è´¥ï¼š%s\n"
-#: ../src/utils/pactl.c:199
+#: ../src/utils/pactl.c:214
#, c-format
msgid ""
"Sink #%u\n"
@@ -1798,12 +1777,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:263
+#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353
+#, fuzzy, c-format
+msgid "\tPorts:\n"
+msgstr "\tProfiles:\n"
+
+#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359
+#, fuzzy, c-format
+msgid "\tActive Port: %s\n"
+msgstr "\tActive Profile: %s\n"
+
+#: ../src/utils/pactl.c:290
#, c-format
msgid "Failed to get source information: %s\n"
msgstr "获å–音频入å£ä¿¡æ¯å¤±è´¥ï¼š%s\n"
-#: ../src/utils/pactl.c:279
+#: ../src/utils/pactl.c:306
#, c-format
msgid ""
"Source #%u\n"
@@ -1842,20 +1831,20 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:311 ../src/utils/pactl.c:355 ../src/utils/pactl.c:390
-#: ../src/utils/pactl.c:427 ../src/utils/pactl.c:486 ../src/utils/pactl.c:487
-#: ../src/utils/pactl.c:497 ../src/utils/pactl.c:541 ../src/utils/pactl.c:542
-#: ../src/utils/pactl.c:548 ../src/utils/pactl.c:591 ../src/utils/pactl.c:592
-#: ../src/utils/pactl.c:599
+#: ../src/utils/pactl.c:338 ../src/utils/pactl.c:394 ../src/utils/pactl.c:429
+#: ../src/utils/pactl.c:466 ../src/utils/pactl.c:525 ../src/utils/pactl.c:526
+#: ../src/utils/pactl.c:536 ../src/utils/pactl.c:580 ../src/utils/pactl.c:581
+#: ../src/utils/pactl.c:587 ../src/utils/pactl.c:630 ../src/utils/pactl.c:631
+#: ../src/utils/pactl.c:638
msgid "n/a"
msgstr "n/a"
-#: ../src/utils/pactl.c:329
+#: ../src/utils/pactl.c:368
#, c-format
msgid "Failed to get module information: %s\n"
msgstr "获å–模å—ä¿¡æ¯å¤±è´¥ï¼š%s\n"
-#: ../src/utils/pactl.c:347
+#: ../src/utils/pactl.c:386
#, c-format
msgid ""
"Module #%u\n"
@@ -1872,12 +1861,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:366
+#: ../src/utils/pactl.c:405
#, c-format
msgid "Failed to get client information: %s\n"
msgstr "获å–客户端信æ¯å¤±è´¥ï¼š%s\n"
-#: ../src/utils/pactl.c:384
+#: ../src/utils/pactl.c:423
#, c-format
msgid ""
"Client #%u\n"
@@ -1892,12 +1881,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:401
+#: ../src/utils/pactl.c:440
#, c-format
msgid "Failed to get card information: %s\n"
msgstr "获å–声å¡ä¿¡æ¯å¤±è´¥ï¼š%s\n"
-#: ../src/utils/pactl.c:419
+#: ../src/utils/pactl.c:458
#, c-format
msgid ""
"Card #%u\n"
@@ -1914,22 +1903,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:433
+#: ../src/utils/pactl.c:472
#, c-format
msgid "\tProfiles:\n"
msgstr "\tProfiles:\n"
-#: ../src/utils/pactl.c:439
+#: ../src/utils/pactl.c:478
#, c-format
msgid "\tActive Profile: %s\n"
msgstr "\tActive Profile: %s\n"
-#: ../src/utils/pactl.c:450
+#: ../src/utils/pactl.c:489
#, c-format
msgid "Failed to get sink input information: %s\n"
msgstr "获å–音频出å£è¾“入信æ¯å¤±è´¥ï¼š%s\n"
-#: ../src/utils/pactl.c:469
+#: ../src/utils/pactl.c:508
#, c-format
msgid ""
"Sink Input #%u\n"
@@ -1966,12 +1955,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:508
+#: ../src/utils/pactl.c:547
#, c-format
msgid "Failed to get source output information: %s\n"
msgstr "获å–音频入å£è¾“出信æ¯å¤±è´¥ï¼š%s\n"
-#: ../src/utils/pactl.c:528
+#: ../src/utils/pactl.c:567
#, c-format
msgid ""
"Source Output #%u\n"
@@ -2000,12 +1989,12 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:559
+#: ../src/utils/pactl.c:598
#, c-format
msgid "Failed to get sample information: %s\n"
msgstr "获å–采样信æ¯å¤±è´¥ï¼š%s\n"
-#: ../src/utils/pactl.c:577
+#: ../src/utils/pactl.c:616
#, c-format
msgid ""
"Sample #%u\n"
@@ -2036,22 +2025,22 @@ msgstr ""
"\tProperties:\n"
"\t\t%s\n"
-#: ../src/utils/pactl.c:607 ../src/utils/pactl.c:617
+#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656
#, c-format
msgid "Failure: %s\n"
msgstr "失败:%s\n"
-#: ../src/utils/pactl.c:641
+#: ../src/utils/pactl.c:680
#, c-format
msgid "Failed to upload sample: %s\n"
msgstr "上传采样失败:%s\n"
-#: ../src/utils/pactl.c:658
+#: ../src/utils/pactl.c:697
msgid "Premature end of file\n"
msgstr "文件过早结æŸ\n"
-#: ../src/utils/pactl.c:779
-#, c-format
+#: ../src/utils/pactl.c:826
+#, fuzzy, c-format
msgid ""
"%s [options] stat\n"
"%s [options] list\n"
@@ -2066,6 +2055,8 @@ msgid ""
"%s [options] suspend-sink [SINK] 1|0\n"
"%s [options] suspend-source [SOURCE] 1|0\n"
"%s [options] set-card-profile [CARD] [PROFILE] \n"
+"%s [options] set-sink-port [SINK] [PORT] \n"
+"%s [options] set-source-port [SOURCE] [PORT] \n"
"\n"
" -h, --help Show this help\n"
" --version Show version\n"
@@ -2097,7 +2088,7 @@ msgstr ""
" -n, --client-name=NAME How to call this client on the "
"server\n"
-#: ../src/utils/pactl.c:831
+#: ../src/utils/pactl.c:880
#, c-format
msgid ""
"pactl %s\n"
@@ -2108,64 +2099,74 @@ msgstr ""
"Compiled with libpulse %s\n"
"Linked with libpulse %s\n"
-#: ../src/utils/pactl.c:877
+#: ../src/utils/pactl.c:926
msgid "Please specify a sample file to load\n"
msgstr "请指定è¦åŠ è½½çš„采样文件\n"
-#: ../src/utils/pactl.c:890
+#: ../src/utils/pactl.c:939
msgid "Failed to open sound file.\n"
msgstr "打开声音文件失败。\n"
-#: ../src/utils/pactl.c:902
+#: ../src/utils/pactl.c:951
#, fuzzy
msgid "Warning: Failed to determine sample specification from file.\n"
msgstr "以采样规格'%s'打开%sæµã€‚\n"
-#: ../src/utils/pactl.c:912
+#: ../src/utils/pactl.c:961
msgid "You have to specify a sample name to play\n"
msgstr "你必须指定è¦æ’­æ”¾çš„采样å\n"
-#: ../src/utils/pactl.c:924
+#: ../src/utils/pactl.c:973
msgid "You have to specify a sample name to remove\n"
msgstr "你必须指定è¦åˆ é™¤çš„采样å\n"
-#: ../src/utils/pactl.c:933
+#: ../src/utils/pactl.c:982
msgid "You have to specify a sink input index and a sink\n"
msgstr "你必须指定音频出å£ç´¢å¼•å’ŒéŸ³é¢‘出å£\n"
-#: ../src/utils/pactl.c:943
+#: ../src/utils/pactl.c:992
msgid "You have to specify a source output index and a source\n"
msgstr "你必须指定音频入å£è¾“出索引和音频入å£\n"
-#: ../src/utils/pactl.c:958
+#: ../src/utils/pactl.c:1007
msgid "You have to specify a module name and arguments.\n"
msgstr "必须指定模å—åå’Œå‚数。\n"
-#: ../src/utils/pactl.c:978
+#: ../src/utils/pactl.c:1027
msgid "You have to specify a module index\n"
msgstr "必须指定模å—索引\n"
-#: ../src/utils/pactl.c:988
+#: ../src/utils/pactl.c:1037
msgid ""
"You may not specify more than one sink. You have to specify a boolean "
"value.\n"
msgstr "ä¸å¯æŒ‡å®šå¤šä¸ªéŸ³é¢‘出å£ã€‚必须指定一个布尔值。\n"
-#: ../src/utils/pactl.c:1001
+#: ../src/utils/pactl.c:1050
msgid ""
"You may not specify more than one source. You have to specify a boolean "
"value.\n"
msgstr "ä¸å¯æŒ‡å®šå¤šä¸ªæºã€‚必须指定一个布尔值。\n"
-#: ../src/utils/pactl.c:1013
+#: ../src/utils/pactl.c:1062
msgid "You have to specify a card name/index and a profile name\n"
msgstr "你必须指定声å¡å称/索引和侧写å称\n"
-#: ../src/utils/pactl.c:1028
+#: ../src/utils/pactl.c:1073
+#, fuzzy
+msgid "You have to specify a sink name/index and a port name\n"
+msgstr "你必须指定声å¡å称/索引和侧写å称\n"
+
+#: ../src/utils/pactl.c:1084
+#, fuzzy
+msgid "You have to specify a source name/index and a port name\n"
+msgstr "你必须指定声å¡å称/索引和侧写å称\n"
+
+#: ../src/utils/pactl.c:1099
msgid "No valid command specified.\n"
msgstr "未指定有效的命令。\n"
-#: ../src/utils/pactl.c:1051
+#: ../src/utils/pactl.c:1122
#, c-format
msgid "pa_context_connect() failed: %s"
msgstr "pa_context_connect()失败:%s"
@@ -2289,7 +2290,7 @@ msgstr "write():%s"
msgid "Cannot access autospawn lock."
msgstr "ä¸èƒ½è®¿é—®autospawné”。"
-#: ../src/modules/alsa/alsa-sink.c:446 ../src/modules/alsa/alsa-sink.c:594
+#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593
#, c-format
msgid ""
"ALSA woke us up to write new data to the device, but there was actually "
@@ -2305,7 +2306,7 @@ msgstr ""
"æ醒我们设置 POLLOUT -- 但结果是 snd_pcm_avail() 返回 0 或者å¦ä¸€ä¸ªå°äºŽæœ€å°å¯"
"用值的数值。"
-#: ../src/modules/alsa/alsa-source.c:430 ../src/modules/alsa/alsa-source.c:569
+#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563
#, c-format
msgid ""
"ALSA woke us up to read new data from the device, but there was actually "
@@ -2321,31 +2322,16 @@ msgstr ""
"æ醒我们设置 POLLOUT -- 但结果是 snd_pcm_avail() 返回 0 或者å¦ä¸€ä¸ªå°äºŽæœ€å°å¯"
"用值的数值。"
-#: ../src/modules/alsa/module-alsa-card.c:120
-#, c-format
-msgid "Output %s + Input %s"
-msgstr "输出 %s + 输入 %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:123
-#, c-format
-msgid "Output %s"
-msgstr "输出 %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:127
-#, c-format
-msgid "Input %s"
-msgstr "输入 %s"
-
-#: ../src/modules/alsa/module-alsa-card.c:176
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2058
+#: ../src/modules/alsa/module-alsa-card.c:152
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2062
msgid "Off"
msgstr "关闭"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2028
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2032
msgid "High Fidelity Playback (A2DP)"
msgstr "高ä¿çœŸå›žæ”¾ï¼ˆA2DP)"
-#: ../src/modules/bluetooth/module-bluetooth-device.c:2043
+#: ../src/modules/bluetooth/module-bluetooth-device.c:2047
msgid "Telephony Duplex (HSP/HFP)"
msgstr "åŒå·¥ç”µè¯ï¼ˆHSP/HFP)"
@@ -2353,6 +2339,48 @@ msgstr "åŒå·¥ç”µè¯ï¼ˆHSP/HFP)"
msgid "PulseAudio Sound Server"
msgstr "PulseAudio 声音æœåŠ¡å™¨"
+#~ msgid "Analog Mono"
+#~ msgstr "模拟å•å£°é“"
+
+#~ msgid "Analog Stereo"
+#~ msgstr "模拟立体声"
+
+#~ msgid "Digital Stereo (IEC958)"
+#~ msgstr "数字立体声(IEC958)"
+
+#~ msgid "Digital Stereo (HDMI)"
+#~ msgstr "数字立体声(HDMI)"
+
+#~ msgid "Analog Surround 4.0"
+#~ msgstr "模拟环绕 4.0"
+
+#~ msgid "Digital Surround 4.0 (IEC958/AC3)"
+#~ msgstr "数字环绕 4.0(IEC958/AC3)"
+
+#~ msgid "Analog Surround 4.1"
+#~ msgstr "模拟环绕 4.1"
+
+#~ msgid "Analog Surround 5.0"
+#~ msgstr "模拟环绕 5.0"
+
+#~ msgid "Analog Surround 5.1"
+#~ msgstr "模拟环绕 5.1"
+
+#~ msgid "Digital Surround 5.1 (IEC958/AC3)"
+#~ msgstr "数字环绕 5.1(IEC958/AC3)"
+
+#~ msgid "Analog Surround 7.1"
+#~ msgstr "模拟环绕 7.1"
+
+#~ msgid "Output %s + Input %s"
+#~ msgstr "输出 %s + 输入 %s"
+
+#~ msgid "Output %s"
+#~ msgstr "输出 %s"
+
+#~ msgid "Input %s"
+#~ msgstr "输入 %s"
+
#~ msgid "Stream successfully created\n"
#~ msgstr "æˆåŠŸåˆ›å»ºæµ\n"
diff --git a/shave-libtool.in b/shave-libtool.in
deleted file mode 100644
index 1f3a720c..00000000
--- a/shave-libtool.in
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/sh
-
-# we need sed
-SED=@SED@
-if test -z "$SED" ; then
-SED=sed
-fi
-
-lt_unmangle ()
-{
- last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'`
-}
-
-# the real libtool to use
-LIBTOOL="$1"
-shift
-
-# if 1, don't print anything, the underlaying wrapper will do it
-pass_though=0
-
-# scan the arguments, keep the right ones for libtool, and discover the mode
-preserved_args=
-while test "$#" -gt 0; do
- opt="$1"
- shift
-
- case $opt in
- --mode=*)
- mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'`
- preserved_args="$preserved_args $opt"
- ;;
- -o)
- lt_output="$1"
- preserved_args="$preserved_args $opt"
- ;;
- *)
- preserved_args="$preserved_args $opt"
- ;;
- esac
-done
-
-case "$mode" in
-compile)
- # shave will be called and print the actual CC/CXX/LINK line
- preserved_args="$preserved_args --shave-mode=$mode"
- pass_though=1
- ;;
-link)
- preserved_args="$preserved_args --shave-mode=$mode"
- Q=" LINK "
- ;;
-*)
- # let's u
- # echo "*** libtool: Unimplemented mode: $mode, fill a bug report"
- ;;
-esac
-
-lt_unmangle "$lt_output"
-output=$last_result
-
-if test -z $V; then
- if test $pass_though -eq 0; then
- echo "$Q$output"
- fi
- $LIBTOOL --silent $preserved_args
-else
- echo $LIBTOOL $preserved_args
- $LIBTOOL $preserved_args
-fi
diff --git a/shave.in b/shave.in
deleted file mode 100644
index 5c16f27a..00000000
--- a/shave.in
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/sh
-
-# we need sed
-SED=@SED@
-if test -z "$SED" ; then
-SED=sed
-fi
-
-lt_unmangle ()
-{
- last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'`
-}
-
-# the tool to wrap (cc, cxx, ar, ranlib, ..)
-tool="$1"
-shift
-
-# the reel tool (to call)
-REEL_TOOL="$1"
-shift
-
-pass_through=0
-preserved_args=
-while test "$#" -gt 0; do
- opt="$1"
- shift
-
- case $opt in
- --shave-mode=*)
- mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'`
- ;;
- -o)
- lt_output="$1"
- preserved_args="$preserved_args $opt"
- ;;
- *)
- preserved_args="$preserved_args $opt"
- ;;
- esac
-done
-
-# mode=link is handled in the libtool wrapper
-case "$mode,$tool" in
-link,*)
- pass_through=1
- ;;
-*,cxx)
- Q=" CXX "
- ;;
-*,cc)
- Q=" CC "
- ;;
-*,fc)
- Q=" FC "
- ;;
-*,f77)
- Q=" F77 "
- ;;
-*,objc)
- Q=" OBJC "
- ;;
-*,*)
- # should not happen
- Q=" CC "
- ;;
-esac
-
-lt_unmangle "$lt_output"
-output=$last_result
-
-if test -z $V; then
- if test $pass_through -eq 0; then
- echo "$Q$output"
- fi
- $REEL_TOOL $preserved_args
-else
- echo $REEL_TOOL $preserved_args
- $REEL_TOOL $preserved_args
-fi
diff --git a/src/Makefile.am b/src/Makefile.am
index 40b56757..c022fa7c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -29,8 +29,9 @@ pulsecoreincludedir=$(includedir)/pulsecore
pulseconfdir=$(sysconfdir)/pulse
pulselibexecdir=$(libexecdir)/pulse
xdgautostartdir=$(sysconfdir)/xdg/autostart
-alsaprofilesetsdir=$(datadir)/alsa-mixer/profile-sets
-alsapathsdir=$(datadir)/alsa-mixer/paths
+alsaprofilesetsdir=$(datadir)/pulseaudio/alsa-mixer/profile-sets
+alsapathsdir=$(datadir)/pulseaudio/alsa-mixer/paths
+udevrulesdir=/lib/udev/rules.d
###################################
# Defines #
@@ -63,6 +64,11 @@ AM_CFLAGS = \
-I$(top_srcdir)/src/modules/alsa \
-I$(top_builddir)/src/modules/alsa \
-I$(top_srcdir)/src/modules/raop \
+ -I$(top_builddir)/src/modules/raop \
+ -I$(top_srcdir)/src/modules/x11 \
+ -I$(top_builddir)/src/modules/x11 \
+ -I$(top_srcdir)/src/modules/jack \
+ -I$(top_builddir)/src/modules/jack \
$(PTHREAD_CFLAGS) -D_POSIX_PTHREAD_SEMANTICS \
$(LIBSAMPLERATE_CFLAGS) \
$(LIBSNDFILE_CFLAGS) \
@@ -81,7 +87,7 @@ AM_CFLAGS = \
AM_LIBADD = $(PTHREAD_LIBS) $(INTLLIBS)
AM_LDADD = $(PTHREAD_LIBS) $(INTLLIBS)
-AM_LDFLAGS = -Wl,-z,nodelete
+AM_LDFLAGS = $(NODELETE_LDFLAGS)
if STATIC_BINS
BINLDFLAGS = -static
@@ -93,7 +99,7 @@ WINSOCK_LIBS=-lwsock32 -lws2_32 -lwininet
endif
FOREIGN_CFLAGS = -w
-MODULE_LDFLAGS = -module -disable-static -avoid-version
+MODULE_LDFLAGS = -module -disable-static -avoid-version $(LDFLAGS_NOUNDEFINED)
###################################
# Extra files #
@@ -113,8 +119,10 @@ EXTRA_DIST = \
modules/module-defs.h.m4 \
daemon/pulseaudio.desktop.in \
map-file \
- daemon/org.pulseaudio.policy.in \
modules/alsa/mixer/profile-sets/default.conf \
+ modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf \
+ modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf \
+ modules/alsa/mixer/profile-sets/90-pulseaudio.rules \
modules/alsa/mixer/paths/analog-input-aux.conf \
modules/alsa/mixer/paths/analog-input.conf \
modules/alsa/mixer/paths/analog-input.conf.common \
@@ -175,19 +183,9 @@ PREOPEN_LIBS = $(modlibexec_LTLIBRARIES)
endif
if FORCE_PREOPEN
-pulseaudio_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) -dlpreopen force $(foreach f,$(PREOPEN_LIBS),-dlpreopen $(f))
+pulseaudio_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(IMMEDIATE_LDFLAGS) -dlpreopen force $(foreach f,$(PREOPEN_LIBS),-dlpreopen $(f))
else
-pulseaudio_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) -dlopen force $(foreach f,$(PREOPEN_LIBS),-dlopen $(f))
-endif
-
-if HAVE_POLKIT
-policy_in_files = daemon/org.pulseaudio.policy.in
-policy_DATA = $(policy_in_files:.policy.in=.policy)
-@INTLTOOL_POLICY_RULE@
-
-pulseaudio_SOURCES += daemon/polkit.c daemon/polkit.h
-pulseaudio_CFLAGS += $(POLKIT_CFLAGS)
-pulseaudio_LDADD += $(POLKIT_LIBS)
+pulseaudio_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(IMMEDIATE_LDFLAGS) -dlopen force $(foreach f,$(PREOPEN_LIBS),-dlopen $(f))
endif
###################################
@@ -568,6 +566,7 @@ libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES = \
pulsecore/authkey.c pulsecore/authkey.h \
pulsecore/conf-parser.c pulsecore/conf-parser.h \
pulsecore/core-error.c pulsecore/core-error.h \
+ pulsecore/core-rtclock.c pulsecore/core-rtclock.h \
pulsecore/core-util.c pulsecore/core-util.h \
pulsecore/creds.h \
pulsecore/dynarray.c pulsecore/dynarray.h \
@@ -606,7 +605,6 @@ libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES = \
pulsecore/queue.c pulsecore/queue.h \
pulsecore/random.c pulsecore/random.h \
pulsecore/refcnt.h \
- pulsecore/rtclock.c pulsecore/rtclock.h \
pulsecore/shm.c pulsecore/shm.h \
pulsecore/bitset.c pulsecore/bitset.h \
pulsecore/socket-client.c pulsecore/socket-client.h \
@@ -660,7 +658,9 @@ libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES += pulsecore/dllmain.c
endif
if HAVE_DBUS
-libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES += pulsecore/dbus-util.c pulsecore/dbus-util.h
+libpulsecommon_@PA_MAJORMINORMICRO@_la_SOURCES += \
+ pulsecore/dbus-util.c pulsecore/dbus-util.h \
+ pulsecore/rtkit.c pulsecore/rtkit.h
libpulsecommon_@PA_MAJORMINORMICRO@_la_CFLAGS += $(DBUS_CFLAGS)
libpulsecommon_@PA_MAJORMINORMICRO@_la_LIBADD += $(DBUS_LIBS)
endif
@@ -684,6 +684,7 @@ pulseinclude_HEADERS = \
pulse/operation.h \
pulse/proplist.h \
pulse/pulseaudio.h \
+ pulse/rtclock.h \
pulse/sample.h \
pulse/scache.h \
pulse/simple.h \
@@ -734,6 +735,7 @@ libpulse_la_SOURCES = \
pulse/operation.c pulse/operation.h \
pulse/proplist.c pulse/proplist.h \
pulse/pulseaudio.h \
+ pulse/rtclock.c pulse/rtclock.h \
pulse/sample.c pulse/sample.h \
pulse/scache.c pulse/scache.h \
pulse/stream.c pulse/stream.h \
@@ -817,7 +819,6 @@ libpulsecore_@PA_MAJORMINORMICRO@_la_SOURCES = \
pulsecore/play-memchunk.c pulsecore/play-memchunk.h \
pulsecore/resampler.c pulsecore/resampler.h \
pulsecore/rtpoll.c pulsecore/rtpoll.h \
- pulsecore/rtsig.c pulsecore/rtsig.h \
pulsecore/sample-util.c pulsecore/sample-util.h \
pulsecore/sconv-s16be.c pulsecore/sconv-s16be.h \
pulsecore/sconv-s16le.c pulsecore/sconv-s16le.h \
@@ -971,6 +972,7 @@ modlibexec_LTLIBRARIES += \
module-default-device-restore.la \
module-always-sink.la \
module-rescue-streams.la \
+ module-intended-roles.la \
module-suspend-on-idle.la \
module-http-protocol-tcp.la \
module-sine.la \
@@ -1045,7 +1047,14 @@ modlibexec_LTLIBRARIES += \
module-alsa-card.la
alsaprofilesets_DATA = \
- modules/alsa/mixer/profile-sets/default.conf
+ modules/alsa/mixer/profile-sets/default.conf \
+ modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf \
+ modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf
+
+if HAVE_UDEV
+udevrules_DATA = \
+ modules/alsa/mixer/profile-sets/90-pulseaudio.rules
+endif
alsapaths_DATA = \
modules/alsa/mixer/paths/analog-input-aux.conf \
@@ -1199,6 +1208,7 @@ SYMDEF_FILES = \
modules/module-default-device-restore-symdef.h \
modules/module-always-sink-symdef.h \
modules/module-rescue-streams-symdef.h \
+ modules/module-intended-roles-symdef.h \
modules/module-suspend-on-idle-symdef.h \
modules/module-hal-detect-symdef.h \
modules/module-udev-detect-symdef.h \
@@ -1236,7 +1246,7 @@ module_simple_protocol_unix_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINOR
module_cli_la_SOURCES = modules/module-cli.c
module_cli_la_LDFLAGS = $(MODULE_LDFLAGS)
-module_cli_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libcli.la
+module_cli_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libcli.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_cli_protocol_tcp_la_SOURCES = modules/module-protocol-stub.c
module_cli_protocol_tcp_la_CFLAGS = -DUSE_TCP_SOCKETS -DUSE_PROTOCOL_CLI $(AM_CFLAGS)
@@ -1435,7 +1445,7 @@ module_solaris_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la lib
module_zeroconf_publish_la_SOURCES = modules/module-zeroconf-publish.c
module_zeroconf_publish_la_LDFLAGS = $(MODULE_LDFLAGS)
-module_zeroconf_publish_la_LIBADD = $(AM_LIBADD) $(AVAHI_LIBS) libavahi-wrap.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
+module_zeroconf_publish_la_LIBADD = $(AM_LIBADD) $(AVAHI_LIBS) libavahi-wrap.la libprotocol-native.la libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_zeroconf_publish_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
module_zeroconf_discover_la_SOURCES = modules/module-zeroconf-discover.c
@@ -1531,6 +1541,12 @@ module_rescue_streams_la_LDFLAGS = $(MODULE_LDFLAGS)
module_rescue_streams_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
module_rescue_streams_la_CFLAGS = $(AM_CFLAGS)
+# Automatically move streams to devices that are intended for their roles
+module_intended_roles_la_SOURCES = modules/module-intended-roles.c
+module_intended_roles_la_LDFLAGS = $(MODULE_LDFLAGS)
+module_intended_roles_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
+module_intended_roles_la_CFLAGS = $(AM_CFLAGS)
+
# Suspend-on-idle module
module_suspend_on_idle_la_SOURCES = modules/module-suspend-on-idle.c
module_suspend_on_idle_la_LDFLAGS = $(MODULE_LDFLAGS)
@@ -1645,11 +1661,7 @@ module_rygel_media_server_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
# Some minor stuff #
###################################
-suid: pulseaudio .libs/lt-pulseaudio
- chown root $^
- chmod u+s $^
-
-CLEANFILES = esdcompat client.conf default.pa system.pa daemon.conf start-pulseaudio-x11 daemon/pulseaudio.desktop daemon/org.pulseaudio.policy
+CLEANFILES = esdcompat client.conf default.pa system.pa daemon.conf start-pulseaudio-x11 daemon/pulseaudio.desktop
esdcompat: daemon/esdcompat.in Makefile
sed -e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
@@ -1687,7 +1699,6 @@ daemon.conf: daemon/daemon.conf.in Makefile
install-exec-hook:
chown root $(DESTDIR)$(bindir)/pulseaudio ; true
- chmod u+s $(DESTDIR)$(bindir)/pulseaudio
-chmod u+s $(DESTDIR)$(pulselibexecdir)/proximity-helper
ln -sf pacat $(DESTDIR)$(bindir)/parec
ln -sf pacat $(DESTDIR)$(bindir)/pamon
@@ -1726,6 +1737,11 @@ update-reserve:
wget -O modules/$$i http://git.0pointer.de/\?p=reserve.git\;a=blob_plain\;f=$$i\;hb=master ; \
done
+update-rtkit:
+ for i in rtkit.c rtkit.h ; do \
+ wget -O pulsecore/$$i http://git.0pointer.de/\?p=rtkit.git\;a=blob_plain\;f=$$i\;hb=master ; \
+ done
+
# Automatically generate linker version script. We use the same one for all public .sos
update-map-file:
( echo "PULSE_0 {" ; \
diff --git a/src/daemon/caps.c b/src/daemon/caps.c
index d2ae8d0e..294be494 100644
--- a/src/daemon/caps.c
+++ b/src/daemon/caps.c
@@ -39,6 +39,7 @@
#ifdef HAVE_SYS_CAPABILITY_H
#include <sys/capability.h>
#endif
+
#ifdef HAVE_SYS_PRCTL_H
#include <sys/prctl.h>
#endif
@@ -51,12 +52,13 @@ int setresgid(gid_t r, gid_t e, gid_t s);
int setresuid(uid_t r, uid_t e, uid_t s);
#endif
-#ifdef HAVE_GETUID
-
/* Drop root rights when called SUID root */
void pa_drop_root(void) {
- uid_t uid = getuid();
+#ifdef HAVE_GETUID
+ uid_t uid;
+
+ uid = getuid();
if (uid == 0 || geteuid() != 0)
return;
@@ -73,90 +75,19 @@ void pa_drop_root(void) {
pa_assert_se(getuid() == uid);
pa_assert_se(geteuid() == uid);
-}
-
-#else
-
-void pa_drop_root(void) {
-}
-
-#endif
-
-#if defined(HAVE_SYS_CAPABILITY_H) && defined(HAVE_SYS_PRCTL_H)
-
-/* Limit permitted capabilities set to CAPSYS_NICE */
-void pa_limit_caps(void) {
- cap_t caps;
- cap_value_t nice_cap = CAP_SYS_NICE;
-
- pa_assert_se(caps = cap_init());
- pa_assert_se(cap_clear(caps) == 0);
- pa_assert_se(cap_set_flag(caps, CAP_EFFECTIVE, 1, &nice_cap, CAP_SET) == 0);
- pa_assert_se(cap_set_flag(caps, CAP_PERMITTED, 1, &nice_cap, CAP_SET) == 0);
-
- if (cap_set_proc(caps) < 0)
- /* Hmm, so we couldn't limit our caps, which probably means we
- * hadn't any in the first place, so let's just make sure of
- * that */
- pa_drop_caps();
- else
- pa_log_info(_("Limited capabilities successfully to CAP_SYS_NICE."));
-
- pa_assert_se(cap_free(caps) == 0);
-
- pa_assert_se(prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == 0);
-}
-
-/* Drop all capabilities, effectively becoming a normal user */
-void pa_drop_caps(void) {
- cap_t caps;
-
-#ifndef __OPTIMIZE__
- /* Valgrind doesn't not know set_caps, so we bypass it here -- but
- * only in development builds.*/
-
- if (pa_in_valgrind() && !pa_have_caps())
- return;
#endif
+#ifdef HAVE_SYS_PRCTL_H
pa_assert_se(prctl(PR_SET_KEEPCAPS, 0, 0, 0, 0) == 0);
-
- pa_assert_se(caps = cap_init());
- pa_assert_se(cap_clear(caps) == 0);
- pa_assert_se(cap_set_proc(caps) == 0);
- pa_assert_se(cap_free(caps) == 0);
-
- pa_assert_se(!pa_have_caps());
-}
-
-pa_bool_t pa_have_caps(void) {
- cap_t caps;
- cap_flag_value_t flag = CAP_CLEAR;
-
-#ifdef __OPTIMIZE__
- pa_assert_se(caps = cap_get_proc());
-#else
- if (!(caps = cap_get_proc()))
- return FALSE;
#endif
- pa_assert_se(cap_get_flag(caps, CAP_SYS_NICE, CAP_EFFECTIVE, &flag) >= 0);
- pa_assert_se(cap_free(caps) == 0);
-
- return flag == CAP_SET;
-}
-
-#else
-
-/* NOOPs in case capabilities are not available. */
-void pa_limit_caps(void) {
-}
-
-void pa_drop_caps(void) {
- pa_drop_root();
-}
-
-pa_bool_t pa_have_caps(void) {
- return FALSE;
-}
+#ifdef HAVE_SYS_CAPABILITY_H
+ {
+ cap_t caps;
+ pa_assert_se(caps = cap_init());
+ pa_assert_se(cap_clear(caps) == 0);
+ pa_assert_se(cap_set_proc(caps) == 0);
+ pa_assert_se(cap_free(caps) == 0);
+ }
#endif
+}
diff --git a/src/daemon/caps.h b/src/daemon/caps.h
index 94241a9a..5d0ee62e 100644
--- a/src/daemon/caps.h
+++ b/src/daemon/caps.h
@@ -25,8 +25,5 @@
#include <pulsecore/macro.h>
void pa_drop_root(void);
-void pa_drop_caps(void);
-void pa_limit_caps(void);
-pa_bool_t pa_have_caps(void);
#endif
diff --git a/src/daemon/cpulimit.c b/src/daemon/cpulimit.c
index 45d6a0fb..c2877ecf 100644
--- a/src/daemon/cpulimit.c
+++ b/src/daemon/cpulimit.c
@@ -24,13 +24,14 @@
#endif
#include <pulse/error.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/core-error.h>
#include <pulsecore/log.h>
#include <pulsecore/macro.h>
-#include <pulsecore/rtclock.h>
#include "cpulimit.h"
@@ -125,7 +126,7 @@ static void signal_handler(int sig) {
char t[256];
#endif
- now = pa_rtclock_usec();
+ now = pa_rtclock_now();
elapsed = now - last_time;
#ifdef PRINT_CPU_LOAD
@@ -184,7 +185,7 @@ int pa_cpu_limit_init(pa_mainloop_api *m) {
pa_assert(the_pipe[1] == -1);
pa_assert(!installed);
- last_time = pa_rtclock_usec();
+ last_time = pa_rtclock_now();
/* Prepare the main loop pipe */
if (pipe(the_pipe) < 0) {
diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c
index 664e4fde..9010f2f6 100644
--- a/src/daemon/daemon-conf.c
+++ b/src/daemon/daemon-conf.c
@@ -60,7 +60,7 @@ static const pa_daemon_conf default_conf = {
.fail = TRUE,
.high_priority = TRUE,
.nice_level = -11,
- .realtime_scheduling = FALSE,
+ .realtime_scheduling = TRUE,
.realtime_priority = 5, /* Half of JACK's default rtprio */
.disallow_module_loading = FALSE,
.disallow_exit = FALSE,
diff --git a/src/daemon/daemon.conf.in b/src/daemon/daemon.conf.in
index d119716d..6931359c 100644
--- a/src/daemon/daemon.conf.in
+++ b/src/daemon/daemon.conf.in
@@ -33,7 +33,7 @@
; high-priority = yes
; nice-level = -11
-; realtime-scheduling = no
+; realtime-scheduling = yes
; realtime-priority = 5
; exit-idle-time = 20
diff --git a/src/daemon/default.pa.in b/src/daemon/default.pa.in
index a35ff8ff..00c000eb 100755
--- a/src/daemon/default.pa.in
+++ b/src/daemon/default.pa.in
@@ -100,6 +100,9 @@ load-module module-rescue-streams
### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink
+### Honour intended role device property
+load-module module-intended-roles
+
### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle
diff --git a/src/daemon/main.c b/src/daemon/main.c
index 8058e122..b209c514 100644
--- a/src/daemon/main.c
+++ b/src/daemon/main.c
@@ -37,6 +37,7 @@
#include <unistd.h>
#include <locale.h>
#include <sys/types.h>
+#include <sys/stat.h>
#include <liboil/liboil.h>
@@ -64,6 +65,10 @@
#include <dbus/dbus.h>
#endif
+#ifdef __linux__
+#include <sys/personality.h>
+#endif
+
#include <pulse/mainloop.h>
#include <pulse/mainloop-signal.h>
#include <pulse/timeval.h>
@@ -73,6 +78,7 @@
#include <pulsecore/lock-autospawn.h>
#include <pulsecore/winsock.h>
#include <pulsecore/core-error.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core.h>
#include <pulsecore/memblock.h>
#include <pulsecore/module.h>
@@ -84,8 +90,6 @@
#include <pulsecore/pid.h>
#include <pulsecore/namereg.h>
#include <pulsecore/random.h>
-#include <pulsecore/rtsig.h>
-#include <pulsecore/rtclock.h>
#include <pulsecore/macro.h>
#include <pulsecore/mutex.h>
#include <pulsecore/thread.h>
@@ -102,7 +106,6 @@
#include "dumpmodules.h"
#include "caps.h"
#include "ltdl-bind-now.h"
-#include "polkit.h"
#ifdef HAVE_LIBWRAP
/* Only one instance of these variables */
@@ -133,7 +136,7 @@ static void message_cb(pa_mainloop_api*a, pa_time_event*e, const struct timeval
}
pa_timeval_add(pa_gettimeofday(&tvnext), 100000);
- a->time_restart(e, &tvnext);
+ a->rtclock_time_restart(e, &tvnext);
}
#endif
@@ -381,9 +384,7 @@ int main(int argc, char *argv[]) {
pa_mainloop *mainloop = NULL;
char *s;
int r = 0, retval = 1, d = 0;
- pa_bool_t suid_root, real_root;
pa_bool_t valid_pid_file = FALSE;
- gid_t gid = (gid_t) -1;
pa_bool_t ltdl_init = FALSE;
int passed_fd = -1;
const char *e;
@@ -408,7 +409,8 @@ int main(int argc, char *argv[]) {
/*
Disable lazy relocations to make usage of external libraries
more deterministic for our RT threads. We abuse __OPTIMIZE__ as
- a check whether we are a debug build or not.
+ a check whether we are a debug build or not. This all is
+ admittedly a bit snake-oilish.
*/
if (!getenv("LD_BIND_NOW")) {
@@ -419,36 +421,19 @@ int main(int argc, char *argv[]) {
pa_set_env("LD_BIND_NOW", "1");
- if ((rp = pa_readlink("/proc/self/exe")))
- pa_assert_se(execv(rp, argv) == 0);
- else
- pa_log_warn("Couldn't read /proc/self/exe, cannot self execute. Running in a chroot()?");
- }
-#endif
+ if ((rp = pa_readlink("/proc/self/exe"))) {
-#ifdef HAVE_GETUID
- real_root = getuid() == 0;
- suid_root = !real_root && geteuid() == 0;
-#else
- real_root = FALSE;
- suid_root = FALSE;
-#endif
-
- if (!real_root) {
- /* Drop all capabilities except CAP_SYS_NICE */
- pa_limit_caps();
-
- /* Drop privileges, but keep CAP_SYS_NICE */
- pa_drop_root();
+ if (pa_streq(rp, PA_BINARY))
+ pa_assert_se(execv(rp, argv) == 0);
+ else
+ pa_log_warn("/proc/self/exe does not point to " PA_BINARY ", cannot self execute. Are you playing games?");
- /* After dropping root, the effective set is reset, hence,
- * let's raise it again */
- pa_limit_caps();
+ pa_xfree(rp);
- /* When capabilities are not supported we will not be able to
- * acquire RT sched anymore. But yes, that's the way it is. It
- * is just too risky tun let PA run as root all the time. */
+ } else
+ pa_log_warn("Couldn't read /proc/self/exe, cannot self execute. Running in a chroot()?");
}
+#endif
if ((e = getenv("PULSE_PASSED_FD"))) {
passed_fd = atoi(e);
@@ -457,15 +442,20 @@ int main(int argc, char *argv[]) {
passed_fd = -1;
}
- pa_close_all(passed_fd, -1);
+ /* We might be autospawned, in which case have no idea in which
+ * context we have been started. Let's cleanup our execution
+ * context as good as possible */
+
+#ifdef __linux__
+ if (personality(PER_LINUX) < 0)
+ pa_log_warn("Uh, personality() failed: %s", pa_cstrerror(errno));
+#endif
+ pa_drop_root();
+ pa_close_all(passed_fd, -1);
pa_reset_sigs(-1);
pa_unblock_sigs(-1);
- /* At this point, we are a normal user, possibly with CAP_NICE if
- * we were started SUID. If we are started as normal root, than we
- * still are normal root. */
-
setlocale(LC_ALL, "");
pa_init_i18n();
@@ -490,150 +480,6 @@ int main(int argc, char *argv[]) {
pa_log_set_flags(PA_LOG_PRINT_TIME, PA_LOG_SET);
pa_log_set_show_backtrace(conf->log_backtrace);
- pa_log_debug("Started as real root: %s, suid root: %s", pa_yes_no(real_root), pa_yes_no(suid_root));
-
- if (!real_root && pa_have_caps()) {
-#ifdef HAVE_SYS_RESOURCE_H
- struct rlimit rl;
-#endif
- pa_bool_t allow_high_priority = FALSE, allow_realtime = FALSE;
-
- /* Let's better not enable high prio or RT by default */
-
- if (conf->high_priority && !allow_high_priority) {
- if (pa_own_uid_in_group(PA_REALTIME_GROUP, &gid) > 0) {
- pa_log_info(_("We're in the group '%s', allowing high-priority scheduling."), PA_REALTIME_GROUP);
- allow_high_priority = TRUE;
- }
- }
-
- if (conf->realtime_scheduling && !allow_realtime) {
- if (pa_own_uid_in_group(PA_REALTIME_GROUP, &gid) > 0) {
- pa_log_info(_("We're in the group '%s', allowing real-time scheduling."), PA_REALTIME_GROUP);
- allow_realtime = TRUE;
- }
- }
-
-#ifdef HAVE_POLKIT
- if (conf->high_priority && !allow_high_priority) {
- if (pa_polkit_check("org.pulseaudio.acquire-high-priority") > 0) {
- pa_log_info(_("PolicyKit grants us acquire-high-priority privilege."));
- allow_high_priority = TRUE;
- } else
- pa_log_info(_("PolicyKit refuses acquire-high-priority privilege."));
- }
-
- if (conf->realtime_scheduling && !allow_realtime) {
- if (pa_polkit_check("org.pulseaudio.acquire-real-time") > 0) {
- pa_log_info(_("PolicyKit grants us acquire-real-time privilege."));
- allow_realtime = TRUE;
- } else
- pa_log_info(_("PolicyKit refuses acquire-real-time privilege."));
- }
-#endif
-
- if (!allow_high_priority && !allow_realtime) {
-
- /* OK, there's no further need to keep CAP_NICE. Hence
- * let's give it up early */
-
- pa_drop_caps();
- }
-
-#ifdef RLIMIT_RTPRIO
- if (getrlimit(RLIMIT_RTPRIO, &rl) >= 0)
- if (rl.rlim_cur > 0) {
- pa_log_info("RLIMIT_RTPRIO is set to %u, allowing real-time scheduling.", (unsigned) rl.rlim_cur);
- allow_realtime = TRUE;
- }
-#endif
-#ifdef RLIMIT_NICE
- if (getrlimit(RLIMIT_NICE, &rl) >= 0)
- if (rl.rlim_cur > 20 ) {
- pa_log_info("RLIMIT_NICE is set to %u, allowing high-priority scheduling.", (unsigned) rl.rlim_cur);
- allow_high_priority = TRUE;
- }
-#endif
-
- if ((conf->high_priority && !allow_high_priority) ||
- (conf->realtime_scheduling && !allow_realtime))
- pa_log_info(_("Called SUID root and real-time and/or high-priority scheduling was requested in the configuration. However, we lack the necessary privileges:\n"
- "We are not in group '%s', PolicyKit refuse to grant us the requested privileges and we have no increase RLIMIT_NICE/RLIMIT_RTPRIO resource limits.\n"
- "For enabling real-time/high-priority scheduling please acquire the appropriate PolicyKit privileges, or become a member of '%s', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this user."),
- PA_REALTIME_GROUP, PA_REALTIME_GROUP);
-
-
- if (!allow_realtime)
- conf->realtime_scheduling = FALSE;
-
- if (!allow_high_priority)
- conf->high_priority = FALSE;
- }
-
-#ifdef HAVE_SYS_RESOURCE_H
- /* Reset resource limits. If we are run as root (for system mode)
- * this might end up increasing the limits, which is intended
- * behaviour. For all other cases, i.e. started as normal user, or
- * SUID root at this point we should have no CAP_SYS_RESOURCE and
- * increasing the limits thus should fail. Which is, too, intended
- * behaviour */
-
- set_all_rlimits(conf);
-#endif
-
- if (conf->high_priority && !pa_can_high_priority()) {
- pa_log_info(_("High-priority scheduling enabled in configuration but not allowed by policy."));
- conf->high_priority = FALSE;
- }
-
- if (conf->high_priority && (conf->cmd == PA_CMD_DAEMON || conf->cmd == PA_CMD_START))
- pa_raise_priority(conf->nice_level);
-
- pa_log_debug("Can realtime: %s, can high-priority: %s", pa_yes_no(pa_can_realtime()), pa_yes_no(pa_can_high_priority()));
-
- if (!real_root && pa_have_caps()) {
- pa_bool_t drop;
-
- drop = (conf->cmd != PA_CMD_DAEMON && conf->cmd != PA_CMD_START) || !conf->realtime_scheduling;
-
-#ifdef RLIMIT_RTPRIO
- if (!drop) {
- struct rlimit rl;
- /* At this point we still have CAP_NICE if we were loaded
- * SUID root. If possible let's acquire RLIMIT_RTPRIO
- * instead and give CAP_NICE up. */
-
- if (getrlimit(RLIMIT_RTPRIO, &rl) >= 0) {
-
- if (rl.rlim_cur >= 9)
- drop = TRUE;
- else {
- rl.rlim_max = rl.rlim_cur = 9;
-
- if (setrlimit(RLIMIT_RTPRIO, &rl) >= 0) {
- pa_log_info(_("Successfully increased RLIMIT_RTPRIO"));
- drop = TRUE;
- } else
- pa_log_warn(_("RLIMIT_RTPRIO failed: %s"), pa_cstrerror(errno));
- }
- }
- }
-#endif
-
- if (drop) {
- pa_log_info(_("Giving up CAP_NICE"));
- pa_drop_caps();
- suid_root = FALSE;
- }
- }
-
- if (conf->realtime_scheduling && !pa_can_realtime()) {
- pa_log_info(_("Real-time scheduling enabled in configuration but not allowed by policy."));
- conf->realtime_scheduling = FALSE;
- }
-
- pa_log_debug("Can realtime: %s, can high-priority: %s", pa_yes_no(pa_can_realtime()), pa_yes_no(pa_can_high_priority()));
-
LTDL_SET_PRELOADED_SYMBOLS();
pa_ltdl_init();
ltdl_init = TRUE;
@@ -718,9 +564,9 @@ int main(int argc, char *argv[]) {
pa_assert(conf->cmd == PA_CMD_DAEMON || conf->cmd == PA_CMD_START);
}
- if (real_root && !conf->system_instance)
+ if (getuid() == 0 && !conf->system_instance)
pa_log_warn(_("This program is not intended to be run as root (unless --system is specified)."));
- else if (!real_root && conf->system_instance) {
+ else if (getuid() != 0 && conf->system_instance) {
pa_log(_("Root privileges required."));
goto finish;
}
@@ -866,6 +712,13 @@ int main(int argc, char *argv[]) {
pa_assert_se(chdir("/") == 0);
umask(0022);
+#ifdef HAVE_SYS_RESOURCE_H
+ set_all_rlimits(conf);
+#endif
+ pa_rtclock_hrtimer_enable();
+
+ pa_raise_priority(conf->nice_level);
+
if (conf->system_instance)
if (change_user() < 0)
goto finish;
@@ -914,8 +767,8 @@ int main(int argc, char *argv[]) {
pa_xfree(s);
if ((s = pa_session_id())) {
- pa_log_info(_("Session ID is %s."), s);
- pa_xfree(s);
+ pa_log_info(_("Session ID is %s."), s);
+ pa_xfree(s);
}
if (!(s = pa_get_runtime_dir()))
@@ -962,13 +815,6 @@ int main(int argc, char *argv[]) {
else
pa_log_info(_("Dude, your kernel stinks! The chef's recommendation today is Linux with high-resolution timers enabled!"));
- pa_rtclock_hrtimer_enable();
-
-#ifdef SIGRTMIN
- /* Valgrind uses SIGRTMAX. To easy debugging we don't use it here */
- pa_rtsig_configure(SIGRTMIN, SIGRTMAX-1);
-#endif
-
if (conf->lock_memory) {
#ifdef HAVE_SYS_MMAN_H
if (mlockall(MCL_FUTURE) < 0)
@@ -1018,7 +864,7 @@ int main(int argc, char *argv[]) {
#endif
#ifdef OS_IS_WIN32
- win32_timer = pa_mainloop_get_api(mainloop)->time_new(pa_mainloop_get_api(mainloop), pa_gettimeofday(&win32_tv), message_cb, NULL);
+ win32_timer = pa_mainloop_get_api(mainloop)->rtclock_time_new(pa_mainloop_get_api(mainloop), pa_gettimeofday(&win32_tv), message_cb, NULL);
#endif
oil_init();
diff --git a/src/map-file b/src/map-file
index a2cc6c5d..a1d0a061 100644
--- a/src/map-file
+++ b/src/map-file
@@ -86,6 +86,8 @@ pa_context_ref;
pa_context_remove_autoload_by_index;
pa_context_remove_autoload_by_name;
pa_context_remove_sample;
+pa_context_rttime_new;
+pa_context_rttime_restart;
pa_context_set_card_profile_by_index;
pa_context_set_card_profile_by_name;
pa_context_set_default_sink;
@@ -195,6 +197,7 @@ pa_proplist_to_string_sep;
pa_proplist_unset;
pa_proplist_unset_many;
pa_proplist_update;
+pa_rtclock_now;
pa_sample_format_is_be;
pa_sample_format_is_le;
pa_sample_format_to_string;
diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
index 6f21e103..a5515e1b 100644
--- a/src/modules/alsa/alsa-mixer.c
+++ b/src/modules/alsa/alsa-mixer.c
@@ -479,6 +479,7 @@ static int element_get_volume(pa_alsa_element *e, snd_mixer_t *m, const pa_chann
snd_mixer_elem_t *me;
snd_mixer_selem_channel_id_t c;
pa_channel_position_mask_t mask = 0;
+ pa_volume_t max_channel_volume = PA_VOLUME_MUTED;
unsigned k;
pa_assert(m);
@@ -545,6 +546,9 @@ static int element_get_volume(pa_alsa_element *e, snd_mixer_t *m, const pa_chann
f = from_alsa_volume(value, e->min_volume, e->max_volume);
}
+ if (f > max_channel_volume)
+ max_channel_volume = f;
+
for (k = 0; k < cm->channels; k++)
if (e->masks[c][e->n_channels-1] & PA_CHANNEL_POSITION_MASK(cm->map[k]))
if (v->values[k] < f)
@@ -555,7 +559,7 @@ static int element_get_volume(pa_alsa_element *e, snd_mixer_t *m, const pa_chann
for (k = 0; k < cm->channels; k++)
if (!(mask & PA_CHANNEL_POSITION_MASK(cm->map[k])))
- v->values[k] = PA_VOLUME_NORM;
+ v->values[k] = max_channel_volume;
return 0;
}
@@ -677,6 +681,7 @@ static int element_set_volume(pa_alsa_element *e, snd_mixer_t *m, const pa_chann
snd_mixer_elem_t *me;
snd_mixer_selem_channel_id_t c;
pa_channel_position_mask_t mask = 0;
+ pa_volume_t max_channel_volume = PA_VOLUME_MUTED;
unsigned k;
pa_assert(m);
@@ -696,11 +701,21 @@ static int element_set_volume(pa_alsa_element *e, snd_mixer_t *m, const pa_chann
for (c = 0; c <= SND_MIXER_SCHN_LAST; c++) {
int r;
pa_volume_t f = PA_VOLUME_MUTED;
+ pa_bool_t found = FALSE;
for (k = 0; k < cm->channels; k++)
- if (e->masks[c][e->n_channels-1] & PA_CHANNEL_POSITION_MASK(cm->map[k]))
+ if (e->masks[c][e->n_channels-1] & PA_CHANNEL_POSITION_MASK(cm->map[k])) {
+ found = TRUE;
if (v->values[k] > f)
f = v->values[k];
+ }
+
+ if (!found) {
+ /* Hmm, so this channel does not exist in the volume
+ * struct, so let's bind it to the overall max of the
+ * volume. */
+ f = pa_cvolume_max(v);
+ }
if (e->has_dB) {
long value = to_alsa_dB(f);
@@ -756,6 +771,9 @@ static int element_set_volume(pa_alsa_element *e, snd_mixer_t *m, const pa_chann
f = from_alsa_volume(value, e->min_volume, e->max_volume);
}
+ if (f > max_channel_volume)
+ max_channel_volume = f;
+
for (k = 0; k < cm->channels; k++)
if (e->masks[c][e->n_channels-1] & PA_CHANNEL_POSITION_MASK(cm->map[k]))
if (rv.values[k] < f)
@@ -766,7 +784,7 @@ static int element_set_volume(pa_alsa_element *e, snd_mixer_t *m, const pa_chann
for (k = 0; k < cm->channels; k++)
if (!(mask & PA_CHANNEL_POSITION_MASK(cm->map[k])))
- rv.values[k] = PA_VOLUME_NORM;
+ rv.values[k] = max_channel_volume;
*v = rv;
return 0;
@@ -2930,7 +2948,7 @@ static int profile_verify(pa_alsa_profile *p) {
char **in;
pa_bool_t duplicate = FALSE;
- for (in = p->output_mapping_names; *in; in++)
+ for (in = name + 1; *in; in++)
if (pa_streq(*name, *in)) {
duplicate = TRUE;
break;
@@ -2945,6 +2963,9 @@ static int profile_verify(pa_alsa_profile *p) {
}
pa_idxset_put(p->output_mappings, m, NULL);
+
+ if (p->supported)
+ m->supported++;
}
pa_xstrfreev(p->output_mapping_names);
@@ -2963,7 +2984,7 @@ static int profile_verify(pa_alsa_profile *p) {
char **in;
pa_bool_t duplicate = FALSE;
- for (in = p->input_mapping_names; *in; in++)
+ for (in = name + 1; *in; in++)
if (pa_streq(*name, *in)) {
duplicate = TRUE;
break;
@@ -2978,6 +2999,9 @@ static int profile_verify(pa_alsa_profile *p) {
}
pa_idxset_put(p->input_mappings, m, NULL);
+
+ if (p->supported)
+ m->supported++;
}
pa_xstrfreev(p->input_mapping_names);
diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 2226bc6f..e7925902 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -32,16 +32,18 @@
#include <valgrind/memcheck.h>
#endif
-#include <pulse/xmalloc.h>
-#include <pulse/util.h>
-#include <pulse/timeval.h>
#include <pulse/i18n.h>
+#include <pulse/rtclock.h>
+#include <pulse/timeval.h>
+#include <pulse/util.h>
+#include <pulse/xmalloc.h>
#include <pulsecore/core.h>
#include <pulsecore/module.h>
#include <pulsecore/memchunk.h>
#include <pulsecore/sink.h>
#include <pulsecore/modargs.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/sample-util.h>
#include <pulsecore/log.h>
@@ -50,7 +52,6 @@
#include <pulsecore/core-error.h>
#include <pulsecore/thread-mq.h>
#include <pulsecore/rtpoll.h>
-#include <pulsecore/rtclock.h>
#include <pulsecore/time-smoother.h>
#include <modules/reserve-wrap.h>
@@ -168,10 +169,10 @@ static int reserve_init(struct userdata *u, const char *dname) {
if (pa_in_system_mode())
return 0;
- /* We are resuming, try to lock the device */
if (!(rname = pa_alsa_get_reserve_name(dname)))
return 0;
+ /* We are resuming, try to lock the device */
u->reserve = pa_reserve_wrapper_get(u->core, rname);
pa_xfree(rname);
@@ -221,7 +222,6 @@ static int reserve_monitor_init(struct userdata *u, const char *dname) {
if (pa_in_system_mode())
return 0;
- /* We are resuming, try to lock the device */
if (!(rname = pa_alsa_get_reserve_name(dname)))
return 0;
@@ -494,6 +494,9 @@ static int mmap_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle
if (frames > pa_mempool_block_size_max(u->sink->core->mempool)/u->frame_size)
frames = pa_mempool_block_size_max(u->sink->core->mempool)/u->frame_size;
+ if (frames == 0)
+ break;
+
/* Check these are multiples of 8 bit */
pa_assert((areas[0].first & 7) == 0);
pa_assert((areas[0].step & 7)== 0);
@@ -631,7 +634,8 @@ static int unix_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle
frames = snd_pcm_writei(u->pcm_handle, (const uint8_t*) p + u->memchunk.index, (snd_pcm_uframes_t) frames);
pa_memblock_release(u->memchunk.memblock);
- pa_assert(frames != 0);
+ if (frames == 0)
+ break;
if (PA_UNLIKELY(frames < 0)) {
@@ -707,7 +711,7 @@ static void update_smoother(struct userdata *u) {
/* Hmm, if the timestamp is 0, then it wasn't set and we take the current time */
if (now1 <= 0)
- now1 = pa_rtclock_usec();
+ now1 = pa_rtclock_now();
now2 = pa_bytes_to_usec((uint64_t) position, &u->sink->sample_spec);
@@ -721,7 +725,7 @@ static pa_usec_t sink_get_latency(struct userdata *u) {
pa_assert(u);
- now1 = pa_rtclock_usec();
+ now1 = pa_rtclock_now();
now2 = pa_smoother_get(u->smoother, now1);
delay = (int64_t) pa_bytes_to_usec(u->write_count, &u->sink->sample_spec) - (int64_t) now2;
@@ -752,7 +756,7 @@ static int suspend(struct userdata *u) {
pa_assert(u);
pa_assert(u->pcm_handle);
- pa_smoother_pause(u->smoother, pa_rtclock_usec());
+ pa_smoother_pause(u->smoother, pa_rtclock_now());
/* Let's suspend -- we don't call snd_pcm_drain() here since that might
* take awfully long with our long buffer sizes today. */
@@ -838,7 +842,6 @@ static int unsuspend(struct userdata *u) {
pa_log_info("Trying resume...");
- snd_config_update_free_global();
if ((err = snd_pcm_open(&u->pcm_handle, u->device_name, SND_PCM_STREAM_PLAYBACK,
/*SND_PCM_NONBLOCK|*/
SND_PCM_NO_AUTO_RESAMPLE|
@@ -1213,7 +1216,6 @@ static void thread_func(void *userdata) {
pa_make_realtime(u->core->realtime_priority);
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
for (;;) {
int ret;
@@ -1247,7 +1249,7 @@ static void thread_func(void *userdata) {
pa_log_info("Starting playback.");
snd_pcm_start(u->pcm_handle);
- pa_smoother_resume(u->smoother, pa_rtclock_usec(), TRUE);
+ pa_smoother_resume(u->smoother, pa_rtclock_now(), TRUE);
}
update_smoother(u);
@@ -1276,7 +1278,7 @@ static void thread_func(void *userdata) {
/* Convert from the sound card time domain to the
* system time domain */
- cusec = pa_smoother_translate(u->smoother, pa_rtclock_usec(), sleep_usec);
+ cusec = pa_smoother_translate(u->smoother, pa_rtclock_now(), sleep_usec);
/* pa_log_debug("Waking up in %0.2fms (system clock).", (double) cusec / PA_USEC_PER_MSEC); */
@@ -1335,7 +1337,7 @@ finish:
pa_log_debug("Thread shutting down");
}
-static void set_sink_name(pa_sink_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name) {
+static void set_sink_name(pa_sink_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name, pa_alsa_mapping *mapping) {
const char *n;
char *t;
@@ -1356,7 +1358,11 @@ static void set_sink_name(pa_sink_new_data *data, pa_modargs *ma, const char *de
data->namereg_fail = FALSE;
}
- t = pa_sprintf_malloc("alsa_output.%s", n);
+ if (mapping)
+ t = pa_sprintf_malloc("alsa_output.%s.%s", n, mapping->name);
+ else
+ t = pa_sprintf_malloc("alsa_output.%s", n);
+
pa_sink_new_data_set_name(data, t);
pa_xfree(t);
}
@@ -1578,7 +1584,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
TRUE,
TRUE,
5,
- pa_rtclock_usec(),
+ pa_rtclock_now(),
TRUE);
dev_id = pa_modargs_get_value(
@@ -1679,7 +1685,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
data.driver = driver;
data.module = m;
data.card = card;
- set_sink_name(&data, ma, dev_id, u->device_name);
+ set_sink_name(&data, ma, dev_id, u->device_name, mapping);
pa_sink_new_data_set_sample_spec(&data, &ss);
pa_sink_new_data_set_channel_map(&data, &map);
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index f2e4e234..41bb768b 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -28,10 +28,11 @@
#include <asoundlib.h>
-#include <pulse/xmalloc.h>
-#include <pulse/util.h>
-#include <pulse/timeval.h>
#include <pulse/i18n.h>
+#include <pulse/rtclock.h>
+#include <pulse/timeval.h>
+#include <pulse/util.h>
+#include <pulse/xmalloc.h>
#include <pulsecore/core-error.h>
#include <pulsecore/core.h>
@@ -39,6 +40,7 @@
#include <pulsecore/memchunk.h>
#include <pulsecore/sink.h>
#include <pulsecore/modargs.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/sample-util.h>
#include <pulsecore/log.h>
@@ -48,7 +50,6 @@
#include <pulsecore/thread-mq.h>
#include <pulsecore/rtpoll.h>
#include <pulsecore/time-smoother.h>
-#include <pulsecore/rtclock.h>
#include <modules/reserve-wrap.h>
@@ -472,6 +473,9 @@ static int mmap_read(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polled
if (frames > pa_mempool_block_size_max(u->source->core->mempool)/u->frame_size)
frames = pa_mempool_block_size_max(u->source->core->mempool)/u->frame_size;
+ if (frames == 0)
+ break;
+
/* Check these are multiples of 8 bit */
pa_assert((areas[0].first & 7) == 0);
pa_assert((areas[0].step & 7)== 0);
@@ -598,7 +602,10 @@ static int unix_read(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polled
frames = snd_pcm_readi(u->pcm_handle, (uint8_t*) p, (snd_pcm_uframes_t) frames);
pa_memblock_release(chunk.memblock);
- pa_assert(frames != 0);
+ if (frames == 0) {
+ pa_memblock_unref(chunk.memblock);
+ break;
+ }
if (PA_UNLIKELY(frames < 0)) {
pa_memblock_unref(chunk.memblock);
@@ -669,7 +676,7 @@ static void update_smoother(struct userdata *u) {
/* Hmm, if the timestamp is 0, then it wasn't set and we take the current time */
if (now1 <= 0)
- now1 = pa_rtclock_usec();
+ now1 = pa_rtclock_now();
now2 = pa_bytes_to_usec(position, &u->source->sample_spec);
@@ -682,7 +689,7 @@ static pa_usec_t source_get_latency(struct userdata *u) {
pa_assert(u);
- now1 = pa_rtclock_usec();
+ now1 = pa_rtclock_now();
now2 = pa_smoother_get(u->smoother, now1);
delay = (int64_t) now2 - (int64_t) pa_bytes_to_usec(u->read_count, &u->source->sample_spec);
@@ -707,7 +714,7 @@ static int suspend(struct userdata *u) {
pa_assert(u);
pa_assert(u->pcm_handle);
- pa_smoother_pause(u->smoother, pa_rtclock_usec());
+ pa_smoother_pause(u->smoother, pa_rtclock_now());
/* Let's suspend */
snd_pcm_close(u->pcm_handle);
@@ -787,8 +794,6 @@ static int unsuspend(struct userdata *u) {
pa_log_info("Trying resume...");
- snd_config_update_free_global();
-
if ((err = snd_pcm_open(&u->pcm_handle, u->device_name, SND_PCM_STREAM_CAPTURE,
/*SND_PCM_NONBLOCK|*/
SND_PCM_NO_AUTO_RESAMPLE|
@@ -835,7 +840,7 @@ static int unsuspend(struct userdata *u) {
/* FIXME: We need to reload the volume somehow */
snd_pcm_start(u->pcm_handle);
- pa_smoother_resume(u->smoother, pa_rtclock_usec(), TRUE);
+ pa_smoother_resume(u->smoother, pa_rtclock_now(), TRUE);
pa_log_info("Resumed successfully...");
@@ -1096,7 +1101,6 @@ static void thread_func(void *userdata) {
pa_make_realtime(u->core->realtime_priority);
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
for (;;) {
int ret;
@@ -1133,7 +1137,7 @@ static void thread_func(void *userdata) {
/* Convert from the sound card time domain to the
* system time domain */
- cusec = pa_smoother_translate(u->smoother, pa_rtclock_usec(), sleep_usec);
+ cusec = pa_smoother_translate(u->smoother, pa_rtclock_now(), sleep_usec);
/* pa_log_debug("Waking up in %0.2fms (system clock).", (double) cusec / PA_USEC_PER_MSEC); */
@@ -1187,7 +1191,7 @@ finish:
pa_log_debug("Thread shutting down");
}
-static void set_source_name(pa_source_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name) {
+static void set_source_name(pa_source_new_data *data, pa_modargs *ma, const char *device_id, const char *device_name, pa_alsa_mapping *mapping) {
const char *n;
char *t;
@@ -1208,7 +1212,11 @@ static void set_source_name(pa_source_new_data *data, pa_modargs *ma, const char
data->namereg_fail = FALSE;
}
- t = pa_sprintf_malloc("alsa_input.%s", n);
+ if (mapping)
+ t = pa_sprintf_malloc("alsa_input.%s.%s", n, mapping->name);
+ else
+ t = pa_sprintf_malloc("alsa_input.%s", n);
+
pa_source_new_data_set_name(data, t);
pa_xfree(t);
}
@@ -1429,7 +1437,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
TRUE,
TRUE,
5,
- pa_rtclock_usec(),
+ pa_rtclock_now(),
FALSE);
dev_id = pa_modargs_get_value(
@@ -1528,7 +1536,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
data.driver = driver;
data.module = m;
data.card = card;
- set_source_name(&data, ma, dev_id, u->device_name);
+ set_source_name(&data, ma, dev_id, u->device_name, mapping);
pa_source_new_data_set_sample_spec(&data, &ss);
pa_source_new_data_set_channel_map(&data, &map);
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
index 0204c28b..1f3e5dcd 100644
--- a/src/modules/alsa/alsa-util.c
+++ b/src/modules/alsa/alsa-util.c
@@ -735,38 +735,43 @@ static void alsa_error_handler(const char *file, int line, const char *function,
static pa_atomic_t n_error_handler_installed = PA_ATOMIC_INIT(0);
-void pa_alsa_redirect_errors_inc(void) {
+void pa_alsa_refcnt_inc(void) {
/* This is not really thread safe, but we do our best */
if (pa_atomic_inc(&n_error_handler_installed) == 0)
snd_lib_error_set_handler(alsa_error_handler);
}
-void pa_alsa_redirect_errors_dec(void) {
+void pa_alsa_refcnt_dec(void) {
int r;
pa_assert_se((r = pa_atomic_dec(&n_error_handler_installed)) >= 1);
- if (r == 1)
+ if (r == 1) {
snd_lib_error_set_handler(NULL);
+ snd_config_update_free_global();
+ }
}
pa_bool_t pa_alsa_init_description(pa_proplist *p) {
- const char *s;
+ const char *d, *k;
pa_assert(p);
if (pa_device_init_description(p))
return TRUE;
- if ((s = pa_proplist_gets(p, "alsa.card_name"))) {
- pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, s);
- return TRUE;
- }
+ if (!(d = pa_proplist_gets(p, "alsa.card_name")))
+ d = pa_proplist_gets(p, "alsa.name");
- if ((s = pa_proplist_gets(p, "alsa.name"))) {
- pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, s);
- return TRUE;
- }
+ if (!d)
+ return FALSE;
+
+ k = pa_proplist_gets(p, PA_PROP_DEVICE_PROFILE_DESCRIPTION);
+
+ if (d && k)
+ pa_proplist_setf(p, PA_PROP_DEVICE_DESCRIPTION, _("%s %s"), d, k);
+ else if (d)
+ pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, d);
return FALSE;
}
diff --git a/src/modules/alsa/alsa-util.h b/src/modules/alsa/alsa-util.h
index c2f0e5b7..830a922e 100644
--- a/src/modules/alsa/alsa-util.h
+++ b/src/modules/alsa/alsa-util.h
@@ -114,8 +114,8 @@ snd_pcm_t *pa_alsa_open_by_template(
void pa_alsa_dump(pa_log_level_t level, snd_pcm_t *pcm);
void pa_alsa_dump_status(snd_pcm_t *pcm);
-void pa_alsa_redirect_errors_inc(void);
-void pa_alsa_redirect_errors_dec(void);
+void pa_alsa_refcnt_inc(void);
+void pa_alsa_refcnt_dec(void);
void pa_alsa_init_proplist_pcm_info(pa_core *c, pa_proplist *p, snd_pcm_info_t *pcm_info);
void pa_alsa_init_proplist_card(pa_core *c, pa_proplist *p, int card);
diff --git a/src/modules/alsa/mixer/paths/analog-input-aux.conf b/src/modules/alsa/mixer/paths/analog-input-aux.conf
index 8f480567..db78eb48 100644
--- a/src/modules/alsa/mixer/paths/analog-input-aux.conf
+++ b/src/modules/alsa/mixer/paths/analog-input-aux.conf
@@ -1,4 +1,22 @@
-# For devices, where we have an Aux element
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; For devices where an 'Aux' element exists
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 90
@@ -29,4 +47,16 @@ override-map.2 = all-left,all-right
switch = off
volume = off
+[Element Mic/Line]
+switch = off
+volume = off
+
+[Element TV Tuner]
+switch = off
+volume = off
+
+[Element FM]
+switch = off
+volume = off
+
.include analog-input.conf.common
diff --git a/src/modules/alsa/mixer/paths/analog-input-fm.conf b/src/modules/alsa/mixer/paths/analog-input-fm.conf
index 0f78f39f..baf674aa 100644
--- a/src/modules/alsa/mixer/paths/analog-input-fm.conf
+++ b/src/modules/alsa/mixer/paths/analog-input-fm.conf
@@ -1,4 +1,22 @@
-# For devices where we have an FM element
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; For devices where an 'FM' element exists
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 70
diff --git a/src/modules/alsa/mixer/paths/analog-input-linein.conf b/src/modules/alsa/mixer/paths/analog-input-linein.conf
index b6ba738c..4be5722d 100644
--- a/src/modules/alsa/mixer/paths/analog-input-linein.conf
+++ b/src/modules/alsa/mixer/paths/analog-input-linein.conf
@@ -1,4 +1,22 @@
-# For devices, where we have a Line element
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; For devices where a 'Line' element exists
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 90
diff --git a/src/modules/alsa/mixer/paths/analog-input-mic-line.conf b/src/modules/alsa/mixer/paths/analog-input-mic-line.conf
index 7d4addf7..f7f30854 100644
--- a/src/modules/alsa/mixer/paths/analog-input-mic-line.conf
+++ b/src/modules/alsa/mixer/paths/analog-input-mic-line.conf
@@ -1,4 +1,22 @@
-# For devices where we have a Mic/Lineb element
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; For devices where a 'Mic/Line' element exists
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 90
@@ -42,3 +60,4 @@ switch = off
volume = off
.include analog-input.conf.common
+.include analog-input-mic.conf.common
diff --git a/src/modules/alsa/mixer/paths/analog-input-mic.conf b/src/modules/alsa/mixer/paths/analog-input-mic.conf
index 004cd24a..2a36f2f3 100644
--- a/src/modules/alsa/mixer/paths/analog-input-mic.conf
+++ b/src/modules/alsa/mixer/paths/analog-input-mic.conf
@@ -1,4 +1,22 @@
-# For devices where we have a Mic element
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; For devices where a 'Mic' element exists
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 100
diff --git a/src/modules/alsa/mixer/paths/analog-input-mic.conf.common b/src/modules/alsa/mixer/paths/analog-input-mic.conf.common
index d67ee4e3..b35e7af8 100644
--- a/src/modules/alsa/mixer/paths/analog-input-mic.conf.common
+++ b/src/modules/alsa/mixer/paths/analog-input-mic.conf.common
@@ -1,3 +1,23 @@
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Common element for all microphone inputs
+;
+; See analog-output.conf.common for an explanation on the directives
+
;;; 'Mic Select'
[Element Mic Select]
@@ -15,6 +35,7 @@ priority = 19
[Element Mic Boost (+20dB)]
switch = select
+volume = merge
[Option Mic Boost (+20dB):on]
name = input-boost-on
@@ -24,6 +45,7 @@ name = input-boost-off
[Element Mic Boost]
switch = select
+volume = merge
[Option Mic Boost:on]
name = input-boost-on
diff --git a/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf b/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf
index ea0a0b72..8531ec70 100644
--- a/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf
+++ b/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf
@@ -1,4 +1,22 @@
-# For devices, where we have a TV Tuner element
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; For devices where a 'TV Tuner' element exists
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 70
diff --git a/src/modules/alsa/mixer/paths/analog-input-video.conf b/src/modules/alsa/mixer/paths/analog-input-video.conf
index 27acc254..74c76f07 100644
--- a/src/modules/alsa/mixer/paths/analog-input-video.conf
+++ b/src/modules/alsa/mixer/paths/analog-input-video.conf
@@ -1,4 +1,22 @@
-# For devices, where we have a Video element
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; For devices where a 'Video' element exists
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 70
@@ -28,4 +46,16 @@ volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
+[Element Mic/Line]
+switch = off
+volume = off
+
+[Element TV Tuner]
+switch = off
+volume = off
+
+[Element FM]
+switch = off
+volume = off
+
.include analog-input.conf.common
diff --git a/src/modules/alsa/mixer/paths/analog-input.conf b/src/modules/alsa/mixer/paths/analog-input.conf
index b221bb44..5055f90a 100644
--- a/src/modules/alsa/mixer/paths/analog-input.conf
+++ b/src/modules/alsa/mixer/paths/analog-input.conf
@@ -1,4 +1,23 @@
-# A fallback for devices that lack seperate Mic/Line/Aux/Video elements
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; A fallback for devices that lack seperate Mic/Line/Aux/Video/TV
+; Tuner/FM elements
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 100
diff --git a/src/modules/alsa/mixer/paths/analog-input.conf.common b/src/modules/alsa/mixer/paths/analog-input.conf.common
index d34afd04..6728a6ae 100644
--- a/src/modules/alsa/mixer/paths/analog-input.conf.common
+++ b/src/modules/alsa/mixer/paths/analog-input.conf.common
@@ -1,30 +1,48 @@
-# Mixer path for PulseAudio's ALSA backend. If multiple options by the
-# same id are discovered they will be suffixed with a number to
-# distuingish them, in the same order they appear here.
+# This file is part of PulseAudio.
#
-# Source selection should use the following names:
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
#
-# input -- If we don't know the exact kind of input
-# input-microphone
-# input-microphone-internal
-# input-microphone-external
-# input-linein
-# input-video
-# input-radio
-# input-docking-microphone
-# input-docking-linein
-# input-docking
-#
-# We explicitly don't want to wrap the following sources:
-#
-# CD
-# Synth/MIDI
-# Phone
-# Mix
-# Digital/SPDIF
-# Master
-# PC Speaker
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Mixer path for PulseAudio's ALSA backend, common elements for all
+; input paths. If multiple options by the same id are discovered they
+; will be suffixed with a number to distuingish them, in the same
+; order they appear here.
+;
+; Source selection should use the following names:
+;
+; input -- If we don't know the exact kind of input
+; input-microphone
+; input-microphone-internal
+; input-microphone-external
+; input-linein
+; input-video
+; input-radio
+; input-docking-microphone
+; input-docking-linein
+; input-docking
+;
+; We explicitly don't want to wrap the following sources:
+;
+; CD
+; Synth/MIDI
+; Phone
+; Mix
+; Digital/SPDIF
+; Master
+; PC Speaker
+;
+; See analog-output.conf.common for an explanation on the directives
;;; 'Input Source Select'
diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones.conf b/src/modules/alsa/mixer/paths/analog-output-headphones.conf
index 1a172d4c..c018e0eb 100644
--- a/src/modules/alsa/mixer/paths/analog-output-headphones.conf
+++ b/src/modules/alsa/mixer/paths/analog-output-headphones.conf
@@ -1,4 +1,22 @@
-# Path for mixers that have a Headphone slider
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Path for mixers that have a 'Headphone' control
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 90
diff --git a/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf b/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf
index 67031762..7a267890 100644
--- a/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf
+++ b/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf
@@ -1,5 +1,23 @@
-# Intended for usage in laptops that have a seperate LFE speaker
-# connected to the Master mono connector
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Intended for usage in laptops that have a seperate LFE speaker
+; connected to the Master mono connector
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 40
diff --git a/src/modules/alsa/mixer/paths/analog-output-mono.conf b/src/modules/alsa/mixer/paths/analog-output-mono.conf
index a23d9b79..f6cb9f8a 100644
--- a/src/modules/alsa/mixer/paths/analog-output-mono.conf
+++ b/src/modules/alsa/mixer/paths/analog-output-mono.conf
@@ -1,4 +1,22 @@
-# Intended for usage on boards that have a seperate Mono output plug.
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Intended for usage on boards that have a seperate Mono output plug.
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 50
diff --git a/src/modules/alsa/mixer/paths/analog-output.conf b/src/modules/alsa/mixer/paths/analog-output.conf
index 15e703c4..ea108aaf 100644
--- a/src/modules/alsa/mixer/paths/analog-output.conf
+++ b/src/modules/alsa/mixer/paths/analog-output.conf
@@ -1,4 +1,22 @@
-# Intended for the 'default' output
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Intended for the 'default' output
+;
+; See analog-output.conf.common for an explanation on the directives
[General]
priority = 100
diff --git a/src/modules/alsa/mixer/paths/analog-output.conf.common b/src/modules/alsa/mixer/paths/analog-output.conf.common
index c38eccde..cc1185f4 100644
--- a/src/modules/alsa/mixer/paths/analog-output.conf.common
+++ b/src/modules/alsa/mixer/paths/analog-output.conf.common
@@ -1,26 +1,97 @@
-# Common part of all paths
-
-# [General]
-# priority = ...
-# description = ...
-#
-# [Option ...:...]
-# name = ...
-# priority = ...
+# This file is part of PulseAudio.
#
-# [Element ...]
-# required = ignore | switch | volume | enumeration | any
-# required-absent = ignore | switch | volume
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
#
-# switch = ignore | mute | off | on | select
-# volume = ignore | merge | off | zero
-# enumeration = ignore | select
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
#
-# direction = playback | capture
-# direction-try-other = no | yes
-#
-# override-map.1 = ...
-# override-map.2 = ...
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Common part of all paths
+
+; So here's generally how mixer paths are used by PA: PA goes through
+; a mixer path file from top to bottom and checks if a mixer element
+; described therein exists. If so it is added to the list of mixer
+; elements PA will control, keeping the order it read them in. If a
+; mixer element described here has set the required= or
+; required-absent= directives a path might not be accepted as valid
+; and is ignored in its entirety (see below). However usually if a
+; element listed here is missing this one element is ignored but not
+; the entire path.
+;
+; When a device shall be muted/unmuted *all* elements listed in a path
+; file with "switch = mute" will be toggled.
+;
+; When a device shall change its volume, PA will got through the list
+; of all elements with "volume = merge" and set the volume on the
+; first element. If that element does not support dB volumes, this is
+; where the story ends. If it does support dB volumes, PA divides the
+; requested volume by the volume that was set on this element, and
+; then go on to the next element with "volume = merge" and then set
+; that there, and so on. That way the first volume element in the
+; path will be the one that does the 'biggest' part of the overall
+; volume adjustment, with the remaining elements usually being set to
+; some value next to 0dB. This logic makes sure we get the full range
+; over all volume sliders and a very high granularity of volumes
+; already in hardware.
+;
+; All switches and enumerations set to "select" are exposed via the
+; "port" functionality of sinks/sources. Basically every possible
+; switch setting and every possible enumeration setting will be
+; combined and made into a "port". So make sure you don't list too
+; many switches/enums for exposing, because the number of ports might
+; rise exponentially.
+;
+; Only one path can be selected at a time. All paths that are valid
+; for an audio device will be exposed as "port" for the sink/source.
+
+
+; [General]
+; priority = ... # Priority for this path
+; description = ...
+;
+; [Option ...:...] # For each option of an enumeration or switch element
+; # that shall be exposed as a sink/source port. Needs to
+; # be named after the Element, followed by a colon, followed
+; # by the option name, resp. on/off if the element is a switch.
+; name = ... # Logical name to use in the path identifier
+; priority = ... # Priority if this is made into a device port
+;
+; [Element ...] # For each element that we shall control
+; required = ignore | switch | volume | enumeration | any # If set, require this element to be of this kind and available,
+; # otherwise don't consider this path valid for the card
+; required-absent = ignore | switch | volume # If set, require this element to not be of this kind and not
+; # available, otherwise don't consider this path valid for the card
+;
+; switch = ignore | mute | off | on | select # What to do with this switch: ignore it, make it follow mute status,
+; # always set it to off, always to on, or make it selectable as port.
+; # If set to 'select' you need to define an Option section for on
+; # and off
+; volume = ignore | merge | off | zero # What to do with this volume: ignore it, merge it into the device
+; # volume slider, always set it to the lowest value possible, or always
+; # set it to 0 dB (for whatever that means)
+; enumeration = ignore | select # What to do with this enumeration, ignore it or make it selectable
+; # via device ports. If set to 'select' you need to define an Option section
+; # for each of the items you want to expose
+; direction = playback | capture # Is this relevant only for playback or capture? If not set this will implicitly be
+; # set the direction of the PCM device is opened as. Generally this doesn't need to be set
+; # unless you have a broken driver that has playback controls marked for capture or vice
+; # versa
+; direction-try-other = no | yes # If the element does not supported what is requested, try the other direction, too?
+;
+; override-map.1 = ... # Override the channel mask of the mixer control if the control only exposes a single channel
+; override-map.2 = ... # Override the channel masks of the mixer control if the control only exposes two channels
+; # Override maps should list for each element channel which high-level channels it controls via a
+; # channel mask. A channel mask may either be the name of a single channel, or the words "all-left",
+; # "all-right", "all-center", "all-front", "all-rear", and "all" to encode a specific subset of
+; # channels in a mask
[Element PCM]
switch = mute
diff --git a/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules b/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules
new file mode 100644
index 00000000..ea1a2fed
--- /dev/null
+++ b/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules
@@ -0,0 +1,26 @@
+# do not edit this file, it will be overwritten on update
+
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+SUBSYSTEM!="sound", GOTO="pulseaudio_end"
+ACTION!="change", GOTO="pulseaudio_end"
+KERNEL!="card*", GOTO="pulseaudio_end"
+
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="1978", ENV{PULSE_PROFILE_SET}="native-instruments-audio8dj.conf"
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="0839", ENV{PULSE_PROFILE_SET}="native-instruments-audio4dj.conf"
+
+LABEL="pulseaudio_end"
diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf
index bbe53410..ac41a8d3 100644
--- a/src/modules/alsa/mixer/profile-sets/default.conf
+++ b/src/modules/alsa/mixer/profile-sets/default.conf
@@ -1,22 +1,60 @@
-# Profile definitions for PulseAudio's ALSA backend
+# This file is part of PulseAudio.
#
-# [Mapping id]
-# device-strings = ...
-# channel-map = ...
-# description = ...
-# paths-input = ...
-# paths-output = ...
-# element-input = ...
-# element-output = ...
-# priority = ...
-# direction = any | input | output
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
#
-# [Profile id]
-# input-mappings = ...
-# output-mappings = ...
-# description = ...
-# priority = ...
-# skip-probe = no | yes
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Default profile definitions for the ALSA backend of PulseAudio. This
+; is used as fallback for all cards that have no special mapping
+; assigned. (and should be good enough for the vast majority of
+; cards). Use the udev property PULSE_PROFILE_SET to assign a
+; different profile set than this one to a device. So what is this
+; about? Simply, what we do here is map ALSA devices to how they are
+; exposed in PA. We say which ALSA device string to use to open a
+; device, which channel mapping to use then, and which mixer path to
+; use. This is encoded in a 'mapping'. Multiple of these mappings can
+; be bound together in a 'profile' which is then directly exposed in
+; the UI as a card profile. Each mapping assigned to a profile will
+; result in one sink/source to be created if the profile is selected
+; for the card.
+
+; [General]
+; auto-profiles = no | yes # Instead of defining all profiles manually, autogenerate
+; # them by combining every input mapping with every output mapping.
+;
+; [Mapping id]
+; device-strings = ... # ALSA device string. %f will be replaced by the card identifier.
+; channel-map = ... # Channel mapping to use for this device
+; description = ...
+; paths-input = ... # A list of mixer paths to use. Every path in this list will be probed.
+; # If multiple are found to be working they will be available as device ports
+; paths-output = ...
+; element-input = ... # Instead of configuring a full mixer path simply configure a single
+; # mixer element for volume/mute handling
+; element-output = ...
+; priority = ...
+; direction = any | input | output # Only useful for?
+;
+; [Profile id]
+; input-mappings = ... # Lists mappings for sources on this profile, those mapping must be
+; # defined in this file too
+; output-mappings = ... # Lists mappings for sinks on this profile, those mappings must be
+; # defined in this file too
+; description = ...
+; priority = ... # Numeric value to deduce priority for this profile
+; skip-probe = no | yes # Skip probing for availability? If this is yes then this profile
+; # will be assumed as working without probing. Makes initialization
+; # a bit faster but only works if the card is really known well.
[General]
auto-profiles = yes
@@ -99,6 +137,7 @@ channel-map = left,right
priority = 4
direction = output
+; An example for defining multiple-sink profiles
#[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo]
#description = Foobar
#output-mappings = analog-stereo iec958-stereo
diff --git a/src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf b/src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf
new file mode 100644
index 00000000..2b835308
--- /dev/null
+++ b/src/modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf
@@ -0,0 +1,91 @@
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Native Instruments Audio 4 DJ
+;
+; This card has two stereo pairs of input and two stereo pairs of
+; output, named channels A and B. Channel B has an additional
+; Headphone connector.
+;
+; We knowingly only define a subset of the theoretically possible
+; mapping combinations as profiles here.
+;
+; See default.conf for an explanation on the directives used here.
+
+[General]
+auto-profiles = no
+
+[Mapping analog-stereo-a]
+description = Analog Stereo Channel A
+device-strings = hw:%f,0,0
+channel-map = left,right
+
+[Mapping analog-stereo-b-output]
+description = Analog Stereo Channel B (Headphones)
+device-strings = hw:%f,0,1
+channel-map = left,right
+direction = output
+
+[Mapping analog-stereo-b-input]
+description = Analog Stereo Channel B
+device-strings = hw:%f,0,1
+channel-map = left,right
+direction = input
+
+[Profile output:analog-stereo-all+input:analog-stereo-all]
+description = Analog Stereo Duplex Channels A, B (Headphones)
+output-mappings = analog-stereo-a analog-stereo-b-output
+input-mappings = analog-stereo-a analog-stereo-b-input
+priority = 100
+skip-probe = yes
+
+[Profile output:analog-stereo-a+input:analog-stereo-a]
+description = Analog Stereo Duplex Channel A
+output-mappings = analog-stereo-a
+input-mappings = analog-stereo-a
+priority = 40
+skip-probe = yes
+
+[Profile output:analog-stereo-b+input:analog-stereo-b]
+description = Analog Stereo Duplex Channel B (Headphones)
+output-mappings = analog-stereo-b-output
+input-mappings = analog-stereo-b-input
+priority = 50
+skip-probe = yes
+
+[Profile output:analog-stereo-a]
+description = Analog Stereo Output Channel A
+output-mappings = analog-stereo-a
+priority = 5
+skip-probe = yes
+
+[Profile output:analog-stereo-b]
+description = Analog Stereo Output Channel B (Headphones)
+output-mappings = analog-stereo-b-output
+priority = 6
+skip-probe = yes
+
+[Profile input:analog-stereo-a]
+description = Analog Stereo Input Channel A
+input-mappings = analog-stereo-a
+priority = 2
+skip-probe = yes
+
+[Profile input:analog-stereo-b]
+description = Analog Stereo Input Channel B
+input-mappings = analog-stereo-b-input
+priority = 1
+skip-probe = yes
diff --git a/src/modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf b/src/modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf
new file mode 100644
index 00000000..3fe3cc56
--- /dev/null
+++ b/src/modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf
@@ -0,0 +1,162 @@
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of the
+# License, or (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+; Native Instruments Audio 8 DJ
+;
+; This card has four stereo pairs of input and four stereo pairs of
+; output, named channels A to D. Channel C has an additional Mic/Line
+; connector, channel D an additional Headphone connector.
+;
+; We knowingly only define a subset of the theoretically possible
+; mapping combinations as profiles here.
+;
+; See default.conf for an explanation on the directives used here.
+
+[General]
+auto-profiles = no
+
+[Mapping analog-stereo-a]
+description = Analog Stereo Channel A
+device-strings = hw:%f,0,0
+channel-map = left,right
+
+[Mapping analog-stereo-b]
+description = Analog Stereo Channel B
+device-strings = hw:%f,0,1
+channel-map = left,right
+
+# Since we want to set a different description for channel C's/D's input
+# and output we define two seperate mappings for them
+[Mapping analog-stereo-c-output]
+description = Analog Stereo Channel C
+device-strings = hw:%f,0,2
+channel-map = left,right
+direction = output
+
+[Mapping analog-stereo-c-input]
+description = Analog Stereo Channel C (Line/Mic)
+device-strings = hw:%f,0,2
+channel-map = left,right
+direction = input
+
+[Mapping analog-stereo-d-output]
+description = Analog Stereo Channel D (Headphones)
+device-strings = hw:%f,0,3
+channel-map = left,right
+direction = output
+
+[Mapping analog-stereo-d-input]
+description = Analog Stereo Channel D
+device-strings = hw:%f,0,3
+channel-map = left,right
+direction = input
+
+[Profile output:analog-stereo-all+input:analog-stereo-all]
+description = Analog Stereo Duplex Channels A, B, C (Line/Mic), D (Headphones)
+output-mappings = analog-stereo-a analog-stereo-b analog-stereo-c-output analog-stereo-d-output
+input-mappings = analog-stereo-a analog-stereo-b analog-stereo-c-input analog-stereo-d-input
+priority = 100
+skip-probe = yes
+
+[Profile output:analog-stereo-d+input:analog-stereo-c]
+description = Analog Stereo Channel D (Headphones) Output, Channel C (Line/Mic) Input
+output-mappings = analog-stereo-d-output
+input-mappings = analog-stereo-c-input
+priority = 90
+skip-probe = yes
+
+[Profile output:analog-stereo-c-d+input:analog-stereo-c-d]
+description = Analog Stereo Duplex Channels C (Line/Mic), D (Line/Mic)
+output-mappings = analog-stereo-c-output analog-stereo-d-output
+input-mappings = analog-stereo-c-input analog-stereo-d-input
+priority = 80
+skip-probe = yes
+
+[Profile output:analog-stereo-a+input:analog-stereo-a]
+description = Analog Stereo Duplex Channel A
+output-mappings = analog-stereo-a
+input-mappings = analog-stereo-a
+priority = 50
+skip-probe = yes
+
+[Profile output:analog-stereo-b+input:analog-stereo-b]
+description = Analog Stereo Duplex Channel B
+output-mappings = analog-stereo-b
+input-mappings = analog-stereo-b
+priority = 40
+skip-probe = yes
+
+[Profile output:analog-stereo-c+input:analog-stereo-c]
+description = Analog Stereo Duplex Channel C (Line/Mic)
+output-mappings = analog-stereo-c-output
+input-mappings = analog-stereo-c-input
+priority = 60
+skip-probe = yes
+
+[Profile output:analog-stereo-d+input:analog-stereo-d]
+description = Analog Stereo Duplex Channel D (Headphones)
+output-mappings = analog-stereo-d-output
+input-mappings = analog-stereo-d-input
+priority = 70
+skip-probe = yes
+
+[Profile output:analog-stereo-a]
+description = Analog Stereo Output Channel A
+output-mappings = analog-stereo-a
+priority = 6
+skip-probe = yes
+
+[Profile output:analog-stereo-b]
+description = Analog Stereo Output Channel B
+output-mappings = analog-stereo-b
+priority = 5
+skip-probe = yes
+
+[Profile output:analog-stereo-c]
+description = Analog Stereo Output Channel C
+output-mappings = analog-stereo-c-output
+priority = 7
+skip-probe = yes
+
+[Profile output:analog-stereo-d]
+description = Analog Stereo Output Channel D (Headphones)
+output-mappings = analog-stereo-d-output
+priority = 8
+skip-probe = yes
+
+[Profile input:analog-stereo-a]
+description = Analog Stereo Input Channel A
+input-mappings = analog-stereo-a
+priority = 2
+skip-probe = yes
+
+[Profile input:analog-stereo-b]
+description = Analog Stereo Input Channel B
+input-mappings = analog-stereo-b
+priority = 1
+skip-probe = yes
+
+[Profile input:analog-stereo-c]
+description = Analog Stereo Input Channel C (Line/Mic)
+input-mappings = analog-stereo-c-input
+priority = 4
+skip-probe = yes
+
+[Profile input:analog-stereo-d]
+description = Analog Stereo Input Channel D
+input-mappings = analog-stereo-d-input
+priority = 3
+skip-probe = yes
diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
index e8a7f206..55f6a6e2 100644
--- a/src/modules/alsa/module-alsa-card.c
+++ b/src/modules/alsa/module-alsa-card.c
@@ -287,8 +287,7 @@ int pa__init(pa_module *m) {
const char *description;
char *fn = NULL;
- pa_alsa_redirect_errors_inc();
- snd_config_update_free_global();
+ pa_alsa_refcnt_inc();
pa_assert(m);
@@ -443,6 +442,5 @@ void pa__done(pa_module*m) {
pa_xfree(u);
finish:
- snd_config_update_free_global();
- pa_alsa_redirect_errors_dec();
+ pa_alsa_refcnt_dec();
}
diff --git a/src/modules/alsa/module-alsa-sink.c b/src/modules/alsa/module-alsa-sink.c
index 058ea205..3aa89b2a 100644
--- a/src/modules/alsa/module-alsa-sink.c
+++ b/src/modules/alsa/module-alsa-sink.c
@@ -82,8 +82,7 @@ int pa__init(pa_module*m) {
pa_assert(m);
- pa_alsa_redirect_errors_inc();
- snd_config_update_free_global();
+ pa_alsa_refcnt_inc();
if (!(ma = pa_modargs_new(m->argument, valid_modargs))) {
pa_log("Failed to parse module arguments");
@@ -124,6 +123,5 @@ void pa__done(pa_module*m) {
if ((sink = m->userdata))
pa_alsa_sink_free(sink);
- snd_config_update_free_global();
- pa_alsa_redirect_errors_dec();
+ pa_alsa_refcnt_dec();
}
diff --git a/src/modules/alsa/module-alsa-source.c b/src/modules/alsa/module-alsa-source.c
index 3bd1b451..23da4185 100644
--- a/src/modules/alsa/module-alsa-source.c
+++ b/src/modules/alsa/module-alsa-source.c
@@ -37,6 +37,7 @@
#include <pulse/timeval.h>
#include <pulsecore/core-error.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core.h>
#include <pulsecore/module.h>
#include <pulsecore/memchunk.h>
@@ -51,7 +52,6 @@
#include <pulsecore/thread-mq.h>
#include <pulsecore/rtpoll.h>
#include <pulsecore/time-smoother.h>
-#include <pulsecore/rtclock.h>
#include "alsa-util.h"
#include "alsa-source.h"
@@ -106,8 +106,7 @@ int pa__init(pa_module*m) {
pa_assert(m);
- pa_alsa_redirect_errors_inc();
- snd_config_update_free_global();
+ pa_alsa_refcnt_inc();
if (!(ma = pa_modargs_new(m->argument, valid_modargs))) {
pa_log("Failed to parse module arguments");
@@ -148,6 +147,5 @@ void pa__done(pa_module*m) {
if ((source = m->userdata))
pa_alsa_source_free(source);
- snd_config_update_free_global();
- pa_alsa_redirect_errors_dec();
+ pa_alsa_refcnt_dec();
}
diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c
index 5c7681d4..66e1c31e 100644
--- a/src/modules/bluetooth/bluetooth-util.c
+++ b/src/modules/bluetooth/bluetooth-util.c
@@ -309,6 +309,17 @@ static void run_callback(pa_bluetooth_discovery *y, pa_bluetooth_device *d, pa_b
pa_hook_fire(&y->hook, d);
}
+static void remove_all_devices(pa_bluetooth_discovery *y) {
+ pa_bluetooth_device *d;
+
+ pa_assert(y);
+
+ while ((d = pa_hashmap_steal_first(y->devices))) {
+ run_callback(y, d, TRUE);
+ device_free(d);
+ }
+}
+
static void get_properties_reply(DBusPendingCall *pending, void *userdata) {
DBusMessage *r;
DBusMessageIter arg_i, element_i;
@@ -332,6 +343,12 @@ static void get_properties_reply(DBusPendingCall *pending, void *userdata) {
if (dbus_message_is_method_call(p->message, "org.bluez.Device", "GetProperties"))
d->device_info_valid = valid;
+ if (dbus_message_is_error(r, DBUS_ERROR_SERVICE_UNKNOWN)) {
+ pa_log_debug("Bluetooth daemon is apparently not available.");
+ remove_all_devices(y);
+ goto finish2;
+ }
+
if (dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR) {
if (!dbus_message_is_error(r, DBUS_ERROR_UNKNOWN_METHOD))
@@ -383,6 +400,7 @@ static void get_properties_reply(DBusPendingCall *pending, void *userdata) {
finish:
run_callback(y, d, FALSE);
+finish2:
dbus_message_unref(r);
PA_LLIST_REMOVE(pa_dbus_pending, y->pending, p);
@@ -412,6 +430,9 @@ static void found_device(pa_bluetooth_discovery *y, const char* path) {
pa_assert(y);
pa_assert(path);
+ if (pa_hashmap_get(y->devices, path))
+ return;
+
d = device_new(path);
pa_hashmap_put(y->devices, d->path, d);
@@ -439,9 +460,15 @@ static void list_devices_reply(DBusPendingCall *pending, void *userdata) {
pa_assert_se(y = p->context_data);
pa_assert_se(r = dbus_pending_call_steal_reply(pending));
+ if (dbus_message_is_error(r, DBUS_ERROR_SERVICE_UNKNOWN)) {
+ pa_log_debug("Bluetooth daemon is apparently not available.");
+ remove_all_devices(y);
+ goto finish;
+ }
+
if (dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR) {
pa_log("Error from ListDevices reply: %s", dbus_message_get_error_name(r));
- goto end;
+ goto finish;
}
if (!dbus_message_get_args(r, &e, DBUS_TYPE_ARRAY, DBUS_TYPE_OBJECT_PATH, &paths, &num, DBUS_TYPE_INVALID)) {
@@ -454,7 +481,7 @@ static void list_devices_reply(DBusPendingCall *pending, void *userdata) {
found_device(y, paths[i]);
}
-end:
+finish:
if (paths)
dbus_free_string_array (paths);
@@ -487,9 +514,15 @@ static void list_adapters_reply(DBusPendingCall *pending, void *userdata) {
pa_assert_se(y = p->context_data);
pa_assert_se(r = dbus_pending_call_steal_reply(pending));
+ if (dbus_message_is_error(r, DBUS_ERROR_SERVICE_UNKNOWN)) {
+ pa_log_debug("Bluetooth daemon is apparently not available.");
+ remove_all_devices(y);
+ goto finish;
+ }
+
if (dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR) {
pa_log("Error from ListAdapters reply: %s", dbus_message_get_error_name(r));
- goto end;
+ goto finish;
}
if (!dbus_message_get_args(r, &e, DBUS_TYPE_ARRAY, DBUS_TYPE_OBJECT_PATH, &paths, &num, DBUS_TYPE_INVALID)) {
@@ -502,7 +535,7 @@ static void list_adapters_reply(DBusPendingCall *pending, void *userdata) {
found_adapter(y, paths[i]);
}
-end:
+finish:
if (paths)
dbus_free_string_array (paths);
@@ -616,6 +649,32 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *m, void *us
}
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ } else if (dbus_message_is_signal(m, "org.freedesktop.DBus", "NameOwnerChanged")) {
+ const char *name, *old_owner, *new_owner;
+
+ if (!dbus_message_get_args(m, &err,
+ DBUS_TYPE_STRING, &name,
+ DBUS_TYPE_STRING, &old_owner,
+ DBUS_TYPE_STRING, &new_owner,
+ DBUS_TYPE_INVALID)) {
+ pa_log("Failed to parse org.freedesktop.DBus.NameOwnerChanged: %s", err.message);
+ goto fail;
+ }
+
+ if (pa_streq(name, "org.bluez")) {
+ if (old_owner && *old_owner) {
+ pa_log_debug("Bluetooth daemon disappeared.");
+ remove_all_devices(y);
+ }
+
+ if (new_owner && *new_owner) {
+ pa_log_debug("Bluetooth daemon appeared.");
+ list_adapters(y);
+ }
+ }
+
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
fail:
@@ -699,6 +758,7 @@ pa_bluetooth_discovery* pa_bluetooth_discovery_get(pa_core *c) {
if (pa_dbus_add_matches(
pa_dbus_connection_get(y->connection), &err,
+ "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged'",
"type='signal',sender='org.bluez',interface='org.bluez.Manager',member='AdapterAdded'",
"type='signal',sender='org.bluez',interface='org.bluez.Adapter',member='DeviceRemoved'",
"type='signal',sender='org.bluez',interface='org.bluez.Adapter',member='DeviceCreated'",
@@ -734,8 +794,6 @@ pa_bluetooth_discovery* pa_bluetooth_discovery_ref(pa_bluetooth_discovery *y) {
}
void pa_bluetooth_discovery_unref(pa_bluetooth_discovery *y) {
- pa_bluetooth_device *d;
-
pa_assert(y);
pa_assert(PA_REFCNT_VALUE(y) > 0);
@@ -745,16 +803,13 @@ void pa_bluetooth_discovery_unref(pa_bluetooth_discovery *y) {
pa_dbus_free_pending_list(&y->pending);
if (y->devices) {
- while ((d = pa_hashmap_steal_first(y->devices))) {
- run_callback(y, d, TRUE);
- device_free(d);
- }
-
+ remove_all_devices(y);
pa_hashmap_free(y->devices, NULL, NULL);
}
if (y->connection) {
pa_dbus_remove_matches(pa_dbus_connection_get(y->connection),
+ "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged'",
"type='signal',sender='org.bluez',interface='org.bluez.Manager',member='AdapterAdded'",
"type='signal',sender='org.bluez',interface='org.bluez.Manager',member='AdapterRemoved'",
"type='signal',sender='org.bluez',interface='org.bluez.Adapter',member='DeviceRemoved'",
diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
index 6bcd0b80..0560ef32 100644
--- a/src/modules/bluetooth/module-bluetooth-device.c
+++ b/src/modules/bluetooth/module-bluetooth-device.c
@@ -30,13 +30,15 @@
#include <linux/sockios.h>
#include <arpa/inet.h>
-#include <pulse/xmalloc.h>
-#include <pulse/timeval.h>
-#include <pulse/sample.h>
#include <pulse/i18n.h>
+#include <pulse/rtclock.h>
+#include <pulse/sample.h>
+#include <pulse/timeval.h>
+#include <pulse/xmalloc.h>
#include <pulsecore/module.h>
#include <pulsecore/modargs.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/core-error.h>
#include <pulsecore/socket-util.h>
@@ -44,7 +46,6 @@
#include <pulsecore/thread-mq.h>
#include <pulsecore/rtpoll.h>
#include <pulsecore/time-smoother.h>
-#include <pulsecore/rtclock.h>
#include <pulsecore/namereg.h>
#include <pulsecore/dbus-shared.h>
@@ -773,7 +774,7 @@ static int start_stream_fd(struct userdata *u) {
TRUE,
TRUE,
10,
- pa_rtclock_usec(),
+ pa_rtclock_now(),
TRUE);
return 0;
@@ -867,14 +868,14 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
if (u->read_smoother) {
pa_usec_t wi, ri;
- ri = pa_smoother_get(u->read_smoother, pa_rtclock_usec());
+ ri = pa_smoother_get(u->read_smoother, pa_rtclock_now());
wi = pa_bytes_to_usec(u->write_index + u->block_size, &u->sample_spec);
*((pa_usec_t*) data) = wi > ri ? wi - ri : 0;
} else {
pa_usec_t ri, wi;
- ri = pa_rtclock_usec() - u->started_at;
+ ri = pa_rtclock_now() - u->started_at;
wi = pa_bytes_to_usec(u->write_index, &u->sample_spec);
*((pa_usec_t*) data) = wi > ri ? wi - ri : 0;
@@ -912,7 +913,7 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off
stop_stream_fd(u);
if (u->read_smoother)
- pa_smoother_pause(u->read_smoother, pa_rtclock_usec());
+ pa_smoother_pause(u->read_smoother, pa_rtclock_now());
break;
case PA_SOURCE_IDLE:
@@ -939,7 +940,7 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off
case PA_SOURCE_MESSAGE_GET_LATENCY: {
pa_usec_t wi, ri;
- wi = pa_smoother_get(u->read_smoother, pa_rtclock_usec());
+ wi = pa_smoother_get(u->read_smoother, pa_rtclock_now());
ri = pa_bytes_to_usec(u->read_index, &u->sample_spec);
*((pa_usec_t*) data) = (wi > ri ? wi - ri : 0) + u->source->fixed_latency;
@@ -1086,7 +1087,7 @@ static int hsp_process_push(struct userdata *u) {
if (!found_tstamp) {
pa_log_warn("Couldn't find SO_TIMESTAMP data in auxiliary recvmsg() data!");
- tstamp = pa_rtclock_usec();
+ tstamp = pa_rtclock_now();
}
pa_smoother_put(u->read_smoother, tstamp, pa_bytes_to_usec(u->read_index, &u->sample_spec));
@@ -1265,7 +1266,6 @@ static void thread_func(void *userdata) {
goto fail;
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
for (;;) {
struct pollfd *pollfd;
@@ -1309,7 +1309,7 @@ static void thread_func(void *userdata) {
/* Hmm, there is no input stream we could synchronize
* to. So let's do things by time */
- time_passed = pa_rtclock_usec() - u->started_at;
+ time_passed = pa_rtclock_now() - u->started_at;
audio_sent = pa_bytes_to_usec(u->write_index, &u->sample_spec);
if (audio_sent <= time_passed) {
@@ -1341,7 +1341,7 @@ static void thread_func(void *userdata) {
int n_written;
if (u->write_index <= 0)
- u->started_at = pa_rtclock_usec();
+ u->started_at = pa_rtclock_now();
if (u->profile == PROFILE_A2DP) {
if ((n_written = a2dp_process_render(u)) < 0)
@@ -1351,17 +1351,20 @@ static void thread_func(void *userdata) {
goto fail;
}
+ if (n_written == 0)
+ pa_log("Broken kernel: we got EAGAIN on write() after POLLOUT!");
+
do_write -= n_written;
writable = FALSE;
}
- if ((!u->source || !PA_SOURCE_IS_LINKED(u->source->thread_info.state)) && do_write <= 0) {
+ if ((!u->source || !PA_SOURCE_IS_LINKED(u->source->thread_info.state)) && do_write <= 0 && writable) {
pa_usec_t time_passed, next_write_at, sleep_for;
/* Hmm, there is no input stream we could synchronize
* to. So let's estimate when we need to wake up the latest */
- time_passed = pa_rtclock_usec() - u->started_at;
+ time_passed = pa_rtclock_now() - u->started_at;
next_write_at = pa_bytes_to_usec(u->write_index, &u->sample_spec);
sleep_for = time_passed < next_write_at ? next_write_at - time_passed : 0;
@@ -2083,6 +2086,15 @@ static int add_card(struct userdata *u, const pa_bluetooth_device *device) {
u->card->set_profile = card_set_profile;
d = PA_CARD_PROFILE_DATA(u->card->active_profile);
+
+ if ((device->headset_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_HSP) ||
+ (device->audio_sink_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_A2DP)) {
+ pa_log_warn("Default profile not connected, selecting off profile");
+ u->card->active_profile = pa_hashmap_get(u->card->profiles, "off");
+ u->card->save_profile = FALSE;
+ }
+
+ d = PA_CARD_PROFILE_DATA(u->card->active_profile);
u->profile = *d;
return 0;
diff --git a/src/modules/jack/module-jack-sink.c b/src/modules/jack/module-jack-sink.c
index 290038e7..fc976fa7 100644
--- a/src/modules/jack/module-jack-sink.c
+++ b/src/modules/jack/module-jack-sink.c
@@ -225,7 +225,6 @@ static void thread_func(void *userdata) {
pa_make_realtime(u->core->realtime_priority);
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
for (;;) {
int ret;
diff --git a/src/modules/jack/module-jack-source.c b/src/modules/jack/module-jack-source.c
index ef89a98e..a898e0e5 100644
--- a/src/modules/jack/module-jack-source.c
+++ b/src/modules/jack/module-jack-source.c
@@ -196,7 +196,6 @@ static void thread_func(void *userdata) {
pa_make_realtime(u->core->realtime_priority);
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
for (;;) {
int ret;
diff --git a/src/modules/module-card-restore.c b/src/modules/module-card-restore.c
index 85478d12..7dea94f7 100644
--- a/src/modules/module-card-restore.c
+++ b/src/modules/module-card-restore.c
@@ -35,6 +35,7 @@
#include <pulse/volume.h>
#include <pulse/timeval.h>
#include <pulse/util.h>
+#include <pulse/rtclock.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
@@ -53,7 +54,7 @@ PA_MODULE_DESCRIPTION("Automatically restore profile of cards");
PA_MODULE_VERSION(PACKAGE_VERSION);
PA_MODULE_LOAD_ONCE(TRUE);
-#define SAVE_INTERVAL 10
+#define SAVE_INTERVAL (10 * PA_USEC_PER_SEC)
static const char* const valid_modargs[] = {
NULL
@@ -75,12 +76,11 @@ struct entry {
char profile[PA_NAME_MAX];
} PA_GCC_PACKED ;
-static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) {
+static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) {
struct userdata *u = userdata;
pa_assert(a);
pa_assert(e);
- pa_assert(tv);
pa_assert(u);
pa_assert(e == u->save_time_event);
@@ -132,14 +132,10 @@ fail:
}
static void trigger_save(struct userdata *u) {
- struct timeval tv;
-
if (u->save_time_event)
return;
- pa_gettimeofday(&tv);
- tv.tv_sec += SAVE_INTERVAL;
- u->save_time_event = u->core->mainloop->time_new(u->core->mainloop, &tv, save_time_callback, u);
+ u->save_time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + SAVE_INTERVAL, save_time_callback, u);
}
static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint32_t idx, void *userdata) {
@@ -197,8 +193,9 @@ static pa_hook_result_t card_new_hook_callback(pa_core *c, pa_card_new_data *new
if ((e = read_entry(u, new_data->name)) && e->profile[0]) {
if (!new_data->active_profile) {
- pa_card_new_data_set_profile(new_data, e->profile);
pa_log_info("Restoring profile for card %s.", new_data->name);
+ pa_card_new_data_set_profile(new_data, e->profile);
+ new_data->save_profile = TRUE;
} else
pa_log_debug("Not restoring profile for card %s, because already set.", new_data->name);
@@ -222,11 +219,9 @@ int pa__init(pa_module*m) {
goto fail;
}
- m->userdata = u = pa_xnew(struct userdata, 1);
+ m->userdata = u = pa_xnew0(struct userdata, 1);
u->core = m->core;
u->module = m;
- u->save_time_event = NULL;
- u->database = NULL;
u->subscription = pa_subscription_new(m->core, PA_SUBSCRIPTION_MASK_CARD, subscribe_callback, u);
diff --git a/src/modules/module-combine.c b/src/modules/module-combine.c
index 725faa0c..16de6890 100644
--- a/src/modules/module-combine.c
+++ b/src/modules/module-combine.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <errno.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
@@ -36,6 +37,7 @@
#include <pulsecore/sink-input.h>
#include <pulsecore/memblockq.h>
#include <pulsecore/log.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/namereg.h>
@@ -43,7 +45,6 @@
#include <pulsecore/thread.h>
#include <pulsecore/thread-mq.h>
#include <pulsecore/rtpoll.h>
-#include <pulsecore/rtclock.h>
#include <pulsecore/core-error.h>
#include <pulsecore/time-smoother.h>
@@ -118,6 +119,7 @@ struct userdata {
uint32_t adjust_time;
pa_bool_t automatic;
+ pa_bool_t auto_desc;
pa_hook_slot *sink_put_slot, *sink_unlink_slot, *sink_state_changed_slot;
@@ -224,9 +226,8 @@ static void adjust_rates(struct userdata *u) {
pa_asyncmsgq_send(u->sink->asyncmsgq, PA_MSGOBJECT(u->sink), SINK_MESSAGE_UPDATE_LATENCY, NULL, (int64_t) avg_total_latency, NULL);
}
-static void time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) {
+static void time_callback(pa_mainloop_api *a, pa_time_event *e, const struct timeval *t, void *userdata) {
struct userdata *u = userdata;
- struct timeval n;
pa_assert(u);
pa_assert(a);
@@ -234,9 +235,7 @@ static void time_callback(pa_mainloop_api*a, pa_time_event* e, const struct time
adjust_rates(u);
- pa_gettimeofday(&n);
- n.tv_sec += (time_t) u->adjust_time;
- u->sink->core->mainloop->time_restart(e, &n);
+ pa_core_rttime_restart(u->core, e, pa_rtclock_now() + u->adjust_time * PA_USEC_PER_SEC);
}
static void process_render_null(struct userdata *u, pa_usec_t now) {
@@ -280,9 +279,8 @@ static void thread_func(void *userdata) {
pa_make_realtime(u->core->realtime_priority+1);
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
- u->thread_info.timestamp = pa_rtclock_usec();
+ u->thread_info.timestamp = pa_rtclock_now();
u->thread_info.in_null_mode = FALSE;
for (;;) {
@@ -296,7 +294,7 @@ static void thread_func(void *userdata) {
if (PA_SINK_IS_OPENED(u->sink->thread_info.state) && !u->thread_info.active_outputs) {
pa_usec_t now;
- now = pa_rtclock_usec();
+ now = pa_rtclock_now();
if (!u->thread_info.in_null_mode || u->thread_info.timestamp <= now)
process_render_null(u, now);
@@ -664,16 +662,16 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
pa_atomic_store(&u->thread_info.running, PA_PTR_TO_UINT(data) == PA_SINK_RUNNING);
if (PA_PTR_TO_UINT(data) == PA_SINK_SUSPENDED)
- pa_smoother_pause(u->thread_info.smoother, pa_rtclock_usec());
+ pa_smoother_pause(u->thread_info.smoother, pa_rtclock_now());
else
- pa_smoother_resume(u->thread_info.smoother, pa_rtclock_usec(), TRUE);
+ pa_smoother_resume(u->thread_info.smoother, pa_rtclock_now(), TRUE);
break;
case PA_SINK_MESSAGE_GET_LATENCY: {
pa_usec_t x, y, c, *delay = data;
- x = pa_rtclock_usec();
+ x = pa_rtclock_now();
y = pa_smoother_get(u->thread_info.smoother, x);
c = pa_bytes_to_usec(u->thread_info.counter, &u->sink->sample_spec);
@@ -730,7 +728,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
case SINK_MESSAGE_UPDATE_LATENCY: {
pa_usec_t x, y, latency = (pa_usec_t) offset;
- x = pa_rtclock_usec();
+ x = pa_rtclock_now();
y = pa_bytes_to_usec(u->thread_info.counter, &u->sink->sample_spec);
if (y > latency)
@@ -759,6 +757,9 @@ static void update_description(struct userdata *u) {
pa_assert(u);
+ if (!u->auto_desc)
+ return;
+
if (pa_idxset_isempty(u->outputs)) {
pa_sink_set_description(u->sink, "Simultaneous output");
return;
@@ -1076,7 +1077,6 @@ 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_sample_spec(&data, &ss);
pa_sink_new_data_set_channel_map(&data, &map);
- pa_proplist_sets(data.proplist, PA_PROP_DEVICE_DESCRIPTION, "Simultaneous Output");
pa_proplist_sets(data.proplist, PA_PROP_DEVICE_CLASS, "filter");
if (slaves)
@@ -1088,6 +1088,14 @@ int pa__init(pa_module*m) {
goto fail;
}
+ /* Check proplist for a description & fill in a default value if not */
+ u->auto_desc = FALSE;
+ if (NULL == pa_proplist_gets(data.proplist, PA_PROP_DEVICE_DESCRIPTION)) {
+ u->auto_desc = TRUE;
+ pa_proplist_sets(data.proplist, PA_PROP_DEVICE_DESCRIPTION, "Simultaneous Output");
+ }
+
+
u->sink = pa_sink_new(m->core, &data, PA_SINK_LATENCY);
pa_sink_new_data_done(&data);
@@ -1170,12 +1178,8 @@ int pa__init(pa_module*m) {
if (o->sink_input)
pa_sink_input_put(o->sink_input);
- if (u->adjust_time > 0) {
- struct timeval tv;
- pa_gettimeofday(&tv);
- tv.tv_sec += (time_t) u->adjust_time;
- u->time_event = m->core->mainloop->time_new(m->core->mainloop, &tv, time_callback, u);
- }
+ if (u->adjust_time > 0)
+ u->time_event = pa_core_rttime_new(m->core, pa_rtclock_now() + u->adjust_time * PA_USEC_PER_SEC, time_callback, u);
pa_modargs_free(ma);
diff --git a/src/modules/module-default-device-restore.c b/src/modules/module-default-device-restore.c
index 0092d1c7..27ae60e5 100644
--- a/src/modules/module-default-device-restore.c
+++ b/src/modules/module-default-device-restore.c
@@ -26,6 +26,7 @@
#include <errno.h>
#include <stdio.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/util.h>
@@ -42,7 +43,7 @@ PA_MODULE_DESCRIPTION("Automatically restore the default sink and source");
PA_MODULE_VERSION(PACKAGE_VERSION);
PA_MODULE_LOAD_ONCE(TRUE);
-#define DEFAULT_SAVE_INTERVAL 5
+#define SAVE_INTERVAL (5 * PA_USEC_PER_SEC)
struct userdata {
pa_core *core;
@@ -127,7 +128,7 @@ static void save(struct userdata *u) {
u->modified = FALSE;
}
-static void time_cb(pa_mainloop_api *a, pa_time_event *e, const struct timeval *tv, void *userdata) {
+static void time_cb(pa_mainloop_api *a, pa_time_event *e, const struct timeval *t, void *userdata) {
struct userdata *u = userdata;
pa_assert(u);
@@ -146,12 +147,8 @@ static void subscribe_cb(pa_core *c, pa_subscription_event_type_t t, uint32_t id
u->modified = TRUE;
- if (!u->time_event) {
- struct timeval tv;
- pa_gettimeofday(&tv);
- pa_timeval_add(&tv, DEFAULT_SAVE_INTERVAL*PA_USEC_PER_SEC);
- u->time_event = u->core->mainloop->time_new(u->core->mainloop, &tv, time_cb, u);
- }
+ if (!u->time_event)
+ u->time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + SAVE_INTERVAL, time_cb, u);
}
int pa__init(pa_module *m) {
diff --git a/src/modules/module-device-restore.c b/src/modules/module-device-restore.c
index ae21acd5..120b762c 100644
--- a/src/modules/module-device-restore.c
+++ b/src/modules/module-device-restore.c
@@ -35,6 +35,7 @@
#include <pulse/volume.h>
#include <pulse/timeval.h>
#include <pulse/util.h>
+#include <pulse/rtclock.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
@@ -54,14 +55,16 @@ PA_MODULE_DESCRIPTION("Automatically restore the volume/mute state of devices");
PA_MODULE_VERSION(PACKAGE_VERSION);
PA_MODULE_LOAD_ONCE(TRUE);
PA_MODULE_USAGE(
+ "restore_port=<Save/restore port?> "
"restore_volume=<Save/restore volumes?> "
"restore_muted=<Save/restore muted states?>");
-#define SAVE_INTERVAL 10
+#define SAVE_INTERVAL (10 * PA_USEC_PER_SEC)
static const char* const valid_modargs[] = {
"restore_volume",
"restore_muted",
+ "restore_port",
NULL
};
@@ -70,30 +73,34 @@ struct userdata {
pa_module *module;
pa_subscription *subscription;
pa_hook_slot
+ *sink_new_hook_slot,
*sink_fixate_hook_slot,
+ *source_new_hook_slot,
*source_fixate_hook_slot;
pa_time_event *save_time_event;
pa_database *database;
pa_bool_t restore_volume:1;
pa_bool_t restore_muted:1;
+ pa_bool_t restore_port:1;
};
-#define ENTRY_VERSION 1
+#define ENTRY_VERSION 2
struct entry {
uint8_t version;
+ pa_bool_t muted_valid:1, volume_valid:1, port_valid:1;
pa_bool_t muted:1;
pa_channel_map channel_map;
pa_cvolume volume;
+ char port[PA_NAME_MAX];
} PA_GCC_PACKED;
-static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) {
+static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) {
struct userdata *u = userdata;
pa_assert(a);
pa_assert(e);
- pa_assert(tv);
pa_assert(u);
pa_assert(e == u->save_time_event);
@@ -131,17 +138,17 @@ static struct entry* read_entry(struct userdata *u, const char *name) {
goto fail;
}
- if (!(pa_cvolume_valid(&e->volume))) {
- pa_log_warn("Invalid volume stored in database for device %s", name);
+ if (!memchr(e->port, 0, sizeof(e->port))) {
+ pa_log_warn("Database contains entry for device %s with missing NUL byte in port name", name);
goto fail;
}
- if (!(pa_channel_map_valid(&e->channel_map))) {
+ if (e->volume_valid && !pa_channel_map_valid(&e->channel_map)) {
pa_log_warn("Invalid channel map stored in database for device %s", name);
goto fail;
}
- if (e->volume.channels != e->channel_map.channels) {
+ if (e->volume_valid && (!pa_cvolume_valid(&e->volume) || !pa_cvolume_compatible_with_channel_map(&e->volume, &e->channel_map))) {
pa_log_warn("Volume and channel map don't match in database entry for device %s", name);
goto fail;
}
@@ -155,14 +162,29 @@ fail:
}
static void trigger_save(struct userdata *u) {
- struct timeval tv;
-
if (u->save_time_event)
return;
- pa_gettimeofday(&tv);
- tv.tv_sec += SAVE_INTERVAL;
- u->save_time_event = u->core->mainloop->time_new(u->core->mainloop, &tv, save_time_callback, u);
+ u->save_time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + SAVE_INTERVAL, save_time_callback, u);
+}
+
+static pa_bool_t entries_equal(const struct entry *a, const struct entry *b) {
+ pa_cvolume t;
+
+ if (a->port_valid != b->port_valid ||
+ (a->port_valid && strncmp(a->port, b->port, sizeof(a->port))))
+ return FALSE;
+
+ if (a->muted_valid != b->muted_valid ||
+ (a->muted_valid && (a->muted != b->muted)))
+ return FALSE;
+
+ t = b->volume;
+ if (a->volume_valid != b->volume_valid ||
+ (a->volume_valid && !pa_cvolume_equal(pa_cvolume_remap(&t, &b->channel_map, &a->channel_map), &a->volume)))
+ return FALSE;
+
+ return TRUE;
}
static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint32_t idx, void *userdata) {
@@ -190,9 +212,25 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3
return;
name = pa_sprintf_malloc("sink:%s", sink->name);
- entry.channel_map = sink->channel_map;
- entry.volume = *pa_sink_get_volume(sink, FALSE, TRUE);
- entry.muted = pa_sink_get_mute(sink, FALSE);
+
+ if ((old = read_entry(u, name)))
+ entry = *old;
+
+ if (sink->save_volume) {
+ entry.channel_map = sink->channel_map;
+ entry.volume = *pa_sink_get_volume(sink, FALSE, TRUE);
+ entry.volume_valid = TRUE;
+ }
+
+ if (sink->save_muted) {
+ entry.muted = pa_sink_get_mute(sink, FALSE);
+ entry.muted_valid = TRUE;
+ }
+
+ if (sink->save_port) {
+ pa_strlcpy(entry.port, sink->active_port ? sink->active_port->name : "", sizeof(entry.port));
+ entry.port_valid = TRUE;
+ }
} else {
pa_source *source;
@@ -203,16 +241,30 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3
return;
name = pa_sprintf_malloc("source:%s", source->name);
- entry.channel_map = source->channel_map;
- entry.volume = *pa_source_get_volume(source, FALSE);
- entry.muted = pa_source_get_mute(source, FALSE);
- }
- if ((old = read_entry(u, name))) {
+ if ((old = read_entry(u, name)))
+ entry = *old;
+
+ if (source->save_volume) {
+ entry.channel_map = source->channel_map;
+ entry.volume = *pa_source_get_volume(source, FALSE);
+ entry.volume_valid = TRUE;
+ }
+
+ if (source->save_muted) {
+ entry.muted = pa_source_get_mute(source, FALSE);
+ entry.muted_valid = TRUE;
+ }
+
+ if (source->save_port) {
+ pa_strlcpy(entry.port, source->active_port ? source->active_port->name : "", sizeof(entry.port));
+ entry.port_valid = TRUE;
+ }
+ }
- if (pa_cvolume_equal(pa_cvolume_remap(&old->volume, &old->channel_map, &entry.channel_map), &entry.volume) &&
- !old->muted == !entry.muted) {
+ if (old) {
+ if (entries_equal(old, &entry)) {
pa_xfree(old);
pa_xfree(name);
return;
@@ -227,7 +279,7 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3
data.data = &entry;
data.size = sizeof(entry);
- pa_log_info("Storing volume/mute for device %s.", name);
+ pa_log_info("Storing volume/mute/port for device %s.", name);
pa_database_set(u->database, &key, &data, TRUE);
@@ -236,31 +288,71 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3
trigger_save(u);
}
+static pa_hook_result_t sink_new_hook_callback(pa_core *c, pa_sink_new_data *new_data, struct userdata *u) {
+ char *name;
+ struct entry *e;
+
+ pa_assert(c);
+ pa_assert(new_data);
+ pa_assert(u);
+ pa_assert(u->restore_port);
+
+ name = pa_sprintf_malloc("sink:%s", new_data->name);
+
+ if ((e = read_entry(u, name))) {
+
+ if (e->port_valid) {
+ if (!new_data->active_port) {
+ pa_log_info("Restoring port for sink %s.", name);
+ pa_sink_new_data_set_port(new_data, e->port);
+ new_data->save_port = TRUE;
+ } else
+ pa_log_debug("Not restoring port for sink %s, because already set.", name);
+ }
+
+ pa_xfree(e);
+ }
+
+ pa_xfree(name);
+
+ return PA_HOOK_OK;
+}
+
static pa_hook_result_t sink_fixate_hook_callback(pa_core *c, pa_sink_new_data *new_data, struct userdata *u) {
char *name;
struct entry *e;
+ pa_assert(c);
pa_assert(new_data);
+ pa_assert(u);
+ pa_assert(u->restore_volume || u->restore_muted);
name = pa_sprintf_malloc("sink:%s", new_data->name);
if ((e = read_entry(u, name))) {
- if (u->restore_volume) {
+ if (u->restore_volume && e->volume_valid) {
if (!new_data->volume_is_set) {
+ pa_cvolume v;
+
pa_log_info("Restoring volume for sink %s.", new_data->name);
- pa_sink_new_data_set_volume(new_data, pa_cvolume_remap(&e->volume, &e->channel_map, &new_data->channel_map));
+
+ v = e->volume;
+ pa_cvolume_remap(&v, &e->channel_map, &new_data->channel_map);
+ pa_sink_new_data_set_volume(new_data, &v);
+
+ new_data->save_volume = TRUE;
} else
pa_log_debug("Not restoring volume for sink %s, because already set.", new_data->name);
-
}
- if (u->restore_muted) {
+ if (u->restore_muted && e->muted_valid) {
if (!new_data->muted_is_set) {
pa_log_info("Restoring mute state for sink %s.", new_data->name);
pa_sink_new_data_set_muted(new_data, e->muted);
+ new_data->save_muted = TRUE;
} else
pa_log_debug("Not restoring mute state for sink %s, because already set.", new_data->name);
}
@@ -273,30 +365,71 @@ static pa_hook_result_t sink_fixate_hook_callback(pa_core *c, pa_sink_new_data *
return PA_HOOK_OK;
}
+static pa_hook_result_t source_new_hook_callback(pa_core *c, pa_source_new_data *new_data, struct userdata *u) {
+ char *name;
+ struct entry *e;
+
+ pa_assert(c);
+ pa_assert(new_data);
+ pa_assert(u);
+ pa_assert(u->restore_port);
+
+ name = pa_sprintf_malloc("source:%s", new_data->name);
+
+ if ((e = read_entry(u, name))) {
+
+ if (e->port_valid) {
+ if (!new_data->active_port) {
+ pa_log_info("Restoring port for source %s.", name);
+ pa_source_new_data_set_port(new_data, e->port);
+ new_data->save_port = TRUE;
+ } else
+ pa_log_debug("Not restoring port for source %s, because already set.", name);
+ }
+
+ pa_xfree(e);
+ }
+
+ pa_xfree(name);
+
+ return PA_HOOK_OK;
+}
+
static pa_hook_result_t source_fixate_hook_callback(pa_core *c, pa_source_new_data *new_data, struct userdata *u) {
char *name;
struct entry *e;
+ pa_assert(c);
pa_assert(new_data);
+ pa_assert(u);
+ pa_assert(u->restore_volume || u->restore_muted);
name = pa_sprintf_malloc("source:%s", new_data->name);
if ((e = read_entry(u, name))) {
- if (u->restore_volume) {
+ if (u->restore_volume && e->volume_valid) {
if (!new_data->volume_is_set) {
+ pa_cvolume v;
+
pa_log_info("Restoring volume for source %s.", new_data->name);
- pa_source_new_data_set_volume(new_data, pa_cvolume_remap(&e->volume, &e->channel_map, &new_data->channel_map));
+
+ v = e->volume;
+ pa_cvolume_remap(&v, &e->channel_map, &new_data->channel_map);
+ pa_source_new_data_set_volume(new_data, &v);
+
+ new_data->save_volume = TRUE;
} else
pa_log_debug("Not restoring volume for source %s, because already set.", new_data->name);
}
- if (u->restore_muted) {
+ if (u->restore_muted && e->muted_valid) {
if (!new_data->muted_is_set) {
pa_log_info("Restoring mute state for source %s.", new_data->name);
pa_source_new_data_set_muted(new_data, e->muted);
+ new_data->save_muted = TRUE;
} else
pa_log_debug("Not restoring mute state for source %s, because already set.", new_data->name);
}
@@ -316,7 +449,7 @@ int pa__init(pa_module*m) {
pa_sink *sink;
pa_source *source;
uint32_t idx;
- pa_bool_t restore_volume = TRUE, restore_muted = TRUE;
+ pa_bool_t restore_volume = TRUE, restore_muted = TRUE, restore_port = TRUE;
pa_assert(m);
@@ -326,24 +459,29 @@ int pa__init(pa_module*m) {
}
if (pa_modargs_get_value_boolean(ma, "restore_volume", &restore_volume) < 0 ||
- pa_modargs_get_value_boolean(ma, "restore_muted", &restore_muted) < 0) {
- pa_log("restore_volume= and restore_muted= expect boolean arguments");
+ pa_modargs_get_value_boolean(ma, "restore_muted", &restore_muted) < 0 ||
+ pa_modargs_get_value_boolean(ma, "restore_port", &restore_port) < 0) {
+ pa_log("restore_port=, restore_volume= and restore_muted= expect boolean arguments");
goto fail;
}
- if (!restore_muted && !restore_volume)
- pa_log_warn("Neither restoring volume nor restoring muted enabled!");
+ if (!restore_muted && !restore_volume && !restore_port)
+ pa_log_warn("Neither restoring volume, nor restoring muted, nor restoring port enabled!");
- m->userdata = u = pa_xnew(struct userdata, 1);
+ m->userdata = u = pa_xnew0(struct userdata, 1);
u->core = m->core;
u->module = m;
- u->save_time_event = NULL;
u->restore_volume = restore_volume;
u->restore_muted = restore_muted;
- u->database = NULL;
+ u->restore_port = restore_port;
u->subscription = pa_subscription_new(m->core, PA_SUBSCRIPTION_MASK_SINK|PA_SUBSCRIPTION_MASK_SOURCE, subscribe_callback, u);
+ if (restore_port) {
+ u->sink_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_NEW], PA_HOOK_EARLY, (pa_hook_cb_t) sink_new_hook_callback, u);
+ u->source_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_NEW], PA_HOOK_EARLY, (pa_hook_cb_t) source_new_hook_callback, u);
+ }
+
if (restore_muted || restore_volume) {
u->sink_fixate_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_FIXATE], PA_HOOK_EARLY, (pa_hook_cb_t) sink_fixate_hook_callback, u);
u->source_fixate_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_FIXATE], PA_HOOK_EARLY, (pa_hook_cb_t) source_fixate_hook_callback, u);
@@ -394,6 +532,10 @@ void pa__done(pa_module*m) {
pa_hook_slot_free(u->sink_fixate_hook_slot);
if (u->source_fixate_hook_slot)
pa_hook_slot_free(u->source_fixate_hook_slot);
+ if (u->sink_new_hook_slot)
+ pa_hook_slot_free(u->sink_new_hook_slot);
+ if (u->source_new_hook_slot)
+ pa_hook_slot_free(u->source_new_hook_slot);
if (u->save_time_event)
u->core->mainloop->time_free(u->save_time_event);
diff --git a/src/modules/module-esound-sink.c b/src/modules/module-esound-sink.c
index 8cb25c51..d7c678ca 100644
--- a/src/modules/module-esound-sink.c
+++ b/src/modules/module-esound-sink.c
@@ -41,13 +41,15 @@
#include <linux/sockios.h>
#endif
-#include <pulse/xmalloc.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
+#include <pulse/xmalloc.h>
#include <pulsecore/core-error.h>
#include <pulsecore/iochannel.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
@@ -57,7 +59,6 @@
#include <pulsecore/thread-mq.h>
#include <pulsecore/thread.h>
#include <pulsecore/time-smoother.h>
-#include <pulsecore/rtclock.h>
#include <pulsecore/socket-util.h>
#include "module-esound-sink-symdef.h"
@@ -145,14 +146,14 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
case PA_SINK_SUSPENDED:
pa_assert(PA_SINK_IS_OPENED(u->sink->thread_info.state));
- pa_smoother_pause(u->smoother, pa_rtclock_usec());
+ pa_smoother_pause(u->smoother, pa_rtclock_now());
break;
case PA_SINK_IDLE:
case PA_SINK_RUNNING:
if (u->sink->thread_info.state == PA_SINK_SUSPENDED)
- pa_smoother_resume(u->smoother, pa_rtclock_usec(), TRUE);
+ pa_smoother_resume(u->smoother, pa_rtclock_now(), TRUE);
break;
@@ -167,7 +168,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
case PA_SINK_MESSAGE_GET_LATENCY: {
pa_usec_t w, r;
- r = pa_smoother_get(u->smoother, pa_rtclock_usec());
+ r = pa_smoother_get(u->smoother, pa_rtclock_now());
w = pa_bytes_to_usec((uint64_t) u->offset + u->memchunk.length, &u->sink->sample_spec);
*((pa_usec_t*) data) = w > r ? w - r : 0;
@@ -200,9 +201,8 @@ static void thread_func(void *userdata) {
pa_log_debug("Thread starting up");
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
- pa_smoother_set_time_offset(u->smoother, pa_rtclock_usec());
+ pa_smoother_set_time_offset(u->smoother, pa_rtclock_now());
for (;;) {
int ret;
@@ -295,7 +295,7 @@ static void thread_func(void *userdata) {
else
usec = 0;
- pa_smoother_put(u->smoother, pa_rtclock_usec(), usec);
+ pa_smoother_put(u->smoother, pa_rtclock_now(), usec);
}
/* Hmm, nothing to do. Let's sleep */
@@ -608,7 +608,7 @@ int pa__init(pa_module*m) {
pa_sink_set_asyncmsgq(u->sink, u->thread_mq.inq);
pa_sink_set_rtpoll(u->sink, u->rtpoll);
- if (!(u->client = pa_socket_client_new_string(u->core->mainloop, espeaker, ESD_DEFAULT_PORT))) {
+ if (!(u->client = pa_socket_client_new_string(u->core->mainloop, TRUE, espeaker, ESD_DEFAULT_PORT))) {
pa_log("Failed to connect to server.");
goto fail;
}
diff --git a/src/modules/module-intended-roles.c b/src/modules/module-intended-roles.c
new file mode 100644
index 00000000..c697209a
--- /dev/null
+++ b/src/modules/module-intended-roles.c
@@ -0,0 +1,428 @@
+/***
+ This file is part of PulseAudio.
+
+ Copyright 2009 Lennart Poettering
+
+ PulseAudio is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2.1 of the License,
+ or (at your option) any later version.
+
+ PulseAudio is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with PulseAudio; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <pulse/xmalloc.h>
+#include <pulse/volume.h>
+#include <pulse/timeval.h>
+#include <pulse/util.h>
+
+#include <pulsecore/core-error.h>
+#include <pulsecore/module.h>
+#include <pulsecore/core-util.h>
+#include <pulsecore/modargs.h>
+#include <pulsecore/log.h>
+#include <pulsecore/core-subscribe.h>
+#include <pulsecore/sink-input.h>
+#include <pulsecore/source-output.h>
+#include <pulsecore/namereg.h>
+
+#include "module-intended-roles-symdef.h"
+
+PA_MODULE_AUTHOR("Lennart Poettering");
+PA_MODULE_DESCRIPTION("Automatically set device of streams based of intended roles of devices");
+PA_MODULE_VERSION(PACKAGE_VERSION);
+PA_MODULE_LOAD_ONCE(TRUE);
+PA_MODULE_USAGE(
+ "on_hotplug=<When new device becomes available, recheck streams?> "
+ "on_rescue=<When device becomes unavailable, recheck streams?>");
+
+static const char* const valid_modargs[] = {
+ "on_hotplug",
+ "on_rescue",
+ NULL
+};
+
+struct userdata {
+ pa_core *core;
+ pa_module *module;
+
+ pa_hook_slot
+ *sink_input_new_hook_slot,
+ *source_output_new_hook_slot,
+ *sink_put_hook_slot,
+ *source_put_hook_slot,
+ *sink_unlink_hook_slot,
+ *source_unlink_hook_slot;
+
+ pa_bool_t on_hotplug:1;
+ pa_bool_t on_rescue:1;
+};
+
+static pa_bool_t role_match(pa_proplist *proplist, const char *role) {
+ const char *ir;
+ char *r;
+ const char *state = NULL;
+
+ if (!(ir = pa_proplist_gets(proplist, PA_PROP_DEVICE_INTENDED_ROLES)))
+ return FALSE;
+
+ while ((r = pa_split_spaces(ir, &state))) {
+
+ if (pa_streq(role, r)) {
+ pa_xfree(r);
+ return TRUE;
+ }
+
+ pa_xfree(r);
+ }
+
+ return FALSE;
+}
+
+static pa_hook_result_t sink_input_new_hook_callback(pa_core *c, pa_sink_input_new_data *new_data, struct userdata *u) {
+ const char *role;
+ pa_sink *s, *def;
+ uint32_t idx;
+
+ pa_assert(c);
+ pa_assert(new_data);
+ pa_assert(u);
+
+ if (!new_data->proplist) {
+ pa_log_debug("New stream lacks property data.");
+ return PA_HOOK_OK;
+ }
+
+ if (new_data->sink) {
+ pa_log_debug("Not setting device for stream %s, because already set.", pa_strnull(pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_NAME)));
+ return PA_HOOK_OK;
+ }
+
+ if (!(role = pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_ROLE))) {
+ pa_log_debug("Not setting device for stream %s, because it lacks role.", pa_strnull(pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_NAME)));
+ return PA_HOOK_OK;
+ }
+
+ /* Prefer the default sink over any other sink, just in case... */
+ if ((def = pa_namereg_get_default_sink(c)))
+ if (role_match(def->proplist, role)) {
+ new_data->sink = def;
+ new_data->save_sink = FALSE;
+ return PA_HOOK_OK;
+ }
+
+ PA_IDXSET_FOREACH(s, c->sinks, idx) {
+ if (s == def)
+ continue;
+
+ if (role_match(s->proplist, role)) {
+ new_data->sink = s;
+ new_data->save_sink = FALSE;
+ return PA_HOOK_OK;
+ }
+ }
+
+ return PA_HOOK_OK;
+}
+
+static pa_hook_result_t source_output_new_hook_callback(pa_core *c, pa_source_output_new_data *new_data, struct userdata *u) {
+ const char *role;
+ pa_source *s, *def;
+ uint32_t idx;
+
+ pa_assert(c);
+ pa_assert(new_data);
+ pa_assert(u);
+
+ if (!new_data->proplist) {
+ pa_log_debug("New stream lacks property data.");
+ return PA_HOOK_OK;
+ }
+
+ if (new_data->source) {
+ pa_log_debug("Not setting device for stream %s, because already set.", pa_strnull(pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_NAME)));
+ return PA_HOOK_OK;
+ }
+
+ if (!(role = pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_ROLE))) {
+ pa_log_debug("Not setting device for stream %s, because it lacks role.", pa_strnull(pa_proplist_gets(new_data->proplist, PA_PROP_MEDIA_NAME)));
+ return PA_HOOK_OK;
+ }
+
+ /* Prefer the default source over any other source, just in case... */
+ if ((def = pa_namereg_get_default_source(c)))
+ if (role_match(def->proplist, role)) {
+ new_data->source = def;
+ new_data->save_source = FALSE;
+ return PA_HOOK_OK;
+ }
+
+ PA_IDXSET_FOREACH(s, c->sources, idx) {
+ if (s == def)
+ continue;
+
+ if (role_match(s->proplist, role)) {
+ new_data->source = s;
+ new_data->save_source = FALSE;
+ return PA_HOOK_OK;
+ }
+ }
+
+ return PA_HOOK_OK;
+}
+
+static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, struct userdata *u) {
+ pa_sink_input *si;
+ uint32_t idx;
+
+ pa_assert(c);
+ pa_assert(sink);
+ pa_assert(u);
+ pa_assert(u->on_hotplug);
+
+ PA_IDXSET_FOREACH(si, c->sink_inputs, idx) {
+ const char *role;
+
+ if (si->sink == sink)
+ continue;
+
+ if (si->save_sink)
+ continue;
+
+ if (!(role = pa_proplist_gets(si->proplist, PA_PROP_MEDIA_ROLE)))
+ continue;
+
+ if (role_match(si->sink->proplist, role))
+ continue;
+
+ if (!role_match(sink->proplist, role))
+ continue;
+
+ pa_sink_input_move_to(si, sink, FALSE);
+ }
+
+ return PA_HOOK_OK;
+}
+
+static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source, struct userdata *u) {
+ pa_source_output *so;
+ uint32_t idx;
+
+ pa_assert(c);
+ pa_assert(source);
+ pa_assert(u);
+ pa_assert(u->on_hotplug);
+
+ PA_IDXSET_FOREACH(so, c->source_outputs, idx) {
+ const char *role;
+
+ if (so->source == source)
+ continue;
+
+ if (so->save_source)
+ continue;
+
+ if (so->direct_on_input)
+ continue;
+
+ if (!(role = pa_proplist_gets(so->proplist, PA_PROP_MEDIA_ROLE)))
+ continue;
+
+ if (role_match(so->source->proplist, role))
+ continue;
+
+ if (!role_match(source->proplist, role))
+ continue;
+
+ pa_source_output_move_to(so, source, FALSE);
+ }
+
+ return PA_HOOK_OK;
+}
+
+static pa_hook_result_t sink_unlink_hook_callback(pa_core *c, pa_sink *sink, struct userdata *u) {
+ pa_sink_input *si;
+ uint32_t idx;
+ pa_sink *def;
+
+ pa_assert(c);
+ pa_assert(sink);
+ pa_assert(u);
+ pa_assert(u->on_rescue);
+
+ /* There's no point in doing anything if the core is shut down anyway */
+ if (c->state == PA_CORE_SHUTDOWN)
+ return PA_HOOK_OK;
+
+ /* If there not default sink, then there is no sink at all */
+ if (!(def = pa_namereg_get_default_sink(c)))
+ return PA_HOOK_OK;
+
+ PA_IDXSET_FOREACH(si, sink->inputs, idx) {
+ const char *role;
+ uint32_t jdx;
+ pa_sink *d;
+
+ if (!(role = pa_proplist_gets(si->proplist, PA_PROP_MEDIA_ROLE)))
+ continue;
+
+ /* Would the default sink fit? If so, let's use it */
+ if (def != sink && role_match(def->proplist, role)) {
+ pa_sink_input_move_to(si, def, FALSE);
+ continue;
+ }
+
+ /* Try to find some other fitting sink */
+ PA_IDXSET_FOREACH(d, c->sinks, jdx) {
+ if (d == def || d == sink)
+ continue;
+
+ if (role_match(d->proplist, role)) {
+ pa_sink_input_move_to(si, d, FALSE);
+ break;
+ }
+ }
+ }
+
+ return PA_HOOK_OK;
+}
+
+static pa_hook_result_t source_unlink_hook_callback(pa_core *c, pa_source *source, struct userdata *u) {
+ pa_source_output *so;
+ uint32_t idx;
+ pa_source *def;
+
+ pa_assert(c);
+ pa_assert(source);
+ pa_assert(u);
+ pa_assert(u->on_rescue);
+
+ /* There's no point in doing anything if the core is shut down anyway */
+ if (c->state == PA_CORE_SHUTDOWN)
+ return PA_HOOK_OK;
+
+ /* If there not default source, then there is no source at all */
+ if (!(def = pa_namereg_get_default_source(c)))
+ return PA_HOOK_OK;
+
+ PA_IDXSET_FOREACH(so, source->outputs, idx) {
+ const char *role;
+ uint32_t jdx;
+ pa_source *d;
+
+ if (so->direct_on_input)
+ continue;
+
+ if (!(role = pa_proplist_gets(so->proplist, PA_PROP_MEDIA_ROLE)))
+ continue;
+
+ /* Would the default source fit? If so, let's use it */
+ if (def != source && role_match(def->proplist, role) && !source->monitor_of == !def->monitor_of) {
+ pa_source_output_move_to(so, def, FALSE);
+ continue;
+ }
+
+ /* Try to find some other fitting source */
+ PA_IDXSET_FOREACH(d, c->sources, jdx) {
+ if (d == def || d == source)
+ continue;
+
+ if (role_match(d->proplist, role) && !source->monitor_of == !d->monitor_of) {
+ pa_source_output_move_to(so, d, FALSE);
+ break;
+ }
+ }
+ }
+
+ return PA_HOOK_OK;
+}
+
+int pa__init(pa_module*m) {
+ pa_modargs *ma = NULL;
+ struct userdata *u;
+ pa_bool_t on_hotplug = TRUE, on_rescue = TRUE;
+
+ pa_assert(m);
+
+ if (!(ma = pa_modargs_new(m->argument, valid_modargs))) {
+ pa_log("Failed to parse module arguments");
+ goto fail;
+ }
+
+ if (pa_modargs_get_value_boolean(ma, "on_hotplug", &on_hotplug) < 0 ||
+ pa_modargs_get_value_boolean(ma, "on_rescue", &on_rescue) < 0) {
+ pa_log("on_hotplug= and on_rescue= expect boolean arguments");
+ goto fail;
+ }
+
+ m->userdata = u = pa_xnew0(struct userdata, 1);
+ u->core = m->core;
+ u->module = m;
+ u->on_hotplug = on_hotplug;
+ u->on_rescue = on_rescue;
+
+ /* A little bit later than module-stream-restore */
+ u->sink_input_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_INPUT_NEW], PA_HOOK_EARLY+10, (pa_hook_cb_t) sink_input_new_hook_callback, u);
+ u->source_output_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_NEW], PA_HOOK_EARLY+10, (pa_hook_cb_t) source_output_new_hook_callback, u);
+
+ if (on_hotplug) {
+ /* A little bit later than module-stream-restore */
+ u->sink_put_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_PUT], PA_HOOK_LATE+10, (pa_hook_cb_t) sink_put_hook_callback, u);
+ u->source_put_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_PUT], PA_HOOK_LATE+10, (pa_hook_cb_t) source_put_hook_callback, u);
+ }
+
+ if (on_rescue) {
+ /* A little bit later than module-stream-restore, a little bit earlier than module-rescue-streams, ... */
+ u->sink_unlink_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_UNLINK], PA_HOOK_LATE+10, (pa_hook_cb_t) sink_unlink_hook_callback, u);
+ u->source_unlink_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_UNLINK], PA_HOOK_LATE+10, (pa_hook_cb_t) source_unlink_hook_callback, u);
+ }
+
+ pa_modargs_free(ma);
+ return 0;
+
+fail:
+ pa__done(m);
+
+ if (ma)
+ pa_modargs_free(ma);
+
+ return -1;
+}
+
+void pa__done(pa_module*m) {
+ struct userdata* u;
+
+ pa_assert(m);
+
+ if (!(u = m->userdata))
+ return;
+
+ if (u->sink_input_new_hook_slot)
+ pa_hook_slot_free(u->sink_input_new_hook_slot);
+ if (u->source_output_new_hook_slot)
+ pa_hook_slot_free(u->source_output_new_hook_slot);
+
+ if (u->sink_put_hook_slot)
+ pa_hook_slot_free(u->sink_put_hook_slot);
+ if (u->source_put_hook_slot)
+ pa_hook_slot_free(u->source_put_hook_slot);
+
+ if (u->sink_unlink_hook_slot)
+ pa_hook_slot_free(u->sink_unlink_hook_slot);
+ if (u->source_unlink_hook_slot)
+ pa_hook_slot_free(u->source_unlink_hook_slot);
+
+ pa_xfree(u);
+}
diff --git a/src/modules/module-null-sink.c b/src/modules/module-null-sink.c
index 30a99ca7..36c50b05 100644
--- a/src/modules/module-null-sink.c
+++ b/src/modules/module-null-sink.c
@@ -32,12 +32,14 @@
#include <unistd.h>
#include <limits.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
#include <pulsecore/macro.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/core-error.h>
#include <pulsecore/modargs.h>
@@ -45,7 +47,6 @@
#include <pulsecore/thread.h>
#include <pulsecore/thread-mq.h>
#include <pulsecore/rtpoll.h>
-#include <pulsecore/rtclock.h>
#include "module-null-sink-symdef.h"
@@ -101,14 +102,14 @@ static int sink_process_msg(
case PA_SINK_MESSAGE_SET_STATE:
if (PA_PTR_TO_UINT(data) == PA_SINK_RUNNING)
- u->timestamp = pa_rtclock_usec();
+ u->timestamp = pa_rtclock_now();
break;
case PA_SINK_MESSAGE_GET_LATENCY: {
pa_usec_t now;
- now = pa_rtclock_usec();
+ now = pa_rtclock_now();
*((pa_usec_t*) data) = u->timestamp > now ? u->timestamp - now : 0ULL;
return 0;
@@ -208,9 +209,8 @@ static void thread_func(void *userdata) {
pa_log_debug("Thread starting up");
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
- u->timestamp = pa_rtclock_usec();
+ u->timestamp = pa_rtclock_now();
for (;;) {
int ret;
@@ -219,7 +219,7 @@ static void thread_func(void *userdata) {
if (PA_SINK_IS_OPENED(u->sink->thread_info.state)) {
pa_usec_t now;
- now = pa_rtclock_usec();
+ now = pa_rtclock_now();
if (u->sink->thread_info.rewind_requested) {
if (u->sink->thread_info.rewind_nbytes > 0)
diff --git a/src/modules/module-pipe-sink.c b/src/modules/module-pipe-sink.c
index 5b0f6414..8a7dc846 100644
--- a/src/modules/module-pipe-sink.c
+++ b/src/modules/module-pipe-sink.c
@@ -170,7 +170,6 @@ static void thread_func(void *userdata) {
pa_log_debug("Thread starting up");
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
for (;;) {
struct pollfd *pollfd;
diff --git a/src/modules/module-pipe-source.c b/src/modules/module-pipe-source.c
index 61c9fc0e..e5609fb5 100644
--- a/src/modules/module-pipe-source.c
+++ b/src/modules/module-pipe-source.c
@@ -129,7 +129,6 @@ static void thread_func(void *userdata) {
pa_log_debug("Thread starting up");
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
for (;;) {
int ret;
diff --git a/src/modules/module-rescue-streams.c b/src/modules/module-rescue-streams.c
index c22711ae..c23feceb 100644
--- a/src/modules/module-rescue-streams.c
+++ b/src/modules/module-rescue-streams.c
@@ -65,14 +65,14 @@ static pa_hook_result_t sink_hook_callback(pa_core *c, pa_sink *sink, void* user
return PA_HOOK_OK;
}
- if (!(target = pa_namereg_get(c, NULL, PA_NAMEREG_SINK)) || target == sink) {
+ if (!(target = pa_namereg_get_default_sink(c)) || target == sink) {
PA_IDXSET_FOREACH(target, c->sinks, idx)
if (target != sink)
break;
if (!target) {
- pa_log_info("No evacuation sink found.");
+ pa_log_debug("No evacuation sink found.");
return PA_HOOK_OK;
}
}
@@ -108,7 +108,7 @@ static pa_hook_result_t source_hook_callback(pa_core *c, pa_source *source, void
return PA_HOOK_OK;
}
- if (!(target = pa_namereg_get(c, NULL, PA_NAMEREG_SOURCE)) || target == source) {
+ if (!(target = pa_namereg_get_default_source(c)) || target == source) {
PA_IDXSET_FOREACH(target, c->sources, idx)
if (target != source && !target->monitor_of == !source->monitor_of)
@@ -146,8 +146,10 @@ int pa__init(pa_module*m) {
}
m->userdata = u = pa_xnew(struct userdata, 1);
- u->sink_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_UNLINK], PA_HOOK_LATE, (pa_hook_cb_t) sink_hook_callback, NULL);
- u->source_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_UNLINK], PA_HOOK_LATE, (pa_hook_cb_t) source_hook_callback, NULL);
+
+ /* A little bit later than module-stream-restore, module-intended-roles... */
+ u->sink_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_UNLINK], PA_HOOK_LATE+20, (pa_hook_cb_t) sink_hook_callback, u);
+ u->source_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_UNLINK], PA_HOOK_LATE+20, (pa_hook_cb_t) source_hook_callback, u);
pa_modargs_free(ma);
return 0;
diff --git a/src/modules/module-sine-source.c b/src/modules/module-sine-source.c
index 14a04e47..9826e5f4 100644
--- a/src/modules/module-sine-source.c
+++ b/src/modules/module-sine-source.c
@@ -34,19 +34,20 @@
#include <sys/ioctl.h>
#include <sys/poll.h>
-#include <pulse/xmalloc.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
+#include <pulse/xmalloc.h>
#include <pulsecore/core-error.h>
#include <pulsecore/source.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
#include <pulsecore/thread.h>
#include <pulsecore/thread-mq.h>
#include <pulsecore/rtpoll.h>
-#include <pulsecore/rtclock.h>
#include "module-sine-source-symdef.h"
@@ -101,14 +102,14 @@ static int source_process_msg(
case PA_SOURCE_MESSAGE_SET_STATE:
if (PA_PTR_TO_UINT(data) == PA_SOURCE_RUNNING)
- u->timestamp = pa_rtclock_usec();
+ u->timestamp = pa_rtclock_now();
break;
case PA_SOURCE_MESSAGE_GET_LATENCY: {
pa_usec_t now, left_to_fill;
- now = pa_rtclock_usec();
+ now = pa_rtclock_now();
left_to_fill = u->timestamp > now ? u->timestamp - now : 0ULL;
*((pa_usec_t*) data) = u->block_usec > left_to_fill ? u->block_usec - left_to_fill : 0ULL;
@@ -166,9 +167,8 @@ static void thread_func(void *userdata) {
pa_log_debug("Thread starting up");
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
- u->timestamp = pa_rtclock_usec();
+ u->timestamp = pa_rtclock_now();
for (;;) {
int ret;
@@ -176,7 +176,7 @@ static void thread_func(void *userdata) {
if (PA_SOURCE_IS_OPENED(u->source->thread_info.state)) {
pa_usec_t now;
- now = pa_rtclock_usec();
+ now = pa_rtclock_now();
if (u->timestamp <= now)
process_render(u, now);
diff --git a/src/modules/module-solaris.c b/src/modules/module-solaris.c
index 5cfa97a7..0920d25e 100644
--- a/src/modules/module-solaris.c
+++ b/src/modules/module-solaris.c
@@ -46,6 +46,7 @@
#include <pulse/xmalloc.h>
#include <pulse/timeval.h>
#include <pulse/util.h>
+#include <pulse/rtclock.h>
#include <pulsecore/iochannel.h>
#include <pulsecore/sink.h>
@@ -59,7 +60,6 @@
#include <pulsecore/thread-mq.h>
#include <pulsecore/rtpoll.h>
#include <pulsecore/thread.h>
-#include <pulsecore/rtclock.h>
#include "module-solaris-symdef.h"
@@ -605,7 +605,6 @@ static void thread_func(void *userdata) {
pa_make_realtime(u->core->realtime_priority);
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
for (;;) {
/* Render some data and write it to the dsp */
@@ -641,7 +640,7 @@ static void thread_func(void *userdata) {
* Since we cannot modify the size of the output buffer we fake it
* by not filling it more than u->buffer_size.
*/
- xtime0 = pa_rtclock_usec();
+ xtime0 = pa_rtclock_now();
buffered_bytes = get_playback_buffered_bytes(u);
if (buffered_bytes >= (uint64_t)u->buffer_size)
break;
diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c
index 2de98f4e..8c0bb6b0 100644
--- a/src/modules/module-stream-restore.c
+++ b/src/modules/module-stream-restore.c
@@ -35,6 +35,7 @@
#include <pulse/volume.h>
#include <pulse/timeval.h>
#include <pulse/util.h>
+#include <pulse/rtclock.h>
#include <pulsecore/core-error.h>
#include <pulsecore/module.h>
@@ -59,15 +60,19 @@ PA_MODULE_LOAD_ONCE(TRUE);
PA_MODULE_USAGE(
"restore_device=<Save/restore sinks/sources?> "
"restore_volume=<Save/restore volumes?> "
- "restore_muted=<Save/restore muted states?>");
+ "restore_muted=<Save/restore muted states?> "
+ "on_hotplug=<When new device becomes available, recheck streams?> "
+ "on_rescue=<When device becomes unavailable, recheck streams?>");
-#define SAVE_INTERVAL 10
+#define SAVE_INTERVAL (10 * PA_USEC_PER_SEC)
#define IDENTIFICATION_PROPERTY "module-stream-restore.id"
static const char* const valid_modargs[] = {
"restore_device",
"restore_volume",
"restore_muted",
+ "on_hotplug",
+ "on_rescue",
NULL
};
@@ -79,6 +84,10 @@ struct userdata {
*sink_input_new_hook_slot,
*sink_input_fixate_hook_slot,
*source_output_new_hook_slot,
+ *sink_put_hook_slot,
+ *source_put_hook_slot,
+ *sink_unlink_hook_slot,
+ *source_unlink_hook_slot,
*connection_unlink_hook_slot;
pa_time_event *save_time_event;
pa_database* database;
@@ -86,6 +95,8 @@ struct userdata {
pa_bool_t restore_device:1;
pa_bool_t restore_volume:1;
pa_bool_t restore_muted:1;
+ pa_bool_t on_hotplug:1;
+ pa_bool_t on_rescue:1;
pa_native_protocol *protocol;
pa_idxset *subscribed;
@@ -111,12 +122,11 @@ enum {
SUBCOMMAND_EVENT
};
-static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) {
+static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) {
struct userdata *u = userdata;
pa_assert(a);
pa_assert(e);
- pa_assert(tv);
pa_assert(u);
pa_assert(e == u->save_time_event);
@@ -210,7 +220,6 @@ fail:
}
static void trigger_save(struct userdata *u) {
- struct timeval tv;
pa_native_connection *c;
uint32_t idx;
@@ -230,9 +239,7 @@ static void trigger_save(struct userdata *u) {
if (u->save_time_event)
return;
- pa_gettimeofday(&tv);
- tv.tv_sec += SAVE_INTERVAL;
- u->save_time_event = u->core->mainloop->time_new(u->core->mainloop, &tv, save_time_callback, u);
+ u->save_time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + SAVE_INTERVAL, save_time_callback, u);
}
static pa_bool_t entries_equal(const struct entry *a, const struct entry *b) {
@@ -353,18 +360,18 @@ static pa_hook_result_t sink_input_new_hook_callback(pa_core *c, pa_sink_input_n
char *name;
struct entry *e;
+ pa_assert(c);
pa_assert(new_data);
-
- if (!u->restore_device)
- return PA_HOOK_OK;
+ pa_assert(u);
+ pa_assert(u->restore_device);
if (!(name = get_name(new_data->proplist, "sink-input")))
return PA_HOOK_OK;
if ((e = read_entry(u, name))) {
- pa_sink *s;
if (e->device_valid) {
+ pa_sink *s;
if ((s = pa_namereg_get(c, e->device, PA_NAMEREG_SINK))) {
if (!new_data->sink) {
@@ -372,7 +379,7 @@ static pa_hook_result_t sink_input_new_hook_callback(pa_core *c, pa_sink_input_n
new_data->sink = s;
new_data->save_sink = TRUE;
} else
- pa_log_info("Not restore device for stream %s, because already set.", name);
+ pa_log_debug("Not restoring device for stream %s, because already set.", name);
}
}
@@ -388,10 +395,10 @@ static pa_hook_result_t sink_input_fixate_hook_callback(pa_core *c, pa_sink_inpu
char *name;
struct entry *e;
+ pa_assert(c);
pa_assert(new_data);
-
- if (!u->restore_volume && !u->restore_muted)
- return PA_HOOK_OK;
+ pa_assert(u);
+ pa_assert(u->restore_volume || u->restore_muted);
if (!(name = get_name(new_data->proplist, "sink-input")))
return PA_HOOK_OK;
@@ -404,12 +411,13 @@ static pa_hook_result_t sink_input_fixate_hook_callback(pa_core *c, pa_sink_inpu
pa_cvolume v;
pa_log_info("Restoring volume for sink input %s.", name);
+
v = e->volume;
pa_cvolume_remap(&v, &e->channel_map, &new_data->channel_map);
pa_sink_input_new_data_set_volume(new_data, &v);
new_data->volume_is_absolute = FALSE;
- new_data->save_volume = FALSE;
+ new_data->save_volume = TRUE;
} else
pa_log_debug("Not restoring volume for sink input %s, because already set.", name);
}
@@ -436,10 +444,10 @@ static pa_hook_result_t source_output_new_hook_callback(pa_core *c, pa_source_ou
char *name;
struct entry *e;
+ pa_assert(c);
pa_assert(new_data);
-
- if (!u->restore_device)
- return PA_HOOK_OK;
+ pa_assert(u);
+ pa_assert(u->restore_device);
if (new_data->direct_on_input)
return PA_HOOK_OK;
@@ -457,7 +465,7 @@ static pa_hook_result_t source_output_new_hook_callback(pa_core *c, pa_source_ou
new_data->source = s;
new_data->save_source = TRUE;
} else
- pa_log_info("Not restoring device for stream %s, because already set", name);
+ pa_log_debug("Not restoring device for stream %s, because already set", name);
}
}
@@ -469,6 +477,155 @@ static pa_hook_result_t source_output_new_hook_callback(pa_core *c, pa_source_ou
return PA_HOOK_OK;
}
+static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, struct userdata *u) {
+ pa_sink_input *si;
+ uint32_t idx;
+
+ pa_assert(c);
+ pa_assert(sink);
+ pa_assert(u);
+ pa_assert(u->on_hotplug && u->restore_device);
+
+ PA_IDXSET_FOREACH(si, c->sink_inputs, idx) {
+ char *name;
+ struct entry *e;
+
+ if (si->sink == sink)
+ continue;
+
+ if (si->save_sink)
+ continue;
+
+ if (!(name = get_name(si->proplist, "sink-input")))
+ continue;
+
+ if ((e = read_entry(u, name))) {
+ if (e->device_valid && pa_streq(e->device, sink->name))
+ pa_sink_input_move_to(si, sink, TRUE);
+
+ pa_xfree(e);
+ }
+
+ pa_xfree(name);
+ }
+
+ return PA_HOOK_OK;
+}
+
+static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source, struct userdata *u) {
+ pa_source_output *so;
+ uint32_t idx;
+
+ pa_assert(c);
+ pa_assert(source);
+ pa_assert(u);
+ pa_assert(u->on_hotplug && u->restore_device);
+
+ PA_IDXSET_FOREACH(so, c->source_outputs, idx) {
+ char *name;
+ struct entry *e;
+
+ if (so->source == source)
+ continue;
+
+ if (so->save_source)
+ continue;
+
+ if (so->direct_on_input)
+ continue;
+
+ if (!(name = get_name(so->proplist, "source-input")))
+ continue;
+
+ if ((e = read_entry(u, name))) {
+ if (e->device_valid && pa_streq(e->device, source->name))
+ pa_source_output_move_to(so, source, TRUE);
+
+ pa_xfree(e);
+ }
+
+ pa_xfree(name);
+ }
+
+ return PA_HOOK_OK;
+}
+
+static pa_hook_result_t sink_unlink_hook_callback(pa_core *c, pa_sink *sink, struct userdata *u) {
+ pa_sink_input *si;
+ uint32_t idx;
+
+ pa_assert(c);
+ pa_assert(sink);
+ pa_assert(u);
+ pa_assert(u->on_rescue && u->restore_device);
+
+ /* There's no point in doing anything if the core is shut down anyway */
+ if (c->state == PA_CORE_SHUTDOWN)
+ return PA_HOOK_OK;
+
+ PA_IDXSET_FOREACH(si, sink->inputs, idx) {
+ char *name;
+ struct entry *e;
+
+ if (!(name = get_name(si->proplist, "sink-input")))
+ continue;
+
+ if ((e = read_entry(u, name))) {
+
+ if (e->device_valid) {
+ pa_sink *d;
+
+ if ((d = pa_namereg_get(c, e->device, PA_NAMEREG_SINK)) && d != sink)
+ pa_sink_input_move_to(si, d, TRUE);
+ }
+
+ pa_xfree(e);
+ }
+
+ pa_xfree(name);
+ }
+
+ return PA_HOOK_OK;
+}
+
+static pa_hook_result_t source_unlink_hook_callback(pa_core *c, pa_source *source, struct userdata *u) {
+ pa_source_output *so;
+ uint32_t idx;
+
+ pa_assert(c);
+ pa_assert(source);
+ pa_assert(u);
+ pa_assert(u->on_rescue && u->restore_device);
+
+ /* There's no point in doing anything if the core is shut down anyway */
+ if (c->state == PA_CORE_SHUTDOWN)
+ return PA_HOOK_OK;
+
+ PA_IDXSET_FOREACH(so, source->outputs, idx) {
+ char *name;
+ struct entry *e;
+
+ if (!(name = get_name(so->proplist, "source-output")))
+ continue;
+
+ if ((e = read_entry(u, name))) {
+
+ if (e->device_valid) {
+ pa_source *d;
+
+ if ((d = pa_namereg_get(c, e->device, PA_NAMEREG_SOURCE)) && d != source)
+ pa_source_output_move_to(so, d, TRUE);
+ }
+
+ pa_xfree(e);
+ }
+
+ pa_xfree(name);
+ }
+
+ return PA_HOOK_OK;
+}
+
#define EXT_VERSION 1
static void apply_entry(struct userdata *u, const char *name, struct entry *e) {
@@ -480,7 +637,7 @@ static void apply_entry(struct userdata *u, const char *name, struct entry *e) {
pa_assert(name);
pa_assert(e);
- for (si = pa_idxset_first(u->core->sink_inputs, &idx); si; si = pa_idxset_next(u->core->sink_inputs, &idx)) {
+ PA_IDXSET_FOREACH(si, u->core->sink_inputs, idx) {
char *n;
pa_sink *s;
@@ -498,7 +655,8 @@ static void apply_entry(struct userdata *u, const char *name, struct entry *e) {
v = e->volume;
pa_log_info("Restoring volume for sink input %s.", name);
- pa_sink_input_set_volume(si, pa_cvolume_remap(&v, &e->channel_map, &si->channel_map), FALSE, FALSE);
+ pa_cvolume_remap(&v, &e->channel_map, &si->channel_map);
+ pa_sink_input_set_volume(si, &v, TRUE, FALSE);
}
if (u->restore_muted && e->muted_valid) {
@@ -515,7 +673,7 @@ static void apply_entry(struct userdata *u, const char *name, struct entry *e) {
}
}
- for (so = pa_idxset_first(u->core->source_outputs, &idx); so; so = pa_idxset_next(u->core->source_outputs, &idx)) {
+ PA_IDXSET_FOREACH(so, u->core->source_outputs, idx) {
char *n;
pa_source *s;
@@ -774,7 +932,7 @@ int pa__init(pa_module*m) {
pa_sink_input *si;
pa_source_output *so;
uint32_t idx;
- pa_bool_t restore_device = TRUE, restore_volume = TRUE, restore_muted = TRUE;
+ pa_bool_t restore_device = TRUE, restore_volume = TRUE, restore_muted = TRUE, on_hotplug = TRUE, on_rescue = TRUE;
pa_assert(m);
@@ -785,22 +943,24 @@ int pa__init(pa_module*m) {
if (pa_modargs_get_value_boolean(ma, "restore_device", &restore_device) < 0 ||
pa_modargs_get_value_boolean(ma, "restore_volume", &restore_volume) < 0 ||
- pa_modargs_get_value_boolean(ma, "restore_muted", &restore_muted) < 0) {
- pa_log("restore_device=, restore_volume= and restore_muted= expect boolean arguments");
+ pa_modargs_get_value_boolean(ma, "restore_muted", &restore_muted) < 0 ||
+ pa_modargs_get_value_boolean(ma, "on_hotplug", &on_hotplug) < 0 ||
+ pa_modargs_get_value_boolean(ma, "on_rescue", &on_rescue) < 0) {
+ pa_log("restore_device=, restore_volume=, restore_muted=, on_hotplug= and on_rescue= expect boolean arguments");
goto fail;
}
if (!restore_muted && !restore_volume && !restore_device)
pa_log_warn("Neither restoring volume, nor restoring muted, nor restoring device enabled!");
- m->userdata = u = pa_xnew(struct userdata, 1);
+ m->userdata = u = pa_xnew0(struct userdata, 1);
u->core = m->core;
u->module = m;
- u->save_time_event = NULL;
u->restore_device = restore_device;
u->restore_volume = restore_volume;
u->restore_muted = restore_muted;
- u->database = NULL;
+ u->on_hotplug = on_hotplug;
+ u->on_rescue = on_rescue;
u->subscribed = pa_idxset_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func);
u->protocol = pa_native_protocol_get(m->core);
@@ -811,17 +971,27 @@ int pa__init(pa_module*m) {
u->subscription = pa_subscription_new(m->core, PA_SUBSCRIPTION_MASK_SINK_INPUT|PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT, subscribe_callback, u);
if (restore_device) {
+ /* A little bit earlier than module-intended-roles ... */
u->sink_input_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_INPUT_NEW], PA_HOOK_EARLY, (pa_hook_cb_t) sink_input_new_hook_callback, u);
u->source_output_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_NEW], PA_HOOK_EARLY, (pa_hook_cb_t) source_output_new_hook_callback, u);
}
- if (restore_volume || restore_muted)
- u->sink_input_fixate_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_INPUT_FIXATE], PA_HOOK_EARLY, (pa_hook_cb_t) sink_input_fixate_hook_callback, u);
+ if (restore_device && on_hotplug) {
+ /* A little bit earlier than module-intended-roles ... */
+ u->sink_put_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_PUT], PA_HOOK_LATE, (pa_hook_cb_t) sink_put_hook_callback, u);
+ u->source_put_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_PUT], PA_HOOK_LATE, (pa_hook_cb_t) source_put_hook_callback, u);
+ }
+ if (restore_device && on_rescue) {
+ /* A little bit earlier than module-intended-roles, module-rescue-streams, ... */
+ u->sink_unlink_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_UNLINK], PA_HOOK_LATE, (pa_hook_cb_t) sink_unlink_hook_callback, u);
+ u->source_unlink_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_UNLINK], PA_HOOK_LATE, (pa_hook_cb_t) source_unlink_hook_callback, u);
+ }
- fname = pa_state_path("stream-volumes", TRUE);
+ if (restore_volume || restore_muted)
+ u->sink_input_fixate_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_INPUT_FIXATE], PA_HOOK_EARLY, (pa_hook_cb_t) sink_input_fixate_hook_callback, u);
- if (!fname)
+ if (!(fname = pa_state_path("stream-volumes", TRUE)))
goto fail;
if (!(u->database = pa_database_open(fname, TRUE))) {
@@ -833,10 +1003,10 @@ int pa__init(pa_module*m) {
pa_log_info("Sucessfully opened database file '%s'.", fname);
pa_xfree(fname);
- for (si = pa_idxset_first(m->core->sink_inputs, &idx); si; si = pa_idxset_next(m->core->sink_inputs, &idx))
+ PA_IDXSET_FOREACH(si, m->core->sink_inputs, idx)
subscribe_callback(m->core, PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_NEW, si->index, u);
- for (so = pa_idxset_first(m->core->source_outputs, &idx); so; so = pa_idxset_next(m->core->source_outputs, &idx))
+ PA_IDXSET_FOREACH(so, m->core->source_outputs, idx)
subscribe_callback(m->core, PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT|PA_SUBSCRIPTION_EVENT_NEW, so->index, u);
pa_modargs_free(ma);
@@ -869,6 +1039,16 @@ void pa__done(pa_module*m) {
if (u->source_output_new_hook_slot)
pa_hook_slot_free(u->source_output_new_hook_slot);
+ if (u->sink_put_hook_slot)
+ pa_hook_slot_free(u->sink_put_hook_slot);
+ if (u->source_put_hook_slot)
+ pa_hook_slot_free(u->source_put_hook_slot);
+
+ if (u->sink_unlink_hook_slot)
+ pa_hook_slot_free(u->sink_unlink_hook_slot);
+ if (u->source_unlink_hook_slot)
+ pa_hook_slot_free(u->source_unlink_hook_slot);
+
if (u->connection_unlink_hook_slot)
pa_hook_slot_free(u->connection_unlink_hook_slot);
diff --git a/src/modules/module-suspend-on-idle.c b/src/modules/module-suspend-on-idle.c
index c5b78911..70a7b049 100644
--- a/src/modules/module-suspend-on-idle.c
+++ b/src/modules/module-suspend-on-idle.c
@@ -25,6 +25,7 @@
#include <pulse/xmalloc.h>
#include <pulse/timeval.h>
+#include <pulse/rtclock.h>
#include <pulsecore/core.h>
#include <pulsecore/core-util.h>
@@ -75,11 +76,11 @@ struct device_info {
struct userdata *userdata;
pa_sink *sink;
pa_source *source;
- struct timeval last_use;
+ pa_usec_t last_use;
pa_time_event *time_event;
};
-static void timeout_cb(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) {
+static void timeout_cb(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) {
struct device_info *d = userdata;
pa_assert(d);
@@ -98,22 +99,20 @@ static void timeout_cb(pa_mainloop_api*a, pa_time_event* e, const struct timeval
}
static void restart(struct device_info *d) {
- struct timeval tv;
+ pa_usec_t now;
const char *s;
uint32_t timeout;
+
pa_assert(d);
pa_assert(d->sink || d->source);
- pa_gettimeofday(&tv);
- d->last_use = tv;
+ d->last_use = now = pa_rtclock_now();
s = pa_proplist_gets(d->sink ? d->sink->proplist : d->source->proplist, "module-suspend-on-idle.timeout");
if (!s || pa_atou(s, &timeout) < 0)
- timeout = d->userdata->timeout;
-
- pa_timeval_add(&tv, timeout * PA_USEC_PER_SEC);
+ timeout = d->userdata->timeout;
- d->userdata->core->mainloop->time_restart(d->time_event, &tv);
+ pa_core_rttime_restart(d->userdata->core, d->time_event, now + timeout * PA_USEC_PER_SEC);
if (d->sink)
pa_log_debug("Sink %s becomes idle, timeout in %u seconds.", d->sink->name, timeout);
@@ -338,7 +337,7 @@ static pa_hook_result_t device_new_hook_cb(pa_core *c, pa_object *o, struct user
d->userdata = u;
d->source = source ? pa_source_ref(source) : NULL;
d->sink = sink ? pa_sink_ref(sink) : NULL;
- d->time_event = c->mainloop->time_new(c->mainloop, NULL, timeout_cb, d);
+ d->time_event = pa_core_rttime_new(c, PA_USEC_INVALID, timeout_cb, d);
pa_hashmap_put(u->device_infos, o, d);
if ((d->sink && pa_sink_check_suspend(d->sink) <= 0) ||
diff --git a/src/modules/module-tunnel.c b/src/modules/module-tunnel.c
index c493d9bb..d1153829 100644
--- a/src/modules/module-tunnel.c
+++ b/src/modules/module-tunnel.c
@@ -31,6 +31,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/util.h>
#include <pulse/version.h>
@@ -50,7 +51,7 @@
#include <pulsecore/time-smoother.h>
#include <pulsecore/thread.h>
#include <pulsecore/thread-mq.h>
-#include <pulsecore/rtclock.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-error.h>
#include <pulsecore/proplist-util.h>
#include <pulsecore/auth-cookie.h>
@@ -112,7 +113,7 @@ static const char* const valid_modargs[] = {
#define DEFAULT_TIMEOUT 5
-#define LATENCY_INTERVAL 10
+#define LATENCY_INTERVAL (10*PA_USEC_PER_SEC)
#define MIN_NETWORK_LATENCY_USEC (8*PA_USEC_PER_MSEC)
@@ -395,7 +396,7 @@ static void check_smoother_status(struct userdata *u, pa_bool_t past) {
pa_assert(u);
- x = pa_rtclock_usec();
+ x = pa_rtclock_now();
/* Correct by the time the requested issued needs to travel to the
* other side. This is a valid thread-safe access, because the
@@ -500,7 +501,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
pa_usec_t yl, yr, *usec = data;
yl = pa_bytes_to_usec((uint64_t) u->counter, &u->sink->sample_spec);
- yr = pa_smoother_get(u->smoother, pa_rtclock_usec());
+ yr = pa_smoother_get(u->smoother, pa_rtclock_now());
*usec = yl > yr ? yl - yr : 0;
return 0;
@@ -533,7 +534,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
else
y = 0;
- pa_smoother_put(u->smoother, pa_rtclock_usec(), y);
+ pa_smoother_put(u->smoother, pa_rtclock_now(), y);
/* We can access this freely here, since the main thread is waiting for us */
u->thread_transport_usec = u->transport_usec;
@@ -607,7 +608,7 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off
pa_usec_t yr, yl, *usec = data;
yl = pa_bytes_to_usec((uint64_t) u->counter, &PA_SOURCE(o)->sample_spec);
- yr = pa_smoother_get(u->smoother, pa_rtclock_usec());
+ yr = pa_smoother_get(u->smoother, pa_rtclock_now());
*usec = yr > yl ? yr - yl : 0;
return 0;
@@ -633,7 +634,7 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off
y = pa_bytes_to_usec((uint64_t) u->counter, &u->source->sample_spec);
y += (pa_usec_t) offset;
- pa_smoother_put(u->smoother, pa_rtclock_usec(), y);
+ pa_smoother_put(u->smoother, pa_rtclock_now(), y);
/* We can access this freely here, since the main thread is waiting for us */
u->thread_transport_usec = u->transport_usec;
@@ -683,7 +684,6 @@ static void thread_func(void *userdata) {
pa_log_debug("Thread starting up");
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
for (;;) {
int ret;
@@ -878,9 +878,8 @@ static void request_latency(struct userdata *u) {
}
/* Called from main context */
-static void timeout_callback(pa_mainloop_api *m, pa_time_event*e, const struct timeval *tv, void *userdata) {
+static void timeout_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) {
struct userdata *u = userdata;
- struct timeval ntv;
pa_assert(m);
pa_assert(e);
@@ -888,9 +887,7 @@ static void timeout_callback(pa_mainloop_api *m, pa_time_event*e, const struct
request_latency(u);
- pa_gettimeofday(&ntv);
- ntv.tv_sec += LATENCY_INTERVAL;
- m->time_restart(e, &ntv);
+ pa_core_rttime_restart(u->core, e, pa_rtclock_now() + LATENCY_INTERVAL);
}
/* Called from main context */
@@ -1357,7 +1354,6 @@ static void start_subscribe(struct userdata *u) {
/* Called from main context */
static void create_stream_callback(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata) {
struct userdata *u = userdata;
- struct timeval ntv;
#ifdef TUNNEL_SINK
uint32_t bytes;
#endif
@@ -1439,9 +1435,7 @@ static void create_stream_callback(pa_pdispatch *pd, uint32_t command, uint32_t
request_info(u);
pa_assert(!u->time_event);
- pa_gettimeofday(&ntv);
- ntv.tv_sec += LATENCY_INTERVAL;
- u->time_event = u->core->mainloop->time_new(u->core->mainloop, &ntv, timeout_callback, u);
+ u->time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + LATENCY_INTERVAL, timeout_callback, u);
request_latency(u);
@@ -1706,7 +1700,7 @@ static void on_connection(pa_socket_client *sc, pa_iochannel *io, void *userdata
}
u->pstream = pa_pstream_new(u->core->mainloop, io, u->core->mempool);
- u->pdispatch = pa_pdispatch_new(u->core->mainloop, command_table, PA_COMMAND_MAX);
+ u->pdispatch = pa_pdispatch_new(u->core->mainloop, TRUE, command_table, PA_COMMAND_MAX);
pa_pstream_set_die_callback(u->pstream, pstream_die_callback, u);
pa_pstream_set_recieve_packet_callback(u->pstream, pstream_packet_callback, u);
@@ -1825,7 +1819,7 @@ int pa__init(pa_module*m) {
TRUE,
TRUE,
10,
- pa_rtclock_usec(),
+ pa_rtclock_now(),
FALSE);
u->ctag = 1;
u->device_index = u->channel = PA_INVALID_INDEX;
@@ -1853,7 +1847,7 @@ int pa__init(pa_module*m) {
goto fail;
}
- if (!(u->client = pa_socket_client_new_string(m->core->mainloop, u->server_name, PA_NATIVE_DEFAULT_PORT))) {
+ if (!(u->client = pa_socket_client_new_string(m->core->mainloop, TRUE, u->server_name, PA_NATIVE_DEFAULT_PORT))) {
pa_log("Failed to connect to server '%s'", u->server_name);
goto fail;
}
diff --git a/src/modules/module-udev-detect.c b/src/modules/module-udev-detect.c
index 1ad6fa2d..c8ec2bf9 100644
--- a/src/modules/module-udev-detect.c
+++ b/src/modules/module-udev-detect.c
@@ -65,6 +65,8 @@ static const char* const valid_modargs[] = {
NULL
};
+static int setup_inotify(struct userdata *u);
+
static void device_free(struct device *d) {
pa_assert(d);
@@ -117,6 +119,9 @@ static void card_changed(struct userdata *u, struct udev_device *dev) {
pa_assert(u);
pa_assert(dev);
+ /* Maybe /dev/snd is now available? */
+ setup_inotify(u);
+
path = udev_device_get_devpath(dev);
if ((d = pa_hashmap_get(u->devices, path))) {
@@ -262,7 +267,7 @@ static void inotify_cb(
} buf;
struct userdata *u = userdata;
static int type = 0;
- pa_bool_t verify = FALSE;
+ pa_bool_t verify = FALSE, deleted = FALSE;
for (;;) {
ssize_t r;
@@ -279,6 +284,9 @@ static void inotify_cb(
if ((buf.e.mask & IN_CLOSE_WRITE) && pa_startswith(buf.e.name, "pcmC"))
verify = TRUE;
+
+ if ((buf.e.mask & (IN_DELETE_SELF|IN_MOVE_SELF)))
+ deleted = TRUE;
}
if (verify) {
@@ -291,11 +299,14 @@ static void inotify_cb(
verify_access(u, d);
}
- return;
+ if (!deleted)
+ return;
fail:
- a->io_free(u->inotify_io);
- u->inotify_io = NULL;
+ if (u->inotify_io) {
+ a->io_free(u->inotify_io);
+ u->inotify_io = NULL;
+ }
if (u->inotify_fd >= 0) {
pa_close(u->inotify_fd);
@@ -307,17 +318,28 @@ static int setup_inotify(struct userdata *u) {
char *dev_snd;
int r;
+ if (u->inotify_fd >= 0)
+ return 0;
+
if ((u->inotify_fd = inotify_init1(IN_CLOEXEC|IN_NONBLOCK)) < 0) {
pa_log("inotify_init1() failed: %s", pa_cstrerror(errno));
return -1;
}
dev_snd = pa_sprintf_malloc("%s/snd", udev_get_dev_path(u->udev));
- r = inotify_add_watch(u->inotify_fd, dev_snd, IN_CLOSE_WRITE);
+ r = inotify_add_watch(u->inotify_fd, dev_snd, IN_CLOSE_WRITE|IN_DELETE_SELF|IN_MOVE_SELF);
pa_xfree(dev_snd);
if (r < 0) {
- pa_log("inotify_add_watch() failed: %s", pa_cstrerror(errno));
+ int saved_errno = errno;
+
+ pa_close(u->inotify_fd);
+ u->inotify_fd = -1;
+
+ if (saved_errno == ENOENT)
+ return 0;
+
+ pa_log("inotify_add_watch() failed: %s", pa_cstrerror(saved_errno));
return -1;
}
diff --git a/src/modules/module-waveout.c b/src/modules/module-waveout.c
index 2d35828d..d1b9f2ff 100644
--- a/src/modules/module-waveout.c
+++ b/src/modules/module-waveout.c
@@ -256,7 +256,7 @@ static void poll_cb(pa_mainloop_api*a, pa_time_event *e, const struct timeval *t
pa_gettimeofday(&ntv);
pa_timeval_add(&ntv, u->poll_timeout);
- a->time_restart(e, &ntv);
+ a->rtclock_time_restart(e, &ntv);
}
static void defer_cb(pa_mainloop_api*a, pa_defer_event *e, void *userdata) {
@@ -549,7 +549,7 @@ int pa__init(pa_core *c, pa_module*m) {
pa_gettimeofday(&tv);
pa_timeval_add(&tv, u->poll_timeout);
- u->event = c->mainloop->time_new(c->mainloop, &tv, poll_cb, u);
+ u->event = c->mainloop->rtclock_time_new(c->mainloop, &tv, poll_cb, u);
assert(u->event);
u->defer = c->mainloop->defer_new(c->mainloop, defer_cb, u);
diff --git a/src/modules/oss/module-oss.c b/src/modules/oss/module-oss.c
index b1afcfd6..c44b882b 100644
--- a/src/modules/oss/module-oss.c
+++ b/src/modules/oss/module-oss.c
@@ -889,7 +889,6 @@ static void thread_func(void *userdata) {
pa_make_realtime(u->core->realtime_priority);
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
for (;;) {
int ret;
diff --git a/src/modules/raop/module-raop-sink.c b/src/modules/raop/module-raop-sink.c
index 54de42c2..9699132d 100644
--- a/src/modules/raop/module-raop-sink.c
+++ b/src/modules/raop/module-raop-sink.c
@@ -42,13 +42,15 @@
#include <linux/sockios.h>
#endif
-#include <pulse/xmalloc.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
+#include <pulse/xmalloc.h>
#include <pulsecore/core-error.h>
#include <pulsecore/iochannel.h>
#include <pulsecore/sink.h>
#include <pulsecore/module.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/log.h>
@@ -57,7 +59,6 @@
#include <pulsecore/thread-mq.h>
#include <pulsecore/thread.h>
#include <pulsecore/time-smoother.h>
-#include <pulsecore/rtclock.h>
#include <pulsecore/socket-util.h>
#include "module-raop-sink-symdef.h"
@@ -181,7 +182,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
case PA_SINK_SUSPENDED:
pa_assert(PA_SINK_IS_OPENED(u->sink->thread_info.state));
- pa_smoother_pause(u->smoother, pa_rtclock_usec());
+ pa_smoother_pause(u->smoother, pa_rtclock_now());
/* Issue a FLUSH if we are connected */
if (u->fd >= 0) {
@@ -193,7 +194,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
case PA_SINK_RUNNING:
if (u->sink->thread_info.state == PA_SINK_SUSPENDED) {
- pa_smoother_resume(u->smoother, pa_rtclock_usec(), TRUE);
+ pa_smoother_resume(u->smoother, pa_rtclock_now(), TRUE);
/* The connection can be closed when idle, so check to
see if we need to reestablish it */
@@ -216,7 +217,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
case PA_SINK_MESSAGE_GET_LATENCY: {
pa_usec_t w, r;
- r = pa_smoother_get(u->smoother, pa_rtclock_usec());
+ r = pa_smoother_get(u->smoother, pa_rtclock_now());
w = pa_bytes_to_usec((u->offset - u->encoding_overhead + (u->encoded_memchunk.length / u->encoding_ratio)), &u->sink->sample_spec);
*((pa_usec_t*) data) = w > r ? w - r : 0;
@@ -323,9 +324,8 @@ static void thread_func(void *userdata) {
pa_log_debug("Thread starting up");
pa_thread_mq_install(&u->thread_mq);
- pa_rtpoll_install(u->rtpoll);
- pa_smoother_set_time_offset(u->smoother, pa_rtclock_usec());
+ pa_smoother_set_time_offset(u->smoother, pa_rtclock_now());
/* Create a chunk of memory that is our encoded silence sample. */
pa_memchunk_reset(&silence);
@@ -465,7 +465,7 @@ static void thread_func(void *userdata) {
else
usec = 0;
- pa_smoother_put(u->smoother, pa_rtclock_usec(), usec);
+ pa_smoother_put(u->smoother, pa_rtclock_now(), usec);
}
/* Hmm, nothing to do. Let's sleep */
diff --git a/src/modules/raop/raop_client.c b/src/modules/raop/raop_client.c
index b3f243c3..c4b02371 100644
--- a/src/modules/raop/raop_client.c
+++ b/src/modules/raop/raop_client.c
@@ -331,7 +331,7 @@ static void rtsp_cb(pa_rtsp_client *rtsp, pa_rtsp_state state, pa_headerlist* he
uint32_t port = pa_rtsp_serverport(c->rtsp);
pa_log_debug("RAOP: RECORDED");
- if (!(c->sc = pa_socket_client_new_string(c->core->mainloop, c->host, port))) {
+ if (!(c->sc = pa_socket_client_new_string(c->core->mainloop, TRUE, c->host, port))) {
pa_log("failed to connect to server '%s:%d'", c->host, port);
return;
}
diff --git a/src/modules/reserve-monitor.c b/src/modules/reserve-monitor.c
index 64d2a7cc..13ecde2b 100644
--- a/src/modules/reserve-monitor.c
+++ b/src/modules/reserve-monitor.c
@@ -1,3 +1,5 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: t -*-*/
+
/***
Copyright 2009 Lennart Poettering
@@ -76,9 +78,17 @@ static DBusHandlerResult filter_handler(
goto invalid;
if (strcmp(name, m->service_name) == 0) {
-
m->busy = !!(new && *new);
+ /* If we ourselves own the device, then don't consider this 'busy' */
+ if (m->busy) {
+ const char *un;
+
+ if ((un = dbus_bus_get_unique_name(c)))
+ if (strcmp(new, un) == 0)
+ m->busy = FALSE;
+ }
+
if (m->change_cb) {
m->ref++;
m->change_cb(m);
diff --git a/src/modules/reserve-monitor.h b/src/modules/reserve-monitor.h
index 4f4a8332..421a52e0 100644
--- a/src/modules/reserve-monitor.h
+++ b/src/modules/reserve-monitor.h
@@ -1,3 +1,5 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: t -*-*/
+
#ifndef fooreservemonitorhfoo
#define fooreservemonitorhfoo
@@ -28,6 +30,10 @@
#include <dbus/dbus.h>
#include <inttypes.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct rm_monitor rm_monitor;
/* Prototype for a function that is called whenever the reservation
@@ -59,4 +65,8 @@ void rm_set_userdata(rm_monitor *m, void *userdata);
* userdata was set. */
void* rm_get_userdata(rm_monitor *m);
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/src/modules/reserve-wrap.c b/src/modules/reserve-wrap.c
index 07b592d3..6086fc99 100644
--- a/src/modules/reserve-wrap.c
+++ b/src/modules/reserve-wrap.c
@@ -336,5 +336,9 @@ pa_bool_t pa_reserve_monitor_wrapper_busy(pa_reserve_monitor_wrapper *w) {
pa_assert(PA_REFCNT_VALUE(w) >= 1);
+#ifdef HAVE_DBUS
return rm_busy(w->monitor) > 0;
+#else
+ return FALSE;
+#endif
}
diff --git a/src/modules/reserve.c b/src/modules/reserve.c
index 09bc46cb..5597f177 100644
--- a/src/modules/reserve.c
+++ b/src/modules/reserve.c
@@ -1,3 +1,5 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: t -*-*/
+
/***
Copyright 2009 Lennart Poettering
diff --git a/src/modules/reserve.h b/src/modules/reserve.h
index 31071298..9ae49cf5 100644
--- a/src/modules/reserve.h
+++ b/src/modules/reserve.h
@@ -1,3 +1,5 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: t -*-*/
+
#ifndef fooreservehfoo
#define fooreservehfoo
@@ -28,6 +30,10 @@
#include <dbus/dbus.h>
#include <inttypes.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct rd_device rd_device;
/* Prototype for a function that is called whenever someone else wants
@@ -66,4 +72,8 @@ void rd_set_userdata(rd_device *d, void *userdata);
* userdata was set. */
void* rd_get_userdata(rd_device *d);
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/src/modules/rtp/module-rtp-recv.c b/src/modules/rtp/module-rtp-recv.c
index b86923fb..5caf8272 100644
--- a/src/modules/rtp/module-rtp-recv.c
+++ b/src/modules/rtp/module-rtp-recv.c
@@ -33,6 +33,7 @@
#include <unistd.h>
#include <poll.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
@@ -43,13 +44,13 @@
#include <pulsecore/sink-input.h>
#include <pulsecore/memblockq.h>
#include <pulsecore/log.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/modargs.h>
#include <pulsecore/namereg.h>
#include <pulsecore/sample-util.h>
#include <pulsecore/macro.h>
#include <pulsecore/atomic.h>
-#include <pulsecore/rtclock.h>
#include <pulsecore/atomic.h>
#include <pulsecore/time-smoother.h>
#include <pulsecore/socket-util.h>
@@ -112,6 +113,7 @@ struct session {
struct userdata {
pa_module *module;
+ pa_core *core;
pa_sap_context sap_context;
pa_io_event* sap_event;
@@ -193,7 +195,7 @@ static void sink_input_suspend_within_thread(pa_sink_input* i, pa_bool_t b) {
pa_assert_se(s = i->userdata);
if (b) {
- pa_smoother_pause(s->smoother, pa_rtclock_usec());
+ pa_smoother_pause(s->smoother, pa_rtclock_now());
pa_memblockq_flush_read(s->memblockq);
} else
s->first_packet = FALSE;
@@ -621,15 +623,13 @@ static void sap_event_cb(pa_mainloop_api *m, pa_io_event *e, int fd, pa_io_event
}
}
-static void check_death_event_cb(pa_mainloop_api *m, pa_time_event *t, const struct timeval *ptv, void *userdata) {
+static void check_death_event_cb(pa_mainloop_api *m, pa_time_event *t, const struct timeval *tv, void *userdata) {
struct session *s, *n;
struct userdata *u = userdata;
struct timeval now;
- struct timeval tv;
pa_assert(m);
pa_assert(t);
- pa_assert(ptv);
pa_assert(u);
pa_rtclock_get(&now);
@@ -647,9 +647,7 @@ static void check_death_event_cb(pa_mainloop_api *m, pa_time_event *t, const str
}
/* Restart timer */
- pa_gettimeofday(&tv);
- pa_timeval_add(&tv, DEATH_TIMEOUT*PA_USEC_PER_SEC);
- m->time_restart(t, &tv);
+ pa_core_rttime_restart(u->module->core, t, pa_rtclock_now() + DEATH_TIMEOUT * PA_USEC_PER_SEC);
}
int pa__init(pa_module*m) {
@@ -663,7 +661,6 @@ int pa__init(pa_module*m) {
socklen_t salen;
const char *sap_address;
int fd = -1;
- struct timeval tv;
pa_assert(m);
@@ -696,6 +693,7 @@ int pa__init(pa_module*m) {
m->userdata = u = pa_xnew(struct userdata, 1);
u->module = m;
+ u->core = m->core;
u->sink_name = pa_xstrdup(pa_modargs_get_value(ma, "sink", NULL));
u->sap_event = m->core->mainloop->io_new(m->core->mainloop, fd, PA_IO_EVENT_INPUT, sap_event_cb, u);
@@ -705,9 +703,7 @@ int pa__init(pa_module*m) {
u->n_sessions = 0;
u->by_origin = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
- pa_gettimeofday(&tv);
- pa_timeval_add(&tv, DEATH_TIMEOUT * PA_USEC_PER_SEC);
- u->check_death_event = m->core->mainloop->time_new(m->core->mainloop, &tv, check_death_event_cb, u);
+ u->check_death_event = pa_core_rttime_new(m->core, pa_rtclock_now() + DEATH_TIMEOUT * PA_USEC_PER_SEC, check_death_event_cb, u);
pa_modargs_free(ma);
diff --git a/src/modules/rtp/module-rtp-send.c b/src/modules/rtp/module-rtp-send.c
index 39ee4d75..f147364d 100644
--- a/src/modules/rtp/module-rtp-send.c
+++ b/src/modules/rtp/module-rtp-send.c
@@ -31,6 +31,7 @@
#include <string.h>
#include <unistd.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/util.h>
#include <pulse/xmalloc.h>
@@ -77,7 +78,7 @@ PA_MODULE_USAGE(
#define DEFAULT_DESTINATION "224.0.0.56"
#define MEMBLOCKQ_MAXLENGTH (1024*170)
#define DEFAULT_MTU 1280
-#define SAP_INTERVAL 5
+#define SAP_INTERVAL (5*PA_USEC_PER_SEC)
static const char* const valid_modargs[] = {
"source",
@@ -151,18 +152,14 @@ static void source_output_kill(pa_source_output* o) {
static void sap_event_cb(pa_mainloop_api *m, pa_time_event *t, const struct timeval *tv, void *userdata) {
struct userdata *u = userdata;
- struct timeval next;
pa_assert(m);
pa_assert(t);
- pa_assert(tv);
pa_assert(u);
pa_sap_send(&u->sap_context, 0);
- pa_gettimeofday(&next);
- pa_timeval_add(&next, SAP_INTERVAL * PA_USEC_PER_SEC);
- m->time_restart(t, &next);
+ pa_core_rttime_restart(u->module->core, t, pa_rtclock_now() + SAP_INTERVAL);
}
int pa__init(pa_module*m) {
@@ -186,7 +183,6 @@ int pa__init(pa_module*m) {
char *p;
int r, j;
socklen_t k;
- struct timeval tv;
char hn[128], *n;
pa_bool_t loop = FALSE;
pa_source_output_new_data data;
@@ -395,9 +391,7 @@ int pa__init(pa_module*m) {
pa_sap_send(&u->sap_context, 0);
- pa_gettimeofday(&tv);
- pa_timeval_add(&tv, SAP_INTERVAL * PA_USEC_PER_SEC);
- u->sap_event = m->core->mainloop->time_new(m->core->mainloop, &tv, sap_event_cb, u);
+ u->sap_event = pa_core_rttime_new(m->core, pa_rtclock_now() + SAP_INTERVAL, sap_event_cb, u);
pa_source_output_put(u->source_output);
diff --git a/src/modules/rtp/rtsp_client.c b/src/modules/rtp/rtsp_client.c
index cb037de6..72d304e8 100644
--- a/src/modules/rtp/rtsp_client.c
+++ b/src/modules/rtp/rtsp_client.c
@@ -333,7 +333,7 @@ int pa_rtsp_connect(pa_rtsp_client *c) {
pa_xfree(c->session);
c->session = NULL;
- if (!(c->sc = pa_socket_client_new_string(c->mainloop, c->hostname, c->port))) {
+ if (!(c->sc = pa_socket_client_new_string(c->mainloop, TRUE, c->hostname, c->port))) {
pa_log("failed to connect to server '%s:%d'", c->hostname, c->port);
return -1;
}
diff --git a/src/pulse/context.c b/src/pulse/context.c
index 3b7bf08d..4ded5565 100644
--- a/src/pulse/context.c
+++ b/src/pulse/context.c
@@ -54,6 +54,8 @@
#include <pulse/utf8.h>
#include <pulse/util.h>
#include <pulse/i18n.h>
+#include <pulse/mainloop.h>
+#include <pulse/timeval.h>
#include <pulsecore/winsock.h>
#include <pulsecore/core-error.h>
@@ -64,6 +66,7 @@
#include <pulsecore/dynarray.h>
#include <pulsecore/socket-client.h>
#include <pulsecore/pstream-util.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/log.h>
#include <pulsecore/socket-util.h>
@@ -157,6 +160,7 @@ pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char *
c->playback_streams = pa_dynarray_new();
c->record_streams = pa_dynarray_new();
c->client_index = PA_INVALID_INDEX;
+ c->use_rtclock = pa_mainloop_is_our_api(mainloop);
PA_LLIST_HEAD_INIT(pa_stream, c->streams);
PA_LLIST_HEAD_INIT(pa_operation, c->operations);
@@ -540,7 +544,7 @@ static void setup_context(pa_context *c, pa_iochannel *io) {
pa_pstream_set_recieve_memblock_callback(c->pstream, pstream_memblock_callback, c);
pa_assert(!c->pdispatch);
- c->pdispatch = pa_pdispatch_new(c->mainloop, command_table, PA_COMMAND_MAX);
+ c->pdispatch = pa_pdispatch_new(c->mainloop, c->use_rtclock, command_table, PA_COMMAND_MAX);
if (!c->conf->cookie_valid)
pa_log_info(_("No cookie loaded. Attempting to connect without."));
@@ -757,22 +761,33 @@ static void track_pulseaudio_on_dbus(pa_context *c, DBusBusType type, pa_dbus_wr
pa_assert(conn);
dbus_error_init(&error);
- if (!(*conn = pa_dbus_wrap_connection_new(c->mainloop, type, &error)) || dbus_error_is_set(&error)) {
+
+ if (!(*conn = pa_dbus_wrap_connection_new(c->mainloop, c->use_rtclock, type, &error)) || dbus_error_is_set(&error)) {
pa_log_warn("Unable to contact DBUS: %s: %s", error.name, error.message);
- goto finish;
+ goto fail;
}
if (!dbus_connection_add_filter(pa_dbus_wrap_connection_get(*conn), filter_cb, c, NULL)) {
pa_log_warn("Failed to add filter function");
- goto finish;
+ goto fail;
}
if (pa_dbus_add_matches(
pa_dbus_wrap_connection_get(*conn), &error,
- "type='signal',sender='" DBUS_SERVICE_DBUS "',interface='" DBUS_INTERFACE_DBUS "',member='NameOwnerChanged',arg0='org.pulseaudio.Server',arg1=''", NULL) < 0)
+ "type='signal',sender='" DBUS_SERVICE_DBUS "',interface='" DBUS_INTERFACE_DBUS "',member='NameOwnerChanged',arg0='org.pulseaudio.Server',arg1=''", NULL) < 0) {
+
pa_log_warn("Unable to track org.pulseaudio.Server: %s: %s", error.name, error.message);
+ goto fail;
+ }
+
+ return;
+
+fail:
+ if (*conn) {
+ pa_dbus_wrap_connection_free(*conn);
+ *conn = NULL;
+ }
- finish:
dbus_error_free(&error);
}
#endif
@@ -827,7 +842,7 @@ static int try_next_connection(pa_context *c) {
pa_xfree(c->server);
c->server = pa_xstrdup(u);
- if (!(c->client = pa_socket_client_new_string(c->mainloop, u, PA_NATIVE_DEFAULT_PORT)))
+ if (!(c->client = pa_socket_client_new_string(c->mainloop, c->use_rtclock, u, PA_NATIVE_DEFAULT_PORT)))
continue;
c->is_local = !!pa_socket_client_is_local(c->client);
@@ -857,7 +872,7 @@ static void on_connection(pa_socket_client *client, pa_iochannel*io, void *userd
c->client = NULL;
if (!io) {
- /* Try the item in the list */
+ /* Try the next item in the list */
if (saved_errno == ECONNREFUSED ||
saved_errno == ETIMEDOUT ||
saved_errno == EHOSTUNREACH) {
@@ -893,7 +908,7 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *message, vo
/* FIXME: We probably should check if this is actually the NameOwnerChanged we were looking for */
is_session = c->session_bus && bus == pa_dbus_wrap_connection_get(c->session_bus);
- pa_log_debug("Rock!! PulseAudio is back on %s bus", is_session ? "session" : "system");
+ pa_log_debug("Rock!! PulseAudio might be back on %s bus", is_session ? "session" : "system");
if (is_session)
/* The user instance via PF_LOCAL */
@@ -933,7 +948,7 @@ int pa_context_connect(
pa_context_ref(c);
- c->no_fail = flags & PA_CONTEXT_NOFAIL;
+ c->no_fail = !!(flags & PA_CONTEXT_NOFAIL);
c->server_specified = !!server;
pa_assert(!c->server_list);
@@ -950,10 +965,7 @@ int pa_context_connect(
/* Follow the X display */
if ((d = getenv("DISPLAY"))) {
- char *e;
- d = pa_xstrdup(d);
- if ((e = strchr(d, ':')))
- *e = 0;
+ d = pa_xstrndup(d, strcspn(d, ":"));
if (*d)
c->server_list = pa_strlist_prepend(c->server_list, d);
@@ -1443,3 +1455,31 @@ finish:
if (pl)
pa_proplist_free(pl);
}
+
+pa_time_event* pa_context_rttime_new(pa_context *c, pa_usec_t usec, pa_time_event_cb_t cb, void *userdata) {
+ struct timeval tv;
+
+ pa_assert(c);
+ pa_assert(c->mainloop);
+
+ if (usec == PA_USEC_INVALID)
+ return c->mainloop->time_new(c->mainloop, NULL, cb, userdata);
+
+ pa_timeval_rtstore(&tv, usec, c->use_rtclock);
+
+ return c->mainloop->time_new(c->mainloop, &tv, cb, userdata);
+}
+
+void pa_context_rttime_restart(pa_context *c, pa_time_event *e, pa_usec_t usec) {
+ struct timeval tv;
+
+ pa_assert(c);
+ pa_assert(c->mainloop);
+
+ if (usec == PA_USEC_INVALID)
+ c->mainloop->time_restart(e, NULL);
+ else {
+ pa_timeval_rtstore(&tv, usec, c->use_rtclock);
+ c->mainloop->time_restart(e, &tv);
+ }
+}
diff --git a/src/pulse/context.h b/src/pulse/context.h
index 139d0e0b..cd129313 100644
--- a/src/pulse/context.h
+++ b/src/pulse/context.h
@@ -260,6 +260,14 @@ pa_operation *pa_context_proplist_remove(pa_context *c, const char *const keys[]
* introspection functions, such as pa_context_get_client_info(). \since 0.9.11 */
uint32_t pa_context_get_index(pa_context *s);
+/** Create a new timer event source for the specified time (wrapper
+ for mainloop->time_new). \since 0.9.16 */
+pa_time_event* pa_context_rttime_new(pa_context *c, pa_usec_t usec, pa_time_event_cb_t cb, void *userdata);
+/** Restart a running or expired timer event source (wrapper
+ for mainloop->time_restart). \since 0.9.16 */
+void pa_context_rttime_restart(pa_context *c, pa_time_event *e, pa_usec_t usec);
+
+
PA_C_DECL_END
#endif
diff --git a/src/pulse/internal.h b/src/pulse/internal.h
index 28a989b3..e069c9e9 100644
--- a/src/pulse/internal.h
+++ b/src/pulse/internal.h
@@ -89,6 +89,7 @@ struct pa_context {
pa_bool_t server_specified:1;
pa_bool_t no_fail:1;
pa_bool_t do_autospawn:1;
+ pa_bool_t use_rtclock:1;
pa_spawn_api spawn_api;
pa_strlist *server_list;
@@ -150,6 +151,11 @@ struct pa_stream {
uint32_t device_index;
char *device_name;
+ /* playback */
+ pa_memblock *write_memblock;
+ void *write_data;
+
+ /* recording */
pa_memchunk peek_memchunk;
void *peek_data;
pa_memblockq *record_memblockq;
@@ -279,4 +285,6 @@ pa_tagstruct *pa_tagstruct_command(pa_context *c, uint32_t command, uint32_t *ta
void pa_ext_stream_restore_command(pa_context *c, uint32_t tag, pa_tagstruct *t);
+pa_bool_t pa_mainloop_is_our_api(pa_mainloop_api*m);
+
#endif
diff --git a/src/pulse/introspect.c b/src/pulse/introspect.c
index ab67f596..27a587cb 100644
--- a/src/pulse/introspect.c
+++ b/src/pulse/introspect.c
@@ -201,42 +201,44 @@ static void context_get_sink_info_callback(pa_pdispatch *pd, uint32_t command, u
goto finish;
}
- if (i.n_ports > 0) {
- i.ports = pa_xnew(pa_sink_port_info*, i.n_ports+1);
- i.ports[0] = pa_xnew(pa_sink_port_info, i.n_ports);
-
- for (j = 0; j < i.n_ports; j++) {
- if (pa_tagstruct_gets(t, &i.ports[0][j].name) < 0 ||
- pa_tagstruct_gets(t, &i.ports[0][j].description) < 0 ||
- pa_tagstruct_getu32(t, &i.ports[0][j].priority) < 0) {
-
- pa_context_fail(o->context, PA_ERR_PROTOCOL);
- pa_xfree(i.ports);
- pa_xfree(i.ports[0]);
- pa_proplist_free(i.proplist);
- goto finish;
+ if (o->context->version >= 16) {
+ if (i.n_ports > 0) {
+ i.ports = pa_xnew(pa_sink_port_info*, i.n_ports+1);
+ i.ports[0] = pa_xnew(pa_sink_port_info, i.n_ports);
+
+ for (j = 0; j < i.n_ports; j++) {
+ if (pa_tagstruct_gets(t, &i.ports[0][j].name) < 0 ||
+ pa_tagstruct_gets(t, &i.ports[0][j].description) < 0 ||
+ pa_tagstruct_getu32(t, &i.ports[0][j].priority) < 0) {
+
+ pa_context_fail(o->context, PA_ERR_PROTOCOL);
+ pa_xfree(i.ports[0]);
+ pa_xfree(i.ports);
+ pa_proplist_free(i.proplist);
+ goto finish;
+ }
+
+ i.ports[j] = &i.ports[0][j];
}
- i.ports[j] = &i.ports[0][j];
+ i.ports[j] = NULL;
}
- i.ports[j] = NULL;
- }
-
- if (pa_tagstruct_gets(t, &ap) < 0) {
- pa_context_fail(o->context, PA_ERR_PROTOCOL);
- pa_xfree(i.ports[0]);
- pa_xfree(i.ports);
- pa_proplist_free(i.proplist);
- goto finish;
- }
+ if (pa_tagstruct_gets(t, &ap) < 0) {
+ pa_context_fail(o->context, PA_ERR_PROTOCOL);
+ pa_xfree(i.ports[0]);
+ pa_xfree(i.ports);
+ pa_proplist_free(i.proplist);
+ goto finish;
+ }
- if (ap) {
- for (j = 0; j < i.n_ports; j++)
- if (pa_streq(i.ports[j]->name, ap)) {
- i.active_port = i.ports[j];
- break;
- }
+ if (ap) {
+ for (j = 0; j < i.n_ports; j++)
+ if (pa_streq(i.ports[j]->name, ap)) {
+ i.active_port = i.ports[j];
+ break;
+ }
+ }
}
i.mute = (int) mute;
@@ -248,6 +250,10 @@ static void context_get_sink_info_callback(pa_pdispatch *pd, uint32_t command, u
cb(o->context, &i, 0, o->userdata);
}
+ if (i.ports) {
+ pa_xfree(i.ports[0]);
+ pa_xfree(i.ports);
+ }
pa_proplist_free(i.proplist);
}
}
@@ -428,42 +434,44 @@ static void context_get_source_info_callback(pa_pdispatch *pd, uint32_t command,
goto finish;
}
- if (i.n_ports > 0) {
- i.ports = pa_xnew(pa_source_port_info*, i.n_ports+1);
- i.ports[0] = pa_xnew(pa_source_port_info, i.n_ports);
+ if (o->context->version >= 16) {
+ if (i.n_ports > 0) {
+ i.ports = pa_xnew(pa_source_port_info*, i.n_ports+1);
+ i.ports[0] = pa_xnew(pa_source_port_info, i.n_ports);
- for (j = 0; j < i.n_ports; j++) {
- if (pa_tagstruct_gets(t, &i.ports[0][j].name) < 0 ||
- pa_tagstruct_gets(t, &i.ports[0][j].description) < 0 ||
- pa_tagstruct_getu32(t, &i.ports[0][j].priority) < 0) {
+ for (j = 0; j < i.n_ports; j++) {
+ if (pa_tagstruct_gets(t, &i.ports[0][j].name) < 0 ||
+ pa_tagstruct_gets(t, &i.ports[0][j].description) < 0 ||
+ pa_tagstruct_getu32(t, &i.ports[0][j].priority) < 0) {
- pa_context_fail(o->context, PA_ERR_PROTOCOL);
- pa_xfree(i.ports[0]);
- pa_xfree(i.ports);
- pa_proplist_free(i.proplist);
- goto finish;
+ pa_context_fail(o->context, PA_ERR_PROTOCOL);
+ pa_xfree(i.ports[0]);
+ pa_xfree(i.ports);
+ pa_proplist_free(i.proplist);
+ goto finish;
+ }
+
+ i.ports[j] = &i.ports[0][j];
}
- i.ports[j] = &i.ports[0][j];
+ i.ports[j] = NULL;
}
- i.ports[j] = NULL;
- }
-
- if (pa_tagstruct_gets(t, &ap) < 0) {
- pa_context_fail(o->context, PA_ERR_PROTOCOL);
- pa_xfree(i.ports[0]);
- pa_xfree(i.ports);
- pa_proplist_free(i.proplist);
- goto finish;
- }
+ if (pa_tagstruct_gets(t, &ap) < 0) {
+ pa_context_fail(o->context, PA_ERR_PROTOCOL);
+ pa_xfree(i.ports[0]);
+ pa_xfree(i.ports);
+ pa_proplist_free(i.proplist);
+ goto finish;
+ }
- if (ap) {
- for (j = 0; j < i.n_ports; j++)
- if (pa_streq(i.ports[j]->name, ap)) {
- i.active_port = i.ports[j];
- break;
- }
+ if (ap) {
+ for (j = 0; j < i.n_ports; j++)
+ if (pa_streq(i.ports[j]->name, ap)) {
+ i.active_port = i.ports[j];
+ break;
+ }
+ }
}
i.mute = (int) mute;
@@ -475,6 +483,10 @@ static void context_get_source_info_callback(pa_pdispatch *pd, uint32_t command,
cb(o->context, &i, 0, o->userdata);
}
+ if (i.ports) {
+ pa_xfree(i.ports[0]);
+ pa_xfree(i.ports);
+ }
pa_proplist_free(i.proplist);
}
}
diff --git a/src/pulse/mainloop-api.h b/src/pulse/mainloop-api.h
index e353ed96..aa0d5e73 100644
--- a/src/pulse/mainloop-api.h
+++ b/src/pulse/mainloop-api.h
@@ -27,6 +27,7 @@
#include <time.h>
#include <pulse/cdecl.h>
+#include <pulse/sample.h>
#include <pulse/version.h>
/** \file
diff --git a/src/pulse/mainloop.c b/src/pulse/mainloop.c
index 225fd098..c418d108 100644
--- a/src/pulse/mainloop.c
+++ b/src/pulse/mainloop.c
@@ -42,10 +42,12 @@
#include <pulsecore/pipe.h>
#endif
+#include <pulse/i18n.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
-#include <pulse/i18n.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/llist.h>
#include <pulsecore/log.h>
@@ -54,6 +56,7 @@
#include <pulsecore/macro.h>
#include "mainloop.h"
+#include "internal.h"
struct pa_io_event {
pa_mainloop *mainloop;
@@ -75,7 +78,7 @@ struct pa_time_event {
pa_bool_t dead:1;
pa_bool_t enabled:1;
- struct timeval timeval;
+ pa_usec_t time;
pa_time_event_cb_t callback;
void *userdata;
@@ -317,6 +320,23 @@ static void mainloop_defer_set_destroy(pa_defer_event *e, pa_defer_event_destroy
}
/* Time events */
+static pa_usec_t timeval_load(const struct timeval *tv) {
+ pa_bool_t is_rtclock;
+ struct timeval ttv;
+
+ if (!tv)
+ return PA_USEC_INVALID;
+
+ ttv = *tv;
+ is_rtclock = !!(ttv.tv_usec & PA_TIMEVAL_RTCLOCK);
+ ttv.tv_usec &= ~PA_TIMEVAL_RTCLOCK;
+
+ if (!is_rtclock)
+ pa_rtclock_from_wallclock(&ttv);
+
+ return pa_timeval_load(&ttv);
+}
+
static pa_time_event* mainloop_time_new(
pa_mainloop_api*a,
const struct timeval *tv,
@@ -325,11 +345,14 @@ static pa_time_event* mainloop_time_new(
pa_mainloop *m;
pa_time_event *e;
+ pa_usec_t t;
pa_assert(a);
pa_assert(a->userdata);
pa_assert(callback);
+ t = timeval_load(tv);
+
m = a->userdata;
pa_assert(a == &m->api);
@@ -337,15 +360,15 @@ static pa_time_event* mainloop_time_new(
e->mainloop = m;
e->dead = FALSE;
- if ((e->enabled = !!tv)) {
- e->timeval = *tv;
+ if ((e->enabled = (t != PA_USEC_INVALID))) {
+ e->time = t;
m->n_enabled_time_events++;
if (m->cached_next_time_event) {
pa_assert(m->cached_next_time_event->enabled);
- if (pa_timeval_cmp(tv, &m->cached_next_time_event->timeval) < 0)
+ if (t < m->cached_next_time_event->time)
m->cached_next_time_event = e;
}
}
@@ -363,24 +386,30 @@ static pa_time_event* mainloop_time_new(
}
static void mainloop_time_restart(pa_time_event *e, const struct timeval *tv) {
+ pa_bool_t valid;
+ pa_usec_t t;
+
pa_assert(e);
pa_assert(!e->dead);
- if (e->enabled && !tv) {
+ t = timeval_load(tv);
+
+ valid = (t != PA_USEC_INVALID);
+ if (e->enabled && !valid) {
pa_assert(e->mainloop->n_enabled_time_events > 0);
e->mainloop->n_enabled_time_events--;
- } else if (!e->enabled && tv)
+ } else if (!e->enabled && valid)
e->mainloop->n_enabled_time_events++;
- if ((e->enabled = !!tv)) {
- e->timeval = *tv;
+ if ((e->enabled = valid)) {
+ e->time = t;
pa_mainloop_wakeup(e->mainloop);
}
if (e->mainloop->cached_next_time_event && e->enabled) {
pa_assert(e->mainloop->cached_next_time_event->enabled);
- if (pa_timeval_cmp(tv, &e->mainloop->cached_next_time_event->timeval) < 0)
+ if (t < e->mainloop->cached_next_time_event->time)
e->mainloop->cached_next_time_event = e;
} else if (e->mainloop->cached_next_time_event == e)
e->mainloop->cached_next_time_event = NULL;
@@ -428,10 +457,10 @@ static void mainloop_quit(pa_mainloop_api*a, int retval) {
static const pa_mainloop_api vtable = {
.userdata = NULL,
- .io_new= mainloop_io_new,
- .io_enable= mainloop_io_enable,
- .io_free= mainloop_io_free,
- .io_set_destroy= mainloop_io_set_destroy,
+ .io_new = mainloop_io_new,
+ .io_enable = mainloop_io_enable,
+ .io_free = mainloop_io_free,
+ .io_set_destroy = mainloop_io_set_destroy,
.time_new = mainloop_time_new,
.time_restart = mainloop_time_restart,
@@ -721,11 +750,11 @@ static pa_time_event* find_next_time_event(pa_mainloop *m) {
if (t->dead || !t->enabled)
continue;
- if (!n || pa_timeval_cmp(&t->timeval, &n->timeval) < 0) {
+ if (!n || t->time < n->time) {
n = t;
- /* Shortcut for tv = { 0, 0 } */
- if (n->timeval.tv_sec <= 0)
+ /* Shortcut for time == 0 */
+ if (n->time == 0)
break;
}
}
@@ -736,7 +765,6 @@ static pa_time_event* find_next_time_event(pa_mainloop *m) {
static int calc_next_timeout(pa_mainloop *m) {
pa_time_event *t;
- struct timeval now;
pa_usec_t usec;
if (!m->n_enabled_time_events)
@@ -745,41 +773,41 @@ static int calc_next_timeout(pa_mainloop *m) {
t = find_next_time_event(m);
pa_assert(t);
- if (t->timeval.tv_sec <= 0)
+ if (t->time == 0)
return 0;
- pa_gettimeofday(&now);
+ usec = t->time - pa_rtclock_now();
- if (pa_timeval_cmp(&t->timeval, &now) <= 0)
+ if (usec <= 0)
return 0;
- usec = pa_timeval_diff(&t->timeval, &now);
- return (int) (usec / 1000);
+ return (int) (usec / 1000); /* in milliseconds */
}
static int dispatch_timeout(pa_mainloop *m) {
pa_time_event *e;
- struct timeval now;
+ pa_usec_t now;
int r = 0;
pa_assert(m);
if (m->n_enabled_time_events <= 0)
return 0;
- pa_gettimeofday(&now);
+ now = pa_rtclock_now();
for (e = m->time_events; e && !m->quit; e = e->next) {
if (e->dead || !e->enabled)
continue;
- if (pa_timeval_cmp(&e->timeval, &now) <= 0) {
+ if (e->time <= now) {
+ struct timeval tv;
pa_assert(e->callback);
/* Disable time event */
mainloop_time_restart(e, NULL);
- e->callback(&m->api, e, &e->timeval, e->userdata);
+ e->callback(&m->api, e, pa_timeval_rtstore(&tv, e->time, TRUE), e->userdata);
r++;
}
@@ -967,3 +995,9 @@ void pa_mainloop_set_poll_func(pa_mainloop *m, pa_poll_func poll_func, void *use
m->poll_func = poll_func;
m->poll_func_userdata = userdata;
}
+
+pa_bool_t pa_mainloop_is_our_api(pa_mainloop_api*m) {
+ pa_assert(m);
+
+ return m->io_new == mainloop_io_new;
+}
diff --git a/src/pulsecore/rtsig.h b/src/pulse/rtclock.c
index e414122d..49ff6aae 100644
--- a/src/pulsecore/rtsig.h
+++ b/src/pulse/rtclock.c
@@ -1,6 +1,3 @@
-#ifndef foopulsertsighfoo
-#define foopulsertsighfoo
-
/***
This file is part of PulseAudio.
@@ -22,18 +19,17 @@
USA.
***/
-/* Return the next unused POSIX Realtime signals */
-int pa_rtsig_get(void);
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
-/* If not called before in the current thread, return the next unused
- * rtsig, and install it in a TLS region and give it up automatically
- * when the thread shuts down */
-int pa_rtsig_get_for_thread(void);
+#include <pulsecore/core-rtclock.h>
-/* Give an rtsig back. */
-void pa_rtsig_put(int sig);
+#include "rtclock.h"
+#include "timeval.h"
-/* Block all RT signals */
-void pa_rtsig_configure(int start, int end);
+pa_usec_t pa_rtclock_now(void) {
+ struct timeval tv;
-#endif
+ return pa_timeval_load(pa_rtclock_get(&tv));
+}
diff --git a/src/pulse/rtclock.h b/src/pulse/rtclock.h
new file mode 100644
index 00000000..6459d92d
--- /dev/null
+++ b/src/pulse/rtclock.h
@@ -0,0 +1,41 @@
+#ifndef foortclockfoo
+#define foortclockfoo
+
+/***
+ This file is part of PulseAudio.
+
+ Copyright 2004-2009 Lennart Poettering
+
+ PulseAudio is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ PulseAudio is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with PulseAudio; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+#include <pulse/cdecl.h>
+#include <pulse/def.h>
+#include <pulse/gccmacro.h>
+
+/** \file
+ * Monotonic clock utilities. */
+
+PA_C_DECL_BEGIN
+
+/** Return the current monotonic system time in usec, if such a clock
+ * is available. If it is not available this will return the
+ * wallclock time instead. \since 0.9.16 */
+pa_usec_t pa_rtclock_now(void);
+
+PA_C_DECL_END
+
+#endif
diff --git a/src/pulse/stream.c b/src/pulse/stream.c
index 339a89e5..5baf5c2c 100644
--- a/src/pulse/stream.c
+++ b/src/pulse/stream.c
@@ -30,13 +30,14 @@
#include <pulse/def.h>
#include <pulse/timeval.h>
+#include <pulse/rtclock.h>
#include <pulse/xmalloc.h>
#include <pulsecore/pstream-util.h>
#include <pulsecore/log.h>
#include <pulsecore/hashmap.h>
#include <pulsecore/macro.h>
-#include <pulsecore/rtclock.h>
+#include <pulsecore/core-rtclock.h>
#include "fork-detect.h"
#include "internal.h"
@@ -143,12 +144,13 @@ pa_stream *pa_stream_new_with_proplist(
s->suspended = FALSE;
s->corked = FALSE;
+ s->write_memblock = NULL;
+ s->write_data = NULL;
+
pa_memchunk_reset(&s->peek_memchunk);
s->peek_data = NULL;
-
s->record_memblockq = NULL;
-
memset(&s->timing_info, 0, sizeof(s->timing_info));
s->timing_info_valid = FALSE;
@@ -220,6 +222,11 @@ static void stream_free(pa_stream *s) {
stream_unlink(s);
+ if (s->write_memblock) {
+ pa_memblock_release(s->write_memblock);
+ pa_memblock_unref(s->write_data);
+ }
+
if (s->peek_memchunk.memblock) {
if (s->peek_data)
pa_memblock_release(s->peek_memchunk.memblock);
@@ -319,14 +326,10 @@ static void request_auto_timing_update(pa_stream *s, pa_bool_t force) {
}
if (s->auto_timing_update_event) {
- struct timeval next;
-
if (force)
s->auto_timing_interval_usec = AUTO_TIMING_INTERVAL_START_USEC;
- pa_gettimeofday(&next);
- pa_timeval_add(&next, s->auto_timing_interval_usec);
- s->mainloop->time_restart(s->auto_timing_update_event, &next);
+ pa_context_rttime_restart(s->context, s->auto_timing_update_event, pa_rtclock_now() + s->auto_timing_interval_usec);
s->auto_timing_interval_usec = PA_MIN(AUTO_TIMING_INTERVAL_END_USEC, s->auto_timing_interval_usec*2);
}
@@ -373,7 +376,7 @@ static void check_smoother_status(pa_stream *s, pa_bool_t aposteriori, pa_bool_t
if (!s->smoother)
return;
- x = pa_rtclock_usec();
+ x = pa_rtclock_now();
if (s->timing_info_valid) {
if (aposteriori)
@@ -800,7 +803,7 @@ static void invalidate_indexes(pa_stream *s, pa_bool_t r, pa_bool_t w) {
request_auto_timing_update(s, TRUE);
}
-static void auto_timing_update_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *tv, void *userdata) {
+static void auto_timing_update_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) {
pa_stream *s = userdata;
pa_assert(s);
@@ -822,12 +825,9 @@ static void create_stream_complete(pa_stream *s) {
s->write_callback(s, (size_t) s->requested_bytes, s->write_userdata);
if (s->flags & PA_STREAM_AUTO_TIMING_UPDATE) {
- struct timeval tv;
- pa_gettimeofday(&tv);
s->auto_timing_interval_usec = AUTO_TIMING_INTERVAL_START_USEC;
- pa_timeval_add(&tv, s->auto_timing_interval_usec);
pa_assert(!s->auto_timing_update_event);
- s->auto_timing_update_event = s->mainloop->time_new(s->mainloop, &tv, &auto_timing_update_callback, s);
+ s->auto_timing_update_event = pa_context_rttime_new(s->context, pa_rtclock_now() + s->auto_timing_interval_usec, &auto_timing_update_callback, s);
request_auto_timing_update(s, TRUE);
}
@@ -1057,7 +1057,7 @@ static int create_stream(
if (flags & PA_STREAM_INTERPOLATE_TIMING) {
pa_usec_t x;
- x = pa_rtclock_usec();
+ x = pa_rtclock_now();
pa_assert(!s->smoother);
s->smoother = pa_smoother_new(
@@ -1193,20 +1193,60 @@ int pa_stream_connect_record(
return create_stream(PA_STREAM_RECORD, s, dev, attr, flags, NULL, NULL);
}
+int pa_stream_begin_write(
+ pa_stream *s,
+ void **data,
+ size_t *nbytes) {
+
+ pa_assert(s);
+ pa_assert(PA_REFCNT_VALUE(s) >= 1);
+
+ PA_CHECK_VALIDITY(s->context, !pa_detect_fork(), PA_ERR_FORKED);
+ PA_CHECK_VALIDITY(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE);
+ PA_CHECK_VALIDITY(s->context, s->direction == PA_STREAM_PLAYBACK || s->direction == PA_STREAM_UPLOAD, PA_ERR_BADSTATE);
+ PA_CHECK_VALIDITY(s->context, data, PA_ERR_INVALID);
+ PA_CHECK_VALIDITY(s->context, nbytes && *nbytes != 0, PA_ERR_INVALID);
+
+ if (!s->write_memblock) {
+ s->write_memblock = pa_memblock_new(s->context->mempool, *nbytes);
+ s->write_data = pa_memblock_acquire(s->write_memblock);
+ }
+
+ *data = s->write_data;
+ *nbytes = pa_memblock_get_length(s->write_memblock);
+
+ return 0;
+}
+
+int pa_stream_cancel_write(
+ pa_stream *s) {
+
+ pa_assert(s);
+ pa_assert(PA_REFCNT_VALUE(s) >= 1);
+
+ PA_CHECK_VALIDITY(s->context, !pa_detect_fork(), PA_ERR_FORKED);
+ PA_CHECK_VALIDITY(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE);
+ PA_CHECK_VALIDITY(s->context, s->direction == PA_STREAM_PLAYBACK || s->direction == PA_STREAM_UPLOAD, PA_ERR_BADSTATE);
+ PA_CHECK_VALIDITY(s->context, s->write_memblock, PA_ERR_BADSTATE);
+
+ pa_assert(s->write_data);
+
+ pa_memblock_release(s->write_memblock);
+ pa_memblock_unref(s->write_memblock);
+ s->write_memblock = NULL;
+ s->write_data = NULL;
+
+ return 0;
+}
+
int pa_stream_write(
pa_stream *s,
const void *data,
size_t length,
- void (*free_cb)(void *p),
+ pa_free_cb_t free_cb,
int64_t offset,
pa_seek_mode_t seek) {
- pa_memchunk chunk;
- pa_seek_mode_t t_seek;
- int64_t t_offset;
- size_t t_length;
- const void *t_data;
-
pa_assert(s);
pa_assert(PA_REFCNT_VALUE(s) >= 1);
pa_assert(data);
@@ -1216,46 +1256,71 @@ int pa_stream_write(
PA_CHECK_VALIDITY(s->context, s->direction == PA_STREAM_PLAYBACK || s->direction == PA_STREAM_UPLOAD, PA_ERR_BADSTATE);
PA_CHECK_VALIDITY(s->context, seek <= PA_SEEK_RELATIVE_END, PA_ERR_INVALID);
PA_CHECK_VALIDITY(s->context, s->direction == PA_STREAM_PLAYBACK || (seek == PA_SEEK_RELATIVE && offset == 0), PA_ERR_INVALID);
+ PA_CHECK_VALIDITY(s->context,
+ !s->write_memblock ||
+ ((data >= s->write_data) &&
+ ((const char*) data + length <= (const char*) s->write_data + pa_memblock_get_length(s->write_memblock))),
+ PA_ERR_INVALID);
+ PA_CHECK_VALIDITY(s->context, !free_cb || !s->write_memblock, PA_ERR_INVALID);
- if (length <= 0)
- return 0;
+ if (s->write_memblock) {
+ pa_memchunk chunk;
- t_seek = seek;
- t_offset = offset;
- t_length = length;
- t_data = data;
+ /* pa_stream_write_begin() was called before */
- while (t_length > 0) {
+ pa_memblock_release(s->write_memblock);
- chunk.index = 0;
+ chunk.memblock = s->write_memblock;
+ chunk.index = (const char *) data - (const char *) s->write_data;
+ chunk.length = length;
- if (free_cb && !pa_pstream_get_shm(s->context->pstream)) {
- chunk.memblock = pa_memblock_new_user(s->context->mempool, (void*) t_data, t_length, free_cb, 1);
- chunk.length = t_length;
- } else {
- void *d;
+ s->write_memblock = NULL;
+ s->write_data = NULL;
- chunk.length = PA_MIN(t_length, pa_mempool_block_size_max(s->context->mempool));
- chunk.memblock = pa_memblock_new(s->context->mempool, chunk.length);
+ pa_pstream_send_memblock(s->context->pstream, s->channel, offset, seek, &chunk);
+ pa_memblock_unref(chunk.memblock);
- d = pa_memblock_acquire(chunk.memblock);
- memcpy(d, t_data, chunk.length);
- pa_memblock_release(chunk.memblock);
- }
+ } else {
+ pa_seek_mode_t t_seek = seek;
+ int64_t t_offset = offset;
+ size_t t_length = length;
+ const void *t_data = data;
- pa_pstream_send_memblock(s->context->pstream, s->channel, t_offset, t_seek, &chunk);
+ /* pa_stream_write_begin() was not called before */
- t_offset = 0;
- t_seek = PA_SEEK_RELATIVE;
+ while (t_length > 0) {
+ pa_memchunk chunk;
- t_data = (const uint8_t*) t_data + chunk.length;
- t_length -= chunk.length;
+ chunk.index = 0;
- pa_memblock_unref(chunk.memblock);
- }
+ if (free_cb && !pa_pstream_get_shm(s->context->pstream)) {
+ chunk.memblock = pa_memblock_new_user(s->context->mempool, (void*) t_data, t_length, free_cb, 1);
+ chunk.length = t_length;
+ } else {
+ void *d;
+
+ chunk.length = PA_MIN(t_length, pa_mempool_block_size_max(s->context->mempool));
+ chunk.memblock = pa_memblock_new(s->context->mempool, chunk.length);
+
+ d = pa_memblock_acquire(chunk.memblock);
+ memcpy(d, t_data, chunk.length);
+ pa_memblock_release(chunk.memblock);
+ }
- if (free_cb && pa_pstream_get_shm(s->context->pstream))
- free_cb((void*) data);
+ pa_pstream_send_memblock(s->context->pstream, s->channel, t_offset, t_seek, &chunk);
+
+ t_offset = 0;
+ t_seek = PA_SEEK_RELATIVE;
+
+ t_data = (const uint8_t*) t_data + chunk.length;
+ t_length -= chunk.length;
+
+ pa_memblock_unref(chunk.memblock);
+ }
+
+ if (free_cb && pa_pstream_get_shm(s->context->pstream))
+ free_cb((void*) data);
+ }
/* This is obviously wrong since we ignore the seeking index . But
* that's OK, the server side applies the same error */
@@ -1594,7 +1659,7 @@ static void stream_get_timing_info_callback(pa_pdispatch *pd, uint32_t command,
if (o->stream->smoother) {
pa_usec_t u, x;
- u = x = pa_rtclock_usec() - i->transport_usec;
+ u = x = pa_rtclock_now() - i->transport_usec;
if (o->stream->direction == PA_STREAM_PLAYBACK && o->context->version >= 13) {
pa_usec_t su;
@@ -2103,7 +2168,7 @@ int pa_stream_get_time(pa_stream *s, pa_usec_t *r_usec) {
PA_CHECK_VALIDITY(s->context, s->direction != PA_STREAM_RECORD || !s->timing_info.write_index_corrupt, PA_ERR_NODATA);
if (s->smoother)
- usec = pa_smoother_get(s->smoother, pa_rtclock_usec());
+ usec = pa_smoother_get(s->smoother, pa_rtclock_now());
else
usec = calc_time(s, FALSE);
diff --git a/src/pulse/stream.h b/src/pulse/stream.h
index 49c132a2..fecc5870 100644
--- a/src/pulse/stream.h
+++ b/src/pulse/stream.h
@@ -418,15 +418,71 @@ int pa_stream_connect_record(
/** Disconnect a stream from a source/sink */
int pa_stream_disconnect(pa_stream *s);
-/** Write some data to the server (for playback sinks), if free_cb is
- * non-NULL this routine is called when all data has been written out
- * and an internal reference to the specified data is kept, the data
- * is not copied. If NULL, the data is copied into an internal
- * buffer. The client my freely seek around in the output buffer. For
+/** Prepare writing data to the server (for playback streams). This
+ * function may be used to optimize the number of memory copies when
+ * doing playback ("zero-copy"). It is recommended to call this
+ * function before each call to pa_stream_write(). Pass in the address
+ * to a pointer and an address of the number of bytes you want to
+ * write. On return the two values will contain a pointer where you
+ * can place the data to write and the maximum number of bytes you can
+ * write. On return *nbytes can be larger or have the same value as
+ * you passed in. You need to be able to handle both cases. Accessing
+ * memory beyond the returned *nbytes value is invalid. Acessing the
+ * memory returned after the following pa_stream_write() or
+ * pa_stream_cancel_write() is invalid. On invocation only *nbytes
+ * needs to be initialized, on return both *data and *nbytes will be
+ * valid. If you place (size_t) -1 in *nbytes on invocation the memory
+ * size will be chosen automatically (which is recommended to
+ * do). After placing your data in the memory area returned call
+ * pa_stream_write() with data set to an address within this memory
+ * area and an nbytes value that is smaller or equal to what was
+ * returned by this function to actually execute the write. An
+ * invocation of pa_stream_write() should follow "quickly" on
+ * pa_stream_begin_write(). It is not recommended letting an unbounded
+ * amount of time pass after calling pa_stream_begin_write() and
+ * before calling pa_stream_write(). If you want to cancel a
+ * previously called pa_stream_begin_write() without calling
+ * pa_stream_write() use pa_stream_cancel_write() instead. Calling
+ * pa_stream_begin_write() twice without calling pa_stream_write() or
+ * pa_stream_cancel_write() in between will return exactly the same
+ * pointer/nbytes values.\since 0.9.16 */
+int pa_stream_begin_write(
+ pa_stream *p,
+ void **data,
+ size_t *nbytes);
+
+/** Reverses the effect of pa_stream_begin_write() dropping all data
+ * that has already been placed in the memory area returned by
+ * pa_stream_begin_write(). Only valid to call if
+ * pa_stream_begin_write() was called before and neither
+ * pa_stream_cancel_write() nor pa_stream_write() have been called
+ * yet. Accessing the memory previously returned by
+ * pa_stream_begin_write() after this call is invalid. Any further
+ * explicit freeing of the memory area is not necessary. \since
+ * 0.9.16 */
+int pa_stream_cancel_write(
+ pa_stream *p);
+
+/** Write some data to the server (for playback streams), if free_cb
+ * is non-NULL this routine is called when all data has been written
+ * out and an internal reference to the specified data is kept, the
+ * data is not copied. If NULL, the data is copied into an internal
+ * buffer. The client may freely seek around in the output buffer. For
* most applications passing 0 and PA_SEEK_RELATIVE as arguments for
* offset and seek should be useful. Afte ther write call succeeded
* the write index will be a the position after where this chunk of
- * data has been written to. */
+ * data has been written to.
+ *
+ * As an optimization for avoiding needless memory copies you may call
+ * pa_stream_begin_write() before this call and then place your audio
+ * data directly in the memory area returned by that call. Then, pass
+ * a pointer to that memory area to pa_stream_write(). After the
+ * invocation of pa_stream_write() the memory area may no longer be
+ * accessed. Any further explicit freeing of the memory area is not
+ * necessary. It is OK to write the memory area returned by
+ * pa_stream_begin_write() only partially with this call, skipping
+ * bytes both at the end and at the beginning of the reserved memory
+ * area.*/
int pa_stream_write(
pa_stream *p /**< The stream to use */,
const void *data /**< The data to write */,
@@ -435,7 +491,7 @@ int pa_stream_write(
int64_t offset, /**< Offset for seeking, must be 0 for upload streams */
pa_seek_mode_t seek /**< Seek mode, must be PA_SEEK_RELATIVE for upload streams */);
-/** Read the next fragment from the buffer (for recording).
+/** Read the next fragment from the buffer (for recording streams).
* data will point to the actual data and length will contain the size
* of the data in bytes (which can be less than a complete framgnet).
* Use pa_stream_drop() to actually remove the data from the
diff --git a/src/pulse/thread-mainloop.c b/src/pulse/thread-mainloop.c
index c77cc64e..6916d867 100644
--- a/src/pulse/thread-mainloop.c
+++ b/src/pulse/thread-mainloop.c
@@ -24,6 +24,10 @@
#include <config.h>
#endif
+#ifndef OS_IS_WIN32
+#include <pthread.h>
+#endif
+
#include <signal.h>
#include <stdio.h>
diff --git a/src/pulse/timeval.h b/src/pulse/timeval.h
index 651da953..48c6cdb3 100644
--- a/src/pulse/timeval.h
+++ b/src/pulse/timeval.h
@@ -40,16 +40,19 @@ PA_C_DECL_BEGIN
#define PA_USEC_PER_SEC ((pa_usec_t) 1000000ULL)
/** The number of nanoseconds in a second */
-#define PA_NSEC_PER_SEC ((pa_usec_t) 1000000000ULL)
+#define PA_NSEC_PER_SEC ((unsigned long long) 1000000000ULL)
/** The number of microseconds in a millisecond */
#define PA_USEC_PER_MSEC ((pa_usec_t) 1000ULL)
/** The number of nanoseconds in a millisecond */
-#define PA_NSEC_PER_MSEC ((pa_usec_t) 1000000ULL)
+#define PA_NSEC_PER_MSEC ((unsigned long long) 1000000ULL)
/** The number of nanoseconds in a microsecond */
-#define PA_NSEC_PER_USEC ((pa_usec_t) 1000ULL)
+#define PA_NSEC_PER_USEC ((unsigned long long) 1000ULL)
+
+/** Invalid time in usec */
+#define PA_USEC_INVALID ((pa_usec_t) -1)
struct timeval;
diff --git a/src/pulsecore/asyncmsgq.c b/src/pulsecore/asyncmsgq.c
index e191b05f..083d9de2 100644
--- a/src/pulsecore/asyncmsgq.c
+++ b/src/pulsecore/asyncmsgq.c
@@ -172,11 +172,11 @@ int pa_asyncmsgq_send(pa_asyncmsgq *a, pa_msgobject *object, int code, const voi
return i.ret;
}
-int pa_asyncmsgq_get(pa_asyncmsgq *a, pa_msgobject **object, int *code, void **userdata, int64_t *offset, pa_memchunk *chunk, pa_bool_t wait) {
+int pa_asyncmsgq_get(pa_asyncmsgq *a, pa_msgobject **object, int *code, void **userdata, int64_t *offset, pa_memchunk *chunk, pa_bool_t wait_op) {
pa_assert(PA_REFCNT_VALUE(a) > 0);
pa_assert(!a->current);
- if (!(a->current = pa_asyncq_pop(a->asyncq, wait))) {
+ if (!(a->current = pa_asyncq_pop(a->asyncq, wait_op))) {
/* pa_log("failure"); */
return -1;
}
diff --git a/src/pulsecore/asyncq.c b/src/pulsecore/asyncq.c
index 67f661fe..072ef02c 100644
--- a/src/pulsecore/asyncq.c
+++ b/src/pulsecore/asyncq.c
@@ -131,7 +131,7 @@ void pa_asyncq_free(pa_asyncq *l, pa_free_cb_t free_cb) {
pa_xfree(l);
}
-static int push(pa_asyncq*l, void *p, pa_bool_t wait) {
+static int push(pa_asyncq*l, void *p, pa_bool_t wait_op) {
unsigned idx;
pa_atomic_ptr_t *cells;
@@ -145,7 +145,7 @@ static int push(pa_asyncq*l, void *p, pa_bool_t wait) {
if (!pa_atomic_ptr_cmpxchg(&cells[idx], NULL, p)) {
- if (!wait)
+ if (!wait_op)
return -1;
/* pa_log("sleeping on push"); */
@@ -163,14 +163,14 @@ static int push(pa_asyncq*l, void *p, pa_bool_t wait) {
return 0;
}
-static pa_bool_t flush_postq(pa_asyncq *l, pa_bool_t wait) {
+static pa_bool_t flush_postq(pa_asyncq *l, pa_bool_t wait_op) {
struct localq *q;
pa_assert(l);
while ((q = l->last_localq)) {
- if (push(l, q->data, wait) < 0)
+ if (push(l, q->data, wait_op) < 0)
return FALSE;
l->last_localq = q->prev;
@@ -184,13 +184,13 @@ static pa_bool_t flush_postq(pa_asyncq *l, pa_bool_t wait) {
return TRUE;
}
-int pa_asyncq_push(pa_asyncq*l, void *p, pa_bool_t wait) {
+int pa_asyncq_push(pa_asyncq*l, void *p, pa_bool_t wait_op) {
pa_assert(l);
- if (!flush_postq(l, wait))
+ if (!flush_postq(l, wait_op))
return -1;
- return push(l, p, wait);
+ return push(l, p, wait_op);
}
void pa_asyncq_post(pa_asyncq*l, void *p) {
@@ -221,7 +221,7 @@ void pa_asyncq_post(pa_asyncq*l, void *p) {
return;
}
-void* pa_asyncq_pop(pa_asyncq*l, pa_bool_t wait) {
+void* pa_asyncq_pop(pa_asyncq*l, pa_bool_t wait_op) {
unsigned idx;
void *ret;
pa_atomic_ptr_t *cells;
@@ -235,7 +235,7 @@ void* pa_asyncq_pop(pa_asyncq*l, pa_bool_t wait) {
if (!(ret = pa_atomic_ptr_load(&cells[idx]))) {
- if (!wait)
+ if (!wait_op)
return NULL;
/* pa_log("sleeping on pop"); */
diff --git a/src/pulsecore/avahi-wrap.c b/src/pulsecore/avahi-wrap.c
index 56d9d3dd..f1f08bcc 100644
--- a/src/pulsecore/avahi-wrap.c
+++ b/src/pulsecore/avahi-wrap.c
@@ -23,6 +23,7 @@
#include <config.h>
#endif
+#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
#include <pulsecore/log.h>
@@ -116,14 +117,13 @@ struct AvahiTimeout {
void *userdata;
};
-static void timeout_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *tv, void *userdata) {
- AvahiTimeout *t = userdata;
+static void timeout_callback(pa_mainloop_api*a, pa_time_event* e, const struct timeval *t, void *userdata) {
+ AvahiTimeout *to = userdata;
pa_assert(a);
pa_assert(e);
- pa_assert(t);
- t->callback(t, t->userdata);
+ to->callback(to, to->userdata);
}
static AvahiTimeout* timeout_new(const AvahiPoll *api, const struct timeval *tv, AvahiTimeoutCallback callback, void *userdata) {
@@ -145,6 +145,7 @@ static AvahiTimeout* timeout_new(const AvahiPoll *api, const struct timeval *tv,
}
static void timeout_update(AvahiTimeout *t, const struct timeval *tv) {
+
pa_assert(t);
if (t->time_event && tv)
diff --git a/src/pulsecore/rtclock.c b/src/pulsecore/core-rtclock.c
index 65c826a6..3b3e3a64 100644
--- a/src/pulsecore/rtclock.c
+++ b/src/pulsecore/core-rtclock.c
@@ -37,7 +37,7 @@
#include <pulsecore/macro.h>
#include <pulsecore/core-error.h>
-#include "rtclock.h"
+#include "core-rtclock.h"
pa_usec_t pa_rtclock_age(const struct timeval *tv) {
struct timeval now;
@@ -65,7 +65,7 @@ struct timeval *pa_rtclock_get(struct timeval *tv) {
pa_assert(tv);
tv->tv_sec = ts.tv_sec;
- tv->tv_usec = ts.tv_nsec / 1000;
+ tv->tv_usec = ts.tv_nsec / PA_NSEC_PER_USEC;
return tv;
@@ -82,11 +82,11 @@ pa_bool_t pa_rtclock_hrtimer(void) {
#ifdef CLOCK_MONOTONIC
if (clock_getres(CLOCK_MONOTONIC, &ts) >= 0)
- return ts.tv_sec == 0 && ts.tv_nsec <= PA_HRTIMER_THRESHOLD_USEC*1000;
+ return ts.tv_sec == 0 && ts.tv_nsec <= (long) (PA_HRTIMER_THRESHOLD_USEC*PA_NSEC_PER_USEC);
#endif
pa_assert_se(clock_getres(CLOCK_REALTIME, &ts) == 0);
- return ts.tv_sec == 0 && ts.tv_nsec <= PA_HRTIMER_THRESHOLD_USEC*1000;
+ return ts.tv_sec == 0 && ts.tv_nsec <= (long) (PA_HRTIMER_THRESHOLD_USEC*PA_NSEC_PER_USEC);
#else /* HAVE_CLOCK_GETTIME */
@@ -122,12 +122,6 @@ void pa_rtclock_hrtimer_enable(void) {
#endif
}
-pa_usec_t pa_rtclock_usec(void) {
- struct timeval tv;
-
- return pa_timeval_load(pa_rtclock_get(&tv));
-}
-
struct timeval* pa_rtclock_from_wallclock(struct timeval *tv) {
#ifdef HAVE_CLOCK_GETTIME
@@ -156,3 +150,41 @@ pa_usec_t pa_timespec_load(const struct timespec *ts) {
(pa_usec_t) ts->tv_sec * PA_USEC_PER_SEC +
(pa_usec_t) ts->tv_nsec / PA_NSEC_PER_USEC;
}
+
+
+static struct timeval* wallclock_from_rtclock(struct timeval *tv) {
+
+#ifdef HAVE_CLOCK_GETTIME
+ struct timeval wc_now, rt_now;
+
+ pa_gettimeofday(&wc_now);
+ pa_rtclock_get(&rt_now);
+
+ pa_assert(tv);
+
+ if (pa_timeval_cmp(&rt_now, tv) < 0)
+ pa_timeval_add(&wc_now, pa_timeval_diff(tv, &rt_now));
+ else
+ pa_timeval_sub(&wc_now, pa_timeval_diff(&rt_now, tv));
+
+ *tv = wc_now;
+#endif
+
+ return tv;
+}
+
+struct timeval* pa_timeval_rtstore(struct timeval *tv, pa_usec_t v, pa_bool_t rtclock) {
+ pa_assert(tv);
+
+ if (v == PA_USEC_INVALID)
+ return NULL;
+
+ pa_timeval_store(tv, v);
+
+ if (rtclock)
+ tv->tv_usec |= PA_TIMEVAL_RTCLOCK;
+ else
+ wallclock_from_rtclock(tv);
+
+ return tv;
+}
diff --git a/src/pulsecore/rtclock.h b/src/pulsecore/core-rtclock.h
index 03cc1c72..9f5ae2dd 100644
--- a/src/pulsecore/rtclock.h
+++ b/src/pulsecore/core-rtclock.h
@@ -31,8 +31,6 @@ struct timeval;
struct timeval *pa_rtclock_get(struct timeval *ts);
-pa_usec_t pa_rtclock_usec(void);
-
pa_usec_t pa_rtclock_age(const struct timeval *tv);
pa_bool_t pa_rtclock_hrtimer(void);
void pa_rtclock_hrtimer_enable(void);
@@ -40,8 +38,13 @@ void pa_rtclock_hrtimer_enable(void);
/* timer with a resolution better than this are considered high-resolution */
#define PA_HRTIMER_THRESHOLD_USEC 10
+/* bit to set in tv.tv_usec to mark that the timeval is in monotonic time */
+#define PA_TIMEVAL_RTCLOCK ((time_t) (1LU << 30))
+
struct timeval* pa_rtclock_from_wallclock(struct timeval *tv);
pa_usec_t pa_timespec_load(const struct timespec *ts);
+struct timeval* pa_timeval_rtstore(struct timeval *tv, pa_usec_t v, pa_bool_t rtclock);
+
#endif
diff --git a/src/pulsecore/core-scache.c b/src/pulsecore/core-scache.c
index 086f5fcb..4c5a4b26 100644
--- a/src/pulsecore/core-scache.c
+++ b/src/pulsecore/core-scache.c
@@ -47,6 +47,7 @@
#include <pulse/util.h>
#include <pulse/volume.h>
#include <pulse/xmalloc.h>
+#include <pulse/rtclock.h>
#include <pulsecore/sink-input.h>
#include <pulsecore/sample-util.h>
@@ -54,6 +55,7 @@
#include <pulsecore/core-subscribe.h>
#include <pulsecore/namereg.h>
#include <pulsecore/sound-file.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/log.h>
#include <pulsecore/core-error.h>
@@ -61,11 +63,10 @@
#include "core-scache.h"
-#define UNLOAD_POLL_TIME 60
+#define UNLOAD_POLL_TIME (60 * PA_USEC_PER_SEC)
-static void timeout_callback(pa_mainloop_api *m, pa_time_event*e, const struct timeval *tv, void *userdata) {
+static void timeout_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) {
pa_core *c = userdata;
- struct timeval ntv;
pa_assert(c);
pa_assert(c->mainloop == m);
@@ -73,9 +74,7 @@ static void timeout_callback(pa_mainloop_api *m, pa_time_event*e, const struct t
pa_scache_unload_unused(c);
- pa_gettimeofday(&ntv);
- ntv.tv_sec += UNLOAD_POLL_TIME;
- m->time_restart(e, &ntv);
+ pa_core_rttime_restart(c, e, pa_rtclock_now() + UNLOAD_POLL_TIME);
}
static void free_entry(pa_scache_entry *e) {
@@ -256,12 +255,8 @@ int pa_scache_add_file_lazy(pa_core *c, const char *name, const char *filename,
pa_proplist_sets(e->proplist, PA_PROP_MEDIA_FILENAME, filename);
- if (!c->scache_auto_unload_event) {
- struct timeval ntv;
- pa_gettimeofday(&ntv);
- ntv.tv_sec += UNLOAD_POLL_TIME;
- c->scache_auto_unload_event = c->mainloop->time_new(c->mainloop, &ntv, timeout_callback, c);
- }
+ if (!c->scache_auto_unload_event)
+ c->scache_auto_unload_event = pa_core_rttime_new(c, pa_rtclock_now() + UNLOAD_POLL_TIME, timeout_callback, c);
if (idx)
*idx = e->index;
diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index a71ba0b0..04e7eb24 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -43,6 +43,7 @@
#include <regex.h>
#include <langinfo.h>
#include <sys/utsname.h>
+#include <sys/socket.h>
#ifdef HAVE_STRTOF_L
#include <locale.h>
@@ -50,6 +51,10 @@
#ifdef HAVE_SCHED_H
#include <sched.h>
+
+#if defined(__linux__) && !defined(SCHED_RESET_ON_FORK)
+#define SCHED_RESET_ON_FORK 0x40000000
+#endif
#endif
#ifdef HAVE_SYS_RESOURCE_H
@@ -92,6 +97,10 @@
#include <xlocale.h>
#endif
+#ifdef HAVE_DBUS
+#include "rtkit.h"
+#endif
+
#include <pulse/xmalloc.h>
#include <pulse/util.h>
#include <pulse/utf8.h>
@@ -552,127 +561,121 @@ char *pa_strlcpy(char *b, const char *s, size_t l) {
return b;
}
-/* Make the current thread a realtime thread, and acquire the highest
- * rtprio we can get that is less or equal the specified parameter. If
- * the thread is already realtime, don't do anything. */
-int pa_make_realtime(int rtprio) {
-
-#ifdef _POSIX_PRIORITY_SCHEDULING
+static int set_scheduler(int rtprio) {
struct sched_param sp;
- int r, policy;
+ int r;
+#ifdef HAVE_DBUS
+ DBusError error;
+ DBusConnection *bus;
- memset(&sp, 0, sizeof(sp));
- policy = 0;
+ dbus_error_init(&error);
+#endif
- if ((r = pthread_getschedparam(pthread_self(), &policy, &sp)) != 0) {
- pa_log("pthread_getschedgetparam(): %s", pa_cstrerror(r));
- return -1;
+ pa_zero(sp);
+ sp.sched_priority = rtprio;
+
+#ifdef SCHED_RESET_ON_FORK
+ if ((r = pthread_setschedparam(pthread_self(), SCHED_RR|SCHED_RESET_ON_FORK, &sp)) == 0) {
+ pa_log_debug("SCHED_RR|SCHED_RESET_ON_FORK worked.");
+ return 0;
}
+#endif
- if (policy == SCHED_FIFO && sp.sched_priority >= rtprio) {
- pa_log_info("Thread already being scheduled with SCHED_FIFO with priority %i.", sp.sched_priority);
+ if ((r = pthread_setschedparam(pthread_self(), SCHED_RR, &sp)) == 0) {
+ pa_log_debug("SCHED_RR worked.");
return 0;
}
- sp.sched_priority = rtprio;
- if ((r = pthread_setschedparam(pthread_self(), SCHED_FIFO, &sp)) != 0) {
+#ifdef HAVE_DBUS
+ /* Try to talk to RealtimeKit */
- while (sp.sched_priority > 1) {
- sp.sched_priority --;
+ if (!(bus = dbus_bus_get(DBUS_BUS_SYSTEM, &error))) {
+ pa_log("Failed to connect to system bus: %s\n", error.message);
+ dbus_error_free(&error);
+ errno = -EIO;
+ return -1;
+ }
- if ((r = pthread_setschedparam(pthread_self(), SCHED_FIFO, &sp)) == 0) {
- pa_log_info("Successfully enabled SCHED_FIFO scheduling for thread, with priority %i, which is lower than the requested %i.", sp.sched_priority, rtprio);
- return 0;
- }
- }
+ r = rtkit_make_realtime(bus, 0, rtprio);
+ dbus_connection_unref(bus);
- pa_log_warn("pthread_setschedparam(): %s", pa_cstrerror(r));
- return -1;
+ if (r >= 0) {
+ pa_log_debug("RealtimeKit worked.");
+ return 0;
}
- pa_log_info("Successfully enabled SCHED_FIFO scheduling for thread, with priority %i.", sp.sched_priority);
- return 0;
+ errno = -r;
#else
+ errno = r;
+#endif
- errno = ENOTSUP;
return -1;
-#endif
}
-/* This is merely used for giving the user a hint. This is not correct
- * for anything security related */
-pa_bool_t pa_can_realtime(void) {
-
- if (geteuid() == 0)
- return TRUE;
+/* Make the current thread a realtime thread, and acquire the highest
+ * rtprio we can get that is less or equal the specified parameter. If
+ * the thread is already realtime, don't do anything. */
+int pa_make_realtime(int rtprio) {
-#if defined(HAVE_SYS_RESOURCE_H) && defined(RLIMIT_RTPRIO)
- {
- struct rlimit rl;
+#ifdef _POSIX_PRIORITY_SCHEDULING
+ int p;
- if (getrlimit(RLIMIT_RTPRIO, &rl) >= 0)
- if (rl.rlim_cur > 0 || rl.rlim_cur == RLIM_INFINITY)
- return TRUE;
+ if (set_scheduler(rtprio) >= 0) {
+ pa_log_info("Successfully enabled SCHED_RR scheduling for thread, with priority %i.", rtprio);
+ return 0;
}
-#endif
-
-#if defined(HAVE_SYS_CAPABILITY_H) && defined(CAP_SYS_NICE)
- {
- cap_t cap;
- if ((cap = cap_get_proc())) {
- cap_flag_value_t flag = CAP_CLEAR;
+ for (p = rtprio-1; p >= 1; p--)
+ if (set_scheduler(p)) {
+ pa_log_info("Successfully enabled SCHED_RR scheduling for thread, with priority %i, which is lower than the requested %i.", p, rtprio);
+ return 0;
+ }
- if (cap_get_flag(cap, CAP_SYS_NICE, CAP_EFFECTIVE, &flag) >= 0)
- if (flag == CAP_SET) {
- cap_free(cap);
- return TRUE;
- }
+ pa_log_info("Failed to acquire real-time scheduling: %s", pa_cstrerror(errno));
+ return -1;
+#else
- cap_free(cap);
- }
- }
+ errno = ENOTSUP;
+ return -1;
#endif
-
- return FALSE;
}
-/* This is merely used for giving the user a hint. This is not correct
- * for anything security related */
-pa_bool_t pa_can_high_priority(void) {
-
- if (geteuid() == 0)
- return TRUE;
+static int set_nice(int nice_level) {
+#ifdef HAVE_DBUS
+ DBusError error;
+ DBusConnection *bus;
+ int r;
-#if defined(HAVE_SYS_RESOURCE_H) && defined(RLIMIT_RTPRIO)
- {
- struct rlimit rl;
+ dbus_error_init(&error);
+#endif
- if (getrlimit(RLIMIT_NICE, &rl) >= 0)
- if (rl.rlim_cur >= 21 || rl.rlim_cur == RLIM_INFINITY)
- return TRUE;
+ if (setpriority(PRIO_PROCESS, 0, nice_level) >= 0) {
+ pa_log_debug("setpriority() worked.");
+ return 0;
}
-#endif
-#if defined(HAVE_SYS_CAPABILITY_H) && defined(CAP_SYS_NICE)
- {
- cap_t cap;
+#ifdef HAVE_DBUS
+ /* Try to talk to RealtimeKit */
- if ((cap = cap_get_proc())) {
- cap_flag_value_t flag = CAP_CLEAR;
+ if (!(bus = dbus_bus_get(DBUS_BUS_SYSTEM, &error))) {
+ pa_log("Failed to connect to system bus: %s\n", error.message);
+ dbus_error_free(&error);
+ errno = -EIO;
+ return -1;
+ }
- if (cap_get_flag(cap, CAP_SYS_NICE, CAP_EFFECTIVE, &flag) >= 0)
- if (flag == CAP_SET) {
- cap_free(cap);
- return TRUE;
- }
+ r = rtkit_make_high_priority(bus, 0, nice_level);
+ dbus_connection_unref(bus);
- cap_free(cap);
- }
+ if (r >= 0) {
+ pa_log_debug("RealtimeKit worked.");
+ return 0;
}
+
+ errno = -r;
#endif
- return FALSE;
+ return -1;
}
/* Raise the priority of the current process as much as possible that
@@ -680,22 +683,21 @@ pa_bool_t pa_can_high_priority(void) {
int pa_raise_priority(int nice_level) {
#ifdef HAVE_SYS_RESOURCE_H
- if (setpriority(PRIO_PROCESS, 0, nice_level) < 0) {
- int n;
+ int n;
- for (n = nice_level+1; n < 0; n++) {
+ if (set_nice(nice_level) >= 0) {
+ pa_log_info("Successfully gained nice level %i.", nice_level);
+ return 0;
+ }
- if (setpriority(PRIO_PROCESS, 0, n) == 0) {
- pa_log_info("Successfully acquired nice level %i, which is lower than the requested %i.", n, nice_level);
- return 0;
- }
+ for (n = nice_level+1; n < 0; n++)
+ if (set_nice(n) > 0) {
+ pa_log_info("Successfully acquired nice level %i, which is lower than the requested %i.", n, nice_level);
+ return 0;
}
- pa_log_warn("setpriority(): %s", pa_cstrerror(errno));
- return -1;
- }
-
- pa_log_info("Successfully gained nice level %i.", nice_level);
+ pa_log_info("Failed to acquire high-priority scheduling: %s", pa_cstrerror(errno));
+ return -1;
#endif
#ifdef OS_IS_WIN32
@@ -703,9 +705,10 @@ int pa_raise_priority(int nice_level) {
if (!SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS)) {
pa_log_warn("SetPriorityClass() failed: 0x%08X", GetLastError());
errno = EPERM;
- return .-1;
- } else
- pa_log_info("Successfully gained high priority class.");
+ return -1;
+ }
+
+ pa_log_info("Successfully gained high priority class.");
}
#endif
@@ -720,8 +723,8 @@ void pa_reset_priority(void) {
setpriority(PRIO_PROCESS, 0, 0);
- memset(&sp, 0, sizeof(sp));
- pa_assert_se(pthread_setschedparam(pthread_self(), SCHED_OTHER, &sp) == 0);
+ pa_zero(sp);
+ pthread_setschedparam(pthread_self(), SCHED_OTHER, &sp);
#endif
#ifdef OS_IS_WIN32
@@ -1191,22 +1194,22 @@ int pa_check_in_group(gid_t g) {
(advisory on UNIX, mandatory on Windows) */
int pa_lock_fd(int fd, int b) {
#ifdef F_SETLKW
- struct flock flock;
+ struct flock f_lock;
/* Try a R/W lock first */
- flock.l_type = (short) (b ? F_WRLCK : F_UNLCK);
- flock.l_whence = SEEK_SET;
- flock.l_start = 0;
- flock.l_len = 0;
+ f_lock.l_type = (short) (b ? F_WRLCK : F_UNLCK);
+ f_lock.l_whence = SEEK_SET;
+ f_lock.l_start = 0;
+ f_lock.l_len = 0;
- if (fcntl(fd, F_SETLKW, &flock) >= 0)
+ if (fcntl(fd, F_SETLKW, &f_lock) >= 0)
return 0;
/* Perhaps the file descriptor qas opened for read only, than try again with a read lock. */
if (b && errno == EBADF) {
- flock.l_type = F_RDLCK;
- if (fcntl(fd, F_SETLKW, &flock) >= 0)
+ f_lock.l_type = F_RDLCK;
+ if (fcntl(fd, F_SETLKW, &f_lock) >= 0)
return 0;
}
@@ -2236,10 +2239,9 @@ int pa_close_all(int except_fd, ...) {
int pa_close_allv(const int except_fds[]) {
struct rlimit rl;
int maxfd, fd;
- int saved_errno;
#ifdef __linux__
-
+ int saved_errno;
DIR *d;
if ((d = opendir("/proc/self/fd"))) {
diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h
index b841edbb..96a0480a 100644
--- a/src/pulsecore/core-util.h
+++ b/src/pulsecore/core-util.h
@@ -80,9 +80,6 @@ int pa_make_realtime(int rtprio);
int pa_raise_priority(int nice_level);
void pa_reset_priority(void);
-pa_bool_t pa_can_realtime(void);
-pa_bool_t pa_can_high_priority(void);
-
int pa_parse_boolean(const char *s) PA_GCC_PURE;
static inline const char *pa_yes_no(pa_bool_t b) {
diff --git a/src/pulsecore/core.c b/src/pulsecore/core.c
index 06573f17..f5eb8352 100644
--- a/src/pulsecore/core.c
+++ b/src/pulsecore/core.c
@@ -28,6 +28,7 @@
#include <stdio.h>
#include <signal.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
@@ -35,6 +36,7 @@
#include <pulsecore/sink.h>
#include <pulsecore/source.h>
#include <pulsecore/namereg.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/core-scache.h>
#include <pulsecore/core-subscribe.h>
@@ -214,7 +216,7 @@ static void core_free(pa_object *o) {
pa_xfree(c);
}
-static void exit_callback(pa_mainloop_api*m, pa_time_event *e, const struct timeval *tv, void *userdata) {
+static void exit_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) {
pa_core *c = userdata;
pa_assert(c->exit_event == e);
@@ -229,11 +231,7 @@ void pa_core_check_idle(pa_core *c) {
c->exit_idle_time >= 0 &&
pa_idxset_size(c->clients) == 0) {
- struct timeval tv;
- pa_gettimeofday(&tv);
- tv.tv_sec+= c->exit_idle_time;
-
- c->exit_event = c->mainloop->time_new(c->mainloop, &tv, exit_callback, c);
+ c->exit_event = pa_core_rttime_new(c, pa_rtclock_now() + c->exit_idle_time * PA_USEC_PER_SEC, exit_callback, c);
} else if (c->exit_event && pa_idxset_size(c->clients) > 0) {
c->mainloop->time_free(c->exit_event);
@@ -261,3 +259,21 @@ void pa_core_maybe_vacuum(pa_core *c) {
pa_log_debug("Hmm, no streams around, trying to vacuum.");
pa_mempool_vacuum(c->mempool);
}
+
+pa_time_event* pa_core_rttime_new(pa_core *c, pa_usec_t usec, pa_time_event_cb_t cb, void *userdata) {
+ struct timeval tv;
+
+ pa_assert(c);
+ pa_assert(c->mainloop);
+
+ return c->mainloop->time_new(c->mainloop, pa_timeval_rtstore(&tv, usec, TRUE), cb, userdata);
+}
+
+void pa_core_rttime_restart(pa_core *c, pa_time_event *e, pa_usec_t usec) {
+ struct timeval tv;
+
+ pa_assert(c);
+ pa_assert(c->mainloop);
+
+ c->mainloop->time_restart(e, pa_timeval_rtstore(&tv, usec, TRUE));
+}
diff --git a/src/pulsecore/core.h b/src/pulsecore/core.h
index 09a880c4..e7abd61b 100644
--- a/src/pulsecore/core.h
+++ b/src/pulsecore/core.h
@@ -183,4 +183,8 @@ int pa_core_exit(pa_core *c, pa_bool_t force, int retval);
void pa_core_maybe_vacuum(pa_core *c);
+/* wrapper for c->mainloop->time_*() RT time events */
+pa_time_event* pa_core_rttime_new(pa_core *c, pa_usec_t usec, pa_time_event_cb_t cb, void *userdata);
+void pa_core_rttime_restart(pa_core *c, pa_time_event *e, pa_usec_t usec);
+
#endif
diff --git a/src/pulsecore/dbus-shared.c b/src/pulsecore/dbus-shared.c
index 9d9445b6..20ef9b1e 100644
--- a/src/pulsecore/dbus-shared.c
+++ b/src/pulsecore/dbus-shared.c
@@ -70,7 +70,7 @@ pa_dbus_connection* pa_dbus_bus_get(pa_core *c, DBusBusType type, DBusError *err
if ((pconn = pa_shared_get(c, prop_name[type])))
return pa_dbus_connection_ref(pconn);
- if (!(conn = pa_dbus_wrap_connection_new(c->mainloop, type, error)))
+ if (!(conn = pa_dbus_wrap_connection_new(c->mainloop, TRUE, type, error)))
return NULL;
return dbus_connection_new(c, conn, prop_name[type]);
diff --git a/src/pulsecore/dbus-util.c b/src/pulsecore/dbus-util.c
index ece36def..4e6148f0 100644
--- a/src/pulsecore/dbus-util.c
+++ b/src/pulsecore/dbus-util.c
@@ -26,9 +26,11 @@
#include <stdarg.h>
-#include <pulse/xmalloc.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
+#include <pulse/xmalloc.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/log.h>
@@ -38,6 +40,12 @@ struct pa_dbus_wrap_connection {
pa_mainloop_api *mainloop;
DBusConnection *connection;
pa_defer_event* dispatch_event;
+ pa_bool_t use_rtclock:1;
+};
+
+struct timeout_data {
+ pa_dbus_wrap_connection *c;
+ DBusTimeout *timeout;
};
static void dispatch_cb(pa_mainloop_api *ea, pa_defer_event *ev, void *userdata) {
@@ -118,16 +126,18 @@ static void handle_io_event(pa_mainloop_api *ea, pa_io_event *e, int fd, pa_io_e
}
/* pa_time_event_cb_t timer event handler */
-static void handle_time_event(pa_mainloop_api *ea, pa_time_event* e, const struct timeval *tv, void *userdata) {
- DBusTimeout *timeout = userdata;
+static void handle_time_event(pa_mainloop_api *ea, pa_time_event* e, const struct timeval *t, void *userdata) {
+ struct timeval tv;
+ struct timeout_data *d = userdata;
- if (dbus_timeout_get_enabled(timeout)) {
- struct timeval next = *tv;
- dbus_timeout_handle(timeout);
+ pa_assert(d);
+ pa_assert(d->c);
+
+ if (dbus_timeout_get_enabled(d->timeout)) {
+ dbus_timeout_handle(d->timeout);
/* restart it for the next scheduled time */
- pa_timeval_add(&next, (pa_usec_t) dbus_timeout_get_interval(timeout) * 1000);
- ea->time_restart(e, &next);
+ ea->time_restart(e, pa_timeval_rtstore(&tv, pa_timeval_load(t) + dbus_timeout_get_interval(d->timeout) * PA_USEC_PER_MSEC, d->c->use_rtclock));
}
}
@@ -179,11 +189,16 @@ static void toggle_watch(DBusWatch *watch, void *data) {
c->mainloop->io_enable(ev, get_watch_flags(watch));
}
+static void time_event_destroy_cb(pa_mainloop_api *a, pa_time_event *e, void *userdata) {
+ pa_xfree(userdata);
+}
+
/* DBusAddTimeoutFunction callback for pa mainloop */
static dbus_bool_t add_timeout(DBusTimeout *timeout, void *data) {
pa_dbus_wrap_connection *c = data;
pa_time_event *ev;
struct timeval tv;
+ struct timeout_data *d;
pa_assert(timeout);
pa_assert(c);
@@ -191,10 +206,11 @@ static dbus_bool_t add_timeout(DBusTimeout *timeout, void *data) {
if (!dbus_timeout_get_enabled(timeout))
return FALSE;
- pa_gettimeofday(&tv);
- pa_timeval_add(&tv, (pa_usec_t) dbus_timeout_get_interval(timeout) * 1000);
-
- ev = c->mainloop->time_new(c->mainloop, &tv, handle_time_event, timeout);
+ d = pa_xnew(struct timeout_data, 1);
+ d->c = c;
+ d->timeout = timeout;
+ ev = c->mainloop->time_new(c->mainloop, pa_timeval_rtstore(&tv, pa_rtclock_now() + dbus_timeout_get_interval(timeout) * PA_USEC_PER_MSEC, c->use_rtclock), handle_time_event, d);
+ c->mainloop->time_set_destroy(ev, time_event_destroy_cb);
dbus_timeout_set_data(timeout, ev, NULL);
@@ -215,23 +231,20 @@ static void remove_timeout(DBusTimeout *timeout, void *data) {
/* DBusTimeoutToggledFunction callback for pa mainloop */
static void toggle_timeout(DBusTimeout *timeout, void *data) {
- pa_dbus_wrap_connection *c = data;
+ struct timeout_data *d = data;
pa_time_event *ev;
+ struct timeval tv;
+ pa_assert(d);
+ pa_assert(d->c);
pa_assert(timeout);
- pa_assert(c);
pa_assert_se(ev = dbus_timeout_get_data(timeout));
if (dbus_timeout_get_enabled(timeout)) {
- struct timeval tv;
-
- pa_gettimeofday(&tv);
- pa_timeval_add(&tv, (pa_usec_t) dbus_timeout_get_interval(timeout) * 1000);
-
- c->mainloop->time_restart(ev, &tv);
+ d->c->mainloop->time_restart(ev, pa_timeval_rtstore(&tv, pa_rtclock_now() + dbus_timeout_get_interval(timeout) * PA_USEC_PER_MSEC, d->c->use_rtclock));
} else
- c->mainloop->time_restart(ev, NULL);
+ d->c->mainloop->time_restart(ev, pa_timeval_rtstore(&tv, PA_USEC_INVALID, d->c->use_rtclock));
}
static void wakeup_main(void *userdata) {
@@ -244,7 +257,7 @@ static void wakeup_main(void *userdata) {
c->mainloop->defer_enable(c->dispatch_event, 1);
}
-pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *m, DBusBusType type, DBusError *error) {
+pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *m, pa_bool_t use_rtclock, DBusBusType type, DBusError *error) {
DBusConnection *conn;
pa_dbus_wrap_connection *pconn;
char *id;
@@ -257,6 +270,7 @@ pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *m, DBusBus
pconn = pa_xnew(pa_dbus_wrap_connection, 1);
pconn->mainloop = m;
pconn->connection = conn;
+ pconn->use_rtclock = use_rtclock;
dbus_connection_set_exit_on_disconnect(conn, FALSE);
dbus_connection_set_dispatch_status_function(conn, dispatch_status, pconn, NULL);
diff --git a/src/pulsecore/dbus-util.h b/src/pulsecore/dbus-util.h
index 55cda7a0..9ff298d8 100644
--- a/src/pulsecore/dbus-util.h
+++ b/src/pulsecore/dbus-util.h
@@ -30,7 +30,7 @@
/* A wrap connection is not shared or refcounted, it is available in client side */
typedef struct pa_dbus_wrap_connection pa_dbus_wrap_connection;
-pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *mainloop, DBusBusType type, DBusError *error);
+pa_dbus_wrap_connection* pa_dbus_wrap_connection_new(pa_mainloop_api *mainloop, pa_bool_t use_rtclock, DBusBusType type, DBusError *error);
void pa_dbus_wrap_connection_free(pa_dbus_wrap_connection* conn);
DBusConnection* pa_dbus_wrap_connection_get(pa_dbus_wrap_connection *conn);
diff --git a/src/pulsecore/log.c b/src/pulsecore/log.c
index 15d192d6..8c21ee6c 100644
--- a/src/pulsecore/log.c
+++ b/src/pulsecore/log.c
@@ -38,6 +38,7 @@
#include <syslog.h>
#endif
+#include <pulse/rtclock.h>
#include <pulse/utf8.h>
#include <pulse/xmalloc.h>
#include <pulse/util.h>
@@ -45,7 +46,7 @@
#include <pulsecore/macro.h>
#include <pulsecore/core-util.h>
-#include <pulsecore/rtclock.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/once.h>
#include <pulsecore/ratelimit.h>
@@ -294,7 +295,7 @@ void pa_log_levelv_meta(
static pa_usec_t start, last;
pa_usec_t u, a, r;
- u = pa_rtclock_usec();
+ u = pa_rtclock_now();
PA_ONCE_BEGIN {
start = u;
diff --git a/src/pulsecore/memblock.c b/src/pulsecore/memblock.c
index 9a57895b..2c3f98a5 100644
--- a/src/pulsecore/memblock.c
+++ b/src/pulsecore/memblock.c
@@ -257,7 +257,7 @@ static struct mempool_slot* mempool_allocate_slot(pa_mempool *p) {
slot = (struct mempool_slot*) ((uint8_t*) p->memory.ptr + (p->block_size * (size_t) idx));
if (!slot) {
- pa_log_info("Pool full");
+ pa_log_debug("Pool full");
pa_atomic_inc(&p->stat.n_pool_full);
return NULL;
}
@@ -509,13 +509,16 @@ static void memblock_free(pa_memblock *b) {
/* FIXME! This should be implemented lock-free */
- segment = b->per_type.imported.segment;
- pa_assert(segment);
- import = segment->import;
- pa_assert(import);
+ pa_assert_se(segment = b->per_type.imported.segment);
+ pa_assert_se(import = segment->import);
pa_mutex_lock(import->mutex);
- pa_hashmap_remove(import->blocks, PA_UINT32_TO_PTR(b->per_type.imported.id));
+
+ pa_hashmap_remove(
+ import->blocks,
+ PA_UINT32_TO_PTR(b->per_type.imported.id));
+
+ pa_assert(segment->n_blocks >= 1);
if (-- segment->n_blocks <= 0)
segment_detach(segment);
@@ -525,6 +528,7 @@ static void memblock_free(pa_memblock *b) {
if (pa_flist_push(PA_STATIC_FLIST_GET(unused_memblocks), b) < 0)
pa_xfree(b);
+
break;
}
@@ -657,7 +661,8 @@ pa_memblock *pa_memblock_will_need(pa_memblock *b) {
/* Self-locked. This function is not multiple-caller safe */
static void memblock_replace_import(pa_memblock *b) {
- pa_memimport_segment *seg;
+ pa_memimport_segment *segment;
+ pa_memimport *import;
pa_assert(b);
pa_assert(b->type == PA_MEMBLOCK_IMPORTED);
@@ -667,23 +672,22 @@ static void memblock_replace_import(pa_memblock *b) {
pa_atomic_dec(&b->pool->stat.n_imported);
pa_atomic_sub(&b->pool->stat.imported_size, (int) b->length);
- seg = b->per_type.imported.segment;
- pa_assert(seg);
- pa_assert(seg->import);
+ pa_assert_se(segment = b->per_type.imported.segment);
+ pa_assert_se(import = segment->import);
- pa_mutex_lock(seg->import->mutex);
+ pa_mutex_lock(import->mutex);
pa_hashmap_remove(
- seg->import->blocks,
+ import->blocks,
PA_UINT32_TO_PTR(b->per_type.imported.id));
memblock_make_local(b);
- if (-- seg->n_blocks <= 0) {
- pa_mutex_unlock(seg->import->mutex);
- segment_detach(seg);
- } else
- pa_mutex_unlock(seg->import->mutex);
+ pa_assert(segment->n_blocks >= 1);
+ if (-- segment->n_blocks <= 0)
+ segment_detach(segment);
+
+ pa_mutex_unlock(import->mutex);
}
pa_mempool* pa_mempool_new(pa_bool_t shared, size_t size) {
diff --git a/src/pulsecore/memtrap.c b/src/pulsecore/memtrap.c
index e06f60ca..c647e507 100644
--- a/src/pulsecore/memtrap.c
+++ b/src/pulsecore/memtrap.c
@@ -37,6 +37,7 @@
#include <pulsecore/aupdate.h>
#include <pulsecore/atomic.h>
#include <pulsecore/once.h>
+#include <pulsecore/mutex.h>
#include "memtrap.h"
@@ -49,6 +50,7 @@ struct pa_memtrap {
static pa_memtrap *memtraps[2] = { NULL, NULL };
static pa_aupdate *aupdate;
+static pa_static_mutex mutex = PA_STATIC_MUTEX_INIT; /* only required to serialize access to the write side */
static void allocate_aupdate(void) {
PA_ONCE_BEGIN {
@@ -63,7 +65,7 @@ pa_bool_t pa_memtrap_is_good(pa_memtrap *m) {
}
static void sigsafe_error(const char *s) {
- write(STDERR_FILENO, s, strlen(s));
+ (void) write(STDERR_FILENO, s, strlen(s));
}
static void signal_handler(int sig, siginfo_t* si, void *data) {
@@ -124,6 +126,7 @@ static void memtrap_unlink(pa_memtrap *m, unsigned j) {
pa_memtrap* pa_memtrap_add(const void *start, size_t size) {
pa_memtrap *m = NULL;
unsigned j;
+ pa_mutex *mx;
pa_assert(start);
pa_assert(size > 0);
@@ -138,33 +141,45 @@ pa_memtrap* pa_memtrap_add(const void *start, size_t size) {
allocate_aupdate();
+ mx = pa_static_mutex_get(&mutex, FALSE, TRUE);
+ pa_mutex_lock(mx);
+
j = pa_aupdate_write_begin(aupdate);
memtrap_link(m, j);
j = pa_aupdate_write_swap(aupdate);
memtrap_link(m, j);
pa_aupdate_write_end(aupdate);
+ pa_mutex_unlock(mx);
+
return m;
}
void pa_memtrap_remove(pa_memtrap *m) {
unsigned j;
+ pa_mutex *mx;
pa_assert(m);
allocate_aupdate();
+ mx = pa_static_mutex_get(&mutex, FALSE, TRUE);
+ pa_mutex_lock(mx);
+
j = pa_aupdate_write_begin(aupdate);
memtrap_unlink(m, j);
j = pa_aupdate_write_swap(aupdate);
memtrap_unlink(m, j);
pa_aupdate_write_end(aupdate);
+ pa_mutex_unlock(mx);
+
pa_xfree(m);
}
pa_memtrap *pa_memtrap_update(pa_memtrap *m, const void *start, size_t size) {
unsigned j;
+ pa_mutex *mx;
pa_assert(m);
@@ -176,6 +191,9 @@ pa_memtrap *pa_memtrap_update(pa_memtrap *m, const void *start, size_t size) {
allocate_aupdate();
+ mx = pa_static_mutex_get(&mutex, FALSE, TRUE);
+ pa_mutex_lock(mx);
+
j = pa_aupdate_write_begin(aupdate);
if (m->start == start && m->size == size)
@@ -194,6 +212,8 @@ pa_memtrap *pa_memtrap_update(pa_memtrap *m, const void *start, size_t size) {
unlock:
pa_aupdate_write_end(aupdate);
+ pa_mutex_unlock(mx);
+
return m;
}
diff --git a/src/pulsecore/pdispatch.c b/src/pulsecore/pdispatch.c
index 4388831a..fc8ce76f 100644
--- a/src/pulsecore/pdispatch.c
+++ b/src/pulsecore/pdispatch.c
@@ -27,6 +27,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
@@ -37,6 +38,7 @@
#include <pulsecore/macro.h>
#include <pulsecore/refcnt.h>
#include <pulsecore/flist.h>
+#include <pulsecore/core-rtclock.h>
#include "pdispatch.h"
@@ -204,6 +206,7 @@ struct pa_pdispatch {
pa_pdispatch_drain_callback drain_callback;
void *drain_userdata;
const pa_creds *creds;
+ pa_bool_t use_rtclock:1;
};
static void reply_info_free(struct reply_info *r) {
@@ -220,7 +223,7 @@ static void reply_info_free(struct reply_info *r) {
pa_xfree(r);
}
-pa_pdispatch* pa_pdispatch_new(pa_mainloop_api *mainloop, const pa_pdispatch_cb_t*table, unsigned entries) {
+pa_pdispatch* pa_pdispatch_new(pa_mainloop_api *mainloop, pa_bool_t use_rtclock, const pa_pdispatch_cb_t *table, unsigned entries) {
pa_pdispatch *pd;
pa_assert(mainloop);
@@ -235,6 +238,7 @@ pa_pdispatch* pa_pdispatch_new(pa_mainloop_api *mainloop, const pa_pdispatch_cb_
pd->drain_callback = NULL;
pd->drain_userdata = NULL;
pd->creds = NULL;
+ pd->use_rtclock = use_rtclock;
return pd;
}
@@ -342,7 +346,7 @@ finish:
return ret;
}
-static void timeout_callback(pa_mainloop_api*m, pa_time_event*e, const struct timeval *tv, void *userdata) {
+static void timeout_callback(pa_mainloop_api*m, pa_time_event*e, const struct timeval *t, void *userdata) {
struct reply_info*r = userdata;
pa_assert(r);
@@ -371,10 +375,7 @@ void pa_pdispatch_register_reply(pa_pdispatch *pd, uint32_t tag, int timeout, pa
r->free_cb = free_cb;
r->tag = tag;
- pa_gettimeofday(&tv);
- tv.tv_sec += timeout;
-
- pa_assert_se(r->time_event = pd->mainloop->time_new(pd->mainloop, &tv, timeout_callback, r));
+ pa_assert_se(r->time_event = pd->mainloop->time_new(pd->mainloop, pa_timeval_rtstore(&tv, pa_rtclock_now() + timeout * PA_USEC_PER_SEC, pd->use_rtclock), timeout_callback, r));
PA_LLIST_PREPEND(struct reply_info, pd->replies, r);
}
diff --git a/src/pulsecore/pdispatch.h b/src/pulsecore/pdispatch.h
index 5c31d80e..dae475af 100644
--- a/src/pulsecore/pdispatch.h
+++ b/src/pulsecore/pdispatch.h
@@ -37,7 +37,7 @@ typedef struct pa_pdispatch pa_pdispatch;
typedef void (*pa_pdispatch_cb_t)(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata);
typedef void (*pa_pdispatch_drain_callback)(pa_pdispatch *pd, void *userdata);
-pa_pdispatch* pa_pdispatch_new(pa_mainloop_api *m, const pa_pdispatch_cb_t*table, unsigned entries);
+pa_pdispatch* pa_pdispatch_new(pa_mainloop_api *m, pa_bool_t use_rtclock, const pa_pdispatch_cb_t*table, unsigned entries);
void pa_pdispatch_unref(pa_pdispatch *pd);
pa_pdispatch* pa_pdispatch_ref(pa_pdispatch *pd);
diff --git a/src/pulsecore/protocol-esound.c b/src/pulsecore/protocol-esound.c
index ad7cd045..f64552aa 100644
--- a/src/pulsecore/protocol-esound.c
+++ b/src/pulsecore/protocol-esound.c
@@ -30,6 +30,7 @@
#include <stdlib.h>
#include <limits.h>
+#include <pulse/rtclock.h>
#include <pulse/sample.h>
#include <pulse/timeval.h>
#include <pulse/utf8.h>
@@ -63,7 +64,7 @@
#define MAX_CONNECTIONS 64
/* Kick a client if it doesn't authenticate within this time */
-#define AUTH_TIMEOUT 5
+#define AUTH_TIMEOUT (5*PA_USEC_PER_SEC)
#define DEFAULT_COOKIE_FILE ".esd_auth"
@@ -1459,11 +1460,10 @@ static pa_usec_t source_output_get_latency_cb(pa_source_output *o) {
/*** entry points ***/
-static void auth_timeout(pa_mainloop_api*m, pa_time_event *e, const struct timeval *tv, void *userdata) {
+static void auth_timeout(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) {
connection *c = CONNECTION(userdata);
pa_assert(m);
- pa_assert(tv);
connection_assert_ref(c);
pa_assert(c->auth_timeout_event == e);
@@ -1553,12 +1553,9 @@ void pa_esound_protocol_connect(pa_esound_protocol *p, pa_iochannel *io, pa_esou
c->authorized = TRUE;
}
- if (!c->authorized) {
- struct timeval tv;
- pa_gettimeofday(&tv);
- tv.tv_sec += AUTH_TIMEOUT;
- c->auth_timeout_event = p->core->mainloop->time_new(p->core->mainloop, &tv, auth_timeout, c);
- } else
+ if (!c->authorized)
+ c->auth_timeout_event = pa_core_rttime_new(p->core, pa_rtclock_now() + AUTH_TIMEOUT, auth_timeout, c);
+ else
c->auth_timeout_event = NULL;
c->defer_event = p->core->mainloop->defer_new(p->core->mainloop, defer_callback, c);
diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c
index 48f7b135..9a37c565 100644
--- a/src/pulsecore/protocol-native.c
+++ b/src/pulsecore/protocol-native.c
@@ -29,6 +29,7 @@
#include <stdlib.h>
#include <unistd.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/version.h>
#include <pulse/utf8.h>
@@ -61,7 +62,7 @@
#include "protocol-native.h"
/* Kick a client if it doesn't authenticate within this time */
-#define AUTH_TIMEOUT 60
+#define AUTH_TIMEOUT (60 * PA_USEC_PER_SEC)
/* Don't accept more connection than this */
#define MAX_CONNECTIONS 64
@@ -2549,7 +2550,7 @@ static void command_get_playback_latency(pa_pdispatch *pd, uint32_t command, uin
reply = reply_new(tag);
pa_tagstruct_put_usec(reply,
s->current_sink_latency +
- pa_bytes_to_usec(s->render_memblockq_length, &s->sink_input->sample_spec));
+ pa_bytes_to_usec(s->render_memblockq_length, &s->sink_input->sink->sample_spec));
pa_tagstruct_put_usec(reply, 0);
pa_tagstruct_put_boolean(reply,
s->playing_for > 0 &&
@@ -2688,7 +2689,9 @@ static void command_finish_upload_stream(pa_pdispatch *pd, uint32_t command, uin
CHECK_VALIDITY(c->pstream, s, tag, PA_ERR_NOENTITY);
CHECK_VALIDITY(c->pstream, upload_stream_isinstance(s), tag, PA_ERR_NOENTITY);
- if (pa_scache_add_item(c->protocol->core, s->name, &s->sample_spec, &s->channel_map, &s->memchunk, s->proplist, &idx) < 0)
+ if (!s->memchunk.memblock)
+ pa_pstream_send_error(c->pstream, tag, PA_ERR_TOOLARGE);
+ else if (pa_scache_add_item(c->protocol->core, s->name, &s->sample_spec, &s->channel_map, &s->memchunk, s->proplist, &idx) < 0)
pa_pstream_send_error(c->pstream, tag, PA_ERR_INTERNAL);
else
pa_pstream_send_simple_ack(c->pstream, tag);
@@ -4479,11 +4482,10 @@ static void client_send_event_cb(pa_client *client, const char*event, pa_proplis
/*** module entry points ***/
-static void auth_timeout(pa_mainloop_api*m, pa_time_event *e, const struct timeval *tv, void *userdata) {
+static void auth_timeout(pa_mainloop_api*m, pa_time_event *e, const struct timeval *t, void *userdata) {
pa_native_connection *c = PA_NATIVE_CONNECTION(userdata);
pa_assert(m);
- pa_assert(tv);
pa_native_connection_assert_ref(c);
pa_assert(c->auth_timeout_event == e);
@@ -4541,12 +4543,9 @@ void pa_native_protocol_connect(pa_native_protocol *p, pa_iochannel *io, pa_nati
c->authorized = TRUE;
}
- if (!c->authorized) {
- struct timeval tv;
- pa_gettimeofday(&tv);
- tv.tv_sec += AUTH_TIMEOUT;
- c->auth_timeout_event = p->core->mainloop->time_new(p->core->mainloop, &tv, auth_timeout, c);
- } else
+ if (!c->authorized)
+ c->auth_timeout_event = pa_core_rttime_new(p->core, pa_rtclock_now() + AUTH_TIMEOUT, auth_timeout, c);
+ else
c->auth_timeout_event = NULL;
c->is_local = pa_iochannel_socket_is_local(io);
@@ -4565,7 +4564,7 @@ void pa_native_protocol_connect(pa_native_protocol *p, pa_iochannel *io, pa_nati
pa_pstream_set_revoke_callback(c->pstream, pstream_revoke_callback, c);
pa_pstream_set_release_callback(c->pstream, pstream_release_callback, c);
- c->pdispatch = pa_pdispatch_new(p->core->mainloop, command_table, PA_COMMAND_MAX);
+ c->pdispatch = pa_pdispatch_new(p->core->mainloop, TRUE, command_table, PA_COMMAND_MAX);
c->record_streams = pa_idxset_new(NULL, NULL);
c->output_streams = pa_idxset_new(NULL, NULL);
diff --git a/src/pulsecore/ratelimit.c b/src/pulsecore/ratelimit.c
index e913ca19..844dd77d 100644
--- a/src/pulsecore/ratelimit.c
+++ b/src/pulsecore/ratelimit.c
@@ -23,7 +23,8 @@
#include <config.h>
#endif
-#include <pulsecore/rtclock.h>
+#include <pulse/rtclock.h>
+
#include <pulsecore/log.h>
#include <pulsecore/mutex.h>
@@ -38,7 +39,7 @@ pa_bool_t pa_ratelimit_test(pa_ratelimit *r) {
pa_usec_t now;
pa_mutex *m;
- now = pa_rtclock_usec();
+ now = pa_rtclock_now();
m = pa_static_mutex_get(&mutex, FALSE, FALSE);
pa_mutex_lock(m);
diff --git a/src/pulsecore/rtkit.c b/src/pulsecore/rtkit.c
new file mode 100644
index 00000000..aecc4e32
--- /dev/null
+++ b/src/pulsecore/rtkit.c
@@ -0,0 +1,189 @@
+/*-*- Mode: C; c-basic-offset: 8 -*-*/
+
+/***
+ Copyright 2009 Lennart Poettering
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+***/
+
+#include <errno.h>
+
+#include "rtkit.h"
+
+#ifdef __linux__
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/syscall.h>
+
+static pid_t _gettid(void) {
+ return (pid_t) syscall(SYS_gettid);
+}
+
+static int translate_error(const char *name) {
+ if (strcmp(name, DBUS_ERROR_NO_MEMORY) == 0)
+ return -ENOMEM;
+ if (strcmp(name, DBUS_ERROR_SERVICE_UNKNOWN) == 0 ||
+ strcmp(name, DBUS_ERROR_NAME_HAS_NO_OWNER) == 0)
+ return -ENOENT;
+ if (strcmp(name, DBUS_ERROR_ACCESS_DENIED) == 0 ||
+ strcmp(name, DBUS_ERROR_AUTH_FAILED) == 0)
+ return -EACCES;
+
+ return -EIO;
+}
+
+int rtkit_make_realtime(DBusConnection *connection, pid_t thread, int priority) {
+ DBusMessage *m = NULL, *r = NULL;
+ dbus_uint64_t u64;
+ dbus_uint32_t u32;
+ DBusError error;
+ int ret;
+
+ dbus_error_init(&error);
+
+ if (thread == 0)
+ thread = _gettid();
+
+ if (!(m = dbus_message_new_method_call(
+ RTKIT_SERVICE_NAME,
+ RTKIT_OBJECT_PATH,
+ "org.freedesktop.RealtimeKit1",
+ "MakeThreadRealtime"))) {
+ ret = -ENOMEM;
+ goto finish;
+ }
+
+ u64 = (dbus_uint64_t) thread;
+ u32 = (dbus_uint32_t) priority;
+
+ if (!dbus_message_append_args(
+ m,
+ DBUS_TYPE_UINT64, &u64,
+ DBUS_TYPE_UINT32, &u32,
+ DBUS_TYPE_INVALID)) {
+ ret = -ENOMEM;
+ goto finish;
+ }
+
+ if (!(r = dbus_connection_send_with_reply_and_block(connection, m, -1, &error))) {
+ ret = translate_error(error.name);
+ goto finish;
+ }
+
+
+ if (dbus_set_error_from_message(&error, r)) {
+ ret = translate_error(error.name);
+ goto finish;
+ }
+
+ ret = 0;
+
+finish:
+
+ if (m)
+ dbus_message_unref(m);
+
+ if (r)
+ dbus_message_unref(r);
+
+ dbus_error_free(&error);
+
+ return ret;
+}
+
+int rtkit_make_high_priority(DBusConnection *connection, pid_t thread, int nice_level) {
+ DBusMessage *m = NULL, *r = NULL;
+ dbus_uint64_t u64;
+ dbus_int32_t s32;
+ DBusError error;
+ int ret;
+
+ dbus_error_init(&error);
+
+ if (thread == 0)
+ thread = _gettid();
+
+ if (!(m = dbus_message_new_method_call(
+ RTKIT_SERVICE_NAME,
+ RTKIT_OBJECT_PATH,
+ "org.freedesktop.RealtimeKit1",
+ "MakeThreadHighPriority"))) {
+ ret = -ENOMEM;
+ goto finish;
+ }
+
+ u64 = (dbus_uint64_t) thread;
+ s32 = (dbus_int32_t) nice_level;
+
+ if (!dbus_message_append_args(
+ m,
+ DBUS_TYPE_UINT64, &u64,
+ DBUS_TYPE_INT32, &s32,
+ DBUS_TYPE_INVALID)) {
+ ret = -ENOMEM;
+ goto finish;
+ }
+
+
+
+ if (!(r = dbus_connection_send_with_reply_and_block(connection, m, -1, &error))) {
+ ret = translate_error(error.name);
+ goto finish;
+ }
+
+
+ if (dbus_set_error_from_message(&error, r)) {
+ ret = translate_error(error.name);
+ goto finish;
+ }
+
+ ret = 0;
+
+finish:
+
+ if (m)
+ dbus_message_unref(m);
+
+ if (r)
+ dbus_message_unref(r);
+
+ dbus_error_free(&error);
+
+ return ret;
+}
+
+#else
+
+int rtkit_make_realtime(DBusConnection *connection, pid_t thread, int priority) {
+ return -ENOTSUP;
+}
+
+int rtkit_make_high_priority(DBusConnection *connection, pid_t thread, int nice_level) {
+ return -ENOTSUP;
+}
+
+#endif
diff --git a/src/pulsecore/rtkit.h b/src/pulsecore/rtkit.h
new file mode 100644
index 00000000..2081b4e9
--- /dev/null
+++ b/src/pulsecore/rtkit.h
@@ -0,0 +1,62 @@
+/*-*- Mode: C; c-basic-offset: 8 -*-*/
+
+#ifndef foortkithfoo
+#define foortkithfoo
+
+/***
+ Copyright 2009 Lennart Poettering
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+***/
+
+#include <sys/types.h>
+#include <dbus/dbus.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* This is the reference implementation for a client for
+ * RealtimeKit. You don't have to use this, but if do, just copy these
+ * sources into your repository */
+
+#define RTKIT_SERVICE_NAME "org.freedesktop.RealtimeKit1"
+#define RTKIT_OBJECT_PATH "/org/freedesktop/RealtimeKit1"
+
+/* This is mostly equivalent to sched_setparam(thread, SCHED_RR, {
+ * .sched_priority = priority }). 'thread' needs to be a kernel thread
+ * id as returned by gettid(), not a pthread_t! If 'thread' is 0 the
+ * current thread is used. The returned value is a negative errno
+ * style error code, or 0 on success. */
+int rtkit_make_realtime(DBusConnection *system_bus, pid_t thread, int priority);
+
+/* This is mostly equivalent to setpriority(PRIO_PROCESS, thread,
+ * nice_level). 'thread' needs to be a kernel thread id as returned by
+ * gettid(), not a pthread_t! If 'thread' is 0 the current thread is
+ * used. The returned value is a negative errno style error code, or 0
+ * on success.*/
+int rtkit_make_high_priority(DBusConnection *system_bus, pid_t thread, int nice_level);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/pulsecore/rtpoll.c b/src/pulsecore/rtpoll.c
index aa8ca321..42708a8a 100644
--- a/src/pulsecore/rtpoll.c
+++ b/src/pulsecore/rtpoll.c
@@ -30,10 +30,6 @@
#include <string.h>
#include <errno.h>
-#ifdef __linux__
-#include <sys/utsname.h>
-#endif
-
#ifdef HAVE_POLL_H
#include <poll.h>
#else
@@ -44,10 +40,9 @@
#include <pulse/timeval.h>
#include <pulsecore/core-error.h>
-#include <pulsecore/rtclock.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/macro.h>
#include <pulsecore/llist.h>
-#include <pulsecore/rtsig.h>
#include <pulsecore/flist.h>
#include <pulsecore/core-util.h>
#include <pulsecore/winsock.h>
@@ -66,20 +61,9 @@ struct pa_rtpoll {
pa_bool_t scan_for_dead:1;
pa_bool_t running:1;
- pa_bool_t installed:1;
pa_bool_t rebuild_needed:1;
pa_bool_t quit:1;
-#ifdef HAVE_PPOLL
- pa_bool_t timer_armed:1;
-#ifdef __linux__
- pa_bool_t dont_use_ppoll:1;
-#endif
- int rtsig;
- sigset_t sigset_unblocked;
- timer_t timer;
-#endif
-
#ifdef DEBUG_TIMING
pa_usec_t timestamp;
pa_usec_t slept, awake;
@@ -107,52 +91,20 @@ struct pa_rtpoll_item {
PA_STATIC_FLIST_DECLARE(items, 0, pa_xfree);
-static void signal_handler_noop(int s) { /* write(2, "signal\n", 7); */ }
-
pa_rtpoll *pa_rtpoll_new(void) {
pa_rtpoll *p;
p = pa_xnew(pa_rtpoll, 1);
-#ifdef HAVE_PPOLL
-
-#ifdef __linux__
- /* ppoll is broken on Linux < 2.6.16 */
- p->dont_use_ppoll = FALSE;
-
- {
- struct utsname u;
- unsigned major, minor, micro;
-
- pa_assert_se(uname(&u) == 0);
-
- if (sscanf(u.release, "%u.%u.%u", &major, &minor, &micro) != 3 ||
- (major < 2) ||
- (major == 2 && minor < 6) ||
- (major == 2 && minor == 6 && micro < 16))
-
- p->dont_use_ppoll = TRUE;
- }
-
-#endif
-
- p->rtsig = -1;
- sigemptyset(&p->sigset_unblocked);
- p->timer = (timer_t) -1;
- p->timer_armed = FALSE;
-
-#endif
-
p->n_pollfd_alloc = 32;
p->pollfd = pa_xnew(struct pollfd, p->n_pollfd_alloc);
p->pollfd2 = pa_xnew(struct pollfd, p->n_pollfd_alloc);
p->n_pollfd_used = 0;
- memset(&p->next_elapse, 0, sizeof(p->next_elapse));
+ pa_zero(p->next_elapse);
p->timer_enabled = FALSE;
p->running = FALSE;
- p->installed = FALSE;
p->scan_for_dead = FALSE;
p->rebuild_needed = FALSE;
p->quit = FALSE;
@@ -160,53 +112,13 @@ pa_rtpoll *pa_rtpoll_new(void) {
PA_LLIST_HEAD_INIT(pa_rtpoll_item, p->items);
#ifdef DEBUG_TIMING
- p->timestamp = pa_rtclock_usec();
+ p->timestamp = pa_rtclock_now();
p->slept = p->awake = 0;
#endif
return p;
}
-void pa_rtpoll_install(pa_rtpoll *p) {
- pa_assert(p);
- pa_assert(!p->installed);
-
- p->installed = TRUE;
-
-#ifdef HAVE_PPOLL
-# ifdef __linux__
- if (p->dont_use_ppoll)
- return;
-# endif
-
- if ((p->rtsig = pa_rtsig_get_for_thread()) < 0) {
- pa_log_warn("Failed to reserve POSIX realtime signal.");
- return;
- }
-
- pa_log_debug("Acquired POSIX realtime signal %s", pa_sig2str(p->rtsig));
-
- {
- sigset_t ss;
- struct sigaction sa;
-
- pa_assert_se(sigemptyset(&ss) == 0);
- pa_assert_se(sigaddset(&ss, p->rtsig) == 0);
- pa_assert_se(pthread_sigmask(SIG_BLOCK, &ss, &p->sigset_unblocked) == 0);
- pa_assert_se(sigdelset(&p->sigset_unblocked, p->rtsig) == 0);
-
- memset(&sa, 0, sizeof(sa));
- sa.sa_handler = signal_handler_noop;
- pa_assert_se(sigemptyset(&sa.sa_mask) == 0);
-
- pa_assert_se(sigaction(p->rtsig, &sa, NULL) == 0);
-
- /* We never reset the signal handler. Why should we? */
- }
-
-#endif
-}
-
static void rtpoll_rebuild(pa_rtpoll *p) {
struct pollfd *e, *t;
@@ -250,7 +162,6 @@ static void rtpoll_rebuild(pa_rtpoll *p) {
if (ra)
p->pollfd2 = pa_xrealloc(p->pollfd2, p->n_pollfd_alloc * sizeof(struct pollfd));
-
}
static void rtpoll_item_destroy(pa_rtpoll_item *i) {
@@ -279,11 +190,6 @@ void pa_rtpoll_free(pa_rtpoll *p) {
pa_xfree(p->pollfd);
pa_xfree(p->pollfd2);
-#ifdef HAVE_PPOLL
- if (p->timer != (timer_t) -1)
- timer_delete(p->timer);
-#endif
-
pa_xfree(p);
}
@@ -314,14 +220,13 @@ static void reset_all_revents(pa_rtpoll *p) {
}
}
-int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait) {
+int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait_op) {
pa_rtpoll_item *i;
int r = 0;
struct timeval timeout;
pa_assert(p);
pa_assert(!p->running);
- pa_assert(p->installed);
p->running = TRUE;
@@ -384,7 +289,7 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait) {
memset(&timeout, 0, sizeof(timeout));
/* Calculate timeout */
- if (wait && !p->quit && p->timer_enabled) {
+ if (wait_op && !p->quit && p->timer_enabled) {
struct timeval now;
pa_rtclock_get(&now);
@@ -394,7 +299,7 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait) {
#ifdef DEBUG_TIMING
{
- pa_usec_t now = pa_rtclock_usec();
+ pa_usec_t now = pa_rtclock_now();
p->awake = now - p->timestamp;
p->timestamp = now;
}
@@ -402,26 +307,19 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait) {
/* OK, now let's sleep */
#ifdef HAVE_PPOLL
-
-#ifdef __linux__
- if (!p->dont_use_ppoll)
-#endif
{
struct timespec ts;
ts.tv_sec = timeout.tv_sec;
ts.tv_nsec = timeout.tv_usec * 1000;
- r = ppoll(p->pollfd, p->n_pollfd_used, (!wait || p->quit || p->timer_enabled) ? &ts : NULL, p->rtsig < 0 ? NULL : &p->sigset_unblocked);
+ r = ppoll(p->pollfd, p->n_pollfd_used, (!wait_op || p->quit || p->timer_enabled) ? &ts : NULL, NULL);
}
-#ifdef __linux__
- else
-#endif
-
+#else
+ r = poll(p->pollfd, p->n_pollfd_used, (!wait_op || p->quit || p->timer_enabled) ? (int) ((timeout.tv_sec*1000) + (timeout.tv_usec / 1000)) : -1);
#endif
- r = poll(p->pollfd, p->n_pollfd_used, (!wait || p->quit || p->timer_enabled) ? (int) ((timeout.tv_sec*1000) + (timeout.tv_usec / 1000)) : -1);
#ifdef DEBUG_TIMING
{
- pa_usec_t now = pa_rtclock_usec();
+ pa_usec_t now = pa_rtclock_now();
p->slept = now - p->timestamp;
p->timestamp = now;
@@ -472,73 +370,11 @@ finish:
return r < 0 ? r : !p->quit;
}
-static void update_timer(pa_rtpoll *p) {
- pa_assert(p);
-
-#ifdef HAVE_PPOLL
-
-#ifdef __linux__
- if (p->dont_use_ppoll)
- return;
-#endif
-
- if (p->timer == (timer_t) -1) {
- struct sigevent se;
-
- memset(&se, 0, sizeof(se));
- se.sigev_notify = SIGEV_SIGNAL;
- se.sigev_signo = p->rtsig;
-
- if (timer_create(CLOCK_MONOTONIC, &se, &p->timer) < 0)
- if (timer_create(CLOCK_REALTIME, &se, &p->timer) < 0) {
- pa_log_warn("Failed to allocate POSIX timer: %s", pa_cstrerror(errno));
- p->timer = (timer_t) -1;
- }
- }
-
- if (p->timer != (timer_t) -1) {
- struct itimerspec its;
- struct timespec ts = { .tv_sec = 0, .tv_nsec = 0 };
- sigset_t ss;
-
- if (p->timer_armed) {
- /* First disarm timer */
- memset(&its, 0, sizeof(its));
- pa_assert_se(timer_settime(p->timer, TIMER_ABSTIME, &its, NULL) == 0);
-
- /* Remove a signal that might be waiting in the signal q */
- pa_assert_se(sigemptyset(&ss) == 0);
- pa_assert_se(sigaddset(&ss, p->rtsig) == 0);
- sigtimedwait(&ss, NULL, &ts);
- }
-
- /* And install the new timer */
- if (p->timer_enabled) {
- memset(&its, 0, sizeof(its));
-
- its.it_value.tv_sec = p->next_elapse.tv_sec;
- its.it_value.tv_nsec = p->next_elapse.tv_usec*1000;
-
- /* Make sure that 0,0 is not understood as
- * "disarming" */
- if (its.it_value.tv_sec == 0 && its.it_value.tv_nsec == 0)
- its.it_value.tv_nsec = 1;
- pa_assert_se(timer_settime(p->timer, TIMER_ABSTIME, &its, NULL) == 0);
- }
-
- p->timer_armed = p->timer_enabled;
- }
-
-#endif
-}
-
void pa_rtpoll_set_timer_absolute(pa_rtpoll *p, pa_usec_t usec) {
pa_assert(p);
pa_timeval_store(&p->next_elapse, usec);
p->timer_enabled = TRUE;
-
- update_timer(p);
}
void pa_rtpoll_set_timer_relative(pa_rtpoll *p, pa_usec_t usec) {
@@ -550,8 +386,6 @@ void pa_rtpoll_set_timer_relative(pa_rtpoll *p, pa_usec_t usec) {
pa_rtclock_get(&p->next_elapse);
pa_timeval_add(&p->next_elapse, usec);
p->timer_enabled = TRUE;
-
- update_timer(p);
}
void pa_rtpoll_set_timer_disabled(pa_rtpoll *p) {
@@ -559,8 +393,6 @@ void pa_rtpoll_set_timer_disabled(pa_rtpoll *p) {
memset(&p->next_elapse, 0, sizeof(p->next_elapse));
p->timer_enabled = FALSE;
-
- update_timer(p);
}
pa_rtpoll_item *pa_rtpoll_item_new(pa_rtpoll *p, pa_rtpoll_priority_t prio, unsigned n_fds) {
diff --git a/src/pulsecore/rtpoll.h b/src/pulsecore/rtpoll.h
index 08776ef0..d2d69cad 100644
--- a/src/pulsecore/rtpoll.h
+++ b/src/pulsecore/rtpoll.h
@@ -62,9 +62,6 @@ typedef enum pa_rtpoll_priority {
pa_rtpoll *pa_rtpoll_new(void);
void pa_rtpoll_free(pa_rtpoll *p);
-/* Install the rtpoll in the current thread */
-void pa_rtpoll_install(pa_rtpoll *p);
-
/* Sleep on the rtpoll until the time event, or any of the fd events
* is triggered. If "wait" is 0 we don't sleep but only update the
* struct pollfd. Returns negative on error, positive if the loop
diff --git a/src/pulsecore/rtsig.c b/src/pulsecore/rtsig.c
deleted file mode 100644
index 4cd6aa8f..00000000
--- a/src/pulsecore/rtsig.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/***
- This file is part of PulseAudio.
-
- Copyright 2004-2006 Lennart Poettering
- Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB
-
- PulseAudio is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- PulseAudio is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with PulseAudio; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- USA.
-***/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <signal.h>
-
-#include <pulsecore/macro.h>
-#include <pulsecore/flist.h>
-#include <pulsecore/once.h>
-#include <pulsecore/thread.h>
-#include <pulsecore/core-util.h>
-
-#include "rtsig.h"
-
-#ifdef SIGRTMIN
-
-static void _free_rtsig(void *p) {
- pa_rtsig_put(PA_PTR_TO_INT(p));
-}
-
-PA_STATIC_FLIST_DECLARE(rtsig_flist, pa_make_power_of_two((unsigned) (SIGRTMAX-SIGRTMIN+1)), NULL);
-PA_STATIC_TLS_DECLARE(rtsig_tls, _free_rtsig);
-
-static pa_atomic_t rtsig_current = PA_ATOMIC_INIT(-1);
-
-static int rtsig_start = -1, rtsig_end = -1;
-
-int pa_rtsig_get(void) {
- void *p;
- int sig;
-
- if ((p = pa_flist_pop(PA_STATIC_FLIST_GET(rtsig_flist))))
- return PA_PTR_TO_INT(p);
-
- sig = pa_atomic_dec(&rtsig_current);
-
- pa_assert(sig <= SIGRTMAX);
- pa_assert(sig <= rtsig_end);
-
- if (sig < rtsig_start) {
- pa_atomic_inc(&rtsig_current);
- return -1;
- }
-
- return sig;
-}
-
-int pa_rtsig_get_for_thread(void) {
- int sig;
- void *p;
-
- if ((p = PA_STATIC_TLS_GET(rtsig_tls)))
- return PA_PTR_TO_INT(p);
-
- if ((sig = pa_rtsig_get()) < 0)
- return -1;
-
- PA_STATIC_TLS_SET(rtsig_tls, PA_INT_TO_PTR(sig));
- return sig;
-}
-
-void pa_rtsig_put(int sig) {
- pa_assert(sig >= rtsig_start);
- pa_assert(sig <= rtsig_end);
-
- pa_assert_se(pa_flist_push(PA_STATIC_FLIST_GET(rtsig_flist), PA_INT_TO_PTR(sig)) >= 0);
-}
-
-void pa_rtsig_configure(int start, int end) {
- int s;
- sigset_t ss;
-
- pa_assert(pa_atomic_load(&rtsig_current) == -1);
-
- pa_assert(SIGRTMIN <= start);
- pa_assert(start <= end);
- pa_assert(end <= SIGRTMAX);
-
- rtsig_start = start;
- rtsig_end = end;
-
- sigemptyset(&ss);
-
- for (s = rtsig_start; s <= rtsig_end; s++)
- pa_assert_se(sigaddset(&ss, s) == 0);
-
- pa_assert(pthread_sigmask(SIG_BLOCK, &ss, NULL) == 0);
-
- /* We allocate starting from the end */
- pa_atomic_store(&rtsig_current, rtsig_end);
-}
-
-#else /* SIGRTMIN */
-
-int pa_rtsig_get(void) {
- return -1;
-}
-
-int pa_rtsig_get_for_thread(void) {
- return -1;
-}
-
-void pa_rtsig_put(int sig) {
-}
-
-void pa_rtsig_configure(int start, int end) {
-}
-
-#endif /* SIGRTMIN */
diff --git a/src/pulsecore/shm.c b/src/pulsecore/shm.c
index fab2b3b6..6e428426 100644
--- a/src/pulsecore/shm.c
+++ b/src/pulsecore/shm.c
@@ -39,6 +39,11 @@
#include <sys/mman.h>
#endif
+/* This is deprecated on glibc but is still used by FreeBSD */
+#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON)
+# define MAP_ANONYMOUS MAP_ANON
+#endif
+
#include <pulse/xmalloc.h>
#include <pulse/gccmacro.h>
diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c
index 47792293..d8f3c7d1 100644
--- a/src/pulsecore/sink.c
+++ b/src/pulsecore/sink.c
@@ -181,6 +181,7 @@ pa_sink* pa_sink_new(
s = pa_msgobject_new(pa_sink);
if (!(name = pa_namereg_register(core, data->name, PA_NAMEREG_SINK, s, data->namereg_fail))) {
+ pa_log_debug("Failed to register name %s.", data->name);
pa_xfree(s);
return NULL;
}
@@ -2383,30 +2384,35 @@ pa_bool_t pa_device_init_icon(pa_proplist *p, pa_bool_t is_sink) {
}
pa_bool_t pa_device_init_description(pa_proplist *p) {
- const char *s;
+ const char *s, *d = NULL, *k;
pa_assert(p);
if (pa_proplist_contains(p, PA_PROP_DEVICE_DESCRIPTION))
return TRUE;
if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_FORM_FACTOR)))
- if (pa_streq(s, "internal")) {
- pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, _("Internal Audio"));
- return TRUE;
- }
+ if (pa_streq(s, "internal"))
+ d = _("Internal Audio");
- if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_CLASS)))
- if (pa_streq(s, "modem")) {
- pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, _("Modem"));
- return TRUE;
- }
+ if (!d)
+ if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_CLASS)))
+ if (pa_streq(s, "modem"))
+ d = _("Modem");
- if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_PRODUCT_NAME))) {
- pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, s);
- return TRUE;
- }
+ if (!d)
+ d = pa_proplist_gets(p, PA_PROP_DEVICE_PRODUCT_NAME);
- return FALSE;
+ if (!d)
+ return FALSE;
+
+ k = pa_proplist_gets(p, PA_PROP_DEVICE_PROFILE_DESCRIPTION);
+
+ if (d && k)
+ pa_proplist_setf(p, PA_PROP_DEVICE_DESCRIPTION, _("%s %s"), d, k);
+ else if (d)
+ pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, d);
+
+ return TRUE;
}
pa_bool_t pa_device_init_intended_roles(pa_proplist *p) {
diff --git a/src/pulsecore/sndfile-util.c b/src/pulsecore/sndfile-util.c
index 032aefca..4f7f8bdb 100644
--- a/src/pulsecore/sndfile-util.c
+++ b/src/pulsecore/sndfile-util.c
@@ -113,7 +113,7 @@ int pa_sndfile_write_sample_spec(SF_INFO *sfi, pa_sample_spec *ss) {
break;
case PA_SAMPLE_S32LE:
- case PA_SAMPLE_S32RE:
+ case PA_SAMPLE_S32BE:
ss->format = PA_SAMPLE_S32NE;
sfi->format |= SF_FORMAT_PCM_32;
break;
diff --git a/src/pulsecore/socket-client.c b/src/pulsecore/socket-client.c
index dc23bff6..24535157 100644
--- a/src/pulsecore/socket-client.c
+++ b/src/pulsecore/socket-client.c
@@ -52,12 +52,14 @@
#include <asyncns.h>
#endif
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/xmalloc.h>
#include <pulsecore/winsock.h>
#include <pulsecore/core-error.h>
#include <pulsecore/socket-util.h>
+#include <pulsecore/core-rtclock.h>
#include <pulsecore/core-util.h>
#include <pulsecore/socket-util.h>
#include <pulsecore/log.h>
@@ -420,12 +422,11 @@ fail:
#endif
-static void timeout_cb(pa_mainloop_api *m, pa_time_event *e, const struct timeval *tv, void *userdata) {
+static void timeout_cb(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) {
pa_socket_client *c = userdata;
pa_assert(m);
pa_assert(e);
- pa_assert(tv);
pa_assert(c);
if (c->fd >= 0) {
@@ -437,17 +438,16 @@ static void timeout_cb(pa_mainloop_api *m, pa_time_event *e, const struct timeva
do_call(c);
}
-static void start_timeout(pa_socket_client *c) {
+static void start_timeout(pa_socket_client *c, pa_bool_t use_rtclock) {
struct timeval tv;
+
pa_assert(c);
pa_assert(!c->timeout_event);
- pa_gettimeofday(&tv);
- pa_timeval_add(&tv, CONNECT_TIMEOUT * PA_USEC_PER_SEC);
- c->timeout_event = c->mainloop->time_new(c->mainloop, &tv, timeout_cb, c);
+ c->timeout_event = c->mainloop->time_new(c->mainloop, pa_timeval_rtstore(&tv, pa_rtclock_now() + CONNECT_TIMEOUT * PA_USEC_PER_SEC, use_rtclock), timeout_cb, c);
}
-pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*name, uint16_t default_port) {
+pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, pa_bool_t use_rtclock, const char*name, uint16_t default_port) {
pa_socket_client *c = NULL;
pa_parsed_address a;
@@ -463,7 +463,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam
switch (a.type) {
case PA_PARSED_ADDRESS_UNIX:
if ((c = pa_socket_client_new_unix(m, a.path_or_host)))
- start_timeout(c);
+ start_timeout(c, use_rtclock);
break;
case PA_PARSED_ADDRESS_TCP4: /* Fallthrough */
@@ -499,7 +499,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam
c->asyncns_io_event = m->io_new(m, asyncns_fd(c->asyncns), PA_IO_EVENT_INPUT, asyncns_cb, c);
c->asyncns_query = asyncns_getaddrinfo(c->asyncns, a.path_or_host, port, &hints);
pa_assert(c->asyncns_query);
- start_timeout(c);
+ start_timeout(c, use_rtclock);
}
#elif defined(HAVE_GETADDRINFO)
{
@@ -513,7 +513,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam
if (res->ai_addr) {
if ((c = pa_socket_client_new_sockaddr(m, res->ai_addr, res->ai_addrlen)))
- start_timeout(c);
+ start_timeout(c, use_rtclock);
}
freeaddrinfo(res);
@@ -546,7 +546,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam
s.sin_port = htons(a.port);
if ((c = pa_socket_client_new_sockaddr(m, (struct sockaddr*)&s, sizeof(s))))
- start_timeout(c);
+ start_timeout(c, use_rtclock);
}
#endif /* HAVE_LIBASYNCNS */
}
diff --git a/src/pulsecore/socket-client.h b/src/pulsecore/socket-client.h
index ed36400c..b896afa9 100644
--- a/src/pulsecore/socket-client.h
+++ b/src/pulsecore/socket-client.h
@@ -40,7 +40,7 @@ pa_socket_client* pa_socket_client_new_ipv6(pa_mainloop_api *m, uint8_t address[
#endif
pa_socket_client* pa_socket_client_new_unix(pa_mainloop_api *m, const char *filename);
pa_socket_client* pa_socket_client_new_sockaddr(pa_mainloop_api *m, const struct sockaddr *sa, size_t salen);
-pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char *a, uint16_t default_port);
+pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, pa_bool_t use_rtclock, const char *a, uint16_t default_port);
pa_socket_client* pa_socket_client_ref(pa_socket_client *c);
void pa_socket_client_unref(pa_socket_client *c);
diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c
index 1e431160..74f38bc5 100644
--- a/src/pulsecore/source.c
+++ b/src/pulsecore/source.c
@@ -149,6 +149,7 @@ pa_source* pa_source_new(
s = pa_msgobject_new(pa_source);
if (!(name = pa_namereg_register(core, data->name, PA_NAMEREG_SOURCE, s, data->namereg_fail))) {
+ pa_log_debug("Failed to register name %s.", data->name);
pa_xfree(s);
return NULL;
}
diff --git a/src/tests/ipacl-test.c b/src/tests/ipacl-test.c
index f89665cd..57b70685 100644
--- a/src/tests/ipacl-test.c
+++ b/src/tests/ipacl-test.c
@@ -91,8 +91,10 @@ int main(int argc, char *argv[]) {
close(fd);
#ifdef HAVE_IPV6
- fd = socket(PF_INET6, SOCK_STREAM, 0);
- assert(fd >= 0);
+ if ( (fd = socket(PF_INET6, SOCK_STREAM, 0)) < 0 ) {
+ printf("Unable to open IPv6 socket, IPv6 tests ignored");
+ return 0;
+ }
memset(&sa6, 0, sizeof(sa6));
sa6.sin6_family = AF_INET6;
diff --git a/src/tests/mainloop-test.c b/src/tests/mainloop-test.c
index 4ca63513..3ec6d115 100644
--- a/src/tests/mainloop-test.c
+++ b/src/tests/mainloop-test.c
@@ -26,10 +26,12 @@
#include <sys/time.h>
#include <assert.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/gccmacro.h>
#include <pulsecore/core-util.h>
+#include <pulsecore/core-rtclock.h>
#ifdef GLIB_MAIN_LOOP
@@ -99,9 +101,7 @@ int main(int argc, char *argv[]) {
de = a->defer_new(a, dcb, NULL);
assert(de);
- pa_gettimeofday(&tv);
- tv.tv_sec += 10;
- te = a->time_new(a, &tv, tcb, NULL);
+ te = a->time_new(a, pa_timeval_rtstore(&tv, pa_rtclock_now() + 2 * PA_USEC_PER_SEC, TRUE), tcb, NULL);
#if defined(GLIB_MAIN_LOOP)
g_main_loop_run(glib_main_loop);
diff --git a/src/tests/mix-test.c b/src/tests/mix-test.c
index ac4b57b5..3f65cbac 100644
--- a/src/tests/mix-test.c
+++ b/src/tests/mix-test.c
@@ -79,6 +79,18 @@ static void dump_block(const pa_sample_spec *ss, const pa_memchunk *chunk) {
break;
}
+ case PA_SAMPLE_S24NE:
+ case PA_SAMPLE_S24RE: {
+ uint8_t *u = d;
+
+ for (i = 0; i < chunk->length / pa_frame_size(ss); i++) {
+ printf("0x%02x%02x%02xx ", *u, *(u+1), *(u+2));
+ u += 3;
+ }
+
+ break;
+ }
+
case PA_SAMPLE_FLOAT32NE:
case PA_SAMPLE_FLOAT32RE: {
float *u = d;
@@ -113,73 +125,66 @@ static pa_memblock* generate_block(pa_mempool *pool, const pa_sample_spec *ss) {
case PA_SAMPLE_U8:
case PA_SAMPLE_ULAW:
case PA_SAMPLE_ALAW: {
- uint8_t *u = d;
+ static const uint8_t u8_samples[] =
+ { 0x00, 0xFF, 0x7F, 0x80, 0x9f,
+ 0x3f, 0x01, 0xF0, 0x20, 0x21 };
- u[0] = 0x00;
- u[1] = 0xFF;
- u[2] = 0x7F;
- u[3] = 0x80;
- u[4] = 0x9f;
- u[5] = 0x3f;
- u[6] = 0x1;
- u[7] = 0xF0;
- u[8] = 0x20;
- u[9] = 0x21;
+ memcpy(d, &u8_samples[0], sizeof(u8_samples));
break;
}
case PA_SAMPLE_S16NE:
case PA_SAMPLE_S16RE: {
- uint16_t *u = d;
+ static const uint16_t u16_samples[] =
+ { 0x0000, 0xFFFF, 0x7FFF, 0x8000, 0x9fff,
+ 0x3fff, 0x0001, 0xF000, 0x0020, 0x0021 };
- u[0] = 0x0000;
- u[1] = 0xFFFF;
- u[2] = 0x7FFF;
- u[3] = 0x8000;
- u[4] = 0x9fff;
- u[5] = 0x3fff;
- u[6] = 0x1;
- u[7] = 0xF000;
- u[8] = 0x20;
- u[9] = 0x21;
+ memcpy(d, &u16_samples[0], sizeof(u16_samples));
break;
}
case PA_SAMPLE_S32NE:
case PA_SAMPLE_S32RE: {
- uint32_t *u = d;
+ static const uint32_t u32_samples[] =
+ { 0x00000001, 0xFFFF0002, 0x7FFF0003, 0x80000004, 0x9fff0005,
+ 0x3fff0006, 0x00010007, 0xF0000008, 0x00200009, 0x0021000A };
+
+ memcpy(d, &u32_samples[0], sizeof(u32_samples));
+ break;
+ }
- u[0] = 0x00000001;
- u[1] = 0xFFFF0002;
- u[2] = 0x7FFF0003;
- u[3] = 0x80000004;
- u[4] = 0x9fff0005;
- u[5] = 0x3fff0006;
- u[6] = 0x10007;
- u[7] = 0xF0000008;
- u[8] = 0x200009;
- u[9] = 0x21000A;
+ case PA_SAMPLE_S24NE:
+ case PA_SAMPLE_S24RE: {
+ /* Need to be on a byte array because they are not aligned */
+ static const uint8_t u24_samples[] =
+ { 0x00, 0x00, 0x01,
+ 0xFF, 0xFF, 0x02,
+ 0x7F, 0xFF, 0x03,
+ 0x80, 0x00, 0x04,
+ 0x9f, 0xff, 0x05,
+ 0x3f, 0xff, 0x06,
+ 0x01, 0x00, 0x07,
+ 0xF0, 0x00, 0x08,
+ 0x20, 0x00, 0x09,
+ 0x21, 0x00, 0x0A };
+
+ memcpy(d, &u24_samples[0], sizeof(u24_samples));
break;
}
case PA_SAMPLE_FLOAT32NE:
case PA_SAMPLE_FLOAT32RE: {
float *u = d;
+ static const float float_samples[] =
+ { 0.0f, -1.0f, 1.0f, 4711.0f, 0.222f,
+ 0.33f, -.3f, 99.0f, -0.555f, -.123f };
- u[0] = 0.0f;
- u[1] = -1.0f;
- u[2] = 1.0f;
- u[3] = 4711.0f;
- u[4] = 0.222f;
- u[5] = 0.33f;
- u[6] = -.3f;
- u[7] = 99.0f;
- u[8] = -0.555f;
- u[9] = -.123f;
-
- if (ss->format == PA_SAMPLE_FLOAT32RE)
+ if (ss->format == PA_SAMPLE_FLOAT32RE) {
for (i = 0; i < 10; i++)
- u[i] = swap_float(u[i]);
+ u[i] = swap_float(float_samples[i]);
+ } else {
+ memcpy(d, &float_samples[0], sizeof(float_samples));
+ }
break;
}
diff --git a/src/tests/rtpoll-test.c b/src/tests/rtpoll-test.c
index 4ac96446..1706cdfa 100644
--- a/src/tests/rtpoll-test.c
+++ b/src/tests/rtpoll-test.c
@@ -26,7 +26,6 @@
#include <pulsecore/log.h>
#include <pulsecore/rtpoll.h>
-#include <pulsecore/rtsig.h>
static int before(pa_rtpoll_item *i) {
pa_log("before");
@@ -47,10 +46,6 @@ int main(int argc, char *argv[]) {
pa_rtpoll_item *i, *w;
struct pollfd *pollfd;
-#ifdef SIGRTMIN
- pa_rtsig_configure(SIGRTMIN+10, SIGRTMAX);
-#endif
-
p = pa_rtpoll_new();
i = pa_rtpoll_item_new(p, PA_RTPOLL_EARLY, 1);
@@ -64,7 +59,6 @@ int main(int argc, char *argv[]) {
w = pa_rtpoll_item_new(p, PA_RTPOLL_NORMAL, 0);
pa_rtpoll_item_set_before_callback(w, worker);
- pa_rtpoll_install(p);
pa_rtpoll_set_timer_relative(p, 10000000); /* 10 s */
pa_rtpoll_run(p, 1);
diff --git a/src/tests/rtstutter.c b/src/tests/rtstutter.c
index a4b5d596..c93fee93 100644
--- a/src/tests/rtstutter.c
+++ b/src/tests/rtstutter.c
@@ -67,7 +67,9 @@ static void* work(void *p) {
pa_log_notice("CPU%i: Sleeping for 1s", PA_PTR_TO_UINT(p));
sleep(1);
+#ifdef CLOCK_REALTIME
pa_assert_se(clock_gettime(CLOCK_REALTIME, &end) == 0);
+#endif
nsec =
(uint64_t) ((((double) rand())*(double)(msec_upper-msec_lower)*PA_NSEC_PER_MSEC)/RAND_MAX) +
@@ -84,7 +86,9 @@ static void* work(void *p) {
}
do {
+#ifdef CLOCK_REALTIME
pa_assert_se(clock_gettime(CLOCK_REALTIME, &now) == 0);
+#endif
} while (now.tv_sec < end.tv_sec ||
(now.tv_sec == end.tv_sec && now.tv_nsec < end.tv_nsec));
}
diff --git a/src/tests/thread-mainloop-test.c b/src/tests/thread-mainloop-test.c
index ad89414f..4696fb01 100644
--- a/src/tests/thread-mainloop-test.c
+++ b/src/tests/thread-mainloop-test.c
@@ -25,14 +25,16 @@
#include <unistd.h>
#include <stdio.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/util.h>
#include <pulse/thread-mainloop.h>
#include <pulse/gccmacro.h>
#include <pulsecore/macro.h>
+#include <pulsecore/core-rtclock.h>
-static void tcb(pa_mainloop_api*a, pa_time_event *e, const struct timeval *tv, void *userdata) {
+static void tcb(pa_mainloop_api *a, pa_time_event *e, const struct timeval *tv, void *userdata) {
pa_assert_se(pa_threaded_mainloop_in_thread(userdata));
fprintf(stderr, "TIME EVENT START\n");
pa_threaded_mainloop_signal(userdata, 1);
@@ -53,9 +55,7 @@ int main(int argc, char *argv[]) {
pa_assert_se(!pa_threaded_mainloop_in_thread(m));
- pa_gettimeofday(&tv);
- tv.tv_sec += 5;
- a->time_new(a, &tv, tcb, m);
+ a->time_new(a, pa_timeval_rtstore(&tv, pa_rtclock_now() + 5 * PA_USEC_PER_SEC, TRUE), tcb, m);
fprintf(stderr, "waiting 5s (signal)\n");
pa_threaded_mainloop_wait(m);
diff --git a/src/utils/pabrowse.c b/src/utils/pabrowse.c
index a6487b88..a349e414 100644
--- a/src/utils/pabrowse.c
+++ b/src/utils/pabrowse.c
@@ -27,8 +27,9 @@
#include <assert.h>
#include <signal.h>
-#include <pulse/pulseaudio.h>
#include <pulse/browser.h>
+#include <pulse/pulseaudio.h>
+#include <pulse/rtclock.h>
#include <pulsecore/core-util.h>
diff --git a/src/utils/pacat.c b/src/utils/pacat.c
index 0b6df3d8..f00a32eb 100644
--- a/src/utils/pacat.c
+++ b/src/utils/pacat.c
@@ -39,6 +39,7 @@
#include <pulse/i18n.h>
#include <pulse/pulseaudio.h>
+#include <pulse/rtclock.h>
#include <pulsecore/macro.h>
#include <pulsecore/core-util.h>
@@ -583,9 +584,7 @@ static void sigusr1_signal_callback(pa_mainloop_api*m, pa_signal_event *e, int s
pa_operation_unref(pa_stream_update_timing_info(stream, stream_update_timing_callback, NULL));
}
-static void time_event_callback(pa_mainloop_api*m, pa_time_event *e, const struct timeval *tv, void *userdata) {
- struct timeval next;
-
+static void time_event_callback(pa_mainloop_api *m, pa_time_event *e, const struct timeval *t, void *userdata) {
if (stream && pa_stream_get_state(stream) == PA_STREAM_READY) {
pa_operation *o;
if (!(o = pa_stream_update_timing_info(stream, stream_update_timing_callback, NULL)))
@@ -594,10 +593,7 @@ static void time_event_callback(pa_mainloop_api*m, pa_time_event *e, const struc
pa_operation_unref(o);
}
- pa_gettimeofday(&next);
- pa_timeval_add(&next, TIME_EVENT_USEC);
-
- m->time_restart(e, &next);
+ pa_context_rttime_restart(context, e, pa_rtclock_now() + TIME_EVENT_USEC);
}
static void help(const char *argv0) {
@@ -1068,13 +1064,8 @@ int main(int argc, char *argv[]) {
}
if (verbose) {
- struct timeval tv;
-
- pa_gettimeofday(&tv);
- pa_timeval_add(&tv, TIME_EVENT_USEC);
-
- if (!(time_event = mainloop_api->time_new(mainloop_api, &tv, time_event_callback, NULL))) {
- pa_log(_("time_new() failed.\n"));
+ if (!(time_event = pa_context_rttime_new(context, pa_rtclock_now() + TIME_EVENT_USEC, time_event_callback, NULL))) {
+ pa_log(_("pa_context_rttime_new() failed.\n"));
goto quit;
}
}