diff options
154 files changed, 9237 insertions, 7105 deletions
@@ -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) -]) - @@ -9,6 +9,7 @@ es fi fr gu +hi it kn mr @@ -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" @@ -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 "" @@ -2420,4 +2420,3 @@ msgstr "Servidor de Sonido PulseAudio" #~ msgstr "destino" #~ msgid "source" #~ msgstr "fuente" - @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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 "" @@ -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" @@ -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 "" @@ -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" @@ -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" @@ -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, µ) != 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; } } |