From: Tanu Kaskinen Date: Sun, 16 Aug 2009 18:25:48 +0000 (+0300) Subject: Merge branch 'master' of git://0pointer.de/pulseaudio into dbus-work X-Git-Url: https://code.delx.au/pulseaudio/commitdiff_plain/bcaba0b1b43d6a1b32aadfa98860f40b2c93e136?hp=2bb3eef414f80189cf6af6cd66c519630e4c0a43 Merge branch 'master' of git://0pointer.de/pulseaudio into dbus-work Conflicts: src/Makefile.am src/daemon/daemon-conf.c src/daemon/daemon.conf.in src/modules/module-stream-restore.c src/pulse/client-conf.c src/pulsecore/namereg.c --- diff --git a/Makefile.am b/Makefile.am index 4d45a07d..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 = diff --git a/bootstrap.sh b/bootstrap.sh index d5025db6..970e884e 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -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 "$@" + CFLAGS="$CFLAGS -g -O0" ./configure --sysconfdir=/etc --localstatedir=/var --enable-force-preopen "$@" make clean fi fi diff --git a/configure.ac b/configure.ac index 7e83a9c9..735b406f 100644 --- a/configure.ac +++ b/configure.ac @@ -44,11 +44,11 @@ AC_SUBST(PA_PROTOCOL_VERSION, 16) # The stable ABI for client applications, for the version info x:y:z # always will hold y=z -AC_SUBST(LIBPULSE_VERSION_INFO, [8:0:8]) +AC_SUBST(LIBPULSE_VERSION_INFO, [9:0:9]) # A simplified, synchronous, ABI-stable interface for client # applications, for the version info x:y:z always will hold y=z -AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:2:0]) +AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:3:0]) # The ABI-stable network browsing interface for client applications, # for the version info x:y:z always will hold y=z @@ -73,6 +73,10 @@ 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]) @@ -112,6 +116,21 @@ 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. @@ -387,6 +406,7 @@ AC_SEARCH_LIBS([timer_create], [rt]) # BSD AC_SEARCH_LIBS([connect], [socket]) +AC_SEARCH_LIBS([backtrace], [execinfo]) # Non-standard @@ -605,10 +625,11 @@ AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1]) HAVE_TDB=0 HAVE_GDBM=0 +HAVE_SIMPLEDB=0 AC_ARG_WITH( [database], - AS_HELP_STRING([--with-database=auto|tdb|gdbm],[Choose database backend.]),[],[with_database=auto]) + AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto]) if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then PKG_CHECK_MODULES(TDB, [ tdb ], @@ -638,7 +659,12 @@ if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then fi fi -if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1; then +if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then + HAVE_SIMPLEDB=1 + with_database=simple +fi + +if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then AC_MSG_ERROR([*** missing database backend]) fi @@ -650,6 +676,10 @@ if test "x${HAVE_GDBM}" = x1 ; then AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]) fi +if test "x${HAVE_SIMPLEDB}" = x1 ; then + AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]) +fi + AC_SUBST(TDB_CFLAGS) AC_SUBST(TDB_LIBS) AC_SUBST(HAVE_TDB) @@ -660,28 +690,47 @@ AC_SUBST(GDBM_LIBS) AC_SUBST(HAVE_GDBM) AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1]) +AC_SUBST(HAVE_SIMPLEDB) +AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1]) + #### OSS support (optional) #### -AC_ARG_ENABLE([oss], - AS_HELP_STRING([--disable-oss],[Disable optional OSS support]), +AC_ARG_ENABLE([oss-output], + AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]), + [ + case "${enableval}" in + yes) oss_output=yes ;; + no) oss_output=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;; + esac + ], + [oss_output=auto]) + +AC_ARG_ENABLE([oss-wrapper], + AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]), [ case "${enableval}" in - yes) oss=yes ;; - no) oss=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss) ;; + yes) oss_wrapper=yes ;; + no) oss_wrapper=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;; esac ], - [oss=auto]) + [oss_wrapper=auto]) -if test "x${oss}" != xno ; then +if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then AC_CHECK_HEADERS([sys/soundcard.h], [ + if test "x${oss_output}" != "xno"; then + AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]) + fi + if test "x${oss_wrapper}" != "xno"; then + AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]) + fi HAVE_OSS=1 - AC_DEFINE([HAVE_OSS], 1, [Have OSS?]) ], [ HAVE_OSS=0 - if test "x$oss" = xyes ; then + if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then AC_MSG_ERROR([*** OSS support not found]) fi ]) @@ -690,8 +739,8 @@ else fi AC_SUBST(HAVE_OSS) -AM_CONDITIONAL([HAVE_OSS], [test "x$HAVE_OSS" = x1]) - +AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"]) +AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"]) #### ALSA support (optional) #### @@ -1079,7 +1128,27 @@ AC_SUBST(UDEV_LIBS) AC_SUBST(HAVE_UDEV) AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1]) -AC_DEFINE([LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE], 1, [I know the API is subject to change.]) +#### HAL compat support (optional) #### + +AC_ARG_ENABLE([hal-compat], + AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]), + [ + case "${enableval}" in + yes) halcompat=yes ;; + no) halcompat=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;; + esac + ], + [halcompat=auto]) +if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then + HAVE_HAL_COMPAT=1 + AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]) +else + HAVE_HAL_COMPAT=0 +fi + +AC_SUBST(HAVE_HAL_COMPAT) +AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1]) #### BlueZ support (optional) #### @@ -1338,9 +1407,15 @@ if test "x$HAVE_X11" = "x1" ; then ENABLE_X11=yes fi -ENABLE_OSS=no +ENABLE_OSS_OUTPUT=no +ENABLE_OSS_WRAPPER=no if test "x$HAVE_OSS" = "x1" ; then - ENABLE_OSS=yes + if test "x$enable_oss_output" != "xno"; then + ENABLE_OSS_OUTPUT=yes + fi + if test "x$enable_oss_wrapper" != "xno"; then + ENABLE_OSS_WRAPPER=yes + fi fi ENABLE_ALSA=no @@ -1398,6 +1473,11 @@ if test "x$HAVE_UDEV" = "x1" ; then ENABLE_UDEV=yes fi +ENABLE_HAL_COMPAT=no +if test "x$HAVE_HAL_COMPAT" = "x1" ; then + ENABLE_HAL_COMPAT=yes +fi + ENABLE_TCPWRAP=no if test "x${LIBWRAP_LIBS}" != x ; then ENABLE_TCPWRAP=yes @@ -1423,6 +1503,11 @@ if test "x${HAVE_TDB}" = "x1" ; then ENABLE_TDB=yes fi +ENABLE_SIMPLEDB=no +if test "x${HAVE_SIMPLEDB}" = "x1" ; then + ENABLE_SIMPLEDB=yes +fi + ENABLE_OPENSSL=no if test "x${HAVE_OPENSSL}" = "x1" ; then ENABLE_OPENSSL=yes @@ -1451,7 +1536,8 @@ echo " CFLAGS: ${CFLAGS} Have X11: ${ENABLE_X11} - Enable OSS: ${ENABLE_OSS} + Enable OSS Output: ${ENABLE_OSS_OUTPUT} + Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER} Enable Alsa: ${ENABLE_ALSA} Enable Solaris: ${ENABLE_SOLARIS} Enable GLib 2.0: ${ENABLE_GLIB20} @@ -1463,6 +1549,7 @@ echo " Enable LIRC: ${ENABLE_LIRC} Enable HAL: ${ENABLE_HAL} Enable udev: ${ENABLE_UDEV} + Enable HAL->udev compat: ${ENABLE_HAL_COMPAT} Enable BlueZ: ${ENABLE_BLUEZ} Enable TCP Wrappers: ${ENABLE_TCPWRAP} Enable libsamplerate: ${ENABLE_LIBSAMPLERATE} @@ -1470,6 +1557,7 @@ echo " Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL} Enable tdb: ${ENABLE_TDB} Enable gdbm: ${ENABLE_GDBM} + Enable simple database: ${ENABLE_SIMPLEDB} System User: ${PA_SYSTEM_USER} System Group: ${PA_SYSTEM_GROUP} diff --git a/man/pulse-client.conf.5.xml.in b/man/pulse-client.conf.5.xml.in index 26e38908..46cc8450 100644 --- a/man/pulse-client.conf.5.xml.in +++ b/man/pulse-client.conf.5.xml.in @@ -92,9 +92,9 @@ USA. @@ -204,7 +205,7 @@ USA. real-time. The controlling thread is left a normally scheduled thread. Thus enabling the high-priority option is orthogonal. See for more - information. Takes a boolean argument, defaults to "no". The + information. Takes a boolean argument, defaults to "yes". The --realtime command line option takes precedence.

@@ -230,7 +231,7 @@ USA. diff --git a/po/POTFILES.in b/po/POTFILES.in index 534feb15..a6172442 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -55,7 +55,6 @@ src/pulsecore/queue.c src/pulsecore/core.c #src/pulsecore/shmasyncq.c src/pulsecore/x11wrap.c -src/pulsecore/rtclock.c src/pulsecore/ioline.c src/pulsecore/asyncq.c src/pulsecore/mutex-posix.c @@ -99,7 +98,6 @@ src/pulsecore/strlist.c src/pulsecore/msgobject.c src/pulsecore/mutex-win32.c src/pulsecore/dynarray.c -src/pulsecore/rtsig.c src/pulsecore/once.c src/pulsecore/source.c src/pulsecore/memchunk.c @@ -149,14 +147,12 @@ src/pulsecore/protocol-http.c src/pulsecore/semaphore-win32.c src/daemon/cpulimit.c src/daemon/ltdl-bind-now.c -src/daemon/polkit.c src/daemon/main.c src/daemon/cmdline.c src/daemon/dumpmodules.c src/daemon/daemon-conf.c src/daemon/caps.c src/daemon/pulseaudio.desktop.in -src/daemon/org.pulseaudio.policy.in src/pulse/channelmap.c src/pulse/error.c src/pulse/proplist.c diff --git a/po/as.po b/po/as.po index b2468a43..e972d827 100644 --- a/po/as.po +++ b/po/as.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio.as\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-08 12:35+0530\n" "Last-Translator: Amitakhya Phukan \n" "Language-Team: Assamese \n" @@ -16,7 +16,12 @@ msgstr "" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -28,7 +33,7 @@ msgstr "" "অতি সম্ভৱ এইটো ALSA চালক '%s' ৰ এটা বাগ । অনুগ্ৰহ কৰি এই সমস্যা ALSA বিকাশকক " "জনাওক ।" -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -40,7 +45,7 @@ msgstr "" "অতি সম্ভৱ এইটো ALSA চালক '%s' ৰ এটা বাগ । অনুগ্ৰহ কৰি এই সমস্যা ALSA বিকাশকক " "জনাওক ।" -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -65,7 +70,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "আভ্যন্তৰীণ অ'ডিঅ'" @@ -85,371 +90,243 @@ msgstr "নতুন dl loader বিতৰণ কৰিবলৈ বিফল msgid "Failed to add bind-now-loader." msgstr "bind-now-loader যোগ কৰিবলৈ বিফল ।" -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "প্ৰণালীৰ bus লৈ সংযোগ কৰিব পৰা ন'গ'ল: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "PID ৰ পৰা caller পোৱা ন'গ'ল: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "caller বস্তুত UID নিৰ্ধাৰণ কৰিব পৰা ন'গ'ল ।" - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK অধিবেশন পাবলৈ বিফল ।" - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "অধিবেশনৰ বস্তুত UID নিৰ্ধাৰণ কৰিব নোৱাৰি ।" - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "PolKitAction বিতৰণ কৰিব নোৱাৰি ।" - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "action_id নিৰ্ধাৰণ কৰিব নোৱাৰি ।" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "PolKitContext বিতৰণ কৰিব নোৱাৰি ।" - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "PolKitContext আৰম্ভ কৰিব নোৱাৰি: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "caller ৰ অনুমতি আছে নে নাই নিৰ্ধাৰণ কৰিব নোৱাৰি: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "auth পাব নোৱাৰি: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit এ '%s' উত্তৰ দিলে" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "চিগ্নেল %s পোৱা গ'ল ।" -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "প্ৰস্থান কৰা হৈছে ।" -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "ব্যৱহাৰকৰ্তা '%s' পোৱা ন'গ'ল ।" -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "'%s' সমষ্টি পোৱা ন'গ'ল ।" -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "ব্যৱহাৰকৰ্তা '%s' (UID %lu) আৰু সমষ্টি '%s' (GID %lu) পোৱা গ'ল ।" -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "ব্যৱহাৰকৰ্তা '%s' আৰু সমষ্টি '%s' ৰ GID অমিল ।" -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "ব্যৱহাৰকৰ্তা '%s' ৰ ঘৰৰ পঞ্জিকা '%s' নহয়, আওকাণ কৰা হৈছে ।" -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' সৃষ্টি কৰিবলৈ বিফল: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "সমষ্টিৰ তালিকা সলনি কৰিবলৈ ব্যৰ্থ: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GID সলনি কৰিবলৈ ব্যৰ্থ: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UID সলনি কৰিবলৈ ব্যৰ্থ: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "ৰূটৰ অধিকাৰ সফলভাবে এৰোৱা গ'ল ।" -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "এই স্থাপত্যত প্ৰণালী ব্যাপক মোড অসমৰ্থিত ।" -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) বিফল: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "আদেশ শাৰী বিশ্লেষণ কৰিবলৈ বিফল ।" -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "আমি '%s' সমষ্টিত, য'ত high-priority scheduling ৰ অনুমতি আছে ।" - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "আমি '%s' সমষ্টিত, য'ত real-time scheduling ৰ অনুমতি আছে ।" - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit এ আমাক acquire-high-priority অধিকাৰ দিয়ে ।" - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit এ acquire-high-priority অধিকাৰ নিদিয়ে ।" - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit এ আমাক acquire-real-time অধিকাৰ দিয়ে ।" - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit এ acquire-real-time অধিকাৰ নিদিয়ে ।" - -#: ../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." -msgstr "" -"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." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"বিন্যাস দ্বাৰা high-priority scheduling ৰ সক্ৰিয় হ'লেও নিয়মনীতি দ্বাৰা সেইটো " -"অনুমোদিত নহয় ।" - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO সফলতাৰে বৃদ্ধি কৰা হৈছে" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO বিফল: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "CAP_NICE বৰ্জন কৰা হৈছে" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"বিন্যাস দ্বাৰা real-time scheduling ৰ সক্ৰিয় হ'লেও নিয়মনীতি দ্বাৰা সেইটো অনুমোদিত " -"নহয় ।" - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "ডেমন নাই চলা" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "PID %u ৰূপে ডেমন চলিছে" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "ডেমন kill কৰিবলৈ ব্যৰ্থ: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "" "root পৰিচয়ে এই প্ৰোগ্ৰাম সঞ্চালিত হোৱা উচিত নহয় (ন'হ'লে --system উল্লিখিত হয়) ।" -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Root-ৰ অধিকাৰ আৱশ্যক ।" -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "প্ৰণালী চানেকিৰ ক্ষেত্ৰত --start সমৰ্থিত নহয় ।" -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "প্ৰণালী মোডত চলিছে, কিন্তু --disallow-exit নিৰ্ধাৰিত নহয়!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "প্ৰণালী মোডত চলিছে, কিন্তু --disallow-module-loading নিৰ্ধাৰিত নহয়!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "প্ৰণালী মোডত চলিছে, SHM মোড বলপূৰ্বক নিষ্ক্ৰিয় কৰা হৈছে!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "প্ৰণালী মোডত চলিছে, কাম নকৰা সময়ৰ পৰা প্ৰস্থান কৰা বলপূৰ্বক নিষ্ক্ৰিয় কৰা হৈছে!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "stdio প্ৰাপ্ত কৰিবলৈ ব্যৰ্থ ।" -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "pipe বিফল: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() বিফল: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() বিফল: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "ডেমন আৰম্ভ কৰিবলৈ বিফল ।" -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "সফলতাৰে ডেমন আৰম্ভ কৰা হৈছে ।" -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "এইটো PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "সঙ্কলনৰ গৃহস্থ: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "সঙ্কলনৰ CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "গৃহস্থত চলোৱা হৈছে: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPU পোৱা গৈছে ।" -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "পেজৰ মাপ %lu bytes" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind সমৰ্থনৰ সৈতে সঙ্কলন কৰা হৈছে: হয়" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Valgrind সমৰ্থনৰ সৈতে সঙ্কলন কৰা হৈছে: নহয়" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind মোডত চলিছে: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Optimized build: হয়" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Optimized build: নহয়" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG ব্যাখ্যা কৰা হৈছে, সকলো asserts নিষ্ক্ৰিয় কৰা হৈছে ।" -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH ব্যাখ্যা কৰা হৈছে, অকল fast path asserts নিষ্ক্ৰিয় কৰা হৈছে ।" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "সকলো asserts সক্ৰিয় কৰা হৈছে ।" -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "যন্ত্ৰ ID প্ৰাপ্ত কৰিবলৈ ব্যৰ্থ" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "যন্ত্ৰ ID হ'ল %s ।" -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "যন্ত্ৰ ID হ'ল %s ।" -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "ৰান-টাইম পঞ্জিকা %s ব্যৱহাৰ কৰা হৈছে ।" -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "অৱস্থাসূচক পঞ্জিকা %s ব্যৱহাৰ কৰা হৈছে ।" -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "প্ৰণালী মোডত চলিছে: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -459,15 +336,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() ব্যৰ্থ ।" -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "নতুন high-resolution timers পোৱা হয়! অভিনন্দন!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -475,28 +352,28 @@ msgstr "" "শ্ৰীমান, আপোনাৰ কাৰ্ণেল পূৰণি! high-resolution timer সক্ৰিয় থকা Linux ক আজি " "উপদেশ দিয়া হয়!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() ব্যৰ্থ ।" -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "ডেমন আৰম্ভ কৰিবলৈ ব্যৰ্থ ।" -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" "তুলি লোৱা মডিউল নোহোৱাকে ডেমন আৰম্ভ কৰা হৈছে, কোনো কাম সঞ্চালন কৰা সম্ভৱ নহয় ।" -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "ডেমন আৰম্ভ কৰা সম্পূৰ্ণ ।" -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "ডেমন বন্ধ কৰাৰ প্ৰক্ৰিয়া আৰম্ভ কৰা হৈছে ।" -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "ডেমন বন্ধ কৰা হৈছে ।" @@ -831,14 +708,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### চিহ্নিত বিন্যাস নথিপত্ৰৰ পৰা পঢ়া হ'ব: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "root-ৰ অধিকাৰ বৰ্জন কৰা হৈছে ।" -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "CAP_SYS_NICE লৈ কাৰ্য্যক্ষমতা সফলভাবে সীমিত কৰা হ'ল ।" - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio শব্দ ব্যৱস্থা" @@ -847,24 +720,6 @@ msgstr "PulseAudio শব্দ ব্যৱস্থা" msgid "Start the PulseAudio Sound System" msgstr "PulseAudio শব্দ ব্যৱস্থা আৰম্ভ কৰা হ'ব" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "PulseAudio ডেমনৰ কাৰণে High-priority scheduling (ঋণাত্মক Unix nice স্তৰ)" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "PulseAudio ডেমনৰ কাৰণে Real-time scheduling" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "প্ৰণালীৰ নীতিয়ে PulseAudio ক high-priority scheduling পাবলৈ নিদিয়ে ।" - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "প্ৰণালীৰ নীতিয়ে PulseAudio ক real-time scheduling পাবলৈ নিদিয়ে ।" - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "মোনো" @@ -1237,183 +1092,187 @@ msgstr "কুকিৰ তথ্য বিশ্লেষণ কৰিবলৈ msgid "Failed to open configuration file '%s': %s" msgstr "বিন্যাস নথিপত্ৰ '%s' খুলিবলৈ ব্যৰ্থ: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "কোনো কুকি তুলি লোৱা নহয় । কুকি নোহোৱাকে সংযোগৰ প্ৰচেষ্টা কৰা হৈছে ।" -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "অজানা এক্সটেনশন '%s'-ৰ বাবে বাৰ্তা প্ৰাপ্ত হৈছে" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "স্ট্ৰিম drain কৰিবলৈ ব্যৰ্থ: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "প্লেবেক স্ট্ৰিমক drain কৰা হ'ল ।\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "সেৱকৰ সৈতে সংযোগ Drain কৰা হৈছে ।\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() ব্যৰ্থ: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() ব্যৰ্থ: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() ব্যৰ্থ: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "সফলতাৰে স্ট্ৰিম নিৰ্মিত হৈছে ।\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() ব্যৰ্থ: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Buffer metrics: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "চানেকি spec '%s', চেনেল মেপ '%s'প্ৰয়োগ কৰা হৈছে\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "যন্ত্ৰ %s-ৰ সৈতে সংযোগ কৰা হৈছে (%u, %ssuspended) ।\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "ষ্ট্ৰিম সংক্ৰান্ত ত্ৰুটি: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "স্ট্ৰিম যন্ত্ৰ স্থগিত কৰা হৈছে । %s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "স্ট্ৰিম যন্ত্ৰ পুনৰাৰম্ভ কৰা হৈছে । %s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "ষ্ট্ৰিম underrun: %s\n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "ষ্ট্ৰিম overrun: %s\n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "স্ট্ৰিম আৰম্ভ কৰা হৈছে । %s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "%s যন্ত্ৰলৈ স্ট্ৰিম স্থানান্তৰ কৰা হৈছে (%u, %ssuspended) ।%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "not " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "স্ট্ৰিম প্ৰশমকৰ গুণ পৰিবৰ্তিত হৈছে । %s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "সংযোগ স্থাপিত হৈছে ।%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() ব্যৰ্থ: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() ব্যৰ্থ: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() ব্যৰ্থ: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "সংযোগৰ মোড: %s
\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF পোৱা গ'ল ।\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() ব্যৰ্থ: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF পোৱা গ'ল ।\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() ব্যৰ্থ: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "চিগ্নেল পোৱা গ'ল, প্ৰস্থান কৰা হৈছে ।\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "latency পাবলৈ ব্যৰ্থ: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "সময়: %0.3f sec; Latency: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() ব্যৰ্থ: %s\n" #: ../src/utils/pacat.c:605 @@ -1535,34 +1394,34 @@ msgstr "" "libpulse ৰ সৈতে সঙ্কলন কৰা হৈছে %s\n" "libpulse ৰ সৈতে যুক্ত %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "চেনেল মেপ '%s' বৈধ নহয়\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "resample পদ্ধতি '%s' বৈধ নহয় ।" #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "চেনেল মেপ '%s' বৈধ নহয়\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "অবৈধ latency নিৰ্ধাৰণ '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "অবৈধ প্ৰক্ৰিয়াৰ সময়ৰ নিৰ্ধাৰণ '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "resample পদ্ধতি '%s' বৈধ নহয় ।" #: ../src/utils/pacat.c:878 @@ -1571,60 +1430,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "অবৈধ চানেকি নিৰ্ধাৰিত\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "অত্যাধিক তৰ্ক ।\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "চানেকি সংক্ৰান্ত তথ্য প্ৰাপ্ত কৰিবলৈ ব্যৰ্থ: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "শব্দেৰ নথিপত্ৰ খুলিবলৈ ব্যৰ্থ ।\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "এটা %s স্ট্ৰিম চানেকি নিৰ্ধাৰণ '%s' ৰ সৈতে খোলা হৈছে ।\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "চানেকি সংক্ৰান্ত তথ্য প্ৰাপ্ত কৰিবলৈ ব্যৰ্থ: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "এটা %s স্ট্ৰিম চানেকি নিৰ্ধাৰণ '%s' ৰ সৈতে খোলা হৈছে ।\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "চেনেল মেপ আৰু নথিপত্ৰ অমিল ।\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "এটা %s স্ট্ৰিম চানেকি নিৰ্ধাৰণ '%s' ৰ সৈতে খোলা হৈছে ।\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "এটা %s স্ট্ৰিম চানেকি নিৰ্ধাৰণ '%s' ৰ সৈতে খোলা হৈছে ।\n" #: ../src/utils/pacat.c:1006 @@ -1635,35 +1500,34 @@ msgstr "ৰেকৰ্ড কৰা হৈছে" msgid "playback" msgstr "প্লে-বেক" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() ব্যৰ্থ ।\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() ব্যৰ্থ ।\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() ব্যৰ্থ ।\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() ব্যৰ্থ: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() ব্যৰ্থ ।\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() ব্যৰ্থ ।\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() ব্যৰ্থ ।\n" #: ../src/utils/pasuspender.c:81 @@ -1691,6 +1555,11 @@ msgstr "পুনৰাৰম্ভ কৰিবলৈ ব্যৰ্থ: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "সতৰ্কবাৰ্তা: ধ্বনি সেৱক স্থানীয় নহয়, স্থগিত কৰা নহয় ।\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "সংযোগৰ মোড: %s
\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1731,6 +1600,21 @@ msgstr "" "libpulse ৰ সৈতে সঙ্কলন কৰা হৈছে %s\n" "libpulse ৰ সৈতে যুক্ত %s\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() ব্যৰ্থ ।\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() ব্যৰ্থ ।\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2145,6 +2029,11 @@ msgstr "" "libpulseৰ সৈতে সঙ্কলন কৰা %s\n" "libpulse-ৰ সৈতে যুক্ত %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "চেনেল মেপ '%s' বৈধ নহয়\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "তুলি লোৱাৰ উদ্দেশ্যে অনুগ্ৰহ কৰে একটি চানেকি নথিপত্ৰ উল্লেখ কৰুন\n" @@ -2153,6 +2042,11 @@ msgstr "তুলি লোৱাৰ উদ্দেশ্যে অনুগ্ msgid "Failed to open sound file.\n" msgstr "শব্দেৰ নথিপত্ৰ খুলিবলৈ ব্যৰ্থ ।\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "চানেকি সংক্ৰান্ত তথ্য প্ৰাপ্ত কৰিবলৈ ব্যৰ্থ: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2212,11 +2106,6 @@ msgstr "কাৰ্ডেৰ নাম/ইন্ডেক্স আৰু এ 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 "" @@ -2333,11 +2222,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "autospawn লক প্ৰয়োগ কৰিবলৈ ব্যৰ্থ ।" -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2353,7 +2242,7 @@ msgstr "" "POLLOUT নিৰ্ধাৰিত হোৱাৰি পিছতো আমি উথিলো -- কিন্তু তাৰ পিছৰ snd_pcm_avail() এ ০ " "দিলে বা অন্য এটা মান < min_avail." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2370,15 +2259,15 @@ msgstr "" "দিলে বা অন্য এটা মান < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "বন্ধ" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "High Fidelity Playback (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephony Duplex (HSP/HFP)" @@ -2386,6 +2275,133 @@ msgstr "Telephony Duplex (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "PulseAudio ধ্বনি সেৱক" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "প্ৰণালীৰ bus লৈ সংযোগ কৰিব পৰা ন'গ'ল: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "PID ৰ পৰা caller পোৱা ন'গ'ল: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "caller বস্তুত UID নিৰ্ধাৰণ কৰিব পৰা ন'গ'ল ।" + +#~ msgid "Failed to get CK session." +#~ msgstr "CK অধিবেশন পাবলৈ বিফল ।" + +#~ msgid "Cannot set UID on session object." +#~ msgstr "অধিবেশনৰ বস্তুত UID নিৰ্ধাৰণ কৰিব নোৱাৰি ।" + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "PolKitAction বিতৰণ কৰিব নোৱাৰি ।" + +#~ msgid "Cannot set action_id" +#~ msgstr "action_id নিৰ্ধাৰণ কৰিব নোৱাৰি ।" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "PolKitContext বিতৰণ কৰিব নোৱাৰি ।" + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "PolKitContext আৰম্ভ কৰিব নোৱাৰি: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "caller ৰ অনুমতি আছে নে নাই নিৰ্ধাৰণ কৰিব নোৱাৰি: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "auth পাব নোৱাৰি: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit এ '%s' উত্তৰ দিলে" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "PulseAudio ডেমনৰ কাৰণে High-priority scheduling (ঋণাত্মক Unix nice স্তৰ)" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "PulseAudio ডেমনৰ কাৰণে Real-time scheduling" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "প্ৰণালীৰ নীতিয়ে PulseAudio ক high-priority scheduling পাবলৈ নিদিয়ে ।" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "প্ৰণালীৰ নীতিয়ে PulseAudio ক real-time scheduling পাবলৈ নিদিয়ে ।" + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() ব্যৰ্থ: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() ব্যৰ্থ: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "আমি '%s' সমষ্টিত, য'ত high-priority scheduling ৰ অনুমতি আছে ।" + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "আমি '%s' সমষ্টিত, য'ত real-time scheduling ৰ অনুমতি আছে ।" + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit এ আমাক acquire-high-priority অধিকাৰ দিয়ে ।" + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit এ acquire-high-priority অধিকাৰ নিদিয়ে ।" + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit এ আমাক acquire-real-time অধিকাৰ দিয়ে ।" + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit এ acquire-real-time অধিকাৰ নিদিয়ে ।" + +#~ 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." +#~ msgstr "" +#~ "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." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "বিন্যাস দ্বাৰা high-priority scheduling ৰ সক্ৰিয় হ'লেও নিয়মনীতি দ্বাৰা সেইটো " +#~ "অনুমোদিত নহয় ।" + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO সফলতাৰে বৃদ্ধি কৰা হৈছে" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO বিফল: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "CAP_NICE বৰ্জন কৰা হৈছে" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "বিন্যাস দ্বাৰা real-time scheduling ৰ সক্ৰিয় হ'লেও নিয়মনীতি দ্বাৰা সেইটো " +#~ "অনুমোদিত নহয় ।" + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "CAP_SYS_NICE লৈ কাৰ্য্যক্ষমতা সফলভাবে সীমিত কৰা হ'ল ।" + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() ব্যৰ্থ ।\n" + #~ msgid "Analog Mono" #~ msgstr "Analog Mono" diff --git a/po/bn_IN.po b/po/bn_IN.po index 9214f16c..eac68825 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-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-08 16:21+0530\n" "Last-Translator: Runa Bhattacharjee \n" "Language-Team: Bengali INDIA \n" @@ -17,7 +17,12 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -29,7 +34,7 @@ msgstr "" "সম্ভবত এটি ALSA ড্রাইভার '%s'-র একটি বাগ। অনুগ্রহ করে এই সমস্যা সম্বন্ধে ALSA " "ডিভেলপরদের সূচিত করুন।" -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -41,7 +46,7 @@ msgstr "" "সম্ভবত এটি ALSA ড্রাইভার '%s'-র একটি বাগ। অনুগ্রহ করে এই সমস্যা সম্বন্ধে ALSA " "ডিভেলপরদের সূচিত করুন।" -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -66,7 +71,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "অভ্যন্তরীণ অডিও" @@ -86,373 +91,246 @@ msgstr "নতুন dl লোডার বরাদ্দ করতে ব্ msgid "Failed to add bind-now-loader." msgstr "bind-now-loader যোগ করতে ব্যর্থ।" -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "সিস্টেম বাসের সাথে সংযোগ করতে ব্যর্থ: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "PID থেকে কলারের তথ্য প্রাপ্ত করতে ব্যর্থ: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "কলার অবজেক্টের UID নির্ধারণ করতে ব্যর্থ।" - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK সেশান প্রাপ্ত করতে ব্যর্থ।" - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "সেশান অবজেক্টের UID নির্ধারণ করতে ব্যর্থ।" - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "PolKitAction বরাদ্দ করতে ব্যর্থ।" - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "action_id নির্ধারণ করতে ব্যর্থ" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "PolKitContext বরাদ্দ করতে ব্যর্থ।" - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "PolKitContext আরম্ভ করতে ব্যর্থ: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "কলার অনুমোদিত কি না তা নির্ধারণ করা সম্ভব নয়: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "auth প্রাপ্ত করতে ব্যর্থ: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit থেকে '%s' প্রাপ্ত হয়েছে" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "%s সিগন্যাল প্রাপ্ত হয়েছে।" -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "প্রস্থান করা হচ্ছে।" -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "'%s' ব্যবহারকারী সন্ধান করতে ব্যর্থ।" -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "দল '%s' সন্ধান করতে ব্যর্থ।" -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "ব্যবহারকারী '%s' (UID %lu) ও দল '%s' (GID %lu) প্রাপ্ত হয়েছে।" -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "'%s' ব্যবহারকারীর ও '%s' দলের GID-র মধ্যে গরমিল।" -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "" "'%s' ব্যবহারকারী ব্যক্তিগত ডিরেক্টরি রূপে '%s' ধার্য করা হয়নি, অগ্রাহ্য করা হবে।" -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "দলের তালিকা পরিবর্তন করতে ব্যর্থ: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GID পরিবর্তন করতে ব্যর্থ: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UID পরিবর্তন করতে ব্যর্থ: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "root-র অধিকার সাফল্যের সাথে বর্জন করা হয়েছে।" -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "এই প্ল্যাটফর্মে, সিস্টেমব্যাপী মোড সমর্থিত নয়।" -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) বিফল: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "কমান্ড-লাইন পার্স করতে ব্যর্থ।" -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "অধিক গুরুত্বসহ শিডিউলিংয়ের সুবিধা উপলব্ধকারী '%s' দলে আমরা উপস্থিত।" - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "রিয়েল-টাইম শিডিউলিংয়ের সুবিধা উপলব্ধকারী '%s' দলে আমরা উপস্থিত।" - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit-র পক্ষ থেকে acquire-high-priority অধিকার প্রাপ্ত হয়েছে।" - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit-র পক্ষ থেকে acquire-high-priority অধিকার প্রত্যাখ্যাত হয়েছে।" - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit-র পক্ষ থেকে acquire-real-priority অধিকার প্রাপ্ত হয়েছে।" - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit-র পক্ষ থেকে acquire-real-priority অধিকার প্রত্যাখ্যাত হয়েছে।" - -#: ../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." -msgstr "" -"SUID root কল করা হয়েছে এবং কনফিগারেশনের মধ্যে রিয়েল-টাইম এবং/অথবা উচ্চ-গুরুত্বের " -"শিডিউলিংয়ের অনুরোধ জানানো হয়েছে, কিন্তু পর্যাপ্ত অনুমতি উপস্থিত নেই:\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 "" -"কনফিগারেশন দ্বারা high-priority শিডিইলিংয়ের সুবিধা উপলব্ধ হলেও নিয়মনীতি দ্বারা " -"তা অনুমোদিত নয়।" - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO সাফল্যের সাথে বৃদ্ধি করা হয়েছে" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO বিফল: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "CAP_NICE বর্জন করা হচ্ছে" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"কনফিগারেশন দ্বারা real-time শিডিইলিংয়ের সুবিধা উপলব্ধ হলেও নিয়মনীতি দ্বারা তা " -"অনুমোদিত নয়।" - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "ডেমন চলছে না" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "PID %u রূপে ডেমন চলছে" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "ডেমন kill করতে ব্যর্থ: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "" "root পরিচয়ে এই প্রোগ্রামটি সঞ্চালিত হওয়া উচিত নয় (যদি না --system উল্লিখিত হয়)।" -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Root-র অধিকার আবশ্যক।" -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "সিস্টেম ইনস্ট্যান্সের ক্ষেত্রে --start সমর্থিত নয়।" -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "সিস্টেম মোডে চলছে, কিন্তু --disallow-exit নির্ধারিত হয়নি!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "সিস্টেম মোডে চলছে, কিন্তু --disallow-module-loading নির্ধারিত হয়নি!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "সিস্টেম মোডে চলছে, SHM মোড বলপূর্বক নিষ্ক্রিয় করা হচ্ছে!" # http://linux.die.net/man/1/pulseaudio এখানে রেফারেন্স পাওয়া যাবে -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "সিস্টেম মোডে চলছে, কর্মহীন অবস্থার জন্য ধার্য সময়সীমা পূর্তী পরে প্রস্থানের ব্যবস্থা " "বলপূর্বক নিষ্ক্রিয় করা হচ্ছে!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "stdio প্রাপ্ত করতে ব্যর্থ।" -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "পাইপ বিফল: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() বিফল: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() বিফল: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "ডেমন আরম্ভ করতে বিফল।" -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "সাফল্যের সাথে ডেমন আরম্ভ করা হয়েছে।" -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "এটি PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "কম্পাইলেশনের হোস্ট: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "কম্পাইলশনের CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "চিহ্নিত হোস্টে চলছে: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPU পাওয়া গিয়েছে।" -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "পেজের মাপ %lu বাইট" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind সমর্থন সহ কম্পাইল করা হয়েছে: হ্যাঁ" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Valgrind সমর্থন সহ কম্পাইল করা হয়েছে: না" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind মোডে চলছে: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "সর্বাপেক্ষ উত্তম বিল্ড: হ্যাঁ" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "সর্বাপেক্ষ উত্তম বিল্ড: না" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG ব্যাখ্যা করা হয়েছে, সকল অ্যাসার্ট নিষ্ক্রিয় করা হয়েছে।" -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH ব্যাখ্যা করা হয়েছে, শুধুমাত্র ফাস্ট পাথ অ্যাসার্ট নিষ্ক্রিয় করা হয়েছে।" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "সকল অ্যাসার্ট সক্রিয় করা হয়েছে।" -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "মেশিন ID প্রাপ্ত করতে ব্যর্থ" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "মেশিন ID হল %s।" -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "মেশিন ID হল %s।" -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "রান-টাইম ডিরেক্টরি %s ব্যবহার করা হচ্ছে।" -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "অবস্থাসূচক ডিরেক্টরি %s ব্যবহার করা হচ্ছে।" -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "সিস্টেম মোডে চলছে: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -462,42 +340,42 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() ব্যর্থ।" -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "উচ্চ-রেসোলিউশনের নতুন টাইমার উপলব্ধ রয়েছে! পরীক্ষা করে দেখুন!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "উচ্চ-রেসোলিউশনের নতুন টাইমার সহ Linux সক্রিয় করা বাঞ্ছনীয়!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() ব্যর্থ।" -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "ডেমন আরম্ভ করতে ব্যর্থ।" -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" "লোড করা মডিউল বিনা ডেমন আরম্ভ করা হয়েছে এবং কোনো কর্ম সঞ্চালন করা সম্ভব নয়।" -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "ডেমন আরম্ভ করা হয়েছে।" -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "ডেমন বন্ধ করার প্রক্রিয়া আরম্ভ করা হয়েছে।" -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "ডেমন বন্ধ করা হয়েছে।" @@ -841,14 +719,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### চিহ্নিত কনফিগারেশন ফাইল থেকে পড়া হবে: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "root-র অধিকার বর্জন করা হচ্ছে।" -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "সাফল্যের সাথে CAP_SYS_NICE-এ কর্মক্ষমতা সীমিত করা হয়েছে।" - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio শব্দ ব্যবস্থা" @@ -857,28 +731,6 @@ msgstr "PulseAudio শব্দ ব্যবস্থা" msgid "Start the PulseAudio Sound System" msgstr "PulseAudio শব্দ ব্যবস্থা আরম্ভ করা হবে" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "PulseAudio ডেমনের জন্য উচ্চ-গুরুত্বের শিডিউলিং (Unix nice-র মাত্রা নঞর্থক)" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "PulseAudio ডেমনের জন্য রিয়েল-টাইম শিডিউলিং" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -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:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "মোনো" @@ -1251,187 +1103,191 @@ msgstr "কুকির তথ্য পার্স করতে ব্যর msgid "Failed to open configuration file '%s': %s" msgstr "কনফিগারেশন ফাইল '%s' খুলতে ব্যর্থ: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "কোনো কুকি লোড করা হয়নি। কুকি বিনা সংযোগের প্রচেষ্টা করা হচ্ছে।" -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "অজানা এক্সটেনশন '%s'-র জন্য বার্তা প্রাপ্ত হয়েছে" # drain a stream = যখন স্ট্রিমের মধ্যে উপস্থিত সকল তথ্য আহরণ করা হয় ও স্ট্রিমটি সম্পূর্ণরূপে ফাঁকা হয়ে যায়। -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "স্ট্রিম ড্রেইন (অর্থাৎ ফাঁকা) করতে ব্যর্থ: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "প্লে-ব্যাক স্ট্রিম ফাঁকা করা হয়েছে।\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "সার্ভারের সাথে স্থাপিত সংযোগ ফাঁকা করা হচ্ছে।\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() ব্যর্থ: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() ব্যর্থ: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() ব্যর্থ: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "সাফল্যের সাথে স্ট্রিম নির্মিত হয়েছে।\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() ব্যর্থ: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "বাফারের মাপ: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "বাফারের মাপ: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "স্যাম্পেলের spec '%s', ও চ্যানেল ম্যাপ '%s' ব্যবহার করা হচ্ছে।\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "ডিভাইস %s-র সাথে সংযোগ করা হয়েছে (%u, %ssuspended)।\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "ষ্ট্রিম সংক্রান্ত ত্রুটি: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "স্ট্রিম ডিভাইস স্থগিত করা হয়েছে। %s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "স্ট্রিম ডিভাইস পুনরারম্ভ করা হয়েছে। %s \n" # underrun = ধীর গতির স্ট্রিম -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "ধীর গতির স্ট্রিম.%s \n" # overrun=the stream fills up the allocated buffer space and there is no more space for it -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "স্ট্রিম মাত্রা অতিক্রম করেছে।%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "স্ট্রিম আরম্ভ করা হয়েছে। %s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "%s ডিভাইসে স্ট্রিম স্থানান্তর করা হয়েছে (%u, %ssuspended)।%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "না " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "স্ট্রিম বাফারের অ্যাট্রিবিউট পরিবর্তিত হয়েছে। %s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "সংযোগ স্থাপিত হয়েছে।%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() ব্যর্থ: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() ব্যর্থ: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() ব্যর্থ: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "সংযোগ বিফল: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "ফাইলের সমাপ্তি সনাক্ত হয়েছে। \n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() ব্যর্থ: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "ফাইলের সমাপ্তি সনাক্ত হয়েছে। \n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() ব্যর্থ: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "সিগন্যাল প্রাপ্ত হয়েছে, প্রস্থান করা হবে।\n" # latency here = delay (technical term -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "লেটেন্সির পরিমাণ প্রাপ্ত করতে ব্যর্থ: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "সময়: %0.3f সেকেন্ড; লেটেন্সি: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() ব্যর্থ: %s\n" #: ../src/utils/pacat.c:605 @@ -1550,34 +1406,34 @@ msgstr "" "libpulse সহযোগে কম্পাইল করা হয়েছে %s\n" "libpulse-র সাথে যুক্ত %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "চ্যানেল ম্যাপ '%s' বৈধ নয়\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "রি-স্যাম্পেল পদ্ধতি '%s' বৈধ নয়।" #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "চ্যানেল ম্যাপ '%s' বৈধ নয়\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "লেটেন্সির জন্য নির্ধারিত বৈশিষ্ট্য '%s' বৈধ নয়\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "প্রসেসের সময়ের বৈশিষ্ট্য '%s' বৈধ নয়\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "রি-স্যাম্পেল পদ্ধতি '%s' বৈধ নয়।" #: ../src/utils/pacat.c:878 @@ -1586,60 +1442,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "অবৈধ স্যাম্পেল নির্ধারিত\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "অত্যাধিক আর্গুমেন্ট।\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "স্যাম্পেল সংক্রান্ত তথ্য প্রাপ্ত করতে ব্যর্থ: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "শব্দের ফাইল খুলতে ব্যর্থ।\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "একটি %s স্ট্রিম '%s' স্যাম্পেল বৈশিষ্ট্য সহ খোলা হচ্ছে।\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "স্যাম্পেল সংক্রান্ত তথ্য প্রাপ্ত করতে ব্যর্থ: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "একটি %s স্ট্রিম '%s' স্যাম্পেল বৈশিষ্ট্য সহ খোলা হচ্ছে।\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "চ্যানেলের ম্যাপ ও স্যাম্পেলের মাপে গরমিল\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "একটি %s স্ট্রিম '%s' স্যাম্পেল বৈশিষ্ট্য সহ খোলা হচ্ছে।\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "একটি %s স্ট্রিম '%s' স্যাম্পেল বৈশিষ্ট্য সহ খোলা হচ্ছে।\n" #: ../src/utils/pacat.c:1006 @@ -1650,35 +1512,34 @@ msgstr "রেকর্ড করা হচ্ছে" msgid "playback" msgstr "প্লে-ব্যাক" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() ব্যর্থ।\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() ব্যর্থ।\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() ব্যর্থ।\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() ব্যর্থ: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() ব্যর্থ।\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() ব্যর্থ।\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() ব্যর্থ।\n" #: ../src/utils/pasuspender.c:81 @@ -1706,6 +1567,11 @@ msgstr "পুনরারম্ভ করতে ব্যর্থ: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "সতর্কবার্তা: শব্দের সার্ভারটি স্থানীয় নয় ও স্থগিত করা হচ্ছে না।\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "সংযোগ বিফল: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1746,6 +1612,21 @@ msgstr "" "libpulse সহযোগে কম্পাইল করা হয়েছে %s\n" "libpulse-র সাথে যুক্ত %s\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() ব্যর্থ।\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() ব্যর্থ।\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2160,6 +2041,11 @@ msgstr "" "libpulse সহযোগে কম্পাইল করা %s\n" "libpulse-র সাথে যুক্ত %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "চ্যানেল ম্যাপ '%s' বৈধ নয়\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "লোড করার উদ্দেশ্যে অনুগ্রহ করে একটি স্যাম্পেল ফাইল উল্লেখ করুন\n" @@ -2168,6 +2054,11 @@ msgstr "লোড করার উদ্দেশ্যে অনুগ্রহ msgid "Failed to open sound file.\n" msgstr "শব্দের ফাইল খুলতে ব্যর্থ।\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "স্যাম্পেল সংক্রান্ত তথ্য প্রাপ্ত করতে ব্যর্থ: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2227,11 +2118,6 @@ msgstr "কার্ডের নাম/ইন্ডেক্স ও একট 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 "" @@ -2348,11 +2234,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "autospawn লক প্রয়োগ করতে ব্যর্থ।" -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2369,7 +2255,7 @@ msgstr "" "POLLOUT set দ্বারা চেতাবনী সৃষ্টি হয়েছে -- পরবর্তী snd_pcm_avail() থেকে 0 অথবা < " "min_avail-র থেকে কম অন্য একটি মান প্রাপ্ত হয়েছে।" -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2387,15 +2273,15 @@ msgstr "" "min_avail-র থেকে কম অন্য একটি মান প্রাপ্ত হয়েছে।" #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "বন্ধ" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "হাই-ফিডেলিটি প্লে-ব্যাক (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "টেলিফোনি ডুপ্লে (HSP/HFP)" @@ -2403,6 +2289,134 @@ msgstr "টেলিফোনি ডুপ্লে (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "PulseAudio শব্দের সার্ভার" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "সিস্টেম বাসের সাথে সংযোগ করতে ব্যর্থ: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "PID থেকে কলারের তথ্য প্রাপ্ত করতে ব্যর্থ: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "কলার অবজেক্টের UID নির্ধারণ করতে ব্যর্থ।" + +#~ msgid "Failed to get CK session." +#~ msgstr "CK সেশান প্রাপ্ত করতে ব্যর্থ।" + +#~ msgid "Cannot set UID on session object." +#~ msgstr "সেশান অবজেক্টের UID নির্ধারণ করতে ব্যর্থ।" + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "PolKitAction বরাদ্দ করতে ব্যর্থ।" + +#~ msgid "Cannot set action_id" +#~ msgstr "action_id নির্ধারণ করতে ব্যর্থ" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "PolKitContext বরাদ্দ করতে ব্যর্থ।" + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "PolKitContext আরম্ভ করতে ব্যর্থ: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "কলার অনুমোদিত কি না তা নির্ধারণ করা সম্ভব নয়: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "auth প্রাপ্ত করতে ব্যর্থ: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit থেকে '%s' প্রাপ্ত হয়েছে" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "PulseAudio ডেমনের জন্য উচ্চ-গুরুত্বের শিডিউলিং (Unix nice-র মাত্রা নঞর্থক)" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "PulseAudio ডেমনের জন্য রিয়েল-টাইম শিডিউলিং" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "সিস্টেমের নিয়ম-নীতির কারণে PulseAudio দ্বারা উচ্চ-গুরুত্বের শিডিউলিং প্রয়োগ করা " +#~ "সম্ভব হচ্ছে না।" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "সিস্টেমের নিয়ম-নীতির কারণে PulseAudio দ্বারা রিয়েল-টাইম শিডিউলিং প্রয়োগ করা " +#~ "সম্ভব হচ্ছে না।" + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() ব্যর্থ: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() ব্যর্থ: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "অধিক গুরুত্বসহ শিডিউলিংয়ের সুবিধা উপলব্ধকারী '%s' দলে আমরা উপস্থিত।" + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "রিয়েল-টাইম শিডিউলিংয়ের সুবিধা উপলব্ধকারী '%s' দলে আমরা উপস্থিত।" + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit-র পক্ষ থেকে acquire-high-priority অধিকার প্রাপ্ত হয়েছে।" + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit-র পক্ষ থেকে acquire-high-priority অধিকার প্রত্যাখ্যাত হয়েছে।" + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit-র পক্ষ থেকে acquire-real-priority অধিকার প্রাপ্ত হয়েছে।" + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit-র পক্ষ থেকে acquire-real-priority অধিকার প্রত্যাখ্যাত হয়েছে।" + +#~ 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." +#~ msgstr "" +#~ "SUID root কল করা হয়েছে এবং কনফিগারেশনের মধ্যে রিয়েল-টাইম এবং/অথবা উচ্চ-" +#~ "গুরুত্বের শিডিউলিংয়ের অনুরোধ জানানো হয়েছে, কিন্তু পর্যাপ্ত অনুমতি উপস্থিত নেই:\n" +#~ "'%s' দলে অন্তর্ভুক্ত নয়, PolicyKit দ্বারা পর্যাপ্ত অনুমতি প্রদান করা হয়নি এবং " +#~ "RLIMIT_NICE/RLIMIT_RTPRIO রিসোর্সের সীমা বৃদ্ধির করতে হবে।\n" +#~ "রিয়েল-টাইম/উচ্চ-গুরুত্বের শিডিউলিং সক্রিয় করার জন্য অনুগ্রহ করে প্রযোজ্য PolicyKit " +#~ "অধিকার প্রাপ্ত করুন, অথবা '%s' দলের সদস্য হন, অথবা সংশ্লিষ্ট ব্যবহারকারীর জন্য " +#~ "RLIMIT_NICE/RLIMIT_RTPRIO রিসোর্সের সীমা বৃদ্ধি করুন।" + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "কনফিগারেশন দ্বারা high-priority শিডিইলিংয়ের সুবিধা উপলব্ধ হলেও নিয়মনীতি " +#~ "দ্বারা তা অনুমোদিত নয়।" + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO সাফল্যের সাথে বৃদ্ধি করা হয়েছে" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO বিফল: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "CAP_NICE বর্জন করা হচ্ছে" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "কনফিগারেশন দ্বারা real-time শিডিইলিংয়ের সুবিধা উপলব্ধ হলেও নিয়মনীতি দ্বারা তা " +#~ "অনুমোদিত নয়।" + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "সাফল্যের সাথে CAP_SYS_NICE-এ কর্মক্ষমতা সীমিত করা হয়েছে।" + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() ব্যর্থ।\n" + #~ msgid "Analog Mono" #~ msgstr "অ্যানালগ মোনো" diff --git a/po/ca.po b/po/ca.po index 878e2293..f3b0a599 100644 --- a/po/ca.po +++ b/po/ca.po @@ -23,15 +23,20 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" -"PO-Revision-Date: 2009-06-10 18:47+0200\n" -"Last-Translator: Judith Pintó Subirada \n" -"Language-Team: \n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" +"PO-Revision-Date: 2009-07-18 11:40+0100\n" +"Last-Translator: Tomàs Bigordà \n" +"Language-Team: Catalan \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -44,7 +49,7 @@ msgstr "" "Probablement es tracta d'un error del controlador de l'ALSA '%s'. Informeu " "d'aquest incident als desenvolupadors de l'ALSA." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -57,7 +62,7 @@ msgstr "" "Probablement es tracta d'un error del controlador de l'ALSA '%s'. Informeu " "d'aquest incident als desenvolupadors de l'ALSA." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -72,7 +77,7 @@ msgstr "" #: ../src/modules/module-ladspa-sink.c:49 msgid "Virtual LADSPA sink" -msgstr "" +msgstr "Conducte virtual LADSPA" #: ../src/modules/module-ladspa-sink.c:53 msgid "" @@ -82,8 +87,13 @@ msgid "" "plugin name> label= control=" msgstr "" +"sink_name= sink_properties= " +"master= format= rate= channels= channel_map= " +"pulgin= label= " +"control=" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Audio intern" @@ -103,223 +113,92 @@ msgstr "No s'ha pogut allotjar el nou carregador dl." msgid "Failed to add bind-now-loader." msgstr "No s'ha pogut afegir bind-now-loader." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "No s'ha pogut connectar al bus del sistema: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "No s'ha pogut obtenir una crida del PID: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "No s'ha pogut especificar l'UID en l'objecte crida." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "No s'ha pogut obtenir la sessió CK." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "No s'ha pogut definir l'UID en l'objecte sessió." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "No s'ha pogut assignar PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "No s'ha pogut definir action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "No s'ha pogut assignar PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "No s'ha pogut inicialitzar PolKitContext: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "No s'ha pogut determinar si la crida està autoritzada: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "No s'ha pogut obtenir l'autorització: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit ha respós '%s'" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "S'ha obtingut la senyal %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "S'està sortint." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "No s'ha trobat l'usuari '%s'." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "No s'ha trobat el grup '%s'." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "S'han trobat l'usuari '%s' (UID %lu) i el grup '%s' (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "El GID de l'usuari '%s' i del grup '%s' no coincideixen." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "El directori arrel de l'usuari '%s' no és '%s', s'ignorarà." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "No s'ha pogut crear '%s': %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" -msgstr "No s'ha pogut canviar la llista del grup :%s" +msgstr "No s'ha pogut canviar la llista del grup: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "No s'ha pogut canviar el GID: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "No s'ha pogut canviar l'UID: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "S'han alliberat els permisos de root." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "El mode de sistema global no és compatible amb aquesta plataforma." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "S'ha produït un error en setrlimit(%s, (%u, %u)): %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "No s'ha pogut interpretar la línia d'ordres." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"Aquesta aplicació està en el grup '%s', s'està establint la prioritat alta." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" -"Aquesta aplicació està en el grup '%s', s'està establint la prioritat en " -"temps real." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit ha permés el privilegi acquire-high-priority." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit ha rebutjat el privilegi acquire-high-priority." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit ha permés el privilegi acquire-real-time." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit ha rebutjat el privilegi acquire-real-time." - -#: ../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." -msgstr "" -"S'ha demanat SUID de root i una planificació de temps real i/o d'alta " -"prioritat. De totes formes, falten els privilegis necessaris:\n" -"No es pertany al grup '%s'. PolicyKit no atorga els privilegis demanats i no " -"s'ha incrementat els límits de recursos RLIMIT_NICE/RLIMIT_RTPRIO.\n" -"Per habilitar la planificació en temps real o d'alta prioritat, heu " -"d'obtenir els privilegis de PolicyKits adequats, o pertànyer al grup '%s', o " -"incrementar els límits de recursos de RLIMIT_NICE/RLIMIT_RTPRIO per a aquest " -"usuari." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"La prioritat alta està habilitada en la configuració però no està permesa " -"per la política." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "S'ha incrementat el valor de RLIMIT_RTPRIO amb éxit." - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "S'ha produït un error amb RLIMIT_RTPRIO: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "S'abandona CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"La prioritat de temps real està habilitada en la configuració però no està " -"permesa per la política." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "El dimoni no s'està executant" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "El dimoni s'està executant amb PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "S'ha produït un error en matar el dimoni: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -327,158 +206,158 @@ msgstr "" "No és necessari executar aquesta aplicació com a root (excepte si " "s'especifica --system)" -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Es requereixen privilegis de root." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "La opció --start no està suportada per a instàncies de sistema." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" "S'està executant en mode sistema, però no s'ha especificat l'opció --" "disallow-exit." -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "S'està executant en mode sistema, però no s'ha especificat l'opció --" "disallow-module-loading." -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "" "S'està executant en mode sistema, es deshabilitarà el mode SHM forçosament." -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "S'està executant en mode sistema, la sortida per temps d'inactivitat es " "deshabilita." -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "S'ha produït un error en adquirir stdio." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "Ha fallat la canonada: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "Ha fallat fork(): %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "Ha fallat read(): %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "S'ha produït un error en iniciar el dimoni." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "S'ha iniciat el dimoni." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Aquest és el PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Host de compilació: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS de compilació: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "S'està executant en el host: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "S'han trobat %u CPU's" -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "La mida de pàgina és de %lu bytes." -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Compilat amb suport per a Valgrind: sí" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Compilat amb suport per a Valgrind: no" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "S'està executant amb el mode valgrind: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Construcció optimitzada: sí" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Construcció optmitzada: no" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG està definit, s'han desactivat totes les assercions." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" "FASTPATH està definit, només s'ha deshabilitat les assercions de camí ràpid." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "S'han habilitat totes les assercions." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "No s'ha pogut obtenir l'ID de la màquina" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "L'ID de la màquina és %s." -#: ../src/daemon/main.c:917 -#, fuzzy, c-format +#: ../src/daemon/main.c:770 +#, c-format msgid "Session ID is %s." -msgstr "L'ID de la màquina és %s." +msgstr "L'ID de la sessió és %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "S'està utilitzant el directori d'execució %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "S'està utilitzant el directori d'estat %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "S'està executant en mode sistema: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -487,16 +366,22 @@ msgid "" "Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " "explanation why system mode is usually a bad idea." msgstr "" - -#: ../src/daemon/main.c:951 +"Esteu utilitzant el PA en mode sistema. Tingueu en compte que molt " +"probablement no hauríeu de fer-ho.\n" +"No obstant això, si ho feu és la vostra responsabilitat si no funciona com " +"s'esperava.\n" +"Si us plau, llegiu http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode per " +"a una explicació de per què el mode sistema sol ser una mala idea." + +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "S'ha produït un error en pa_pid_file_create()." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Estan disponibles els temporitzadors frescos d'alta resolució." -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -504,27 +389,27 @@ msgstr "" "Es recomana la utilització d'un nucli amb els temporitzadors d'alta " "resolució habilitats." -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "S'ha produït un error en pa_core_new()." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "S'ha produït un error en inicialitzar el dimoni." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "El dimoni s'ha iniciat sense cap mòdul carregat, no funcionarà." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "S'ha completat la inicialització del dimoni." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "S'ha iniciat l'aturada del dimoni." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "S'ha aturat el dimoni." @@ -624,7 +509,7 @@ msgstr "" "inicialització\n" " --fail[=BOOL] Surt quan falli la inicialització\n" " --high-priority[=BOOL] Prova d'establir un nivell de \n" -" prioritat alt (només disponible com " +" Prioritat alta (només disponible com " "a root,\n" " amb SUID o amb un RLIMIT_NICE " "elevat)\n" @@ -658,12 +543,12 @@ msgstr "" "missatges de registre\n" " --log-time[=BOOL] Inclou marques de temps en els " "missatges de registre\n" -" --log-backtrace=FRAMES Inclou una traça en els missatges de " +" --log-backtrace=MARCS Inclou una traça en els missatges de " "registre\n" -" -p, --dl-search-path=CAMI Estableix el camí de cerca " +" -p, --dl-search-path=CAMÍ Estableix el camí de cerca " "d'objectes dinàmics\n" " compartits (plugins)\n" -" --resample-method=METODE Utilitza el mètode de remostreig\n" +" --resample-method=MÈTODE Utilitza el mètode de remostreig\n" " (Per veure els valors possibles " "utilitza --dump-resample-methods)\n" " --use-pid-file[=BOOL] Crea un fitxer PID\n" @@ -674,7 +559,7 @@ msgstr "" "compartida.\n" "\n" "SCRIPT D'INICI:\n" -" -L, --load=\"ARGUMENTS MODUL\" Carrega el mòdul especificat amb\n" +" -L, --load=\"ARGUMENTS MÒDUL\" Carrega el mòdul especificat amb\n" " els arguments especificats\n" " -F, --file=NOMFITXER Executa l'script especificat\n" " -C Obre una línia d'ordres en la TTY " @@ -787,7 +672,7 @@ msgstr "Càrrega: %s\n" #: ../src/daemon/dumpmodules.c:75 #, c-format msgid "DEPRECATION WARNING: %s\n" -msgstr "" +msgstr "Advertència d'obsolescència: %s\n" #: ../src/daemon/dumpmodules.c:79 #, c-format @@ -872,14 +757,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Lectura del fitxer de configuració: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Alliberant els privilegis de root." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "S'han limitat les capacitats cap a CAP_SYS_NICE." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "Sistema de so PulseAudio" @@ -888,30 +769,6 @@ msgstr "Sistema de so PulseAudio" msgid "Start the PulseAudio Sound System" msgstr "Inicialitza el sistema de so PulseAudio" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" -"Programació d'alta prioritat (nivell Unix nice negatiu) per al dimoni " -"PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Programació en temps real per al dimoni PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"Les normes d'ús del sistema no permeten PulseAudio adquirir programació " -"d'alta prioritat." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" -"Les normes d'ús del sistema no permeten la programació en temps real de " -"PulseAudio." - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1284,189 +1141,193 @@ msgstr "Ha fallat el parseig de les dades de la cookie" msgid "Failed to open configuration file '%s': %s" msgstr "S'ha produït un error en obrir el fitxer de configuració '%s': %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "No s'ha carregat cap cookie. S'està intentant connectar sense aquesta." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "S'ha rebut un missatge per a una extensió desconeguda '%s'" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "S'ha produït un error en drenar el fluxe: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "Flux de reproducció drenat.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "S'està drenant la connexió amb el servidor.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "Ha fallat pa_stream_write(): %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "Ha fallat pa_stream_write(): %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "Ha fallat pa_stream_peek(): %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Flux creat correctament.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "Ha fallat pa_stream_get_buffer_attr(): %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Mètriques del búffer: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Mètriques del búffer: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "" "S'estan utilitzant les especificacions de mostreig '%s', mapejat del canal '%" "s'.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "S'ha connectat al dispositiu %s (%u, %ssuspés).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "S'ha produït un error en l'stream: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" -msgstr "Flux del dispositiu suspés.%s\n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" +msgstr "Flux del dispositiu suspés.%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" -msgstr "Flux del dispositiu représ.%s\n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" +msgstr "Flux del dispositiu représ.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" -msgstr "Dades insuficients al flux .%s\n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" +msgstr "Dades insuficients al flux.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" -msgstr "Desbordament de flux.%s\n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" +msgstr "Desbordament de flux.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" -msgstr "S'ha iniciat el flux.%s\n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" +msgstr "S'ha iniciat el flux.%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" -msgstr "S'ha mogut el flux al dispositiu %s (%u, %ssuspés).%s\n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" +msgstr "S'ha mogut el flux al dispositiu %s (%u, %ssuspés).%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " -msgstr "no" +msgstr "no " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" -msgstr "Atributs del fluxe de la memòria intermèdia canviats.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" +msgstr "Els atributs del flux de memòria intermèdia han canviat.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" -msgstr "S'ha establert la connexió.%s\n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" +msgstr "S'ha establert la connexió.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "Ha fallat pa_stream_new(): %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "Ha fallat pa_stream_connect_playback(): %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "Ha fallat pa_stream_connect_record(): %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Ha fallat la connexió: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "S'ha llegit EOF.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "Ha fallat read(): %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "S'ha llegit EOF.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "Ha fallat write(): %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "S'ha rebut un senyal, s'està sortint.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "No s'ha pogut obtenir la latència: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" -msgstr "Temps: %0.3f segs; Latència: %0.0f microsegs.\r" +msgstr "Temps: %0.3f segs; Latència: %0.0f microsegs. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "Ha fallat pa_stream_update_timing_info(): %s\n" #: ../src/utils/pacat.c:605 -#, fuzzy, c-format +#, c-format msgid "" "%s [options]\n" "\n" @@ -1542,7 +1403,8 @@ msgstr "" "connectar-se\n" " -n, --client-name=NOM Com cridar aquest client al " "servidor\n" -" --stream-name=NOM Com cridar aquest flux al servidor\n" +" --stream-name=NOM Com cridar aquest flux de dades al " +"servidor\n" " --volume=VOLUM Especifica el volum inicial lineal " "dins el rang 0...65536\n" " --rate=VELOCITATMOSTREIG La velocitat de mostreig en Hz (per " @@ -1555,7 +1417,7 @@ msgstr "" "per a estèreo\n" " (per omissió, 2)\n" " --channel-map=MAPACANAL Mapa de canals a utilitzar\n" -" --fix-format Pren el format de mostra del " +" --format-fix Pren el format de mostra del " "conducte al qual s'està connectant\n" " el flux.\n" " --fix-rate Pren la velocitat de mostreig del " @@ -1564,13 +1426,21 @@ msgstr "" " --fix-channels Pren el número de canals i el mapa " "de canals del\n" " conducte al qual s'està connectant " -"el flux.\n" +"el flux de dades.\n" " --no-remix No barregis els canals.\n" " --no-remap Mapeja els canals per índex en " "comptes de per nom .\n" -" --latency=BYTES Sol·licita la latència en bytes.\n" +" --latencia=BYTES Sol·licita la latència en bytes.\n" " --process-time=BYTES Sol·licita el temps de procés per " "petició en bytes.\n" +" --property=PROPIETAT=VALOR Establir la propietat especificada " +"per al valor especificat.\n" +" --raw Gravació/reproducció de dades crues " +"PCM.\n" +" --format-fitxer=FFORMAT Gravació/reproducció de dades amb " +"format PCM.\n" +" --list-file-formats Llista disponible de formats de " +"fitxer.\n" #: ../src/utils/pacat.c:727 #, c-format @@ -1583,97 +1453,108 @@ msgstr "" "Compilat amb libpulse %s\n" "Enllaçat amb libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" -msgstr "Mapa de canals invàlid '%s'\n" +msgid "Invalid client name '%s'" +msgstr "Nom del client invàlid '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" -msgstr "Mètode de remostratge invàlid '%s'." +msgid "Invalid stream name '%s'" +msgstr "Nom de flux de dades invàlid '%s'\n" #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "Mapa de canals invàlid '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Especificació de latència invàlida '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "Especificació de temps de procés invàlida '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" -msgstr "Mètode de remostratge invàlid '%s'." +msgid "Invalid property '%s'" +msgstr "Propietat invàlida '%s'\n" #: ../src/utils/pacat.c:878 #, c-format msgid "Unknown file format %s." -msgstr "" +msgstr "Format desconegut de fitxer %s." #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "Especificació de mostra invàlida\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" -msgstr "Hi han massa arguments.\n" +#, fuzzy +msgid "Too many arguments." +msgstr "Massa arguments.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" -msgstr "No s'ha pogut obtenir informació de la mostra: %s\n" +msgid "Failed to generate sample specification for file." +msgstr "No s'ha pogut obtenir informació del fitxer.\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "No s'ha pogut obrir el fitxer de so.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" +"specification from file." msgstr "" +"Advertència: l'especificació de mostra especificada se sobreescriurà amb " +"l'especificació del fitxer.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" -msgstr "No s'ha pogut obtenir informació de la mostra: %s\n" +msgid "Failed to determine sample specification from file." +msgstr "No s'ha pogut determinar l'especificació de mostra del fitxer.\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." msgstr "" +"Advertència: no s'ha pogut determinar el mapeig de canals des del fitxer.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "El mapa de canals no coincideix amb l'especificació de mostra\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "Advertència: no s'ha pogut escriure el mapa de canals en un fitxer.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" -msgstr "S'està obrint un flux %s amb especificació de mostra '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." +msgstr "" +"S'està obrint un flux de dades %s amb especificació de mostra '%s' i mapa de " +"canals '%s'.\n" #: ../src/utils/pacat.c:1006 msgid "recording" @@ -1683,36 +1564,35 @@ msgstr "enregistrant" msgid "playback" msgstr "reproducció" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" -msgstr "Ha fallat pa_mainloop_new().\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." +msgstr "Ha fallat el pa_mainloop_new().\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" -msgstr "Ha fallat io_new().\n" +#, fuzzy +msgid "io_new() failed." +msgstr "Ha fallat el io_new().\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" -msgstr "Ha fallat pa_context_new().\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." +msgstr "Ha fallat el pa_context_new().\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "Ha fallat pa_context_connect(): %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "Ha fallat time_new().\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "Ha fallat el pa_context_new().\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" -msgstr "Ha fallat pa_mainloop_run().\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." +msgstr "Ha fallat el pa_mainloop_run().\n" #: ../src/utils/pasuspender.c:81 #, c-format @@ -1739,6 +1619,11 @@ msgstr "No s'ha pogut en rependre: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "ADVERTÈNCIA: el sevidor de so no és local, no s'està suspenent.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Ha fallat la connexió: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1779,6 +1664,21 @@ msgstr "" "Compilat amb libpulse %s\n" "Enllaçat amb libpulse %s\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "Ha fallat el pa_mainloop_new().\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "Ha fallat el pa_context_new().\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "Ha fallat el pa_mainloop_run().\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -1874,14 +1774,14 @@ msgstr "" "\t\t%s\n" #: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 -#, fuzzy, c-format +#, c-format msgid "\tPorts:\n" -msgstr "\tPerfils:\n" +msgstr "\tPorts:\n" #: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 -#, fuzzy, c-format +#, c-format msgid "\tActive Port: %s\n" -msgstr "\tPerfil actiu: %s\n" +msgstr "\tPort actiu: %s\n" #: ../src/utils/pactl.c:290 #, c-format @@ -1933,7 +1833,7 @@ msgstr "" #: ../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" +msgstr "n/a" #: ../src/utils/pactl.c:368 #, c-format @@ -2136,7 +2036,7 @@ msgid "Premature end of file\n" msgstr "S'ha trobat un fi de fitxer prematurament\n" #: ../src/utils/pactl.c:826 -#, fuzzy, c-format +#, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2170,18 +2070,19 @@ msgstr "" "%s [opcions] remove-sample NOM\n" "%s [opcions] move-sink-input ID CONDUCTE\n" "%s [opcions] move-source-output ID FONT\n" -"%s [opcions] load-module NOM [ARGS ...]\n" +"%s [opcions] load-module NOM [ARGUMENTS ...]\n" "%s [opcions] unload-module ID\n" "%s [opcions] suspend-sink [CONDUCTE] 1|0\n" "%s [opcions] suspend-source [FONT] 1|0\n" "%s [opcions] set-card-profile [TARGETA] [PERFIL] \n" +"%s [opcions] set-sink-port [CONDUCTE] [PORT] \n" +"%s [opcions] set-source-port [FONT] [PORT] \n" "\n" " -h, --help Mostra aquesta ajuda\n" " --version Mostra la versió\n" "\n" -" -s, --server=SERVIDOR Nom del servidor al qual connectar-" -"se\n" -" -n, --client-name=NOM Com cridar aquest client al " +" -s, --server=SERVER Nom del servidor on connectar-s'hi\n" +" -n, --client-name=NAME Com cridar aquest client en el " "servidor\n" #: ../src/utils/pactl.c:880 @@ -2195,6 +2096,11 @@ msgstr "" "Compilat amb libpulse %s\n" "Enllaçat amb libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, c-format +msgid "Invalid client name '%s'\n" +msgstr "Nom del client invàlid '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Especifiqueu un fitxer de mostra per a carregar\n" @@ -2203,10 +2109,15 @@ msgstr "Especifiqueu un fitxer de mostra per a carregar\n" msgid "Failed to open sound file.\n" msgstr "No s'ha pogut obrir el fitxer de so.\n" +#: ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "No s'ha pogut determinar l'especificació de mostra del fitxer.\n" + #: ../src/utils/pactl.c:951 -#, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" -msgstr "S'està obrint un flux %s amb especificació de mostra '%s'.\n" +msgstr "" +"Advertència: No s'ha pogut determinar l'especificació de mostra a partir del " +"fitxer.\n" #: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" @@ -2214,7 +2125,7 @@ msgstr "Heu d'especificar un nom de mostra a reproduir\n" #: ../src/utils/pactl.c:973 msgid "You have to specify a sample name to remove\n" -msgstr "Heu d'especificar un nom de mostra a esborrar\n" +msgstr "Heu d'especificar un nom de mostra a suprimir\n" #: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" @@ -2252,24 +2163,17 @@ msgid "You have to specify a card name/index and a profile name\n" msgstr "Heu d'especificar un nom o un índex de targeta i un nom de perfil\n" #: ../src/utils/pactl.c:1073 -#, fuzzy msgid "You have to specify a sink name/index and a port name\n" -msgstr "Heu d'especificar un nom o un índex de targeta i un nom de perfil\n" +msgstr "Heu d'especificar un nom o un índex de conducte i un nom de port\n" #: ../src/utils/pactl.c:1084 -#, fuzzy msgid "You have to specify a source name/index and a port name\n" -msgstr "Heu d'especificar un nom o un índex de targeta i un nom de perfil\n" +msgstr "Heu d'especificar un nom o un índex de font i un nom de port\n" #: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "S'ha especificat una ordre invàlida.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "Ha fallat pa_context_connect(): %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2354,6 +2258,8 @@ msgstr "Encara no s'ha implementat.\n" #: ../src/utils/pacmd.c:61 msgid "No PulseAudio daemon running, or not running as session daemon." msgstr "" +"El dimoni PulseAudio no s'està executant, o no s'està executant com a dimoni " +"de la sessió." #: ../src/utils/pacmd.c:66 #, c-format @@ -2388,11 +2294,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "No s'ha pogut accedir al bloqueig d'autospawn." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2406,10 +2312,10 @@ msgstr "" "havia res a escriure!\n" "Probablement es tracta d'un error del controlador de l'ALSA '%s'. Informeu " "d'aquest problema als desenvolupadors de l'ALSA.\n" -"Ens han cridat mitjançant POLLOUT set -- tammateix una crida posterior de " +"Ens han aixecat amb POLLOUT activat -- tanmateix una crida posterior a " "snd_pcm_avail() ha retornat 0 o un altre valor < min_avail." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2423,19 +2329,19 @@ msgstr "" "res a llegir!\n" "Probablement es tracta d'un error de la controladora '%s' de l'ALSA. " "Reporteu aquest problema als desenvolupadors de l'ALSA.\n" -"Ens ha cridat mitjançant POLLIN set -- tammateix una ordre posterior " +"Ens han aixecat amb POLLIN activat -- tanmateix una crida posterior a " "snd_pcm_avail() ha retornat 0 o un altre valor < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Inactiu" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "Reproducció d'alta fidelitat (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Dúplex de telefonia (HSP/HFP)" @@ -2443,6 +2349,140 @@ msgstr "Dúplex de telefonia (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "Servidor de so PulseAudio" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "No s'ha pogut connectar al bus del sistema: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "No s'ha pogut obtenir una crida del PID: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "No s'ha pogut especificar l'UID en l'objecte crida." + +#~ msgid "Failed to get CK session." +#~ msgstr "No s'ha pogut obtenir la sessió CK." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "No s'ha pogut definir l'UID en l'objecte sessió." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "No s'ha pogut assignar PolKitAction." + +#~ msgid "Cannot set action_id" +#~ msgstr "No s'ha pogut definir action_id" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "No s'ha pogut assignar PolKitContext." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "No s'ha pogut inicialitzar PolKitContext: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "No s'ha pogut determinar si la crida està autoritzada: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "No s'ha pogut obtenir l'autorització: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit ha respós '%s'" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Programació d'alta prioritat (nivell Unix nice negatiu) per al dimoni " +#~ "PulseAudio" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Programació en temps real per al dimoni PulseAudio" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "Les normes d'ús del sistema no permeten PulseAudio adquirir programació " +#~ "d'alta prioritat." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "Les normes d'ús del sistema no permeten la programació en temps real de " +#~ "PulseAudio." + +#~ msgid "read() failed: %s\n" +#~ msgstr "Ha fallat read(): %s\n" + +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "Ha fallat el pa_context_connect(): %s\n" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Aquesta aplicació està en el grup '%s', s'està establint la prioritat " +#~ "alta." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "" +#~ "Aquesta aplicació està en el grup '%s', s'està establint la prioritat en " +#~ "temps real." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit ha permés el privilegi acquire-high-priority." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit ha rebutjat el privilegi acquire-high-priority." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit ha permés el privilegi acquire-real-time." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit ha rebutjat el privilegi acquire-real-time." + +#~ 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." +#~ msgstr "" +#~ "S'ha demanat SUID de root i una planificació de temps real i/o d'alta " +#~ "prioritat. Tanmateix, falten els privilegis necessaris:\n" +#~ "No es pertany al grup '%s'. PolicyKit no atorga els privilegis demanats i " +#~ "no s'ha incrementat els límits de recursos RLIMIT_NICE/RLIMIT_RTPRIO.\n" +#~ "Per habilitar la planificació en temps real o d'alta prioritat, heu " +#~ "d'obtenir els privilegis de PolicyKit adequats, o pertànyer al grup '%s', " +#~ "o incrementar els límits de recursos de RLIMIT_NICE/RLIMIT_RTPRIO per a " +#~ "aquest usuari." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "La prioritat alta està habilitada en la configuració però no està permesa " +#~ "per la política." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "S'ha incrementat el valor de RLIMIT_RTPRIO amb éxit." + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "S'ha produït un error amb RLIMIT_RTPRIO: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "S'abandona CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "La prioritat de temps real està habilitada en la configuració però no " +#~ "està permesa per la política." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "S'han limitat les capacitats cap a CAP_SYS_NICE." + +#~ msgid "time_new() failed.\n" +#~ msgstr "Ha fallat el time_new().\n" + #~ msgid "Analog Mono" #~ msgstr "Mono analògic" diff --git a/po/cs.po b/po/cs.po index 51ce0850..8971ee06 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,17 +7,22 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" -"PO-Revision-Date: 2009-05-03 23:57+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" +"PO-Revision-Date: 2009-07-07 20:37+0200\n" "Last-Translator: Petr Kovar \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -30,7 +35,7 @@ msgstr "" "S největší pravděpodobností se jedná o chybu v ovladači ALSA \"%s\". " "Nahlaste prosím tento problém vývojářům ALSA." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -43,7 +48,7 @@ msgstr "" "S největší pravděpodobností se jedná o chybu v ovladači ALSA \"%s\". " "Nahlaste prosím tento problém vývojářům ALSA." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -58,7 +63,7 @@ msgstr "" #: ../src/modules/module-ladspa-sink.c:49 msgid "Virtual LADSPA sink" -msgstr "" +msgstr "Virtuální cíl LADSPA" #: ../src/modules/module-ladspa-sink.c:53 msgid "" @@ -68,8 +73,13 @@ msgid "" "plugin name> label= control=" msgstr "" +"sink_name= sink_properties= master= format= rate= " +"channels= channel_map= plugin= label= control=<čárkou " +"oddělený seznam hodnot ovládání vstupu>" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Vnitřní zvukový systém" @@ -89,218 +99,92 @@ msgstr "Nezdařilo se přidělení nového nahrávacího programu dl." msgid "Failed to add bind-now-loader." msgstr "Nezdařilo se přidat bind-now-loader." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Nelze se spojit se systémovou sběrnicí: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Nelze získat volajícího z PID: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Nelze nastavit UID na objekt volajícího." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Nezdařilo se získání sezení CK." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Nelze nastavit UID na objekt sezení." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Nelze alokovat PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Nelze nastavit action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Nelze alokovat PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Nelze spustit PolKitContext: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Nezdařilo se určit, zda je volající oprávněn: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Nezdařilo se získat oprávnění: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit odpověděl s \"%s\"" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Získán signál %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Ukončování." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Nezdařilo se nalézt uživatele \"%s\"." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Nezdařilo se nalézt skupinu \"%s\"." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Nalezen uživatel \"%s\" (UID %lu) a skupina \"%s\" (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID uživatele \"%s\" a skupiny \"%s\" nesouhlasí." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Domovský adresář uživatele \"%s\" není \"%s\", bude ignorováno." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Nezdařilo se vytvořit \"%s\": %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Nezdařilo se změnit seznam skupin: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Nezdařilo se změnit GID: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Nezdařilo se změnit UID: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Oprávnění superuživatele úspěšně zrušena." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "Režim celého systému není na této platformě podporován." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) selhalo: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Nezdařila se analýza příkazového řádku." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"Nacházíme se ve skupině \"%s\", což umožňuje plánování o vysoké prioritě." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "Nacházíme se ve skupině \"%s\", což umožňuje plánování v reálném čase." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit nám udělil oprávnění acquire-high-priority." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit nám neudělil oprávnění acquire-high-priority." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit nám udělil oprávnění acquire-real-time." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit nám neudělil oprávnění acquire-real-time." - -#: ../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." -msgstr "" -"Voláno SUID root a v nastavení bylo požádáno o plánování v reálném čase či o " -"vysoké prioritě. Schází nám ovšem potřebná oprávnění.\n" -"Nejsme ve skupině \"%s\", PolicyKit nám odmítá přidělit požadovaná oprávnění " -"a je nutné zvýšit omezení zdroje RLIMIT_NICE/RLIMIT_RTPRIO.\n" -"Plánování v reálném čase či o vysoké prioritě zapnete získáním příslušných " -"oprávnění PolicyKit, nebo tím, že se stanete členy \"%s\", nebo uživateli " -"zvýšíte omezení zdroje RLIMIT_NICE/RLIMIT_RTPRIO." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Plánování o vysoké prioritě v konfiguraci zapnuto, ale nepovoleno pravidly." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "Úspěšně zvýšeno RLIMIT_RTPRIO" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO selhalo: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Vzdávání se CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Plánování v reálném čase v konfiguraci zapnuto, ale nepovoleno pravidly." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Démon neběží" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Démon běží jako PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Zabití démona se nezdařilo: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -308,150 +192,150 @@ msgstr "" "Tento program není určen ke spuštění pod superuživatelem (není-li zadáno --" "system)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Jsou vyžadována oprávnění superuživatele." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start nepodporováno u systémových instancí." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "Běží v systémovém režimu, ale nenastaveno --disallow-exit!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "Běží v systémovém režimu, ale nenastaveno --disallow-module-loading!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Běží v systémovém režimu, vynuceně se vypíná režim SHM!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "Běží v systémovém režimu, vynuceně se vypíná čas nečinnosti ukončení!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Nezdařilo se získání stdio." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "pipe selhalo: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() selhalo: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() selhalo: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Spuštění démona selhalo." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Spuštění démona bylo úspěšné." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Toto je PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Překladový počítač: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Překladové CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Běží na počítači: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "Nalezen následující počet CPU: %u." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "Velikost stránky je %lu bajtů" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Přeloženo s podporou Valgrind: ano" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Přeloženo s podporou Valgrind: ne" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Běží v režimu valgrind: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Optimalizované sestavení: ano" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Optimalizované sestavení: ne" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definováno, všechny výrazy zakázány." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH definováno, zakázány pouze výrazy rychlých cest." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Všechny výrazy povoleny." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Nezdařilo se získání ID počítače" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "ID počítače je %s." -#: ../src/daemon/main.c:917 -#, fuzzy, c-format +#: ../src/daemon/main.c:770 +#, c-format msgid "Session ID is %s." -msgstr "ID počítače je %s." +msgstr "ID sezení je %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Používán běhový adresář %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Používán stavový adresář %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Běží v systémovém režimu: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -460,17 +344,23 @@ msgid "" "Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " "explanation why system mode is usually a bad idea." msgstr "" - -#: ../src/daemon/main.c:951 +"Dobrá, máte tedy PA spuštěn v systémovém režimu. Vemte prosím na vědomí, že " +"k tomuto by až na výjimečné situace němelo docházet.\n" +"Pokud v této činnosti přesto budete pokračovat, nesete riziko za možné " +"špatné a nepředvídatelné chování systému.\n" +"Vysvětlení, proč je systémový režim obvykle velmi špatný nápad, si můžete " +"přečíst na http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode." + +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() selhalo." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "" "Jsou dostupné výtečné časovače o vysokém rozlišení. Tak s chutí do toho!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -478,27 +368,27 @@ msgstr "" "Sorry, vole, kernel error! Tip šéfkuchaře na dnešní den zní: Linux se " "zapnutými časovači o vysokém rozlišení." -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() selhalo." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Selhalo spuštění démona." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Spuštění démona bez jakýchkoliv nahraných modulů, běh bude odmítnut." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Spuštění démona dokončeno." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Vypínání démona spuštěno." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Démon ukončen." @@ -752,7 +642,7 @@ msgstr "Načíst jednou: %s\n" #: ../src/daemon/dumpmodules.c:75 #, c-format msgid "DEPRECATION WARNING: %s\n" -msgstr "" +msgstr "VAROVÁNÍ ZASTARALOSTI: %s\n" #: ../src/daemon/dumpmodules.c:79 #, c-format @@ -837,14 +727,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Čtení z konfiguračního souboru: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Rušení superuživatelských oprávnění." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Schopnosti úspěšně omezeny na CAP_SYS_NICE." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "Zvukový systém PulseAudio" @@ -853,29 +739,6 @@ msgstr "Zvukový systém PulseAudio" msgid "Start the PulseAudio Sound System" msgstr "Spustit zvukový systém PulseAudio" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" -"Plánování o vysoké prioritě (záporná úroveň nice v Unixu) démona PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Plánování v reálném čase démona PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"Systémová pravidla znemožňují technologii PulseAudio získat přístup k " -"plánování o vysoké prioritě." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" -"Systémová pravidla znemožňují technologii PulseAudio získat přístup k " -"plánování v reálném čase." - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1248,188 +1111,192 @@ msgstr "Selhala analýza dat cookie" msgid "Failed to open configuration file '%s': %s" msgstr "Selhalo otevření konfiguračního souboru \"%s\": %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Žádný soubor cookie nenahrán. Pokus o spojení bez tohoto kroku." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Přijata zpráva pro neznámé rozšíření \"%s\"" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Nezdařilo se vyprázdnit proud: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "Proud přehrávání vyprázdněn.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "Vyprazdňování spojení se serverem.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() selhalo: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() selhalo: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() selhalo: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Proud úspěšně vytvořen.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() selhalo: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "" "Metrika vyrovnávací paměti: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Metrika vyrovnávací paměti: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" -msgstr "Používána vzorkovací specifikace \"%s\", mapa kanálů \"%s\".\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." +msgstr "Používáno určení vzorku \"%s\", mapa kanálů \"%s\".\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "Připojeno k zařízení %s (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Chyba proudu: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "Proudové zařízení pozastaveno.%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "Proudové zařízení obnoveno.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "Podběhnutí proudu.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "Přeběhnutí proudu.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "Proud spuštěn.%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "Proud přesunut na zařízení %s (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "nikoliv " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "Změněny atributy vyrovnávací paměti proudu.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "Spojení navázáno.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() selhalo: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() selhalo: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() selhalo: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Spojení selhalo: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Získáno EOF.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() selhalo: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "Získáno EOF.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() selhalo: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "Získán signál, ukončování.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Nezdařilo se získat latenci: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Čas: %0.3f sekund; latence: %0.0f μs. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() selhalo: %s\n" #: ../src/utils/pacat.c:605 -#, fuzzy, c-format +#, c-format msgid "" "%s [options]\n" "\n" @@ -1531,6 +1398,13 @@ msgstr "" " --latency=BAJTY Vyžádá určenou latenci v bajtech.\n" " --process-time=BAJTY Vyžádá určený čas zpracování na " "požadavek v bajtech.\n" +" --property=VLASTNOST=HODNOTA Nastaví určenou vlastnost na určenou " +"hodnotu.\n" +" --raw Nahrává/přehrává surová data PCM.\n" +" --file-format=FORMÁT Nahrává/přehrává formátovaná data " +"PCM.\n" +" --list-file-formats Zobrazí seznam dostupných formátů " +"souborů.\n" #: ../src/utils/pacat.c:727 #, c-format @@ -1543,97 +1417,104 @@ msgstr "" "Přeloženo s libpulse %s\n" "Propojeno s libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" -msgstr "Neplatná mapa kanálů \"%s\"\n" +msgid "Invalid client name '%s'" +msgstr "Neplatný název klienta \"%s\"\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" -msgstr "Neplatná metoda převzorkování \"%s\"." +msgid "Invalid stream name '%s'" +msgstr "Neplatný název proudu \"%s\"\n" #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "Neplatná mapa kanálů \"%s\"\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Neplatné upřesnění latence \"%s\"\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "Neplatné upřesnění času zpracování \"%s\"\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" -msgstr "Neplatná metoda převzorkování \"%s\"." +msgid "Invalid property '%s'" +msgstr "Neplatná vlastnost \"%s\"\n" #: ../src/utils/pacat.c:878 #, c-format msgid "Unknown file format %s." -msgstr "" +msgstr "Neznámý formát souboru %s." #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" -msgstr "Neplatné upřesnění vzorkování\n" +#, fuzzy +msgid "Invalid sample specification" +msgstr "Neplatné určení vzorku\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "Příliš mnoho argumentů.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" -msgstr "Selhalo získání informace o vzorku: %s\n" +msgid "Failed to generate sample specification for file." +msgstr "Selhalo vytvoření určení vzorku souboru.\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Selhalo otevření zvukového souboru.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" +"specification from file." msgstr "" +"Varování: zadané určení vzorku bude přepsáno určením získaným ze souboru.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" -msgstr "Selhalo získání informace o vzorku: %s\n" +msgid "Failed to determine sample specification from file." +msgstr "Selhalo zjištění určení vzorku ze souboru.\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "Varování: Selhalo zjištění mapy kanálů ze souboru.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" -msgstr "Mapa kanálů se neshoduje s upřesněním vzorkování\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" +msgstr "Mapa kanálů se neshoduje s určením vzorku\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "Varování: selhal zápis mapy kanálů do souboru.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" -msgstr "Otevírání proudu %s s upřesněním vzorkování \"%s\".\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." +msgstr "Otevírání proudu %s s určením vzorku \"%s\" a mapou kanálů \"%s\".\n" #: ../src/utils/pacat.c:1006 msgid "recording" @@ -1643,35 +1524,34 @@ msgstr "nahrávání" msgid "playback" msgstr "přehrávání" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() selhalo.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() selhalo.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() selhalo.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() selhalo: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() selhalo.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() selhalo.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() selhalo.\n" #: ../src/utils/pasuspender.c:81 @@ -1699,6 +1579,11 @@ msgstr "Nezdařilo se obnovení: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "VAROVÁNÍ: Zvukový server není místní, nedojde k pozastavení.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Spojení selhalo: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1738,6 +1623,21 @@ msgstr "" "Přeloženo s libpulse %s\n" "Propojeno s libpulse %s\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "pa_mainloop_new() selhalo.\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() selhalo.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() selhalo.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -1780,7 +1680,7 @@ msgstr "" "Název počítače: %s\n" "Název serveru: %s\n" "Verze serveru: %s\n" -"Výchozí upřesnění vzorkování: %s\n" +"Výchozí určení vzorku: %s\n" "Výchozí mapa kanálů: %s\n" "Výchozí cíl: %s\n" "Výchozí zdroj: %s\n" @@ -1817,7 +1717,7 @@ msgstr "" "\tNázev: %s\n" "\tPopis: %s\n" "\tOvladač: %s\n" -"\tUpřesnění vzorkování: %s\n" +"\tUrčení vzorku: %s\n" "\tMapa kanálů: %s\n" "\tModul vlastníka: %u\n" "\tZtlumení: %s\n" @@ -1831,14 +1731,14 @@ msgstr "" "\t\t%s\n" #: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 -#, fuzzy, c-format +#, c-format msgid "\tPorts:\n" -msgstr "\tProfily:\n" +msgstr "\tPorty:\n" #: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 -#, fuzzy, c-format +#, c-format msgid "\tActive Port: %s\n" -msgstr "\tAktivní profil: %s\n" +msgstr "\tAktivní port: %s\n" #: ../src/utils/pactl.c:290 #, c-format @@ -1871,7 +1771,7 @@ msgstr "" "\tNázev: %s\n" "\tPopis: %s\n" "\tOvladač: %s\n" -"\tUpřesnění vzorkování: %s\n" +"\tUrčení vzorku: %s\n" "\tMapa kanálů: %s\n" "\tModul vlastníka: %u\n" "\tZtlumení: %s\n" @@ -1996,7 +1896,7 @@ msgstr "" "\tModul vlastníka: %s\n" "\tKlient: %s\n" "\tCíl: %u\n" -"\tUpřesnění vzorkování: %s\n" +"\tUrčení vzorku: %s\n" "\tMapa kanálů: %s\n" "\tZtlumení: %s\n" "\tHlasitost: %s\n" @@ -2034,7 +1934,7 @@ msgstr "" "\tModul vlastníka: %s\n" "\tKlient: %s\n" "\tZdroj: %u\n" -"\tUpřesnění vzorkování: %s\n" +"\tUrčení vzorku: %s\n" "\tMapa kanálů: %s\n" "\tLatence vyrovnávací paměti: %0.0f μs\n" "\tLatence zdroje: %0.0f μs\n" @@ -2066,7 +1966,7 @@ msgid "" msgstr "" "Vzorek č. %u\n" "\tNázev: %s\n" -"\tUpřesnění vzorkování: %s\n" +"\tUrčení vzorku: %s\n" "\tMapa kanálů: %s\n" "\tHlasitost: %s\n" "\t %s\n" @@ -2093,7 +1993,7 @@ msgid "Premature end of file\n" msgstr "Předčasný konec souboru\n" #: ../src/utils/pactl.c:826 -#, fuzzy, c-format +#, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2132,6 +2032,8 @@ msgstr "" "%s [přepínače] suspend-sink [CÍL] 1|0\n" "%s [přepínače] suspend-source [ZDROJ] 1|0\n" "%s [přepínače] set-card-profile [KARTA] [PROFIL] \n" +"%s [přepínače] set-sink-port [CÍL] [PORT] \n" +"%s [přepínače] set-source-port [ZDROJ] [PORT] \n" "\n" " -h, --help Zobrazí tuto nápovědu\n" " --version Zobrazí verzi\n" @@ -2151,6 +2053,11 @@ msgstr "" "Přeloženo s libpulse %s\n" "Propojeno s libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, c-format +msgid "Invalid client name '%s'\n" +msgstr "Neplatný název klienta \"%s\"\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Zadejte prosím soubor se vzorkem určeným k nahrání\n" @@ -2159,10 +2066,13 @@ msgstr "Zadejte prosím soubor se vzorkem určeným k nahrání\n" msgid "Failed to open sound file.\n" msgstr "Selhalo otevření zvukového souboru.\n" +#: ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "Selhalo zjištění určení vzorku ze souboru.\n" + #: ../src/utils/pactl.c:951 -#, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" -msgstr "Otevírání proudu %s s upřesněním vzorkování \"%s\".\n" +msgstr "Varování: Selhalo zjištění určení vzorku ze souboru.\n" #: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" @@ -2206,24 +2116,17 @@ msgid "You have to specify a card name/index and a profile name\n" msgstr "Je nutné upřesnit název karty/indexu a název profilu\n" #: ../src/utils/pactl.c:1073 -#, fuzzy msgid "You have to specify a sink name/index and a port name\n" -msgstr "Je nutné upřesnit název karty/indexu a název profilu\n" +msgstr "Je nutné upřesnit název cíle/indexu a název portu\n" #: ../src/utils/pactl.c:1084 -#, fuzzy msgid "You have to specify a source name/index and a port name\n" -msgstr "Je nutné upřesnit název karty/indexu a název profilu\n" +msgstr "Je nutné upřesnit název zdroje/indexu a název portu\n" #: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Nezadán žádný platný příkaz.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "pa_context_connect() selhalo: %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2305,7 +2208,7 @@ msgstr "Doposud neimplementováno.\n" #: ../src/utils/pacmd.c:61 msgid "No PulseAudio daemon running, or not running as session daemon." -msgstr "" +msgstr "Neběží žádný démon PulseAudio, nebo neběží jako démon sezení." #: ../src/utils/pacmd.c:66 #, c-format @@ -2340,11 +2243,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Nelze přistoupit k zámku automatického spouštění." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2361,7 +2264,7 @@ msgstr "" "Probudilo nás nastavení POLLOUT - nicméně následné snd_pcm_avail() vrátilo 0 " "či jinou hodnotu < min_avail." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2379,15 +2282,15 @@ msgstr "" "či jinou hodnotu < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Vypnuto" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "Přehrávání s velmi věrnou reprodukcí (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Duplexní telefonie (HSP/HFP)" @@ -2395,6 +2298,136 @@ msgstr "Duplexní telefonie (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "Zvukový server PulseAudio" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Nelze se spojit se systémovou sběrnicí: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Nelze získat volajícího z PID: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Nelze nastavit UID na objekt volajícího." + +#~ msgid "Failed to get CK session." +#~ msgstr "Nezdařilo se získání sezení CK." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "Nelze nastavit UID na objekt sezení." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Nelze alokovat PolKitAction." + +#~ msgid "Cannot set action_id" +#~ msgstr "Nelze nastavit action_id" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Nelze alokovat PolKitContext." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Nelze spustit PolKitContext: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Nezdařilo se určit, zda je volající oprávněn: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Nezdařilo se získat oprávnění: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit odpověděl s \"%s\"" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Plánování o vysoké prioritě (záporná úroveň nice v Unixu) démona " +#~ "PulseAudio" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Plánování v reálném čase démona PulseAudio" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "Systémová pravidla znemožňují technologii PulseAudio získat přístup k " +#~ "plánování o vysoké prioritě." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "Systémová pravidla znemožňují technologii PulseAudio získat přístup k " +#~ "plánování v reálném čase." + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() selhalo: %s\n" + +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() selhalo: %s\n" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Nacházíme se ve skupině \"%s\", což umožňuje plánování o vysoké prioritě." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "" +#~ "Nacházíme se ve skupině \"%s\", což umožňuje plánování v reálném čase." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit nám udělil oprávnění acquire-high-priority." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit nám neudělil oprávnění acquire-high-priority." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit nám udělil oprávnění acquire-real-time." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit nám neudělil oprávnění acquire-real-time." + +#~ 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." +#~ msgstr "" +#~ "Voláno SUID root a v nastavení bylo požádáno o plánování v reálném čase " +#~ "či o vysoké prioritě. Schází nám ovšem potřebná oprávnění.\n" +#~ "Nejsme ve skupině \"%s\", PolicyKit nám odmítá přidělit požadovaná " +#~ "oprávnění a je nutné zvýšit omezení zdroje RLIMIT_NICE/RLIMIT_RTPRIO.\n" +#~ "Plánování v reálném čase či o vysoké prioritě zapnete získáním " +#~ "příslušných oprávnění PolicyKit, nebo tím, že se stanete členy \"%s\", " +#~ "nebo uživateli zvýšíte omezení zdroje RLIMIT_NICE/RLIMIT_RTPRIO." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "Plánování o vysoké prioritě v konfiguraci zapnuto, ale nepovoleno " +#~ "pravidly." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "Úspěšně zvýšeno RLIMIT_RTPRIO" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO selhalo: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Vzdávání se CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "Plánování v reálném čase v konfiguraci zapnuto, ale nepovoleno pravidly." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Schopnosti úspěšně omezeny na CAP_SYS_NICE." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() selhalo.\n" + #~ msgid "Analog Mono" #~ msgstr "Analogové mono" diff --git a/po/de.po b/po/de.po index dd96f71c..17507a2d 100644 --- a/po/de.po +++ b/po/de.po @@ -3,13 +3,13 @@ # This file is distributed under the same license as the pulseaudio package. # # Fabian Affolter , 2008-2009. -# Micha Pietsch , 2008 +# Micha Pietsch , 2008, 2009. # msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-18 12:43+0100\n" "Last-Translator: Fabian Affolter \n" "Language-Team: German \n" @@ -19,7 +19,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: German\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -32,7 +37,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:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -45,7 +50,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:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -71,7 +76,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Internes Audio" @@ -91,214 +96,92 @@ msgstr "Neuer dlopen-Loader konnte nicht gefunden werden." msgid "Failed to add bind-now-loader." msgstr "Hinzufügen von Bind-Now-Loader fehlgeschlagen." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Kann nicht mit dem System-Bus verbinden: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Kann Caller von PID nicht beziehen: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Kann UID für Caller-Objekt nicht setzen." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Kann CK-Session nicht beziehen." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Kann UID für Session-Objekt nicht setzen." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Konnte PolKitAction nicht zuordnen." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Kann action_id nicht setzen" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Konnte PolKitContext nicht zuordnen." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Konnte PolKitContext nicht initialisieren: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Autorisierung des Callers konnte nicht sichergestellt werden: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Keine Authorisierung erhalten: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit antwortete mit '%s'" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Signal %s empfangen." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Wird beendet." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Benutzer '%s' nicht gefunden." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Gruppe '%s' nicht gefunden." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Benutzer '%s' (UID %lu) und Gruppe '%s' (GID %lu) gefunden." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID von Benutzer '%s' und Gruppe '%s' stimmen nicht überein." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Benutzerverzeichnis von Benutzer '%s' ist nicht '%s', ignoriere." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Konnte '%s' nciht erzeugen: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Wechseln der Gruppen-Liste fehlgeschlagen: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Wechseln der GID fehlgeschlagen: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Wechseln der UID fehlgeschlagen: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Root-Berechtigungen erfolgreich zurückgesetzt." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "System-Modus auf dieser Plattform nicht unterstützt." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) fehlgeschlagen: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Parsen der Kommandzeile fehlgeschlagen." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"Wir befinden uns in der Gruppe '%s', was Scheduling höchster Priorität " -"ermöglicht." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" -"Wir befinden uns in der Gruppe '%s', was Echtzeit-Scheduling ermöglicht." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "Richtlinien gewähren das Recht aquire-high-priority." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "Richtlinien verweigern das Recht acquire-high-priority." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "Richtlinien gewähren das Recht aquire-real-time." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "Richtlinien verweigern das Recht acquire-real-time." - -#: ../src/daemon/main.c:560 -#, fuzzy, 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." -msgstr "" -"' und PolicyKit verweigern diese Rechte. Verwerfe SUID wieder.\n" -"Erlangen Sie die den Richtlinien entsprechenden Rechte, um Echtzeit-" -"Scheduling zu aktivieren oder werden Sie Mitglied der Gruppe '" - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "Scheduling höchster Priorität konfiguriert, jedoch nicht erlaubt." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO erfolgreich erhöht" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO fehlgeschlagen: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Verwerfe CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "Echtzeit-Scheduling konfiguriert, jedoch nicht erlaubt." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Daemon läuft nicht" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Daemon läuft als PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Konnte Prozess nicht abbrechen: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -306,153 +189,150 @@ msgstr "" "Dieses Programm sollte ohne die Option --system nicht als Administrator " "ausgeführt werden." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Root-Berechtigungen benötigt." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start nicht unterstützt für System-Instanzen." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "System-Modus aktiv, jeodch --disallow-exit nicht gesetzt!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "System-Modus aktiv, jedoch --disallow-module-loading nicht gesetzt!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "System-Modus aktiv, SHM-Modus gezwungenermaßen deaktiviert!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "System-Modus aktiv, Exit-Idle-Time gezwungenermaßen deaktiviert!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Reservieren von STDIO fehlgeschlagen." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "pipe fehlgeschlagen: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() fehlgeschlagen: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() fehlgeschlagen: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Start des Daemons fehlgeschlagen." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Start des Daemons erfolgreich." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Dies ist PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Kompilier-Host: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Kompilier-CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Laufe auf Host: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs gefunden." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "Seitengröße ist %lu Bytes." -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Kompiliere mit Valgrind-Unterstützung: ja" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Kompiliere mit Valgrind-Unterstützung: nein" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Läuft im Valgrind-Modus: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Optimiertes Build: ja" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Optimiertes Build: nein" -#: ../src/daemon/main.c:902 -#, fuzzy +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definiert, alle Ansprüche deaktiviert." -#: ../src/daemon/main.c:904 -#, fuzzy +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH definiert, nur fast-path-Ansprüche deaktiviert." -#: ../src/daemon/main.c:906 -#, fuzzy +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Alle Ansprüche aktiviert." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Beziehen der Maschinen-ID fehlgeschlagen" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "System- ID ist %s." -#: ../src/daemon/main.c:917 -#, fuzzy, c-format +#: ../src/daemon/main.c:770 +#, c-format msgid "Session ID is %s." msgstr "System- ID ist %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Nutze Laufzeit-Verzeichnis %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Nutze Zustands-Verzeichnis %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Laufe im System-Modus: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -462,41 +342,41 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() fehlgeschlagen." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Neue hochauslösende Timer verfügbar! Guten Appetit!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 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:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() fehlgeschlagen." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Konnte Daemon nicht initialisieren." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Daemon verweigert Ausführung, da keine Module geladen." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Start des Daemons abgeschlossen." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Herunterfahren des Daemon gestartet." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Daemon beendet." @@ -816,7 +696,6 @@ msgid "Failed to open configuration file: %s" msgstr "Öffnen der Konfigurationsdatei fehlgeschlagen : %s" #: ../src/daemon/daemon-conf.c:540 -#, fuzzy msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." @@ -829,14 +708,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Lese von Konfigurationsdatei: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Root-Privilegien aufgeben." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Fähigkeiten erfolgreich auf CAP_SYS_NICE reduziert." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio Sound System" @@ -845,31 +720,6 @@ msgstr "PulseAudio Sound System" msgid "Start the PulseAudio Sound System" msgstr "Das PulseAudio Sound System starten" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -#, fuzzy -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Echtzeit-Terminierung des PulseAudio-Daemon fehlgeschlagen" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -#, fuzzy -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"System-Richtlinien verhindert PulseAudio beim Erlangen des high-priority " -"scheduling." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -#, fuzzy -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" -"System-Richtlinien verhindert PulseAudio beim Erlangen der Echtzeit-" -"Terminierung.." - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1202,7 +1052,7 @@ msgstr "Fehlende Implementation" #: ../src/pulse/error.c:67 msgid "Client forked" -msgstr "" +msgstr "Client geteilt" #: ../src/pulse/sample.c:169 #, c-format @@ -1242,183 +1092,187 @@ msgstr "Parsen der Cookie-Daten fehlgeschlagen" msgid "Failed to open configuration file '%s': %s" msgstr "Konfigurationsdatei '%s' konnte nicht geöffnet werden: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Verbindungsversuch ohne Cookie, da keines geladen." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Nachricht für unbekannte Erweiterung '%s' erhalten" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Entleeren des Streams fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "Wiedergabe-Stream entleert.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "Draining connection to server.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() fehlgeschlagen: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Stream wurde erfolgreich erstellt.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Pufferdaten: maxlenght=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Pufferdaten: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "Benutze Sample-Angabe '%s', Kanalzuordnung '%s'.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "Verbunden mit Gerät %s (%u, %sausgesetzt).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Stream-Fehler: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "Stream-Gerät ausgesetzt.%s\n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "Stream-Gerät reaktiviert.%s\n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "Stream unterlaufen.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "Stream überlief.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "Stream gestartet: %s\n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "Stream an Gerät %s übergeben (%u, %sausgesetzt).%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "nicht " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "Stream-Zwischenspeicher-Attribute geändert.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "Verbindung hergestellt.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Verbindungsfehler: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF empfangen.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() fehlgeschlagen: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF empfangen.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "Signal empfangen, beende.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Erhalten der Latenz fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Zeit: %0.3f sec; Latenz: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() fehlgeschlagen: %s\n" #: ../src/utils/pacat.c:605 @@ -1531,97 +1385,104 @@ msgstr "" "Kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" -msgstr "Ungültige Kanal-Zuweisung '%s'\n" +msgid "Invalid client name '%s'" +msgstr "Ungültiger Client-Name '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" -msgstr "Ungültige Resample-Methode '%s'." +msgid "Invalid stream name '%s'" +msgstr "Ungültiger Stream-Name '%s'\n" #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "Ungültige Kanal-Zuweisung '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Ungültige Latenz-Angaben '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "Ungültige Prozesszeit-Angaben '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" -msgstr "Ungültige Resample-Methode '%s'." +msgid "Invalid property '%s'" +msgstr "Ungültige Eigenschaft '%s'\n" #: ../src/utils/pacat.c:878 #, c-format msgid "Unknown file format %s." -msgstr "" +msgstr "Unbekanntes Dateiformat %s." #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "Ungültige Sample-Angaben\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "Zu viele Argumente.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" -msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n" +msgid "Failed to generate sample specification for file." +msgstr "Beziehen der Sample-Informationen für die Datei fehlgeschlagen.\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "Warnung: Beziehen der Sample-Angabe aus Datei fehlgeschlagen.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" -msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n" +msgid "Failed to determine sample specification from file." +msgstr "Beziehen der Sample-Informationen der Datei fehlgeschlagen.\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "Warnung: Bestimmung der Kanalzuordnung aus Datei fehlgeschlagen.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "Kanalzuordnung entspricht nicht Einstellungen des Samples\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "Warnung: Schreiben der Kanalzuordnung in Datei fehlgeschlagen.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" -msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." +msgstr "" +"Öffnen eines %s-Streams mit Sample-Angabe '%s' und Kanalzuordnung '%s'.\n" #: ../src/utils/pacat.c:1006 msgid "recording" @@ -1631,35 +1492,34 @@ msgstr "aufnehmen" msgid "playback" msgstr "abspielen" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() fehlgeschlagen.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_new() fehlgeschlagen: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() fehlgeschlagen.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() fehlgeschlagen.\n" #: ../src/utils/pasuspender.c:81 @@ -1687,6 +1547,11 @@ 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:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Verbindungsfehler: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1726,6 +1591,21 @@ msgstr "" "kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "pa_mainloop_new() fehlgeschlagen.\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() fehlgeschlagen.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() fehlgeschlagen.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -1819,12 +1699,12 @@ msgstr "" "\t\t%s\n" #: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 -#, fuzzy, c-format +#, c-format msgid "\tPorts:\n" msgstr "\tProfile:\n" #: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 -#, fuzzy, c-format +#, c-format msgid "\tActive Port: %s\n" msgstr "\tAktive Profile: %s\n" @@ -2138,6 +2018,11 @@ msgstr "" "Kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, c-format +msgid "Invalid client name '%s'\n" +msgstr "Ungültiger Client-Name '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Geben Sie eine zu öffnende Sample-Datei an\n" @@ -2146,10 +2031,13 @@ msgstr "Geben Sie eine zu öffnende Sample-Datei an\n" msgid "Failed to open sound file.\n" msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n" +#: ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "Beziehen der Sample-Informationen der Datei fehlgeschlagen.\n" + #: ../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" +msgstr "Warnung: Beziehen der Sample-Angabe aus Datei fehlgeschlagen.\n" #: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" @@ -2197,24 +2085,17 @@ 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: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" +msgstr "Sie müssen einen Senkennamen/-Indexwert und einen Portnamen 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" +msgstr "Sie müssen einen Quellennamen/-Indexwert und einen Portnamen angeben\n" #: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Kein gültiger Befehl angegeben.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "pa_context_new() fehlgeschlagen: %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2296,7 +2177,7 @@ msgstr "Noch nicht implementiert.\n" #: ../src/utils/pacmd.c:61 msgid "No PulseAudio daemon running, or not running as session daemon." -msgstr "" +msgstr "Es läuft kein PulseAudio-Dienst oder nicht als Sessiondienst." #: ../src/utils/pacmd.c:66 #, c-format @@ -2331,11 +2212,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Fehler beim Zugriff auf Autostart -Sperre." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2346,7 +2227,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2358,15 +2239,15 @@ msgid "" msgstr "" #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Aus" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "High Fidelity Playback (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephony Duplex (HSP/HFP)" @@ -2374,6 +2255,132 @@ msgstr "Telephony Duplex (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "PulseAudio Sound Server" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Kann nicht mit dem System-Bus verbinden: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Kann Caller von PID nicht beziehen: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Kann UID für Caller-Objekt nicht setzen." + +#~ msgid "Failed to get CK session." +#~ msgstr "Kann CK-Session nicht beziehen." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "Kann UID für Session-Objekt nicht setzen." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Konnte PolKitAction nicht zuordnen." + +#~ msgid "Cannot set action_id" +#~ msgstr "Kann action_id nicht setzen" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Konnte PolKitContext nicht zuordnen." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Konnte PolKitContext nicht initialisieren: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Autorisierung des Callers konnte nicht sichergestellt werden: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Keine Authorisierung erhalten: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit antwortete mit '%s'" + +#, fuzzy +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Hochprioritäts-Terminierung () (negative Unix nice level) für den " +#~ "PulseAudio-Dienst" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Echtzeit-Terminierung des PulseAudio-Daemon" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "System-Richtlinien verhindert PulseAudio beim Erlangen des high-priority " +#~ "scheduling." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "System-Richtlinien verhindert PulseAudio beim Erlangen der Echtzeit-" +#~ "Terminierung." + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() fehlgeschlagen: %s\n" + +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() fehlgeschlagen: %s\n" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Wir befinden uns in der Gruppe '%s', was Scheduling höchster Priorität " +#~ "ermöglicht." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "" +#~ "Wir befinden uns in der Gruppe '%s', was Echtzeit-Scheduling ermöglicht." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "Richtlinien gewähren das Recht aquire-high-priority." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "Richtlinien verweigern das Recht acquire-high-priority." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "Richtlinien gewähren das Recht aquire-real-time." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "Richtlinien verweigern das Recht acquire-real-time." + +#, fuzzy +#~ 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." +#~ msgstr "" +#~ "' und PolicyKit verweigern diese Rechte. Verwerfe SUID wieder.\n" +#~ "Erlangen Sie die den Richtlinien entsprechenden Rechte, um Echtzeit-" +#~ "Scheduling zu aktivieren oder werden Sie Mitglied der Gruppe '" + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "Scheduling höchster Priorität konfiguriert, jedoch nicht erlaubt." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO erfolgreich erhöht" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO fehlgeschlagen: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Verwerfe CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "Echtzeit-Scheduling konfiguriert, jedoch nicht erlaubt." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Fähigkeiten erfolgreich auf CAP_SYS_NICE reduziert." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() fehlgeschlagen.\n" + #~ msgid "Analog Mono" #~ msgstr "Analog Mono" diff --git a/po/de_CH.po b/po/de_CH.po index 7c069efb..5944c3f3 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-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-18 12:55+0100\n" "Last-Translator: Fabian Affolter \n" "Language-Team: German \n" @@ -18,7 +18,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: Swiss German\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -31,7 +36,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:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -44,7 +49,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:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -70,7 +75,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Internes Audio" @@ -90,214 +95,92 @@ msgstr "Neuer dlopen-Loader konnte nicht gefunden werden." msgid "Failed to add bind-now-loader." msgstr "Hinzufügen von Bind-Now-Loader fehlgeschlagen." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Kann nicht mit dem System-Bus verbinden: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Kann Caller von PID nicht beziehen: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Kann UID für Caller-Objekt nicht setzen." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Kann CK-Session nicht beziehen." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Kann UID für Session-Objekt nicht setzen." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Konnte PolKitAction nicht zuordnen." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Kann action_id nicht setzen" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Konnte PolKitContext nicht zuordnen." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Konnte PolKitContext nicht initialisieren: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Autorisierung des Callers konnte nicht sichergestellt werden: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Keine Authorisierung erhalten: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit antwortete mit '%s'" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Signal %s empfangen." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Wird beendet." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Benutzer '%s' nicht gefunden." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Gruppe '%s' nicht gefunden." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Benutzer '%s' (UID %lu) und Gruppe '%s' (GID %lu) gefunden." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID von Benutzer '%s' und Gruppe '%s' stimmen nicht überein." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Benutzerverzeichnis von Benutzer '%s' ist nicht '%s', ignoriere." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Konnte '%s' nciht erzeugen: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Wechseln der Gruppen-Liste fehlgeschlagen: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Wechseln der GID fehlgeschlagen: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Wechseln der UID fehlgeschlagen: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Root-Berechtigungen erfolgreich zurückgesetzt." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "System-Modus auf dieser Plattform nicht unterstützt." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) fehlgeschlagen: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Parsen der Kommandzeile fehlgeschlagen." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"Wir befinden uns in der Gruppe '%s', was Scheduling höchster Priorität " -"ermöglicht." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" -"Wir befinden uns in der Gruppe '%s', was Echtzeit-Scheduling ermöglicht." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "Richtlinien gewähren das Recht aquire-high-priority." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "Richtlinien verweigern das Recht acquire-high-priority." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "Richtlinien gewähren das Recht aquire-real-time." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "Richtlinien verweigern das Recht acquire-real-time." - -#: ../src/daemon/main.c:560 -#, fuzzy, 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." -msgstr "" -"' und PolicyKit verweigern diese Rechte. Verwerfe SUID wieder.\n" -"Erlangen Sie die den Richtlinien entsprechenden Rechte, um Echtzeit-" -"Scheduling zu aktivieren oder werden Sie Mitglied der Gruppe '" - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "Scheduling höchster Priorität konfiguriert, jedoch nicht erlaubt." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO erfolgreich erhöht" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO fehlgeschlagen: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Verwerfe CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "Echtzeit-Scheduling konfiguriert, jedoch nicht erlaubt." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Daemon läuft nicht" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Daemon läuft als PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Konnte Prozess nicht abbrechen: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -305,153 +188,153 @@ msgstr "" "Dieses Programm sollte ohne die Option --system nicht als Administrator " "ausgeführt werden." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Root-Berechtigungen benötigt." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start nicht unterstützt für System-Instanzen." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "System-Modus aktiv, jeodch --disallow-exit nicht gesetzt!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "System-Modus aktiv, jedoch --disallow-module-loading nicht gesetzt!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "System-Modus aktiv, SHM-Modus gezwungenermassen deaktiviert!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "System-Modus aktiv, Exit-Idle-Time gezwungenermassen deaktiviert!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Reservieren von STDIO fehlgeschlagen." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "pipe fehlgeschlagen: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() fehlgeschlagen: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() fehlgeschlagen: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Start des Daemons fehlgeschlagen." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Start des Daemons erfolgreich." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Dies ist PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Kompilier-Host: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Kompilier-CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Laufe auf Host: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs gefunden." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "Seitengrösse ist %lu Bytes." -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Kompiliere mit Valgrind-Unterstützung: ja" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Kompiliere mit Valgrind-Unterstützung: nein" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Läuft im Valgrind-Modus: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Optimiertes Build: ja" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Optimiertes Build: nein" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 #, fuzzy msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definiert, alle Ansprüche deaktiviert." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 #, fuzzy msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH definiert, nur fast-path-Ansprüche deaktiviert." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 #, fuzzy msgid "All asserts enabled." msgstr "Alle Ansprüche aktiviert." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Beziehen der Maschinen-ID fehlgeschlagen" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "System- ID ist %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "System- ID ist %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Nutze Laufzeit-Verzeichnis %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Nutze Zustands-Verzeichnis %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Laufe im System-Modus: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -461,41 +344,41 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() fehlgeschlagen." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Neue hochauslösende Timer verfügbar! Guten Appetit!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 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:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() fehlgeschlagen." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Konnte Daemon nicht initialisieren." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Daemon verweigert Ausführung, da keine Module geladen." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Start des Daemons abgeschlossen." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Herunterfahren des Daemon gestartet." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Daemon beendet." @@ -828,14 +711,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Lese von Konfigurationsdatei: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Root-Privilegien aufgeben." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Fähigkeiten erfolgreich auf CAP_SYS_NICE reduziert." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio Sound System" @@ -844,34 +723,6 @@ msgstr "PulseAudio Sound System" msgid "Start the PulseAudio Sound System" msgstr "Das PulseAudio Sound System starten" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -#, fuzzy -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" -"High-priority scheduling (verkleinere Unix nice-Stufe) für den PulseAudio-" -"Daemon" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -#, fuzzy -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Echtzeit-Terminierung des PulseAudio-Daemon fehlgeschlagen" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -#, fuzzy -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"System-Richtlinien verhindert PulseAudio beim Erlangen des high-priority " -"scheduling." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -#, fuzzy -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" -"System-Richtlinien verhindert PulseAudio beim Erlangen der Echtzeit-" -"Terminierung.." - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1245,183 +1096,187 @@ msgstr "Parsen der Cookie-Daten fehlgeschlagen" msgid "Failed to open configuration file '%s': %s" msgstr "Konfigurationsdatei '%s' konnte nicht geöffnet werden: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Verbindungsversuch ohne Cookie, da keines geladen." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Nachricht für unbekannte Erweiterung '%s' erhalten" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Entleeren des Streams fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "Wiedergabe-Stream entleert.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "Draining connection to server.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() fehlgeschlagen: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Stream wurde erfolgreich erstellt.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Pufferdaten: maxlenght=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Pufferdaten: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "Benutze Sample-Angabe '%s', Kanalzuordnung '%s'.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "Verbunden mit Gerät %s (%u, %sausgesetzt).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Stream-Fehler: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "Stream-Gerät ausgesetzt.%s\n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "Stream-Gerät reaktiviert.%s\n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "Stream unterlaufen.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "Stream überlief.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "Stream gestartet: %s\n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "Stream an Gerät %s übergeben (%u, %sausgesetzt).%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "nicht " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "Stream-Zwischenspeicher-Attribute geändert.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "Verbindung hergestellt.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Verbindungsfehler: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF empfangen.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() fehlgeschlagen: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF empfangen.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "Signal empfangen, beende.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Erhalten der Latenz fehlgeschlagen: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Zeit: %0.3f sec; Latenz: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() fehlgeschlagen: %s\n" #: ../src/utils/pacat.c:605 @@ -1534,34 +1389,34 @@ msgstr "" "Kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "Ungültige Kanal-Zuweisung '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "Ungültige Resample-Methode '%s'." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "Ungültige Kanal-Zuweisung '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Ungültige Latenz-Angaben '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "Ungültige Prozesszeit-Angaben '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "Ungültige Resample-Methode '%s'." #: ../src/utils/pacat.c:878 @@ -1570,60 +1425,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "Ungültige Sample-Angaben\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "Zu viele Argumente.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "Kanalzuordnung entspricht nicht Einstellungen des Samples\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "Öffne eine %s-Stream mit Sample-Angabe '%s'.\n" #: ../src/utils/pacat.c:1006 @@ -1634,35 +1495,34 @@ msgstr "aufnehmen" msgid "playback" msgstr "abspielen" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() fehlgeschlagen.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_new() fehlgeschlagen: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() fehlgeschlagen.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() fehlgeschlagen.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() fehlgeschlagen.\n" #: ../src/utils/pasuspender.c:81 @@ -1690,6 +1550,11 @@ 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:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Verbindungsfehler: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1729,6 +1594,21 @@ msgstr "" "kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "pa_mainloop_new() fehlgeschlagen.\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() fehlgeschlagen.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() fehlgeschlagen.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2141,6 +2021,11 @@ msgstr "" "Kompiliert mit libpulse %s\n" "Gelinkt mit libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Ungültige Kanal-Zuweisung '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Geben Sie eine zu öffnende Sample-Datei an\n" @@ -2149,6 +2034,11 @@ msgstr "Geben Sie eine zu öffnende Sample-Datei an\n" msgid "Failed to open sound file.\n" msgstr "Öffnen der Audio-Datei fehlgeschlagen.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Beziehen der Sample-Informationen fehlgeschlagen: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2213,11 +2103,6 @@ msgstr "Sie müssen einen Karten-Name/Indexwert und einen Profilnamen angeben\n" msgid "No valid command specified.\n" msgstr "Kein gültiger Befehl angegeben.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "pa_context_new() fehlgeschlagen: %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2334,11 +2219,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Fehler beim Zugriff auf Autostart -Sperre." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2356,7 +2241,7 @@ msgstr "" "von snd_pcm_avail() liefert 0 oder einen anderen Wert zurück, der < " "min_avail ist." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2375,15 +2260,15 @@ msgstr "" "min_avail ist." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Aus" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "High Fidelity Playback (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephony Duplex (HSP/HFP)" @@ -2391,6 +2276,136 @@ msgstr "Telephony Duplex (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "PulseAudio Sound Server" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Kann nicht mit dem System-Bus verbinden: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Kann Caller von PID nicht beziehen: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Kann UID für Caller-Objekt nicht setzen." + +#~ msgid "Failed to get CK session." +#~ msgstr "Kann CK-Session nicht beziehen." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "Kann UID für Session-Objekt nicht setzen." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Konnte PolKitAction nicht zuordnen." + +#~ msgid "Cannot set action_id" +#~ msgstr "Kann action_id nicht setzen" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Konnte PolKitContext nicht zuordnen." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Konnte PolKitContext nicht initialisieren: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Autorisierung des Callers konnte nicht sichergestellt werden: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Keine Authorisierung erhalten: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit antwortete mit '%s'" + +#, fuzzy +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "High-priority scheduling (verkleinere Unix nice-Stufe) für den PulseAudio-" +#~ "Daemon" + +#, fuzzy +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Echtzeit-Terminierung des PulseAudio-Daemon fehlgeschlagen" + +#, fuzzy +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "System-Richtlinien verhindert PulseAudio beim Erlangen des high-priority " +#~ "scheduling." + +#, fuzzy +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "System-Richtlinien verhindert PulseAudio beim Erlangen der Echtzeit-" +#~ "Terminierung.." + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() fehlgeschlagen: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_new() fehlgeschlagen: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Wir befinden uns in der Gruppe '%s', was Scheduling höchster Priorität " +#~ "ermöglicht." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "" +#~ "Wir befinden uns in der Gruppe '%s', was Echtzeit-Scheduling ermöglicht." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "Richtlinien gewähren das Recht aquire-high-priority." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "Richtlinien verweigern das Recht acquire-high-priority." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "Richtlinien gewähren das Recht aquire-real-time." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "Richtlinien verweigern das Recht acquire-real-time." + +#, fuzzy +#~ 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." +#~ msgstr "" +#~ "' und PolicyKit verweigern diese Rechte. Verwerfe SUID wieder.\n" +#~ "Erlangen Sie die den Richtlinien entsprechenden Rechte, um Echtzeit-" +#~ "Scheduling zu aktivieren oder werden Sie Mitglied der Gruppe '" + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "Scheduling höchster Priorität konfiguriert, jedoch nicht erlaubt." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO erfolgreich erhöht" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO fehlgeschlagen: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Verwerfe CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "Echtzeit-Scheduling konfiguriert, jedoch nicht erlaubt." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Fähigkeiten erfolgreich auf CAP_SYS_NICE reduziert." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() fehlgeschlagen.\n" + #~ msgid "Analog Mono" #~ msgstr "Analog Mono" diff --git a/po/el.po b/po/el.po index 9e593e16..bf43b7b9 100644 --- a/po/el.po +++ b/po/el.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: el\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2008-08-22 19:40+0300\n" "Last-Translator: Dimitris Glezos \n" "Language-Team: Greek \n" @@ -16,7 +16,12 @@ msgstr "" "X-Generator: KAider 0.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -25,7 +30,7 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -34,7 +39,7 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -56,7 +61,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "" @@ -76,357 +81,241 @@ msgstr "" msgid "Failed to add bind-now-loader." msgstr "" -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "" - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "" - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "" - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "" - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "" - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "" -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Έξοδος." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Αποτυχία εύρεσης χρήστη '%s'." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Αποτυχία εύρεσης ομάδας χρηστών '%s'." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "" -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "" -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "" -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "" -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "" -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "" -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "" - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "" - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "" - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "" - -#: ../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." -msgstr "" - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "" -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "" -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "" -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "" -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "" -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "" -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Αυτό είναι το PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "" -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "" -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "" -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "" -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, c-format msgid "Session ID is %s." msgstr "" -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "" -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "" -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -436,15 +325,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "" -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -452,27 +341,27 @@ msgstr "" "Δικέ μου, ο πυρήνας σου είναι για τα μπάζα! Η πρόταση του σεφ σήμερα είναι " "Linux με ενεργοποιημένα τα high-resolution timers!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "" -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "" -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "" -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "" -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "" @@ -734,14 +623,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "" -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "" - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "" @@ -750,24 +635,6 @@ msgstr "" 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" -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -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." -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "" @@ -1140,183 +1007,182 @@ msgstr "" msgid "Failed to open configuration file '%s': %s" msgstr "" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "" -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" +msgstr "Αποτυχία εύρεσης χρήστη '%s'." + +#: ../src/utils/pacat.c:113 +msgid "Playback stream drained." msgstr "" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:123 +msgid "Draining connection to server." msgstr "" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:136 +#, c-format +msgid "pa_stream_drain(): %s" msgstr "" -#: ../src/utils/pacat.c:135 +#: ../src/utils/pacat.c:159 #, c-format -msgid "pa_stream_drain(): %s\n" +msgid "pa_stream_write() failed: %s" msgstr "" -#: ../src/utils/pacat.c:158 +#: ../src/utils/pacat.c:197 #, c-format -msgid "pa_stream_write() failed: %s\n" +msgid "pa_stream_begin_write() failed: %s" msgstr "" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 #, c-format -msgid "pa_stream_peek() failed: %s\n" +msgid "pa_stream_peek() failed: %s" msgstr "" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +msgid "Stream successfully created." msgstr "" -#: ../src/utils/pacat.c:305 +#: ../src/utils/pacat.c:310 #, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:314 #, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "" -#: ../src/utils/pacat.c:312 +#: ../src/utils/pacat.c:317 #, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "" -#: ../src/utils/pacat.c:316 +#: ../src/utils/pacat.c:321 #, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +msgid "Using sample spec '%s', channel map '%s'." msgstr "" -#: ../src/utils/pacat.c:320 +#: ../src/utils/pacat.c:325 #, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +msgid "Connected to device %s (%u, %ssuspended)." msgstr "" -#: ../src/utils/pacat.c:330 +#: ../src/utils/pacat.c:335 #, c-format -msgid "Stream error: %s\n" +msgid "Stream error: %s" msgstr "" -#: ../src/utils/pacat.c:340 +#: ../src/utils/pacat.c:345 #, c-format -msgid "Stream device suspended.%s \n" +msgid "Stream device suspended.%s" msgstr "" -#: ../src/utils/pacat.c:342 +#: ../src/utils/pacat.c:347 #, c-format -msgid "Stream device resumed.%s \n" +msgid "Stream device resumed.%s" msgstr "" -#: ../src/utils/pacat.c:350 +#: ../src/utils/pacat.c:355 #, c-format -msgid "Stream underrun.%s \n" +msgid "Stream underrun.%s" msgstr "" -#: ../src/utils/pacat.c:357 +#: ../src/utils/pacat.c:362 #, c-format -msgid "Stream overrun.%s \n" +msgid "Stream overrun.%s" msgstr "" -#: ../src/utils/pacat.c:364 +#: ../src/utils/pacat.c:369 #, c-format -msgid "Stream started.%s \n" +msgid "Stream started.%s" msgstr "" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 #, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "" -#: ../src/utils/pacat.c:378 +#: ../src/utils/pacat.c:383 #, c-format -msgid "Stream buffer attributes changed.%s \n" +msgid "Stream buffer attributes changed.%s" msgstr "" -#: ../src/utils/pacat.c:411 +#: ../src/utils/pacat.c:416 #, c-format -msgid "Connection established.%s \n" +msgid "Connection established.%s" msgstr "" -#: ../src/utils/pacat.c:414 +#: ../src/utils/pacat.c:419 #, c-format -msgid "pa_stream_new() failed: %s\n" +msgid "pa_stream_new() failed: %s" msgstr "" -#: ../src/utils/pacat.c:442 +#: ../src/utils/pacat.c:447 #, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +msgid "pa_stream_connect_playback() failed: %s" msgstr "" -#: ../src/utils/pacat.c:448 +#: ../src/utils/pacat.c:453 #, c-format -msgid "pa_stream_connect_record() failed: %s\n" +msgid "pa_stream_connect_record() failed: %s" msgstr "" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 +#: ../src/utils/pacat.c:467 #, c-format -msgid "Connection failure: %s\n" -msgstr "" - -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" +msgid "Connection failure: %s" msgstr "" #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" +msgid "Got EOF." msgstr "" -#: ../src/utils/pacat.c:532 +#: ../src/utils/pacat.c:537 #, c-format -msgid "write() failed: %s\n" -msgstr "" - -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +msgid "write() failed: %s" msgstr "" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:558 +msgid "Got signal, exiting." msgstr "" #: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" +msgstr "Αποτυχία εύρεσης χρήστη '%s'." + +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "" -#: ../src/utils/pacat.c:592 +#: ../src/utils/pacat.c:595 #, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +msgid "pa_stream_update_timing_info() failed: %s" msgstr "" #: ../src/utils/pacat.c:605 @@ -1387,34 +1253,34 @@ msgid "" "Linked with libpulse %s\n" msgstr "" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "" #: ../src/utils/pacat.c:776 #, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "" #: ../src/utils/pacat.c:813 #, c-format -msgid "Invalid channel map '%s'\n" +msgid "Invalid channel map '%s'" msgstr "" #: ../src/utils/pacat.c:842 #, c-format -msgid "Invalid latency specification '%s'\n" +msgid "Invalid latency specification '%s'" msgstr "" #: ../src/utils/pacat.c:849 #, c-format -msgid "Invalid process time specification '%s'\n" +msgid "Invalid process time specification '%s'" msgstr "" #: ../src/utils/pacat.c:861 #, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "" #: ../src/utils/pacat.c:878 @@ -1423,57 +1289,57 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +msgid "Invalid sample specification" msgstr "" #: ../src/utils/pacat.c:907 #, c-format -msgid "open(): %s\n" +msgid "open(): %s" msgstr "" #: ../src/utils/pacat.c:912 #, c-format -msgid "dup2(): %s\n" +msgid "dup2(): %s" msgstr "" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +msgid "Too many arguments." msgstr "" #: ../src/utils/pacat.c:930 -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "" #: ../src/utils/pacat.c:950 -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "" #: ../src/utils/pacat.c:956 msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" +"specification from file." msgstr "" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 -msgid "Failed to determine sample specification from file.\n" +#: ../src/utils/pacat.c:959 +msgid "Failed to determine sample specification from file." msgstr "" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" +msgid "Warning: Failed to determine channel map from file." msgstr "" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +msgid "Channel map doesn't match sample specification" msgstr "" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" +msgid "Warning: failed to write channel map to file." msgstr "" #: ../src/utils/pacat.c:1005 #, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "" #: ../src/utils/pacat.c:1006 @@ -1484,35 +1350,29 @@ msgstr "" msgid "playback" msgstr "" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +msgid "pa_mainloop_new() failed." msgstr "" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +msgid "io_new() failed." msgstr "" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +msgid "pa_context_new() failed." msgstr "" -#: ../src/utils/pacat.c:1066 +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 #, c-format -msgid "pa_context_connect() failed: %s\n" +msgid "pa_context_connect() failed: %s" msgstr "" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" +#: ../src/utils/pacat.c:1072 +msgid "pa_context_rttime_new() failed." msgstr "" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +msgid "pa_mainloop_run() failed." msgstr "" #: ../src/utils/pasuspender.c:81 @@ -1540,6 +1400,11 @@ msgstr "" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1570,6 +1435,21 @@ msgid "" "Linked with libpulse %s\n" msgstr "" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -1859,6 +1739,11 @@ msgid "" "Linked with libpulse %s\n" msgstr "" +#: ../src/utils/pactl.c:900 +#, c-format +msgid "Invalid client name '%s'\n" +msgstr "" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "" @@ -1867,6 +1752,10 @@ msgstr "" msgid "Failed to open sound file.\n" msgstr "" +#: ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "" + #: ../src/utils/pactl.c:951 msgid "Warning: Failed to determine sample specification from file.\n" msgstr "" @@ -1923,11 +1812,6 @@ msgstr "" msgid "No valid command specified.\n" msgstr "" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2037,11 +1921,11 @@ msgstr "" msgid "write(): %s" msgstr "" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "" -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2052,7 +1936,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2064,15 +1948,15 @@ msgid "" msgstr "" #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "" diff --git a/po/es.po b/po/es.po index 8af1c738..6995716e 100644 --- a/po/es.po +++ b/po/es.po @@ -8,68 +8,57 @@ msgid "" msgstr "" "Project-Id-Version: PulseAudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" -"PO-Revision-Date: 2009-06-11 21:48-0300\n" -"Last-Translator: Dennis Tobar \n" +"POT-Creation-Date: 2009-08-10 14:50+0000\n" +"PO-Revision-Date: 2009-08-10 14:36-0300\n" +"Last-Translator: Héctor Daniel Cabrera \n" "Language-Team: Fedora Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Spanish\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 +#: ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "%s %s" + +#: ../src/modules/alsa/alsa-util.c:1023 #, 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() devolvió un valor que es excepcionalmente grande: %lu bytes " -"(%lu ms).\n" -"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, " -"informe ésto a los desarrolladores de ALSA." +"snd_pcm_avail() devolvió un valor que es excepcionalmente grande: %lu bytes (%lu ms).\n" +"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, informe ésto a los desarrolladores de ALSA." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, 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() devolvió un valor que es excepcionalmente grande: %li bytes " -"(%s%lu ms).\n" -"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, " -"informe ésto a los desarrolladores de ALSA." +"snd_pcm_delay() devolvió un valor que es excepcionalmente grande: %li bytes (%s%lu ms).\n" +"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, informe ésto a los desarrolladores de ALSA." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, 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() devolvió un valor que es excepcionalmente grande: %lu " -"bytes (%lu ms).\n" -"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, " -"informe ésto a los desarrolladores de ALSA." +"snd_pcm_mmap_begin() devolvió un valor que es excepcionalmente grande: %lu bytes (%lu ms).\n" +"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, informe ésto a los desarrolladores de ALSA." #: ../src/modules/module-ladspa-sink.c:49 msgid "Virtual LADSPA sink" -msgstr "" +msgstr "Sumidero virtual LADSPA" #: ../src/modules/module-ladspa-sink.c:53 -msgid "" -"sink_name= sink_properties= " -"master= format= rate= " -"channels= channel_map= plugin= label= control=" -msgstr "" +msgid "sink_name= sink_properties= master= format= rate= channels= channel_map= plugin= label= control=" +msgstr "sink_name= sink_properties= master= format= rate= channels= channel_map= plugin= label= control=" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Audio Interno" @@ -89,427 +78,283 @@ msgstr "Falló al asignar el cargador dl nuevo." msgid "Failed to add bind-now-loader." msgstr "Falló al agregar bind-now-loader." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "No se puede conectar al bus del sistema: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "No se puede obtener el llamador desde el PID: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "No se puede poner UID en el objeto llamador." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Falló al obtener sesión CK." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "No se puede poner UID en el objeto de sesión." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "No se puede asignar PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "No se pudo poner action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "No se pudo asignar PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "No se pudo inicializar PolKitContext: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "No se pudo determinar si el llamador está autorizado: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "No se pudo obtener auth: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit respondió con '%s'" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Se obtuvo la señal %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Saliendo." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Falló al buscar usuario '%s'." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Falló al buscar grupo '%s'." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Se encontró el usuario '%s' (UID %lu) y el grupo '%s' (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID del usuario '%s' y del grupo '%s' no son similares." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "El directorio de inicio del usuario '%s' no es '%s', ignorando." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 +#: ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Falló al crear '%s': %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Falló al cambiar la lista de grupo: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Falló al cambiar GID: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Falló al cambiar UID: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Se han liberado con éxitos los privilegios de root." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "El modo a nivel de sistema no es soportado en esta plataforma." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) falló: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Falló al analizar la línea de comando." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "Estamos en el grupo '%s', permitiendo planificación de prioridad alta." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "Estamos en el grupo '%s', permitiendo planificación en tiempo real." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit garantiza que se obtenga el privilegio de alta prioridad." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit se niega a dar acceso al privilegio de alta prioridad." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit garantiza el acceso al privilegio de tiempo real." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit se niega a dar acceso al privilegio de tiempo real." - -#: ../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." -msgstr "" -"Se llamó con SUID root y se pidió planificación en tiempo real y/o de alta " -"prioridad en la configuración. Sin embargo, no se tiene los privilegios " -"necesarios:\n" -"No se está en el grupo '%s'. PolicyKit rechaza darnos el permiso necesario y " -"no se puede aumentar los límites del recurso RLIMIT_NICE/RLIMIT_RTPRIO.\n" -"Para habilitar la planifiación de tiempo real/alta prioridad por favor " -"adquiera los privilegios apropiados en PolicyKit, o hágase miembro de '%s', " -"o aumente los límites del recurso RLIMIT_NICE/RLIMIT_RTPRIO para este " -"usuario." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Está habilitadada la planificación de prioridad alta, pero no están " -"permitidas por la política." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO incrementado en forma exitosa" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "Fallo en RLIMIT_RTPRIO: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Abandonando CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Está habilitada la planificación en tiempo real, pero no está permitido por " -"la política." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "El demonio no está funcionando" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "El demonio está funcionando como PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "No se ha podido detener el demonio: %s" -#: ../src/daemon/main.c:722 -msgid "" -"This program is not intended to be run as root (unless --system is " -"specified)." -msgstr "" -"Este programa no tiene por qué ser ejecutado como root (a menos que --system " -"sea especificado)." +#: ../src/daemon/main.c:568 +msgid "This program is not intended to be run as root (unless --system is specified)." +msgstr "Este programa no tiene por qué ser ejecutado como root (a menos que --system sea especificado)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Se necesitan privilegios de root." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start no está soportado para las instancias del sistema." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" -msgstr "" -"Ejecutándose en modo de sistema, ¡pero no se ha configurado --disallow-exit! " +msgstr "Ejecutándose en modo de sistema, ¡pero no se ha configurado --disallow-exit! " -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" -msgstr "" -"Ejecutándose en modo de sistema, ¡pero no se ha configurado --disallow-" -"module-loading!" +msgstr "Ejecutándose en modo de sistema, ¡pero no se ha configurado --disallow-module-loading!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" -msgstr "" -"Ejecutándose en modo de sistema, ¡desactivando forzadamente el modo SHM!" +msgstr "Ejecutándose en modo de sistema, ¡desactivando forzadamente el modo SHM!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" -msgstr "" -"Ejecutándose en modo de sistema, ¡desactivando forzadamente exit idle time!" +msgstr "Ejecutándose en modo de sistema, ¡desactivando forzadamente exit idle time!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Fallo al intentar adquirir stdio." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "Falló el pipe: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "Falló el fork(): %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 +#: ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "Falló la operación read(): %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Falló el inicio del demonio. " -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "El demonio se inició exitosamente." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Esto es PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Host de compilación: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Compilación CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Ejecutándose en el host: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "Se encontraron %u CPUs." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "El tamaño de la página es de %lu bytes" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Soporte para compilar con Valgrind: si" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Soporte para compilar con Valgrind: no" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Ejecutándose en modo valgrind: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Build optimizado: si" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Build optimizado: no" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definido, todos los chequeos deshabilitados." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH definido, sólo se deshabilitan los chequeos fast path." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Todos los chequeos habilitados." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Fallo al intentar obtener el ID de la máquina" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "El ID de la máquina es %s" -#: ../src/daemon/main.c:917 -#, fuzzy, c-format +#: ../src/daemon/main.c:770 +#, c-format msgid "Session ID is %s." -msgstr "El ID de la máquina es %s" +msgstr "El ID de la sesión es %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Utilizando directorio de tiempo de ejecución %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Utilizando directorio de estado %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Ejecutándose en modo de sistema: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 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." +"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 "" +"Bien, o sea que está ejecutando PA en modo de sistema. Por favor entienda que, en general, no debería estar haciéndolo.\n" +"Si insiste en seguir utilizando este modo, será debido a su propio accionar que las cosas no funcionen como se esperaba.\n" +"Por favor lea http://pulseaudio.org/wiki/WhatIsWrongWithSystemMod para obtener una explicación acerca de por qué es una mala idea utilizar el modo sistema." -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "Ha fallado pa_pid_file_create()." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" -msgstr "" -"¡Existen cronómetros de alta resolución fresquitos y disponibles! ¡Bon " -"appetit!" +msgstr "¡Existen cronómetros de alta resolución fresquitos y disponibles! ¡Bon appetit!" -#: ../src/daemon/main.c:963 -msgid "" -"Dude, your kernel stinks! The chef's recommendation today is Linux with high-" -"resolution timers enabled!" -msgstr "" -"¡Amigo, su kernel deja mucho que desear! ¡El plato que hoy recomienda el " -"chef es Linux con cronómetros de alta resolución activados! " +#: ../src/daemon/main.c:816 +msgid "Dude, your kernel stinks! The chef's recommendation today is Linux with high-resolution timers enabled!" +msgstr "¡Amigo, su kernel deja mucho que desear! ¡El plato que hoy recomienda el chef es Linux con cronómetros de alta resolución activados! " -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "Falló pa_core_new()." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Fallo al intentar iniciar el demonio." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." -msgstr "" -"El demonio se ha iniciado sin ningún módulo cargado, y por ello se niega a " -"funcionar." +msgstr "El demonio se ha iniciado sin ningún módulo cargado, y por ello se niega a funcionar." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "El demonio se inició completamente." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Comienza a apagarse el demonio." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "El demonio se ha apagado." @@ -524,48 +369,37 @@ 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" @@ -576,12 +410,10 @@ 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" @@ -592,78 +424,50 @@ msgstr "" " -h, --help Muestra esta ayuda\n" " --version Muestra la versión\n" " --dump-conf Vuelca la configuración por defecto\n" -" --dump-modules Vuelca una lista de múdulos " -"disponibles\n" -" --dump-resample-methods Vuelca los métodos disponibles de " -"remuestreo\n" -" --cleanup-shm Limpia los segmentos de memoria " -"compartidos\n" -" --start Inicia el demonio, si es que aún no " -"está funcionando\n" +" --dump-modules Vuelca una lista de múdulos disponibles\n" +" --dump-resample-methods Vuelca los métodos disponibles de remuestreo\n" +" --cleanup-shm Limpia los segmentos de memoria compartidos\n" +" --start Inicia el demonio, si es que aún no está funcionando\n" " -k --kill Detiene a un demonio funcionando\n" -" --check Verifica qué demonios están " -"funcionando\n" +" --check Verifica qué demonios están funcionando\n" "\n" "OPCIONES:\n" -" --system[=BOOL] Se ejecuta como unica instancia a " -"nivel del sistema\n" -" -D, --daemonize[=BOOL] Se convierte en demonio luego de " -"iniciarse\n" +" --system[=BOOL] Se ejecuta como unica instancia a nivel del sistema\n" +" -D, --daemonize[=BOOL] Se convierte en demonio luego de iniciarse\n" " --fail[=BOOL] Se cierra cuando falla el inicio\n" -" --high-priority[=BOOL] Trata de establecer un nivel de nice " -"alto\n" -" (sólo disponible como root, cuando " -"el SUID o\n" +" --high-priority[=BOOL] Trata de establecer un nivel de nice alto\n" +" (sólo disponible como root, cuando el SUID o\n" " con RLIMIT_NICE) elevado\n" -" --realtime[=BOOL] Trata de activar planificación en " -"tiempo real\n" -" (sólo disponible como root, cuando " -"el SUID o\n" +" --realtime[=BOOL] Trata de activar planificación en tiempo real\n" +" (sólo disponible como root, cuando el SUID o\n" " con RLIMIT_RTPRIO) elevado\n" -" --disallow-module-loading[=BOOL] No permite la carga/descarga del " -"módulo por el usuario\n" +" --disallow-module-loading[=BOOL] No permite la carga/descarga del módulo por el usuario\n" " después que se haya iniciado\n" -" --disallow-exit[=BOOL] No permite la petición del usuario " -"de abandonar el programa\n" -" --exit-idle-time=SECS Desactiva un demonio cuando está " -"ocioso y\n" -" ha transcurrido esta cantidad de " -"tiempo\n" -" --module-idle-time=SECS Descarga modulos que se han cargado " -"automáticamente cuando están ociosos y\n" -" ha transcurrido esta cantidad de " -"tiempo\n" -" --scache-idle-time=SECS Descarga muestras cargadas " -"automáticamente cuando están\n" -" ociosos y ha transcurrido esta " -"cantidad de tiempo\n" -" --log-level[=LEVEL] Aumenta o define el grado de salida " -"a utilizar\n" +" --disallow-exit[=BOOL] No permite la petición del usuario de abandonar el programa\n" +" --exit-idle-time=SECS Desactiva un demonio cuando está ocioso y\n" +" ha transcurrido esta cantidad de tiempo\n" +" --module-idle-time=SECS Descarga modulos que se han cargado automáticamente cuando están ociosos y\n" +" ha transcurrido esta cantidad de tiempo\n" +" --scache-idle-time=SECS Descarga muestras cargadas automáticamente cuando están\n" +" ociosos y ha transcurrido esta cantidad de tiempo\n" +" --log-level[=LEVEL] Aumenta o define el grado de salida a utilizar\n" " -v Aumenta el grado de salida\n" " --log-target={auto,syslog,stderr} Especifica el destino del log\n" -" -p, --dl-search-path=PATH Establece la ruta de búsqueda " -"(search path) para complementos\n" +" -p, --dl-search-path=PATH Establece la ruta de búsqueda (search path) para complementos\n" " (plugins) compartidos\n" -" --resample-method=METHOD Utiliza un método de remuestreo " -"específico\n" -" (Ver en --dump-resample-methods los " -"valores posibles)\n" +" --resample-method=METHOD Utiliza un método de remuestreo específico\n" +" (Ver en --dump-resample-methods los valores posibles)\n" " --use-pid-file[=BOOL] Crea el archivo PID\n" -" --no-cpu-limit[=BOOL] No instala un limitador de carga de " -"CPU en\n" +" --no-cpu-limit[=BOOL] No instala un limitador de carga de CPU en\n" " plataformas que lo soporten.\n" -" --disable-shm[=BOOL] Deshabilita el soporte para memoria " -"compartida.\n" +" --disable-shm[=BOOL] Deshabilita el soporte para memoria compartida.\n" "\n" "SCRIPT DE INICIO:\n" -" -L, --load=\"ARGUMENTOS DEL MODULO\" Carga el módulo complemento con los " -"parámetros dados\n" +" -L, --load=\"ARGUMENTOS DEL MODULO\" Carga el módulo complemento con los parámetros dados\n" " -F, --file=FILENAME Ejecuta el script especificado\n" -" -C Abre una línea de comando en el TTY " -"actual después de iniciar\n" +" -C Abre una línea de comando en el TTY actual después de iniciar\n" "\n" -" -n No carga el archivo script " -"predeterminado\n" +" -n No carga el archivo script predeterminado\n" #: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" @@ -674,13 +478,8 @@ msgid "--fail expects boolean argument" msgstr "--fail espera un argumento booleano" #: ../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 un argumento en el nivel del log (ya sea numérico, que " -"caiga en el rango de 0..4; ya sea uno de debug, info, notice, warn, o " -"error). " +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 un argumento en el nivel del log (ya sea numérico, que caiga en el rango de 0..4; ya sea uno de debug, info, notice, warn, o error). " #: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" @@ -767,7 +566,7 @@ msgid "Load Once: %s\n" msgstr "Carga una vez: %s\n" #: ../src/daemon/dumpmodules.c:75 -#, fuzzy, c-format +#, c-format msgid "DEPRECATION WARNING: %s\n" msgstr "ADVERTENCIA DE COMPATIBILIDAD: %s\n" @@ -842,26 +641,18 @@ msgid "Failed to open configuration file: %s" msgstr "No se pudo abrir el archivo de configuración: %s" #: ../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 "" -"El mapa de canal predeterminado especificado tiene un número de canales " -"distinto al especificado como predeterminado." +msgid "The specified default channel map has a different number of channels than the specified default number of channels." +msgstr "El mapa de canal predeterminado especificado tiene un número de canales distinto al especificado como predeterminado." #: ../src/daemon/daemon-conf.c:616 #, c-format msgid "### Read from configuration file: %s ###\n" msgstr "### Leyendo desde el archivo de confioguración: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Abandonando privilegios de root." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Capacidades limitadas con éxito para CAP_SYS_NICE-" - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "Sistema de Sonido PulseAudio" @@ -870,31 +661,8 @@ msgstr "Sistema de Sonido PulseAudio" msgid "Start the PulseAudio Sound System" msgstr "Iniciar el Sistema de Sonido PulseAudio" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" -"Planificación de alta prioridad (nivel Unix negativo) para el demonio " -"PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Planificación de tiempo real para el demonio de PulseAudio." - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"Las políticas del sistema impidieron a PulseAudio adquirir la planificación " -"de alta prioridad." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" -"Las políticas del sistema impidieron a PulseAudio adquirir la planificación " -"de tiempo real." - -#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 +#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1098,9 +866,12 @@ msgstr "Posterior izquierdo superior" msgid "Top Rear Right" msgstr "Posterior derecho superior" -#: ../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 +#: ../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)" @@ -1253,7 +1024,8 @@ msgstr "%0.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() falló" @@ -1266,187 +1038,187 @@ msgstr "Fallo al analizar los datos de la cookie" msgid "Failed to open configuration file '%s': %s" msgstr "Fallo al abrir el archivo de configuración '%s': %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "No se ha cargado ninguna cookie. Intentando conectar de todos modos." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(:) %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Se ha recibido un mensaje para una extensión desconocida '%s'" -#: ../src/utils/pacat.c:107 +#: ../src/utils/pacat.c:108 #, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Error al drenar el flujo: %s\n" +msgid "Failed to drain stream: %s" +msgstr "Falló al drenar el flujo: %s" + +#: ../src/utils/pacat.c:113 +msgid "Playback stream drained." +msgstr "El flujo de reproducción ha sido drenado." -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" -msgstr "El flujo de platback se ha drenado.\n" +#: ../src/utils/pacat.c:123 +msgid "Draining connection to server." +msgstr "Drenando conexión con el servidor." -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" -msgstr "Drenando conexión con el servidor.\n" +#: ../src/utils/pacat.c:136 +#, c-format +msgid "pa_stream_drain(): %s" +msgstr "pa_stream_drain(): %s" -#: ../src/utils/pacat.c:135 +#: ../src/utils/pacat.c:159 #, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" +msgid "pa_stream_write() failed: %s" +msgstr "pa_stream_write() falló: %s" -#: ../src/utils/pacat.c:158 +#: ../src/utils/pacat.c:197 #, c-format -msgid "pa_stream_write() failed: %s\n" -msgstr "pa_stream_write() falló: %s\n" +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() falló: %s" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 +#: ../src/utils/pacat.c:237 +#: ../src/utils/pacat.c:267 #, c-format -msgid "pa_stream_peek() failed: %s\n" -msgstr "pa_stream_peek() falló: %s\n" +msgid "pa_stream_peek() failed: %s" +msgstr "pa_stream_peek() falló: %s" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" -msgstr "Se ha creado exitosamente el flujo (stream).\n" +#: ../src/utils/pacat.c:307 +msgid "Stream successfully created." +msgstr "Se ha creado exitosamente el flujo (stream)." -#: ../src/utils/pacat.c:305 +#: ../src/utils/pacat.c:310 #, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" -msgstr "pa_stream_get_buffer_attr() falló: %s\n" +msgid "pa_stream_get_buffer_attr() failed: %s" +msgstr "pa_stream_get_buffer_attr() falló: %s" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:314 #, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -msgstr "Métrica del búfer: maxlenght=%u, tlenghth=%u, prebuf=%u, minreq=%u\n" +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" +msgstr "Métrica del búfer: maxlenght=%u, tlenghth=%u, prebuf=%u, minreq=%u" -#: ../src/utils/pacat.c:312 +#: ../src/utils/pacat.c:317 #, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" -msgstr "Métrica del búfer: maxlenght=%u, fragsize=%u\n" +msgid "Buffer metrics: maxlength=%u, fragsize=%u" +msgstr "Métrica del búfer: maxlenght=%u, fragsize=%u" -#: ../src/utils/pacat.c:316 +#: ../src/utils/pacat.c:321 #, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" -msgstr "Utilizando especificaciones de muestra '%s', mapa del canal '%s'.\n" +msgid "Using sample spec '%s', channel map '%s'." +msgstr "Utilizando especificaciones de muestra '%s', mapa del canal '%s'." -#: ../src/utils/pacat.c:320 +#: ../src/utils/pacat.c:325 #, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" -msgstr "Conectado al dispositivo %s (%u, %ssuspended).\n" +msgid "Connected to device %s (%u, %ssuspended)." +msgstr "Conectado al dispositivo %s (%u, %ssuspended)." -#: ../src/utils/pacat.c:330 +#: ../src/utils/pacat.c:335 #, c-format -msgid "Stream error: %s\n" -msgstr "Error de flujo: %s\n" +msgid "Stream error: %s" +msgstr "Error de flujo: %s" -#: ../src/utils/pacat.c:340 +#: ../src/utils/pacat.c:345 #, c-format -msgid "Stream device suspended.%s \n" -msgstr "Dispositivo de flujo suspendido. %s \n" +msgid "Stream device suspended.%s" +msgstr "Dispositivo de flujo suspendido.%s" -#: ../src/utils/pacat.c:342 +#: ../src/utils/pacat.c:347 #, c-format -msgid "Stream device resumed.%s \n" -msgstr "Dispositivo de flujo reestablecido. %s \n" +msgid "Stream device resumed.%s" +msgstr "Dispositivo de flujo reestablecido.%s" -#: ../src/utils/pacat.c:350 +#: ../src/utils/pacat.c:355 #, c-format -msgid "Stream underrun.%s \n" -msgstr "Flujo agotado. %s \n" +msgid "Stream underrun.%s" +msgstr "Flujo agotado.%s" -#: ../src/utils/pacat.c:357 +#: ../src/utils/pacat.c:362 #, c-format -msgid "Stream overrun.%s \n" -msgstr "Flujo saturado.%s \n" +msgid "Stream overrun.%s" +msgstr "Flujo saturado.%s" -#: ../src/utils/pacat.c:364 +#: ../src/utils/pacat.c:369 #, c-format -msgid "Stream started.%s \n" -msgstr "Flujo iniciado. %s \n" +msgid "Stream started.%s" +msgstr "Flujo iniciado.%s" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 #, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" -msgstr "Fujo trasladado al dispositivo %s (%u, %ssuspended). %s\n" +msgid "Stream moved to device %s (%u, %ssuspended).%s" +msgstr "Fujo trasladado al dispositivo %s (%u, %ssuspended).%s" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "no" -#: ../src/utils/pacat.c:378 +#: ../src/utils/pacat.c:383 #, c-format -msgid "Stream buffer attributes changed.%s \n" -msgstr "Los atributos del buffer de flujo cambiaron. %s \n" +msgid "Stream buffer attributes changed.%s" +msgstr "Los atributos del búfer de flujo han cambiado.%s" -#: ../src/utils/pacat.c:411 +#: ../src/utils/pacat.c:416 #, c-format -msgid "Connection established.%s \n" -msgstr "Conexión establecida. %s \n" +msgid "Connection established.%s" +msgstr "Conexión establecida.%s" -#: ../src/utils/pacat.c:414 +#: ../src/utils/pacat.c:419 #, c-format -msgid "pa_stream_new() failed: %s\n" -msgstr "pa_stream_new() falló; %s\n" +msgid "pa_stream_new() failed: %s" +msgstr "pa_stream_new() falló: %s" -#: ../src/utils/pacat.c:442 +#: ../src/utils/pacat.c:447 #, c-format -msgid "pa_stream_connect_playback() failed: %s\n" -msgstr "pa_stream_connect_playback() falló: %s\n" +msgid "pa_stream_connect_playback() failed: %s" +msgstr "pa_stream_connect_playback() falló: %s" -#: ../src/utils/pacat.c:448 +#: ../src/utils/pacat.c:453 #, c-format -msgid "pa_stream_connect_record() failed: %s\n" -msgstr "pa_stream_connect_record() falló: %s\n" +msgid "pa_stream_connect_record() failed: %s" +msgstr "pa_stream_connect_record() falló: %s" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 +#: ../src/utils/pacat.c:467 #, c-format -msgid "Connection failure: %s\n" -msgstr "Error en la conexión: %s\n" - -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Hay EOF.\n" +msgid "Connection failure: %s" +msgstr "Error en la conexión: %s" #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() falló: %s\n" +msgid "Got EOF." +msgstr "Se tiene EOF." -#: ../src/utils/pacat.c:532 +#: ../src/utils/pacat.c:537 #, c-format -msgid "write() failed: %s\n" -msgstr "write() falló: %s\n" +msgid "write() failed: %s" +msgstr "write() falló: %s" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" -msgstr "Hay señal, saliendo (exiting).\n" +#: ../src/utils/pacat.c:558 +msgid "Got signal, exiting." +msgstr "Hay señal, saliendo (exiting)." -#: ../src/utils/pacat.c:567 +#: ../src/utils/pacat.c:572 #, c-format -msgid "Failed to get latency: %s\n" -msgstr "No se pudo obtener latencia: %s\n" +msgid "Failed to get latency: %s" +msgstr "No se pudo obtener latencia: %s" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Tiempo: %0.3f sec; Latencia: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 +#: ../src/utils/pacat.c:595 #, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" -msgstr "pa_stream_update_timing_info() falló: %s\n" +msgid "pa_stream_update_timing_info() failed: %s" +msgstr "pa_stream_update_timing_info() falló: %s" #: ../src/utils/pacat.c:605 -#, fuzzy, c-format +#, c-format msgid "" "%s [options]\n" "\n" @@ -1458,48 +1230,29 @@ 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, " -"s24le, s24be,\n" -" s24-32le, s24-32be (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" -" --property=PROPERTY=VALUE Set the specified property to the " -"specified value.\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" @@ -1512,47 +1265,33 @@ msgstr "" " -r, --record Crea una conexión para grabar\n" " -p, --playback Create a connection for playback\n" "\n" -" -v, --verbose Habilita operaciones con vocabulario " -"más detallado\n" +" -v, --verbose Habilita operaciones con vocabulario más detallado\n" "\n" -" -s, --server=SERVER El nombre del servidor con el que " -"conectarse\n" -" -d, --device=DEVICE El nombre del destino/fuente a la " -"que conectarse\n" -" -n, --client-name=NAME Cómo llamar a este cliente en el " -"servidor\n" -" --stream-name=NAME Cómo llamar a este flujo en el " -"servidor\n" -" --volume=VOLUME Especificar el salida inicial " -"(linear) de volumen dentro del rango 0...65536\n" -" --rate=SAMPLERATE Tasa de muestra en Hz (establecida " -"en 44100 por defecto)\n" -" --format=SAMPLEFORMAT El tipo de ejemplo, alguno entre " -"s16le, s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(establecido en s16ne por defecto)\n" -" --channels=CHANNELS La cantidad de canales, 1 para mono, " -"2 para stereo\n" +" -s, --server=SERVER El nombre del servidor con el que conectarse\n" +" -d, --device=DEVICE El nombre del sumidero/fuente a la que conectarse\n" +" -n, --client-name=NAME Cómo llamar a este cliente en el servidor\n" +" --stream-name=NAME Cómo llamar a este flujo en el servidor\n" +" --volume=VOLUME Especifica el salida inicial (linear) de volumen dentro del rango 0...65536\n" +" --rate=SAMPLERATE Tasa de muestra en Hz (establecida en 44100 por defecto)\n" +" --format=SAMPLEFORMAT El tipo de ejemplo, alguno entre s16le, s16be, u8, float32le,\n" +" float32be, ulaw, alaw, s32le, s32be (establecido en s16ne por defecto)\n" +" --channels=CHANNELS La cantidad de canales, 1 para mono, 2 para stereo\n" " (establecido en 2 por defecto)\n" -" --channel-map=CHANNELMAP Mapa de canales a ser usado en lugar " -"del establecido por defecto\n" -" --fix-format Obtener el formato de sample desde " -"el destino al que el flujo\n" +" --channel-map=CHANNELMAP Mapeo de canales a ser usado en lugar del establecido por defecto\n" +" --fix-format Obtener el formato de ejemplo desde el sumidero al que el flujo\n" " se ha conectado.\n" -" --fix-rate Obtener la tasa de sampling desde el " -"destino al que el flujo\n" +" --fix-rate Obtiene la tasa de ejemplo desde el destino al que el flujo\n" " se ha conectado.\n" -" --fix-channels Obtener el mapa y la cantidad de " -"canales\n" -" desde el destino al que el flojo se " -"ha conectado.\n" -" --no-remix No upmix o downmix canales.\n" -" --no-remap Mapear canales por índices en lugar " -"de por nombres.\n" -" --latency=BYTES Solicitar la latencia especificada " -"en bytes.\n" -" --process-time=BYTES Solicitar los procesos de tiempo por " -"pedido especificados en bytes.\n" +" --fix-channels Obtener el mapa y la cantidad de canales\n" +" desde el sumidero al que el flujo se ha conectado.\n" +" --no-remix No realiza un upmix o un downmix de los canales.\n" +" --no-remap Mapea canales por índices en lugar de por nombres.\n" +" --latency=BYTES Solicita la latencia especificada en bytes.\n" +" --process-time=BYTES Solicita los procesos de tiempo por pedido especificados en bytes.\n" +" --property=PROPERTY=VALUE Estabelce la propiedad especificada al valor especificado.\n" +" --raw Graba/reproduce datos PCM con formato raw.\n" +" --file-format=FFORMAT Graba/reproduce datos PCM formateados.\n" +" --list-file-formats Muestra una lista con los formatos de archivo disponibles.\n" #: ../src/utils/pacat.c:727 #, c-format @@ -1565,96 +1304,91 @@ msgstr "" "Compilado con libpulse %s\n" "Linkeado con libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 -#, fuzzy, c-format -msgid "Invalid client name '%s'\n" -msgstr "Mapa de canales inválido '%s'\n" +#: ../src/utils/pacat.c:760 +#, c-format +msgid "Invalid client name '%s'" +msgstr "Nombre de cliente '%s' inválido" #: ../src/utils/pacat.c:776 -#, fuzzy, c-format -msgid "Invalid stream name '%s'\n" -msgstr "Método de remuestreo inválido '%s'" +#, c-format +msgid "Invalid stream name '%s'" +msgstr "Nombre de flujo '%s' inválido" #: ../src/utils/pacat.c:813 #, c-format -msgid "Invalid channel map '%s'\n" -msgstr "Mapa de canales inválido '%s'\n" +msgid "Invalid channel map '%s'" +msgstr "Mapa de canales '%s' inválido" #: ../src/utils/pacat.c:842 #, c-format -msgid "Invalid latency specification '%s'\n" -msgstr "Especificación de latencia inválida '%s'\n" +msgid "Invalid latency specification '%s'" +msgstr "Especificación de latencia '%s' inválida" #: ../src/utils/pacat.c:849 #, c-format -msgid "Invalid process time specification '%s'\n" -msgstr "Especificación de tiempo de proceso inválida '%s'\n" +msgid "Invalid process time specification '%s'" +msgstr "Especificación de tiempo de proceso '%s' inválida" #: ../src/utils/pacat.c:861 -#, fuzzy, c-format -msgid "Invalid property '%s'\n" -msgstr "Método de remuestreo inválido '%s'" +#, c-format +msgid "Invalid property '%s'" +msgstr "Propiedad '%s' inválida" #: ../src/utils/pacat.c:878 -#, fuzzy, c-format +#, c-format msgid "Unknown file format %s." msgstr "Formato de archivo desconocido %s." #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" -msgstr "Especificación de muestra inválida\n" +msgid "Invalid sample specification" +msgstr "Especificación de muestra inválida" #: ../src/utils/pacat.c:907 #, c-format -msgid "open(): %s\n" -msgstr "open() %s\n" +msgid "open(): %s" +msgstr "open() %s" #: ../src/utils/pacat.c:912 #, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" +msgid "dup2(): %s" +msgstr "dup2(): %s" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" -msgstr "Demasiados argumentos.\n" +msgid "Too many arguments." +msgstr "Demasiados argumentos." #: ../src/utils/pacat.c:930 -#, fuzzy -msgid "Failed to generate sample specification for file.\n" -msgstr "Error al intentar obtener información de muestra: %s\n" +msgid "Failed to generate sample specification for file." +msgstr "Falló al generar especificación de ejemplo para el archivo." #: ../src/utils/pacat.c:950 -msgid "Failed to open audio file.\n" -msgstr "Error al intentar abrir el archivo de sonido.\n" +msgid "Failed to open audio file." +msgstr "Falló al abrir el archivo de sonido." #: ../src/utils/pacat.c:956 -msgid "" -"Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +msgid "Warning: specified sample specification will be overwritten with specification from file." +msgstr "Aviso: el ejemplo de especificación indicado será sobreescrito con las especificaciones del archivo." -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 -#, fuzzy -msgid "Failed to determine sample specification from file.\n" -msgstr "Error al intentar obtener información de muestra: %s\n" +#: ../src/utils/pacat.c:959 +msgid "Failed to determine sample specification from file." +msgstr "Falló al determinar especificación de ejemplo del archivo." #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +msgid "Warning: Failed to determine channel map from file." +msgstr "Aviso: Falló al determinar el mapeo del canal desde el archivo." #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" -msgstr "El mapa del canal no se corresponde con la especificación de muestra\n" +msgid "Channel map doesn't match sample specification" +msgstr "El mapa del canal no se corresponde con la especificación de muestra" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +msgid "Warning: failed to write channel map to file." +msgstr "Aviso: Faló al escribir el mapeo del canal en el archivo." #: ../src/utils/pacat.c:1005 -#, fuzzy, c-format -msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" -msgstr "Abriendo un %s flujo con las especificaciones de muestra '%s'.\n" +#, c-format +msgid "Opening a %s stream with sample specification '%s' and channel map '%s'." +msgstr "Abriendo un flujo %s con especificación de muestra '%s' y mapeo de canal '%s'." #: ../src/utils/pacat.c:1006 msgid "recording" @@ -1664,36 +1398,31 @@ msgstr "grabando" msgid "playback" msgstr "playback" -#: ../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() falló.\n" +#: ../src/utils/pacat.c:1032 +msgid "pa_mainloop_new() failed." +msgstr "pa_mainloop_new() falló." #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" -msgstr "io_new() falló.\n" +msgid "io_new() failed." +msgstr "io_new() falló." -#: ../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() falló.\n" +#: ../src/utils/pacat.c:1058 +msgid "pa_context_new() failed." +msgstr "pa_context_new() falló." #: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() falló: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() falló.\n" +#: ../src/utils/pacat.c:1072 +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_rttime_new() falló." -#: ../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() falló.\n" +#: ../src/utils/pacat.c:1079 +msgid "pa_mainloop_run() failed." +msgstr "pa_mainloop_run() falló." #: ../src/utils/pasuspender.c:81 #, c-format @@ -1720,7 +1449,14 @@ msgstr "Error al continuar: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "AVISO: El servidor de sonido no es local, no se suspende.\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 +#: ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Error en la conexión: %s\n" + +#: ../src/utils/pasuspender.c:176 +#: ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "Hay SIGINT, saliendo.\n" @@ -1737,16 +1473,14 @@ 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 "" "%s [opciones] ... \n" "\n" " -h, --help Muestra esta ayuda\n" " --version Muestra la versión\n" -" -s, --server=SERVER El nombre del servidor con el que " -"conectarse\n" +" -s, --server=SERVER El nombre del servidor con el que conectarse\n" "\n" #: ../src/utils/pasuspender.c:248 @@ -1760,6 +1494,24 @@ msgstr "" "Compilado con libpulse %s\n" "Linkeado con libpulse %s\n" +#: ../src/utils/pasuspender.c:277 +#: ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "pa_mainloop_new() falló.\n" + +#: ../src/utils/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() falló.\n" + +#: ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() falló.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -1773,9 +1525,7 @@ msgstr "Actualmente en uso: %u bloques conteniendo %s bytes en total.\n" #: ../src/utils/pactl.c:137 #, c-format msgid "Allocated during whole lifetime: %u blocks containing %s bytes total.\n" -msgstr "" -"Ubicados durante a lo largo del tiempo: %u bloques conteniendo %s bytes en " -"total.\n" +msgstr "Ubicados durante a lo largo del tiempo: %u bloques conteniendo %s bytes en total.\n" #: ../src/utils/pactl.c:140 #, c-format @@ -1854,15 +1604,17 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 -#, fuzzy, c-format +#: ../src/utils/pactl.c:261 +#: ../src/utils/pactl.c:353 +#, c-format msgid "\tPorts:\n" -msgstr "\tPerfiles:\n" +msgstr "\tPuertos:\n" -#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 -#, fuzzy, c-format +#: ../src/utils/pactl.c:267 +#: ../src/utils/pactl.c:359 +#, c-format msgid "\tActive Port: %s\n" -msgstr "\tPerfil Activo: %s\n" +msgstr "\tPuerto Activo: %s\n" #: ../src/utils/pactl.c:290 #, c-format @@ -1908,10 +1660,18 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../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: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" @@ -2035,8 +1795,7 @@ msgstr "" #: ../src/utils/pactl.c:547 #, c-format msgid "Failed to get source output information: %s\n" -msgstr "" -"Error al intentar obtener información acerca de la salida de la fuenta: %s\n" +msgstr "Error al intentar obtener información acerca de la salida de la fuenta: %s\n" #: ../src/utils/pactl.c:567 #, c-format @@ -2103,7 +1862,8 @@ msgstr "" "\tPropiedades:\n" "\t\t%s\n" -#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 +#: ../src/utils/pactl.c:646 +#: ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Falla: %s\n" @@ -2118,7 +1878,7 @@ msgid "Premature end of file\n" msgstr "Fin prematuro del archivo\n" #: ../src/utils/pactl.c:826 -#, fuzzy, c-format +#, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2139,10 +1899,8 @@ msgid "" " -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 "" "%s [opciones] stat\n" "%s [opciones] list\n" @@ -2157,14 +1915,14 @@ msgstr "" "%s [opciones] suspend-sink [SINK] 1|0\n" "%s [opciones] suspend-source [SOURCE] 1|0\n" "%s [opciones] set-card-profile [CARD] [PROFILE] \n" +"%s [opciones] set-sink-port [SINK] [PORT] \n" +"%s [opciones] set-source-port [SOURCE] [PORT] \n" "\n" " -h, --help Muestra esta ayuda\n" " --version Muestra la versión\n" "\n" -" -s, --server=SERVER El nombre del servidor al que " -"conectarse\n" -" -n, --client-name=NAME El nombre de este cliente en el " -"servidor\n" +" -s, --server=SERVER El nombre del servidor al que conectarse\n" +" -n, --client-name=NAME El nombre de este cliente en el servidor\n" #: ../src/utils/pactl.c:880 #, c-format @@ -2177,6 +1935,11 @@ msgstr "" "Compilado con libpulse %s\n" "Linked con libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, c-format +msgid "Invalid client name '%s'\n" +msgstr "Nombre de cliente inválido '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Por favor, especifique un archivo de muestra a cargar\n" @@ -2185,10 +1948,13 @@ msgstr "Por favor, especifique un archivo de muestra a cargar\n" msgid "Failed to open sound file.\n" msgstr "Error al intentar abrir el archivo de sonido.\n" +#: ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "Error al intentar determinar especificación de ejemplo del archivo.\n" + #: ../src/utils/pactl.c:951 -#, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" -msgstr "Abriendo un %s flujo con las especificaciones de muestra '%s'.\n" +msgstr "Aviso: Fallo al intentar determinar especificación de ejemplo desde el archivo.\n" #: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" @@ -2200,13 +1966,11 @@ msgstr "Debe especificar un nombre de muestra para ser eliminado\n" #: ../src/utils/pactl.c:982 msgid "You have to specify a sink input index and a sink\n" -msgstr "" -"Debe especificar un índice para las entradas del destino y un destino\n" +msgstr "Debe especificar un índice para las entradas del destino y un destino\n" #: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" -msgstr "" -"Debe especificar un índice para las salidas de la fuente, y una fuente\n" +msgstr "Debe especificar un índice para las salidas de la fuente, y una fuente\n" #: ../src/utils/pactl.c:1007 msgid "You have to specify a module name and arguments.\n" @@ -2217,44 +1981,29 @@ msgid "You have to specify a module index\n" msgstr "Debe especificar un índice de módulo\n" #: ../src/utils/pactl.c:1037 -msgid "" -"You may not specify more than one sink. You have to specify a boolean " -"value.\n" -msgstr "" -"No puede especificar más de un sumidero. Tiene que especificar un valor " -"booleano.\n" +msgid "You may not specify more than one sink. You have to specify a boolean value.\n" +msgstr "No puede especificar más de un sumidero. Tiene que especificar un 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 "" -"No puede especificar más de una fuente. Tiene que especificar un valor " -"booleano.\n" +msgid "You may not specify more than one source. You have to specify a boolean value.\n" +msgstr "No puede especificar más de una fuente. Tiene que especificar un valor booleano.\n" #: ../src/utils/pactl.c:1062 msgid "You have to specify a card name/index and a profile name\n" msgstr "Debe especificar un nombre de placa/índice y un nombre de perfil\n" #: ../src/utils/pactl.c:1073 -#, fuzzy msgid "You have to specify a sink name/index and a port name\n" -msgstr "Debe especificar un nombre de placa/índice y un nombre de perfil\n" +msgstr "Debe especificar un nombre de sumidero/índice y un nombre de puerto\n" #: ../src/utils/pactl.c:1084 -#, fuzzy msgid "You have to specify a source name/index and a port name\n" -msgstr "Debe especificar un nombre de placa/índice y un nombre de perfil\n" +msgstr "Debe especificar un nombre de fuente/índice y un nombre de puerto\n" #: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "No se ha especificadfo ningún comando válido.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "pa_context_connect() falló: %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2262,17 +2011,14 @@ 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 "" "%s [-D display] [-S server] [-O sink] [-I source] [-c file] [-d|-e|-i|-r]\n" "\n" -" -d Muestra los datos actuales de PulseAudio asociados en un display X11 " -"(por defecto)\n" +" -d Muestra los datos actuales de PulseAudio asociados en un display X11 (por defecto)\n" " -e Exporta los datos locales de PulseAudio a un display X11\n" -" -i Importa los datos de PulseAudio de un display X11 hacia las variables " -"del entorno local y el archivo de cookies.\n" +" -i Importa los datos de PulseAudio de un display X11 hacia las variables del entorno local y el archivo de cookies.\n" " -r Elimina todo dato de PulseAudio de un display X11\n" #: ../src/utils/pax11publish.c:94 @@ -2336,11 +2082,8 @@ msgid "Not yet implemented.\n" msgstr "Aún no se ha implementado.\n" #: ../src/utils/pacmd.c:61 -#, fuzzy msgid "No PulseAudio daemon running, or not running as session daemon." -msgstr "" -"El demonio PulseAudio no está ejecutándose, o no se está ejecutando como un " -"demonio de sesión." +msgstr "El demonio PulseAudio no está ejecutándose, o no se está ejecutando como un demonio de sesión." #: ../src/utils/pacmd.c:66 #, c-format @@ -2365,64 +2108,57 @@ msgstr "El demonio no responde." msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 +#: ../src/utils/pacmd.c:156 +#: ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 +#: ../src/utils/pacmd.c:189 +#: ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 +#: ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "No se puede acceder al candado de autogeneración." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 +#: ../src/modules/alsa/alsa-sink.c:606 #, 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." +"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 nos despertó para escribir nuevos datos al dispositivo, ¡pero en " -"realidad no hay nada para escribir!\n" -"Probablemente sea un error en el controlador ALSA '%s'. Por favor, informe " -"esto a los desarrolladores de ALSA.\n" -"Nos despertaron con POLLOUT puesto -- sin embargo, una llamada a " -"snd_pcm_avail() devolvió 0 u otro valor < min_avail." +"ALSA nos despertó para escribir nuevos datos al dispositivo, ¡pero en realidad no hay nada para escribir!\n" +"Probablemente sea un error en el controlador ALSA '%s'. Por favor, informe esto a los desarrolladores de ALSA.\n" +"Nos despertaron con POLLOUT puesto -- sin embargo, una llamada a snd_pcm_avail() devolvió 0 u otro valor < min_avail." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 +#: ../src/modules/alsa/alsa-source.c:578 #, 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." +"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 nos despertó para leer nuevos datos desde el dispositivo, ¡pero en " -"realidad no hay nada para leer!\n" -"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, " -"informe esto a los desarrolladores de ALSA.\n" -"Nos despertaron con POLLIN puesto -- sin embargo, una llamada a snd_pcm_avail" -"() devolvió 0 u otro valor < min_avail." +"ALSA nos despertó para leer nuevos datos desde el dispositivo, ¡pero en realidad no hay nada para leer!\n" +"Lo más probable es que sea un error del controlador ALSA '%s'. Por favor, informe esto a los desarrolladores de ALSA.\n" +"Nos despertaron con POLLIN puesto -- sin embargo, una llamada a snd_pcm_avail() devolvió 0 u otro valor < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Apagado" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "Reproducción de Alta Fidelidad (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telefonía Duplex (HSP/HFP)" @@ -2430,57 +2166,141 @@ msgstr "Telefonía Duplex (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "Servidor de Sonido PulseAudio" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "No se puede conectar al bus del sistema: %s" +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "No se puede obtener el llamador desde el PID: %s" +#~ msgid "Cannot set UID on caller object." +#~ msgstr "No se puede poner UID en el objeto llamador." +#~ msgid "Failed to get CK session." +#~ msgstr "Falló al obtener sesión CK." +#~ msgid "Cannot set UID on session object." +#~ msgstr "No se puede poner UID en el objeto de sesión." +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "No se puede asignar PolKitAction." +#~ msgid "Cannot set action_id" +#~ msgstr "No se pudo poner action_id" +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "No se pudo asignar PolKitContext." +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "No se pudo inicializar PolKitContext: %s" +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "No se pudo determinar si el llamador está autorizado: %s" +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "No se pudo obtener auth: %s" +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit respondió con '%s'" +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Planificación de alta prioridad (nivel Unix negativo) para el demonio " +#~ "PulseAudio" +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Planificación de tiempo real para el demonio de PulseAudio." +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "Las políticas del sistema impidieron a PulseAudio adquirir la " +#~ "planificación de alta prioridad." +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "Las políticas del sistema impidieron a PulseAudio adquirir la " +#~ "planificación de tiempo real." +#~ msgid "read() failed: %s\n" +#~ msgstr "read() falló: %s\n" +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() falló: %s\n" +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Estamos en el grupo '%s', permitiendo planificación de prioridad alta." +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "Estamos en el grupo '%s', permitiendo planificación en tiempo real." +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit garantiza que se obtenga el privilegio de alta prioridad." +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit se niega a dar acceso al privilegio de alta prioridad." +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit garantiza el acceso al privilegio de tiempo real." +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit se niega a dar acceso al privilegio de tiempo real." +#~ 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." +#~ msgstr "" +#~ "Se llamó con SUID root y se pidió planificación en tiempo real y/o de " +#~ "alta prioridad en la configuración. Sin embargo, no se tiene los " +#~ "privilegios necesarios:\n" +#~ "No se está en el grupo '%s'. PolicyKit rechaza darnos el permiso " +#~ "necesario y no se puede aumentar los límites del recurso RLIMIT_NICE/" +#~ "RLIMIT_RTPRIO.\n" +#~ "Para habilitar la planifiación de tiempo real/alta prioridad por favor " +#~ "adquiera los privilegios apropiados en PolicyKit, o hágase miembro de '%" +#~ "s', o aumente los límites del recurso RLIMIT_NICE/RLIMIT_RTPRIO para este " +#~ "usuario." +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "Está habilitadada la planificación de prioridad alta, pero no están " +#~ "permitidas por la política." +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO incrementado en forma exitosa" +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "Fallo en RLIMIT_RTPRIO: %s" +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Abandonando CAP_NICE" +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "Está habilitada la planificación en tiempo real, pero no está permitido " +#~ "por la política." +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Capacidades limitadas con éxito para CAP_SYS_NICE-" +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() falló.\n" #~ msgid "Analog Mono" #~ msgstr "Mono Analógico" - #~ msgid "Analog Stereo" #~ msgstr "Estéreo Analógico" - #~ msgid "Digital Stereo (IEC958)" #~ msgstr "Estéreo Digital (IEC958)" - #~ msgid "Digital Stereo (HDMI)" #~ msgstr "Estéreo Digital (HDMI)" - #~ msgid "Analog Surround 4.0" #~ msgstr "Análogo Envolvente 4.0" - #~ msgid "Digital Surround 4.0 (IEC958/AC3)" #~ msgstr "Digital Envolvente 4.0 (IEC9588/AC3)" - #~ msgid "Analog Surround 4.1" #~ msgstr "Análogo Envolvente 4.1" - #~ msgid "Analog Surround 5.0" #~ msgstr "Análogo Envolvente 5.0" - #~ msgid "Analog Surround 5.1" #~ msgstr "Análogo Envolvente 5.1" - #~ msgid "Digital Surround 5.1 (IEC958/AC3)" #~ msgstr "Digital Envolvente 5.1 (IEC958/AC3)" - #~ msgid "Analog Surround 7.1" #~ msgstr "Análogo Envolvénte 7.1" - #~ msgid "Output %s + Input %s" #~ msgstr "Salida %s + Entrada %s" - #~ msgid "Output %s" #~ msgstr "Salida %s" - #~ msgid "Input %s" #~ msgstr "Entrada %s" - #~ msgid "Stream successfully created\n" #~ msgstr "Se ha creado el flujo exitosamente\n" - #~ msgid "Stream errror: %s\n" #~ msgstr "Error de flujo: %s\n" - #~ msgid "Connection established.\n" #~ msgstr "Conección establecida.\n" - #~ msgid "" #~ "%s [options] [FILE]\n" #~ "\n" @@ -2521,7 +2341,6 @@ msgstr "Servidor de Sonido PulseAudio" #~ "(linear)en el rango de 0...65536\n" #~ " --channel-map=CHANNELMAP Establece el mapa del canal para " #~ "el uso\n" - #~ msgid "" #~ "paplay %s\n" #~ "Compiled with libpulse %s\n" @@ -2530,16 +2349,12 @@ msgstr "Servidor de Sonido PulseAudio" #~ "paplay %s\n" #~ "Compilado con libpulse %s\n" #~ "Linked con libpulse %s\n" - #~ msgid "Invalid channel map\n" #~ msgstr "Mapa de canal inválido\n" - #~ msgid "Failed to open file '%s'\n" #~ msgstr "Error al intentar abrir el archivo '%s'\n" - #~ msgid "Channel map doesn't match file.\n" #~ msgstr "El mapa del canal no se corresponde con el archivo.\n" - #~ msgid "Using sample spec '%s'\n" #~ msgstr "Utilizando especificaciones de muestra '%s'\n" @@ -2558,7 +2373,6 @@ msgstr "Servidor de Sonido PulseAudio" #, fuzzy #~ msgid "--log-time boolean argument" #~ msgstr "--disallow-exit argumento booleano" - #~ msgid "" #~ "' and PolicyKit refuse to grant us priviliges. Dropping SUID again.\n" #~ "For enabling real-time scheduling please acquire the appropriate " @@ -2567,27 +2381,21 @@ msgstr "Servidor de Sonido PulseAudio" #~ "' y PolicyKit se niega a darnos privilegios. Abandonando SUID de nuevo.\n" #~ "Para permitir planificación en tiempo real, por favor adquiera los " #~ "privilegios de PolicyKit adecuados, o forme parte de '" - #~ msgid "" #~ "', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this " #~ "user." #~ msgstr "" #~ "', o incremente los límites del recurso RLIMIT_NICE/RLIMIT_RTPRIO para " #~ "ese usuario. " - #~ msgid "Default sink name (%s) does not exist in name register." #~ msgstr "" #~ "El nombre de destino por defecto (%s) no existe en el registro de nombres." - #~ msgid "Buffer overrun, dropping incoming data\n" #~ msgstr "Búfer desbordado, abandonando datos entrantes\n" - #~ msgid "pa_stream_drop() failed: %s\n" #~ msgstr "pa_stream_drop() falló: %s\n" - #~ msgid "muted" #~ msgstr "mudo" - #~ msgid "" #~ "*** Autoload Entry #%u ***\n" #~ "Name: %s\n" @@ -2600,9 +2408,7 @@ msgstr "Servidor de Sonido PulseAudio" #~ "Tipo: %s\n" #~ "Módulo: %s\n" #~ "Argumento: %s\n" - #~ msgid "sink" #~ msgstr "destino" - #~ msgid "source" #~ msgstr "fuente" diff --git a/po/fi.po b/po/fi.po index c005658d..0502ea65 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: git trunk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-05 16:24+0300\n" "Last-Translator: Ville-Pekka Vainio \n" "Language-Team: Finnish \n" @@ -16,7 +16,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -28,7 +33,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:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -41,7 +46,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:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -67,7 +72,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Sisäinen äänentoisto" @@ -87,220 +92,92 @@ msgstr "Uuden dl-lataaminen varaaminen epäonnistui." msgid "Failed to add bind-now-loader." msgstr "bind-now-loaderin lisääminen epäonnistui." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Järjestelmäväylään ei voida yhdistää: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Kutsujaa ei saada PID:stä: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "UID:tä ei voida asettaa kutsujaobjektille." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK-istunnon saaminen epäonnistui." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "UID:tä ei voida asettaa istunto-objektille." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Ei voida varata PolKitActionia." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Ei voida asettaa action_id:tä" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Ei voida varata PolKitContextia." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Ei voida alustaa PolKitContextia: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Ei voida päätellä onko kutsujalla käyttöoikeus: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Tunnistautumista ei saada: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit vastasi ”%s”" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Saatiin signaali %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Poistutaan." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Käyttäjää ”%s” ei löydetty." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Ryhmää ”%s” ei löydetty." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Löydettiin käyttäjä ”%s” (UID %lu) ja ryhmä ”%s” (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "Käyttäjän ”%s” ja ryhmän ”%s” GID:t eivät vastaa toisiaan." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Käyttäjän ”%s” kotihakemisto ei ole ”%s”, ohitetaan." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Hakemiston ”%s” luominen epäonnistui: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Ryhmäluettelon vaihtaminen epäonnistui: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GID:n vaihtaminen epäonnistui: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UID:n vaihtaminen epäonnistui: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Root-oikeuksista luopuminen onnistui." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "Järjestelmänlaajuista tilaa ei tueta tällä alustalla." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) epäonnistui: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Komentorivin jäsentäminen epäonnistui." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "Ollaan ryhmässä ”%s”, korkean prioriteetin ajoitus on sallittua." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "Ollaan ryhmässä ”%s”, tosiaikainen vuorottaminen on sallittua." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit myöntää acquire-high-priority-oikeuden." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit ei myönnä acquire-high-priority-oikeutta." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit myöntää acquire-real-time-oikeuden." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit ei myönnä acquire-real-time-oikeutta." - -#: ../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." -msgstr "" -"Ohjelmaa kutsuttiin SUID-rootina ja reaaliaikaista ja/tai korkean " -"prioriteetin ajoitusta pyydettiin asetuksissa. Tarvittavat oikeudet " -"kuitenkin puuttuvat:\n" -"Ei olla ryhmässä ”%s”, PolicyKit ei myönnä pyydettyjä oikeuksia ja " -"RLIMIT_NICE/RLIMIT_RTPRIO-resurssirajoja ei ole kasvatettu.\n" -"Hanki riittävät PolicyKit-oikeudet, liity ryhmään ”%s” tai kasvata tämän " -"käyttäjän RLIMIT_NICE/RLIMIT_RTPRIO-resurssirajoja reaaliaikaisen ja/tai " -"korkean prioriteetin ajoituksen ottamiseksi käyttöön." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Korkean prioriteetin ajoitus otettu käyttöön asetuksissa, mutta käytännöt " -"eivät salli sitä." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO:n kasvatus onnistui" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO epäonnistui: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Luovutaan CAP_NICE:stä" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Tosiaikainen ajoitus otettu käyttöön asetuksissa, mutta käytännöt eivät " -"salli sitä." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Taustaprosessi ei ole käynnissä" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Taustaprosessi käynnissä prosessitunnisteella %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Taustaprosessin lopettaminen epäonnistui: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -308,156 +185,156 @@ msgstr "" "Tätä ohjelmaa ei ole tarkoitettu suoritettavaksi pääkäyttäjänä (ellei --" "system ole määritelty)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Pääkäyttäjän (root) oikeudet vaaditaan." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start-valitsinta ei tueta järjestelmätilassa." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" "Suoritetaan järjestelmätilassa, mutta --disallow-exit ei ole asetettuna!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "Suoritetaan järjestelmätilassa, mutta -disallow-module-loading ei ole " "asetettuna!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "" "Suoritetaan järjestelmätilassa, otetaan SHM-tila pakotetusti pois käytöstä." -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "Suoritetaan järjestelmätilassa, otetaan poistumisen joutenoloaika " "pakotetusti pois käytöstä." -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "stdio:n saaminen epäonnistui." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "putki epäonnistui: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() epäonnistui: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() epäonnistui: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Taustaprosessin käynnistys epäonnistui." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Taustaprosessin käynnistys onnistui." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Tämä on PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Käännöksen isäntäkone: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Käännösaikaiset C-liput (CFLAGS): %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Käynnissä isäntäkoneella: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "Löydettiin %u CPU:ta." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "Sivun koko on %lu tavua" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Käännetty Valgrind-tuella: kyllä" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Käännetty Valgrind-tuella: ei" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Käynnissä valgrind-tilassa: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Optimoitu rakentaminen: kyllä" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Optimoitu rakentaminen: ei" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG on määritelty, kaikki assertit ovat poissa käytöstä." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH on määritelty, vain fast path -assertit ovat poissa käytöstä." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Kaikki assertit ovat käytössä." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Konetunnisteen nouto epäonnistui" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "Konetunniste on %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "Konetunniste on %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Käytetään ajonaikaista hakemistoa %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Käytetään tilahakemistoa %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Suoritetaan järjestelmätilassa: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -467,15 +344,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() epäonnistui." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Korkean tarkkuuden ajastimet käytettävissä." -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -483,29 +360,29 @@ msgstr "" "Hei, ytimesi on kehno! Linux korkean tarkkuuden ajastimien tuella on hyvin " "suositeltava!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() epäonnistui." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Taustaprosessin alustus epäonnistui." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 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:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Taustaprosessin käynnistys valmis." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Taustaprosessin sulkeminen käynnistetty." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Taustaprosessi lopetettu." @@ -854,14 +731,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Luettu asetustiedostosta: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Luovutaan pääkäyttäjän oikeuksista." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Oikeuksien rajoittaminen CAP_SYS_NICEen onnistui." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio-äänijärjestelmä" @@ -870,29 +743,6 @@ msgstr "PulseAudio-äänijärjestelmä" msgid "Start the PulseAudio Sound System" msgstr "Käynnistä PulseAudio-äänijärjestelmä" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" -"Korkean prioriteetin ajoitus (negatiivinen Unix-nice-taso) PulseAudio-" -"taustajärjestelmälle" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Reaaliaikainen ajoitus PulseAudio-taustajärjestelmälle" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"Järjestelmäkäytäntö estää PulseAudiota saamasta korkean prioriteetin " -"ajoitusta." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -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:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1265,183 +1115,187 @@ msgstr "Evästetietojen jäsennys epäonnistui" msgid "Failed to open configuration file '%s': %s" msgstr "Asetustiedoston avaaminen epäonnistui: ”%s”: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Ei ladattua evästettä. Yritetään yhdistämistä ilman." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Saatiin viesti tuntemattomalle laajennokselle ”%s”" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Virran tyhjentäminen epäonnistui: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "Toistovirta on tyhjennetty.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "Tyhjennetään yhteyttä palvelimelle.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() epäonnistui: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() epäonnistui: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() epäonnistui: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Virran luonti onnistui.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() epäonnistui: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Puskuritiedot: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Puskuritiedot: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "Käytetään näytemäärittelyä ”%s”, kanavakarttaa ”%s”.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "Yhdistetty laitteeseen %s (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Virtavirhe: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "Virtalaite keskeytetty.%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "Virtalaite palautettu.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "Virran alivuoto.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "Virran ylivuoto.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "Virta käynnistetty.%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "Virta siirretty laitteelle %s (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "ei " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "Virran puskuriattribuutteja muutettu.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "Yhteys muodostettu.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() epäonnistui: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() epäonnistui: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() epäonnistui: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Yhteysvirhe: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Saatiin EOF.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() epäonnistui: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "Saatiin EOF.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() epäonnistui: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "Saatiin signaali, lopetetaan.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Latenssin selvittäminen epäonnistui: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Aika: %0.3f s; latenssi: %0.0f μs. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() epäonnistui: %s\n" #: ../src/utils/pacat.c:605 @@ -1561,34 +1415,34 @@ msgstr "" "Käännetty libpulsen versiolle %s\n" "Linkitetty libpulsen versiolle %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "Virheellinen kanavakartta ”%s”\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "Virheellinen uudelleennäytteistyksen tapa ”%s”." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "Virheellinen kanavakartta ”%s”\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Virheellinen latenssimääritys ”%s”\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "Virheellinen prosessiajan määritys ”%s”\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "Virheellinen uudelleennäytteistyksen tapa ”%s”." #: ../src/utils/pacat.c:878 @@ -1597,60 +1451,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "Virheellinen näytemääritys\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "Liian monta argumenttia.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "Näytetietojen nouto epäonnistui: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Äänitiedoston avaaminen epäonnistui.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "Avataan %svirta näytemäärityksellä ”%s”.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "Näytetietojen nouto epäonnistui: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "Avataan %svirta näytemäärityksellä ”%s”.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "Kanavakartta ei vastaa näytemääritystä\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "Avataan %svirta näytemäärityksellä ”%s”.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "Avataan %svirta näytemäärityksellä ”%s”.\n" #: ../src/utils/pacat.c:1006 @@ -1661,35 +1521,34 @@ msgstr "nauhoitus" msgid "playback" msgstr "toisto" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() epäonnistui.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() epäonnistui.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() epäonnistui.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() epäonnistui: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() epäonnistui.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() epäonnistui.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() epäonnistui.\n" #: ../src/utils/pasuspender.c:81 @@ -1717,6 +1576,11 @@ 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:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Yhteysvirhe: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1757,6 +1621,21 @@ msgstr "" "Käännetty libpulsen versiolle %s\n" "Linkitetty libpulsen versiolle %s\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "pa_mainloop_new() epäonnistui.\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() epäonnistui.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() epäonnistui.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2171,6 +2050,11 @@ msgstr "" "Käännetty libpulsen versiolle %s\n" "Linkitetty libpulsen versiolle %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Virheellinen kanavakartta ”%s”\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Anna ladattava näytetiedosto\n" @@ -2179,6 +2063,11 @@ msgstr "Anna ladattava näytetiedosto\n" msgid "Failed to open sound file.\n" msgstr "Äänitiedoston avaaminen epäonnistui.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Näytetietojen nouto epäonnistui: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2238,11 +2127,6 @@ msgstr "Kortin nimi/indeksi ja profiilin nimi on annettava\n" msgid "No valid command specified.\n" msgstr "Mitään kelvollista komentoa ei annettu.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "pa_context_connect() epäonnistui: %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2361,11 +2245,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Automaattisen käynnistyksen lukkoa ei voida käyttää." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2382,7 +2266,7 @@ msgstr "" "asetettuna, snd_pcm_avail() palautti kuitenkin 0 tai jonkin muun arvon, " "joka on < min_avail." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2399,15 +2283,15 @@ msgstr "" "snd_pcm_avail() palautti kuitenkin 0 tai jonkin muun arvon, on < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Poissa" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "Korkean äänenlaadun toisto (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "" @@ -2415,6 +2299,136 @@ msgstr "" msgid "PulseAudio Sound Server" msgstr "PulseAudio-äänipalvelin" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Järjestelmäväylään ei voida yhdistää: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Kutsujaa ei saada PID:stä: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "UID:tä ei voida asettaa kutsujaobjektille." + +#~ msgid "Failed to get CK session." +#~ msgstr "CK-istunnon saaminen epäonnistui." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "UID:tä ei voida asettaa istunto-objektille." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Ei voida varata PolKitActionia." + +#~ msgid "Cannot set action_id" +#~ msgstr "Ei voida asettaa action_id:tä" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Ei voida varata PolKitContextia." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Ei voida alustaa PolKitContextia: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Ei voida päätellä onko kutsujalla käyttöoikeus: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Tunnistautumista ei saada: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit vastasi ”%s”" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Korkean prioriteetin ajoitus (negatiivinen Unix-nice-taso) PulseAudio-" +#~ "taustajärjestelmälle" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Reaaliaikainen ajoitus PulseAudio-taustajärjestelmälle" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "Järjestelmäkäytäntö estää PulseAudiota saamasta korkean prioriteetin " +#~ "ajoitusta." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "Järjestelmäkäytäntö estää PulseAudiota saamasta reaaliaikaista ajoitusta." + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() epäonnistui: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() epäonnistui: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "Ollaan ryhmässä ”%s”, korkean prioriteetin ajoitus on sallittua." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "Ollaan ryhmässä ”%s”, tosiaikainen vuorottaminen on sallittua." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit myöntää acquire-high-priority-oikeuden." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit ei myönnä acquire-high-priority-oikeutta." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit myöntää acquire-real-time-oikeuden." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit ei myönnä acquire-real-time-oikeutta." + +#~ 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." +#~ msgstr "" +#~ "Ohjelmaa kutsuttiin SUID-rootina ja reaaliaikaista ja/tai korkean " +#~ "prioriteetin ajoitusta pyydettiin asetuksissa. Tarvittavat oikeudet " +#~ "kuitenkin puuttuvat:\n" +#~ "Ei olla ryhmässä ”%s”, PolicyKit ei myönnä pyydettyjä oikeuksia ja " +#~ "RLIMIT_NICE/RLIMIT_RTPRIO-resurssirajoja ei ole kasvatettu.\n" +#~ "Hanki riittävät PolicyKit-oikeudet, liity ryhmään ”%s” tai kasvata tämän " +#~ "käyttäjän RLIMIT_NICE/RLIMIT_RTPRIO-resurssirajoja reaaliaikaisen ja/tai " +#~ "korkean prioriteetin ajoituksen ottamiseksi käyttöön." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "Korkean prioriteetin ajoitus otettu käyttöön asetuksissa, mutta käytännöt " +#~ "eivät salli sitä." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO:n kasvatus onnistui" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO epäonnistui: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Luovutaan CAP_NICE:stä" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "Tosiaikainen ajoitus otettu käyttöön asetuksissa, mutta käytännöt eivät " +#~ "salli sitä." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Oikeuksien rajoittaminen CAP_SYS_NICEen onnistui." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() epäonnistui.\n" + #~ msgid "Analog Mono" #~ msgstr "Analoginen mono" diff --git a/po/fr.po b/po/fr.po index ca8e2b80..a6bcdb6e 100644 --- a/po/fr.po +++ b/po/fr.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio trunk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-26 17:22+0200\n" "Last-Translator: Corentin Perard \n" "Language-Team: French \n" @@ -20,7 +20,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -33,7 +38,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:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -46,7 +51,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:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -72,7 +77,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Audio interne" @@ -92,226 +97,93 @@ msgstr "Échec lors de l'allocation du nouveau chargeur dl." msgid "Failed to add bind-now-loader." msgstr "Échec lors de l'ajout du chargeur bind-now." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Impossible de se connecter au bus système : %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Impossible d'obtenir le programme appelant à partir du PID : %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Impossible de définir un UID sur l'objet appelant." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Échec lors de l'obtention de la session CK." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Impossible de définir l'UID sur l'objet de session." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Impossible d'allouer PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Impossible de définir action_id." - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Impossible d'allouer PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Impossible d'initialiser PolKitContext : %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Impossible de déterminer si le programme appelant est autorisé : %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Impossible d'obtenir l'authentification : %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit a renvoyé « %s »" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Signal %s obtenu." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Fermeture." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Impossible de trouver l'utilisateur « %s »." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Impossible de trouver le groupe « %s »." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Utilisateur « %s ” (UID %lu) et groupe « %s » (GID %lu) trouvé." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "" "Le GID de l'utilisateur « %s » et du groupe « %s » ne sont pas identiques." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Le dossier personnel de l'utilisateur « %s » n'est pas « %s », ignoré." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Échec lors de la création de « %s » : %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Échec lors du changement de la liste du groupe : %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Échec lors du changement de GID : %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Échec lors du changement d'UID : %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Les privilèges root ont été correctement abandonnés." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "Mode système étendu non pris en charge sur cette plateforme." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) a échoué : %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Échec lors de l'analyse de la ligne de commande" -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"Nous sommes dans le groupe « %s », permettant une planification à haute " -"priorité." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" -"Nous sommes dans le groupe « %s », permettant un ordonnancement en temps réel." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit a accordé l'acquisition des permissions de haute priorité." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit a refusé l'acquisition des permissions de haute priorité." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit a accordé l'acquisition des permissions de temps réel." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit a refusé l'acquisition des permissions de temps réel." - -#: ../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." -msgstr "" -"Le SUID root et l'ordonnancement en temps réel et/ou haute priorité ont été " -"spécifiés dans la configuration. Cependant, il nous manque les privilèges " -"nécessaires :\n" -"Nous ne sommes pas dans le groupe « %s », PolicyKit refuse de nous accorder " -"les privilèges demandés et nous devons augmenter les limites de ressources " -"RLIMIT_NICE/RLIMIT_RTPRIO.\n" -"Pour activer l'ordonnancement en temps réel/haute priorité, veuillez " -"acquérir les privilèges PolicyKit apropriés, ou devenir membre de « %s », ou " -"augmenter les limites de ressources RLIMIT_NICE/RLIMIT_RTPRIO pour cet " -"utilisateur." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"La planification à haute priorité est activée dans la configuration mais " -"n'est pas permise par la politique." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "Augmentation de RLIMIT_RTPRIO réussie" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO a échoué : %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Abandon de CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"La planification en temps réel est activée mais n'est pas permise par la " -"politique." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Lé démon n'est pas lancé" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Le démon est lancé avec le PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Impossible de tuer le démon : %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -319,156 +191,156 @@ msgstr "" "Le programme n'est pas conçu pour être lancé en tant que root (sauf si --" "system est renseigné)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Les privilèges root sont nécessaires." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start n'est pas pris en charge pour les instances système." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" "Le démon s'exécute en mode système, mais --disallow-exit n'est pas défini." -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "Le démon s'exécute en mode système, mais --disallow-module-loading n'est pas " "défini." -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Le démon s'exécute en mode système, désactivation forcée du mode SHM." -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "Le démon s'exécute en mode système, désactivation forcée de la fermeture " "après délai d'inactivité." -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Échec lors de l'acquisition de stdio." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "Échec du tube : %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "Échec de fork() : %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "Échec de read() : %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Échec lors du démarrage du démon." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Démarrage du démon réussi." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Pulseaudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Hôte de compilation : %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS de compilation : %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Exécution sur l'hôte : %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u processeurs trouvés." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "La taille de la page est de %lu octets" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Compilé avec la prise en charge Valgrind : oui" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Compilé avec la prise en charge Valgrind : non" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Exécution en mode valgrind : %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Construction optimisée : oui" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Construction optimisée : non" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG défini, tous les messages d'erreur sont désactivés." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" "FASTPATH défini, seuls les messages d'erreur fastpath ont été désactivés." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Tous les messages d'erreur sont activés." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Échec lors de l'obtention de l'ID de la machine" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "L'ID de la machine est %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "L'ID de la machine est %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Utilisation du répertoire d'exécution %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Utilisation du répertoire d'état %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Exécution en mode système : %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -478,16 +350,16 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "Échec de pa_pid_file_create()." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "" "De nouvelles horloges à haute résolution sont disponibles ! Bon appétit !" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -495,27 +367,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:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "Échec de pa_core_new()." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Échec lors de l'initialisation du démon" -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 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:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Démarrage du démon effectué." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Fermeture du démon initiée." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Démon terminé." @@ -869,14 +741,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Lecture à partir du fichier de configuration : %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Abandon des privilèges root." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Limitation des capacités à CAP_SYS_NICE réussie." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "Système de son PulseAudio" @@ -885,30 +753,6 @@ msgstr "Système de son PulseAudio" msgid "Start the PulseAudio Sound System" msgstr "Démarrer le système de son PulseAudio" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" -"Ordonnancement haute priorité (niveau Unix « nice » négatif) pour le démon " -"PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Ordonnancement en temps réel pour le démon PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"La politique du système empêche PulseAudio d'acquérir un ordonnancement " -"haute priorité" - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" -"La politique du système empêche PulseAudio d'acquérir un ordonnancement en " -"temps réel" - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1281,186 +1125,190 @@ msgstr "Échec lors de l'analyse des données du cookie" msgid "Failed to open configuration file '%s': %s" msgstr "Échec lors de l'ouverture du fichier de configuration « %s » :%s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Aucun cookie chargé. Tentative de connexion sans celui-ci." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork() : %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid() : %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Message reçu pour une extension inconnue « %s »" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Échec lors du vidage du flux : %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "Flux de lecture vidé.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "Vidage de la connexion au serveur.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain() : %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "Échec de pa_stream_write() : %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "Échec de pa_stream_write() : %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "Échec de pa_stream_peek() : %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Création du flux réussie.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "Échec de pa_stream_get_buffer_attr() : %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Mesures du tampon : maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Mesures du tampon : maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "" "Utilisation de la spécification d'échantillon « %s », plan des canaux « %s ».\n" # l'espace manquant entre %s et suspended est voulu -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "Connecté au périphérique %s (%u, %ssuspendu).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Erreur du flux : %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "Périphérique de flux suspendu %s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "Périphérique de flux repris %s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "Flux vide %s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "Flux saturé %s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "Flux démarré %s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "Flux déplacé vers le périphérique %s (%u, %ssuspendu).%s \n" # suspendu ou non suspendu -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "non " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "Des attributs du tampon de flux ont changé. %s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "Connection établie.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "Échec de pa_stream_new() : %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "Échec de pa_stream_connect_playback() : %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "Échec de pa_stream_connect_record() : %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Échec lors de la connexion : %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF obtenu.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "Échec de read() : %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF obtenu.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "Échec de write() : %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "Signal obtenu, fermeture.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Échec lors de l'obtention de la latence : %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Durée : %0.3f s ; Latency : %0.0f µs. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "Échec de pa_stream_update_timing_info() : %s\n" # downmix = par ex. convertir 5 canaux en 2 canaux @@ -1588,34 +1436,34 @@ msgstr "" "Compilé avec libpulse %s\n" "Lié avec libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "Plan des canaux invalide « %s »\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "Méthode de rééchantillonnage invalide « %s »." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "Plan des canaux invalide « %s »\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Spécification de latence invalide « %s »\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "Spécification de temps de traitement invalide « %s »\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "Méthode de rééchantillonnage invalide « %s »." #: ../src/utils/pacat.c:878 @@ -1624,61 +1472,67 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "Spécification d'échantillon invalide\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open() : %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2() : %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "Trop de paramètres.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Échec lors de l'ouverture du fichier audio.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "Échec lors de l'obtention des informations de l'échantillon : %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "" "Le plan des canaux ne correspond pas à la spécification d'échantillon\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "Ouverture d'un flux %s avec une spécification d'échantillon « %s ».\n" #: ../src/utils/pacat.c:1006 @@ -1689,35 +1543,34 @@ msgstr "enregistrement" msgid "playback" msgstr "lecture" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "Échec de pa_mainloop_new().\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "Échec de io_new().\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "Échec de pa_context_new().\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "Échec de pa_context_connect() : %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "Échec de time_new().\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "Échec de pa_context_new().\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "Échec de pa_mainloop_run().\n" #: ../src/utils/pasuspender.c:81 @@ -1746,6 +1599,11 @@ 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:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Échec lors de la connexion : %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1786,6 +1644,21 @@ msgstr "" "Compilé avec libpulse %s\n" "Lié avec libpulse %s\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "Échec de pa_mainloop_new().\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "Échec de pa_context_new().\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "Échec de pa_mainloop_run().\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2209,6 +2082,11 @@ msgstr "" "Compilé avec libpulse %s\n" "Lié avec libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Plan des canaux invalide « %s »\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Veuillez indiquer un fichier d'échantillon à charger\n" @@ -2217,6 +2095,11 @@ msgstr "Veuillez indiquer un fichier d'échantillon à charger\n" msgid "Failed to open sound file.\n" msgstr "Échec lors de l'ouverture du fichier audio.\n" +#: ../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" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2281,11 +2164,6 @@ msgstr "Vous devez indiquer un nom/un index de carte et un nom de profil\n" msgid "No valid command specified.\n" msgstr "Aucune commande valide indiquée.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "Échec de pa_context_connect() : %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2406,11 +2284,11 @@ msgstr "read() : %s" msgid "write(): %s" msgstr "write() : %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Impossible d'accèder au verrou autonome." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2427,7 +2305,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:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2445,15 +2323,15 @@ msgstr "" "autre valeur < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Éteint" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "Lecture haute fidélité (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephonie en duplex (HSP/HFP)" @@ -2461,6 +2339,144 @@ msgstr "Telephonie en duplex (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "Serveur de son PulseAudio" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Impossible de se connecter au bus système : %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Impossible d'obtenir le programme appelant à partir du PID : %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Impossible de définir un UID sur l'objet appelant." + +#~ msgid "Failed to get CK session." +#~ msgstr "Échec lors de l'obtention de la session CK." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "Impossible de définir l'UID sur l'objet de session." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Impossible d'allouer PolKitAction." + +#~ msgid "Cannot set action_id" +#~ msgstr "Impossible de définir action_id." + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Impossible d'allouer PolKitContext." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Impossible d'initialiser PolKitContext : %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Impossible de déterminer si le programme appelant est autorisé : %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Impossible d'obtenir l'authentification : %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit a renvoyé « %s »" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Ordonnancement haute priorité (niveau Unix « nice » négatif) pour le démon " +#~ "PulseAudio" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Ordonnancement en temps réel pour le démon PulseAudio" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "La politique du système empêche PulseAudio d'acquérir un ordonnancement " +#~ "haute priorité" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "La politique du système empêche PulseAudio d'acquérir un ordonnancement " +#~ "en temps réel" + +#~ msgid "read() failed: %s\n" +#~ msgstr "Échec de read() : %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "Échec de pa_context_connect() : %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Nous sommes dans le groupe « %s », permettant une planification à haute " +#~ "priorité." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "" +#~ "Nous sommes dans le groupe « %s », permettant un ordonnancement en temps " +#~ "réel." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "" +#~ "PolicyKit a accordé l'acquisition des permissions de haute priorité." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit a refusé l'acquisition des permissions de haute priorité." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit a accordé l'acquisition des permissions de temps réel." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit a refusé l'acquisition des permissions de temps réel." + +#~ 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." +#~ msgstr "" +#~ "Le SUID root et l'ordonnancement en temps réel et/ou haute priorité ont " +#~ "été spécifiés dans la configuration. Cependant, il nous manque les " +#~ "privilèges nécessaires :\n" +#~ "Nous ne sommes pas dans le groupe « %s », PolicyKit refuse de nous " +#~ "accorder les privilèges demandés et nous devons augmenter les limites de " +#~ "ressources RLIMIT_NICE/RLIMIT_RTPRIO.\n" +#~ "Pour activer l'ordonnancement en temps réel/haute priorité, veuillez " +#~ "acquérir les privilèges PolicyKit apropriés, ou devenir membre de « %s », " +#~ "ou augmenter les limites de ressources RLIMIT_NICE/RLIMIT_RTPRIO pour cet " +#~ "utilisateur." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "La planification à haute priorité est activée dans la configuration mais " +#~ "n'est pas permise par la politique." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "Augmentation de RLIMIT_RTPRIO réussie" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO a échoué : %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Abandon de CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "La planification en temps réel est activée mais n'est pas permise par la " +#~ "politique." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Limitation des capacités à CAP_SYS_NICE réussie." + +#~ msgid "time_new() failed.\n" +#~ msgstr "Échec de time_new().\n" + #~ msgid "Analog Mono" #~ msgstr "Mono analogique" diff --git a/po/gu.po b/po/gu.po index 437cd1cd..66837d83 100644 --- a/po/gu.po +++ b/po/gu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-07 14:27+0530\n" "Last-Translator: Sweta Kothari \n" "Language-Team: Gujarati\n" @@ -17,7 +17,12 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -29,7 +34,7 @@ msgstr "" "ALSA ડ્રાઇવર '%s' માં મોટેભાગે આ ભૂલ જેવુ છે. ALSA ડેવલ્પરોમાં આ સમસ્યાને મહેરબાની કરીને " "અહેવાલ કરો." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -42,7 +47,7 @@ msgstr "" "ALSA ડ્રાઇવર '%s' માં મોટેભાગે આ ભૂલ જેવુ છે. ALSA ડેવલ્પરોમાં આ સમસ્યાને મહેરબાની કરીને " "અહેવાલ કરો." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -68,7 +73,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "આંતરિક ઓડિયો" @@ -88,369 +93,244 @@ msgstr "નવા dl લોડરને ફાળવવાનું નિષ્ msgid "Failed to add bind-now-loader." msgstr "bind-now-loader ને ઉમેરવાનું નિષ્ફળ." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "સિસ્ટમ બસને જોડી શકાતુ નથી: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "PID માંથી કોલરને મેળવી શકાતુ નથી: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "કોલર ઓબ્જેક્ટ પર UID ને સુયોજિત કરી શકાતુ નથી." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK સત્રને મેળવવામાં નિષ્ફળ." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "સત્ર ઓબ્જેક્ટ પર UID ને સુયોજિત કરી શકાતુ નથી." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "PolKitAction ને ફાળવી શકાતી નથી." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "action_id ને સુયોજિત કરી શકાતુ નથી" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "PolKitContext ને ફાળવી શકાતી નથી." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "PolKitContext નું પ્રારંભ કરી શકાતુ નથી: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "નક્કી કરી શકાયુ નહિં ક્યાંતો કોલર એ સત્તાધિકરણ થયેલ છે: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "auth મેળવા શકાતુ નથી: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "'%s' સાથે PolicyKit એ પ્રત્યુત્તર આપેલ છે" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "સંકેત %s મળ્યુ." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "બહાર નીકળી રહ્યા છે." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "વપરાશકર્તા '%s' ને શોધવામાં નિષ્ફળ." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "જૂથ '%s' ને શોધવામાં નિષ્ફળ." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "વપરાશકર્તા '%s' (UID %lu) અને જૂથ '%s' (GID %lu) શોધાયુ." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "વપરાશકર્તા '%s' અને જૂથ '%s' ની GID બંધબેસતુ નથી." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "વપરાશકર્તાઓ '%s' ની ઘર ડિરેક્ટરી '%s' નથી, અવગણી રહ્યા છે." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' ને બનાવવામાં નિષ્ફળ: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "જૂથ યાદીને બદલવામાં નિષ્ફળ: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GID ને બદલવામાં નિષ્ફળ: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UID ને બદલવામાં નિષ્ફળ: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "સફળતાપૂર્વક છોડી દીધેલ રુટ અધિકારો." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "આ પ્લેટફોર્મ પર બિનઆધારભૂત સિસ્ટમ વિશાળ સ્થિતિ." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) નિષ્ફળ: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "આદેશ વાક્યને પદચ્છેદન કરવામાં નિષ્ફળ." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "આપણે જૂથ '%s' માં છીએ, high-priority ગોઠવવાની પરવાનગી આપી રહ્યા છે." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "આપણે જૂથ '%s' માં છીએ, સાચા સમયે ગોઠવવાની પરવાનગી આપી રહ્યા છે." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit આપણને acquire-high-priority અધિકારની મંજૂરી આપે છે." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit એ acquire-high-priority અધિકારને ફરીથી શરૂ કરે છે." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit એ acquire-real-time અધિકારની મંજૂરી આપે છે." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit એ acquire-real-time અધિકારને ફરી શરૂ કરે છે." - -#: ../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." -msgstr "" -"કહેવાતી SUID અને real-time અને/અથવા high-priority ગોઠવણી રૂપરેખાંકનમાં સૂચવેલ હતી. " -"છતાંપણ, આપણને જરૂરી અધિકારો ઓછા પડ્યા:\n" -"આપણે જૂથ '%s' માં નથી, PolicyKit એ સૂચિત અધિકારોને આપણને મંજૂરી આપવા માટે માન્ય કરતુ " -"નથી અને આપણે RLIMIT_NICE/RLIMIT_RTPRIO સ્ત્રોત મર્યાદાઓને વધારતા નથી.\n" -"real-time/high-priority ગોઠવણીને સક્રિય કરવા માટે મહેરબાની કરીને અનૂકુળ PolicyKit " -"અધિકારોને મેળવો, અથવા '%s' નાં સભ્ય બનો, અથવા આ વપરાશકર્તા માટે RLIMIT_NICE/" -"RLIMIT_RTPRIO સ્ત્રોત મર્યાદાઓને વધારો." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"High-priority ગોઠવવાનું રૂપરેખાંકનમાં સક્રિય થયેલ છે પરંતુ પોલિસી દ્દારા પરવાનગી આપેલ નથી." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "સફળતાપૂર્વક વધારેલ RLIMIT_RTPRIO" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO નિષ્ફળ: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "CAP_NICE ને છોડી રહ્યા છે" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Real-time ગોઠવવાનું એ રૂપરેખાંકનમાં સક્રિય થયેલ છે પરંતુ પોલિસી દ્દારા પરવાનગી આપેલ નથી." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "ડિમન ચાલી રહ્યુ નથી" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "PID %u તરીકે ડિમન ચાલી રહ્યુ છે" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "ડિમનને મારવાનું નિષ્ફળ: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "" "આ પ્રક્રિયાને રુટ તરીકે ચલાવવા માટે વિચાર થયેલ નથી (નહિં તો --system એ સ્પષ્ટ થયેલ છે)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "રુટ અધિકારો જરૂરી છે." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start એ સિસ્ટમ ઉદાહરણો માટે આધારભૂત નથી." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "સિસ્ટમ સ્થિતિમાં ચાલી રહ્યુ છે, પરંતુ --disallow-exit સુયોજિત નથી!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "સિસ્ટમ સ્થિતિમાં ચાલી રહ્યુ છે, પરંતુ --disallow-module-loading એ સુયોજિત નથી!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "સિસ્ટમ સ્થિતિમાં ચાલી રહ્યુ છે, SHM સ્થિતિને દબાણપૂર્વક નિષ્ક્રિય કરી રહ્યા છે!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "સિસ્ટમ સ્થિતિમાં ચાલી રહ્યુ છે, બહાર નીકળવનાં નિષ્કાર્ય સમયને દબાણપૂર્વક નિષ્ક્રિય કરી " "રહ્યા છે!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "stdio ને મેળવવામાં નિષ્ફળ." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "પાઇપ નિષ્ફળ: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() નિષ્ફળ: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() નિષ્ફળ: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "ડિમન શરૂઆત નિષ્ફળ." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "ડિમન શરૂઆત કરવુ સફળ છે." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "આ PulseAudio %s છે" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "કમ્પાઇલેશન યજમાન: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "કમ્પાઇલેશન CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "યજમાન પર ચાલી રહ્યુ છે: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs શોધાયુ." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "પાનાંનુ માપ %lu બાઇટો છે" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind આધાર સાથે કમ્પાઇલ થયેલ છે: હા" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Valgrind આધાર સાથે કમ્પાઇલ થયેલ છે: ના" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind સ્થિતિમાં ચાલી રહ્યુ છે: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "શ્રેષ્ટ થયેલ બિલ્ડ: હા" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "શ્રેષ્ટ થયેલ બિલ્ડ: ના" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG વ્યાખ્યાયિત થયેલ છે, બધા હકો નિષ્ક્રિય થયેલ છે." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH વ્યાખ્યાયિત થયેલ છે, ફક્ત ઝડપી પાથનાં હકો નિષ્ક્રિય થયેલ છે." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "બધા હકો સક્રિય થયેલ છે." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "મશીન ID ને મેળવવામાં નિષ્ફળ" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "મશીન ID %s છે." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "મશીન ID %s છે." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "રનટાઇમ ડિરેક્ટરી %s ને વાપરી રહ્યા છે." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "સ્થિતિ ડિરેક્ટરી %s ને વાપરી રહ્યા છે." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "સિસ્ટમ સ્થિતિમાં ચાલી રહ્યુ છે: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -460,15 +340,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() નિષ્ફળ." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "તાજુ high-resolution ટાઇમરો ઉપલ્બધ છે! બોન એપેટાઇટ!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -476,27 +356,27 @@ msgstr "" "મિત્ર, તમારુ કર્નલમાં ગડબડ છે! રસોઇયાનું આજે ભલામણ એ સક્રિય થયેલ high-resolution " "ટાઇમરો સાથે Linux નું છે!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() નિષ્ફળ." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "ડિમનને શરૂ કરવામાં નિષ્ફળ." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "કોઇપણ લોડ થયેલ મોડ્યુલો વગર ડિમનને શરૂ કરો, કામ કરવા માટે ફરી શરૂ કરી રહ્યા છે." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "ડિમન પારંભ કરવાનું સમાપ્ત છે." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "ડિમનને બંધ કરવાનું પ્રારંભ થયેલ છે." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "ડિમનનો અંત આવેલ છે." @@ -829,14 +709,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### રૂપરેખાંકન ફાઇલમાંથી વાંચો: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "રુટ અધિકારોને છોડી રહ્યા છે." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "CAP_SYS_NICE માં સફળતાપૂર્વક મર્યાદિત ક્ષમતાઓ." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio સાઉન્ડ સિસ્ટમ" @@ -845,25 +721,6 @@ msgstr "PulseAudio સાઉન્ડ સિસ્ટમ" msgid "Start the PulseAudio Sound System" msgstr "PulseAudio સાઉન્ડ સિસ્ટમને શરૂ કરો" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "PulseAudio ડિમન માટે High-priority ગોઠવણી (નકારાત્મક Unix સારુ સ્તર)" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "PulseAudio ડિમન માટે Real-time ગોઠવણી" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"high-priority ગોઠવણીને પ્રાપ્ત કરવા માંથી સિસ્ટમ પોલિસી PulseAudio ને અટકાવે છે." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "real-time ગોઠવણી પ્રાપ્ત કરવા માંથી સિસ્ટમ પોલિસી એ PulseAudio ને અટકાવે છે." - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "મોનો" @@ -1236,183 +1093,187 @@ msgstr "કુકીની માહિતીને પદચ્છેદન ક msgid "Failed to open configuration file '%s': %s" msgstr "રૂપરેખાંકન ફાઇલ '%s' ને ખોલવામાં નિષ્ફળ: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "કુકી લોડ થયેલ નથી. તેનાં વગર જોડવાનો પ્રયત્ન કરી રહ્યા છે." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "અજ્ઞાત એક્સટેન્શન '%s' માટે મળેલ સંદેશ" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "સ્ટ્રીમને નિકાલ કરવામાં નિષ્ફળ: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "પ્લેબેક સ્ટ્રીમ ને નિકાલ કરેલ છે.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "સર્વરમાં જોડાણને નિકાલ કરી રહ્યા છે.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() નિષ્ફળ: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() નિષ્ફળ: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() નિષ્ફળ: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "સ્ટ્રીમ સફળતાપૂર્વક બનાવેલ છે.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() નિષ્ફળ: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "બફર મેટ્રિક્સ: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "બફર મેટ્રિક્સ: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "નમૂનો spec '%s' ને વાપરી રહ્યા છે, ચેનલ મેપ '%s'.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "ઉપકરણ %s (%u, %ssuspended) સાથે જોડાયેલ છે.\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "સ્ટ્રીમ ભૂલ: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "સ્ટ્રીમ ઉપકરણ ને થોડા સમય માટે બંધ રાખેલ છે.%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "સ્ટ્રીમ ઉપકરણને ફરી શરૂ કરેલ છે.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "સ્ટ્રીમ ચલાવવા હેઠળ છે.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "સ્ટ્રીમ ઉપર ચાલે છે.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "સ્ટ્રીમ શરૂ થયેલ છે.%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "સ્ટ્રીમ એ ઉપકરણ %s (%u, %ssuspended) માં ખસેડેલ છે.%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "નથી " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "સ્ટ્રીમ બફર ગુણધર્મો બદલાયેલ છે.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "જોડાણ સ્થાપિત થયેલ છે.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() નિષ્ફળ: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() નિષ્ફળ: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() નિષ્ફળ: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "જોડાણ નિષ્ફળ: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF મળ્યુ.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() નિષ્ફળ: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF મળ્યુ.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() નિષ્ફળ: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "સંકેત મળ્યું, બહાર નીકળી રહ્યા છે.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "ગુપ્તતા મેળવવામાં નિષ્ફળ: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Time: %0.3f sec; Latency: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() નિષ્ફળ: %s\n" #: ../src/utils/pacat.c:605 @@ -1534,34 +1395,34 @@ msgstr "" "libpulse %s સાથે કમ્પાઇલ થયેલ છે\n" "libpulse %s સાથે કડી થયેલ છે\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "અયોગ્ય ચેનલ મેપ '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "અયોગ્ય resample પદ્દતિ '%s'." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "અયોગ્ય ચેનલ મેપ '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "અયોગ્ય ગુપ્તતા સ્પષ્ટીકરણ '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "અયોગ્ય પ્રક્રિયા સમય સ્પષ્ટીકરણ '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "અયોગ્ય resample પદ્દતિ '%s'." #: ../src/utils/pacat.c:878 @@ -1570,60 +1431,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "અયોગ્ય નમૂના સ્પષ્ટીકરણ\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "ઘણી બધી દલીલો છે.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "નમૂના જાણકારી મેળવવામાં નિષ્ફળ: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "સાઉન્ડ ફાઇલને ખોલવામાં નિષ્ફળ.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "નમૂના સ્પષ્ટીકરણ '%s' સાથે %s સ્ટ્રીમને ખોલી રહ્યા છે.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "નમૂના જાણકારી મેળવવામાં નિષ્ફળ: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "નમૂના સ્પષ્ટીકરણ '%s' સાથે %s સ્ટ્રીમને ખોલી રહ્યા છે.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "ચેનલ મેપ એ સ્પષ્ટીકરણ નમૂનાને બંધબેસતુ નથી\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "નમૂના સ્પષ્ટીકરણ '%s' સાથે %s સ્ટ્રીમને ખોલી રહ્યા છે.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "નમૂના સ્પષ્ટીકરણ '%s' સાથે %s સ્ટ્રીમને ખોલી રહ્યા છે.\n" #: ../src/utils/pacat.c:1006 @@ -1634,35 +1501,34 @@ msgstr "રેકોર્ડ કરી રહ્યા છે" msgid "playback" msgstr "પ્લેબેક" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() નિષ્ફળ.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() નિષ્ફળ.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() નિષ્ફળ.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() નિષ્ફળ: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() નિષ્ફળ.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() નિષ્ફળ.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() નિષ્ફળ.\n" #: ../src/utils/pasuspender.c:81 @@ -1690,6 +1556,11 @@ msgstr "ફરી શરૂ કરવામાં નિષ્ફળતા: %s\n msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "ચેતવણી: સાઉન્ડ સર્વર એ સ્થાનિક નથી, થોડા સમય માટે બંધ કરવામાં આવ્યુ નથી.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "જોડાણ નિષ્ફળ: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1729,6 +1600,21 @@ msgstr "" "libpulse %s સાથે કમ્પાઇલ થયેલ છે\n" "libpulse %s સાથે કડી થયેલ છે\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() નિષ્ફળ.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() નિષ્ફળ.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2141,6 +2027,11 @@ msgstr "" "libpulse %s સાથે કમ્પાઇલ થયેલ છે\n" "libpulse %s સાથે કડી થયેલ છે\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "અયોગ્ય ચેનલ મેપ '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "મહેરબાની કરીને લોડ કરવા માટે નમૂના ફાઇલને સ્પષ્ટ કરો\n" @@ -2149,6 +2040,11 @@ msgstr "મહેરબાની કરીને લોડ કરવા મા msgid "Failed to open sound file.\n" msgstr "સાઉન્ડ ફાઇલને ખોલવામાં નિષ્ફળ.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "નમૂના જાણકારી મેળવવામાં નિષ્ફળ: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2210,11 +2106,6 @@ msgstr "તમારે કાર્ડ નામ/અનુક્રમણિક 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 "" @@ -2331,11 +2222,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "autospawn તાળાને દાખલ કરી શકાતુ નથી." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2352,7 +2243,7 @@ msgstr "" "POLLOUT સુયોજન સાથે આપણે જાગેલ હતા -- છતાંપણ ના પછીનું snd_pcm_avail() ને 0 પાછો મળે " "છે અથવા બીજી કિંમત < min_avail." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2370,15 +2261,15 @@ msgstr "" "છે અથવા બીજી કિંમત < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "બંધ" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "High Fidelity Playback (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephony Duplex (HSP/HFP)" @@ -2386,6 +2277,132 @@ msgstr "Telephony Duplex (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "PulseAudio સાઉન્ડ સર્વર" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "સિસ્ટમ બસને જોડી શકાતુ નથી: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "PID માંથી કોલરને મેળવી શકાતુ નથી: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "કોલર ઓબ્જેક્ટ પર UID ને સુયોજિત કરી શકાતુ નથી." + +#~ msgid "Failed to get CK session." +#~ msgstr "CK સત્રને મેળવવામાં નિષ્ફળ." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "સત્ર ઓબ્જેક્ટ પર UID ને સુયોજિત કરી શકાતુ નથી." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "PolKitAction ને ફાળવી શકાતી નથી." + +#~ msgid "Cannot set action_id" +#~ msgstr "action_id ને સુયોજિત કરી શકાતુ નથી" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "PolKitContext ને ફાળવી શકાતી નથી." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "PolKitContext નું પ્રારંભ કરી શકાતુ નથી: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "નક્કી કરી શકાયુ નહિં ક્યાંતો કોલર એ સત્તાધિકરણ થયેલ છે: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "auth મેળવા શકાતુ નથી: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "'%s' સાથે PolicyKit એ પ્રત્યુત્તર આપેલ છે" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "PulseAudio ડિમન માટે High-priority ગોઠવણી (નકારાત્મક Unix સારુ સ્તર)" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "PulseAudio ડિમન માટે Real-time ગોઠવણી" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "high-priority ગોઠવણીને પ્રાપ્ત કરવા માંથી સિસ્ટમ પોલિસી PulseAudio ને અટકાવે છે." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "real-time ગોઠવણી પ્રાપ્ત કરવા માંથી સિસ્ટમ પોલિસી એ PulseAudio ને અટકાવે છે." + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() નિષ્ફળ: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() નિષ્ફળ: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "આપણે જૂથ '%s' માં છીએ, high-priority ગોઠવવાની પરવાનગી આપી રહ્યા છે." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "આપણે જૂથ '%s' માં છીએ, સાચા સમયે ગોઠવવાની પરવાનગી આપી રહ્યા છે." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit આપણને acquire-high-priority અધિકારની મંજૂરી આપે છે." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit એ acquire-high-priority અધિકારને ફરીથી શરૂ કરે છે." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit એ acquire-real-time અધિકારની મંજૂરી આપે છે." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit એ acquire-real-time અધિકારને ફરી શરૂ કરે છે." + +#~ 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." +#~ msgstr "" +#~ "કહેવાતી SUID અને real-time અને/અથવા high-priority ગોઠવણી રૂપરેખાંકનમાં સૂચવેલ હતી. " +#~ "છતાંપણ, આપણને જરૂરી અધિકારો ઓછા પડ્યા:\n" +#~ "આપણે જૂથ '%s' માં નથી, PolicyKit એ સૂચિત અધિકારોને આપણને મંજૂરી આપવા માટે માન્ય કરતુ " +#~ "નથી અને આપણે RLIMIT_NICE/RLIMIT_RTPRIO સ્ત્રોત મર્યાદાઓને વધારતા નથી.\n" +#~ "real-time/high-priority ગોઠવણીને સક્રિય કરવા માટે મહેરબાની કરીને અનૂકુળ " +#~ "PolicyKit અધિકારોને મેળવો, અથવા '%s' નાં સભ્ય બનો, અથવા આ વપરાશકર્તા માટે " +#~ "RLIMIT_NICE/RLIMIT_RTPRIO સ્ત્રોત મર્યાદાઓને વધારો." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "High-priority ગોઠવવાનું રૂપરેખાંકનમાં સક્રિય થયેલ છે પરંતુ પોલિસી દ્દારા પરવાનગી આપેલ " +#~ "નથી." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "સફળતાપૂર્વક વધારેલ RLIMIT_RTPRIO" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO નિષ્ફળ: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "CAP_NICE ને છોડી રહ્યા છે" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "Real-time ગોઠવવાનું એ રૂપરેખાંકનમાં સક્રિય થયેલ છે પરંતુ પોલિસી દ્દારા પરવાનગી આપેલ " +#~ "નથી." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "CAP_SYS_NICE માં સફળતાપૂર્વક મર્યાદિત ક્ષમતાઓ." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() નિષ્ફળ.\n" + #~ msgid "Analog Mono" #~ msgstr "એનાલોગ મોનો" diff --git a/po/hi.po b/po/hi.po index 91a27120..e406a5f0 100644 --- a/po/hi.po +++ b/po/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-06-08 12:01+0530\n" "Last-Translator: Rajesh Ranjan \n" "Language-Team: Hindi \n" @@ -20,7 +20,12 @@ msgstr "" "\n" "\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -32,7 +37,7 @@ msgstr "" "अधिक संभव है कि यह ALSA ड्राइवर '%s' में एक बग है. इस मुद्दे को ALSA डेवलेपर को रिपोर्ट " "करें." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -44,7 +49,7 @@ msgstr "" "अधिक संभव है कि यह ALSA ड्राइवर '%s' में एक बग है. इस मुद्दे को ALSA डेवलेपर को रिपोर्ट " "करें." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -70,7 +75,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "आंतरिक ऑडियो" @@ -90,366 +95,242 @@ msgstr "नया dl लोडर आबंटित करने में व msgid "Failed to add bind-now-loader." msgstr "bind-now-loader जोड़ने में विफल." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "तंत्र बस से कनेक्ट नहीं हो सकता है: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "PID से कॉलर पाने में विफल: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "UID को कॉलर वस्तु पर सेट नहीं कर सकता है." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK सत्र पाने में विफल." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "UID को सत्र वस्तु पर सेट नहीं कर सकता है." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "PolKitAction आबंटित नहीं कर सकता है." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "action_id सेट नहीं कर सकता है" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "PolKitContext आबंटित नहीं कर सकता है." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "PolKitContext आरंभ नहीं कर सकता है.: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "निर्धारित नहीं कर सकता है कि क्या कॉलर अधिकृत है: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "अधिकार प्राप्त नहीं कर सकता है: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit ने '%s' के साथ अनुक्रिया किया" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "%s संकेत पाया." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "बाहर हो रहा है." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "'%s' उपयोक्ता ढूंढ़ने में विफल." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "'%s' समूह ढूंढ़ने में विफल." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "'%s' (UID %lu) उपयोक्ता व '%s' (GID %lu) समूह पाया." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "'%s' उपयोक्ता और '%s' समूह का GID मेल नहीं खाता है" -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "'%s' उपयोक्ता की घर निर्देशिका '%s' नहीं है, अनदेखा कर रहा है." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' बनाने में विफल: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "समूह सूची पाने में विफल: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GID बदलने में विफल: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UID बदलने में विफल: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "रूट अधिकार सफलतापूर्वक छोड़ा." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "इस प्लैटफॉर्म पर असमर्थित तंत्र व्यापक विधि." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) विफल: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "कमांड लाइन विश्लेषण में विफल." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "हम '%s' समूह में हैं, उच्च प्राथमिकता नियोजन की अनुमति के साथ." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "हम '%s' समूह में हैं, वास्तविक समय नियोजन को अनुमति देते हुए." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit उच्च प्राथमिकता अधिकार अधिग्रहण हमें देती है." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit उच्च प्राथमिकता अधिकार अधिग्रहण अस्वीकृत करती है." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit हमें देती है वास्तविक समय अधिकार अधिग्रहण." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit स्वीकृत करती है वास्तविक समय अधिकार अधिग्रहण." - -#: ../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." -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:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "सफलतापूर्वक बढ़ा हुआ RLIMIT_RTPRIO" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO विफल: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "CAP_NICE छोड़ रहा है" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "विन्यास में वास्तविक समय नियोजन लेकिन नीति के द्वारा अनुमति प्राप्त नहीं." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "डेमॉन नहीं कार्यशील" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "डेमॉन बतौर PID %u चल रहा है" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "डेमॉन हटाने में विफल: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "" "यह प्रोग्राम बतौर रूट चलाने के लिए इच्छित नहीं है (unless --system is specified)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "रूट अधिकार जरूरी." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start not supported for system instances." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "तंत्र मोड में चल रहा है, लेकिन --disallow-exit सेट नहीं!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "तंत्र मोड में चल रहा है, लेकिन --disallow-module-loading सेट नहीं!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "तंत्र मोड में चल रहा है, SHM मोड बाध्य रूप से निष्क्रिय!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "तंत्र मोड में चल रहा है, निकास निष्क्रिय समय बाध्य रूप से निष्क्रिय!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "stdio पाने में विफल." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "पाइप विफल: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() विफल: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() विफल: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "डेमॉन आरंभ विफल." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "डेमॉन आरंभ सफल." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "यह पल्सऑडियो %s है." -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Compilation host: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Compilation CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "मेजबान पर चल रहा है: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPU पाया." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "पृष्ठ आकार %lu बाइट है." -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "वेलग्रिंड समर्थन से कंपाइल: हाँ" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "वेलग्रिंड समर्थन से कंपाइल: नहीं" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "वेलग्रिंड विधि में चल रहा है: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "अनुकूलित बिल्ड: हाँ" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "अनुकूलित बिल्ड: नहीं" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG परिभाषित, सभी निष्क्रिय." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH परिभाषित, केव तेज पथ एसर्ट निष्क्रिय." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "सभी एसर्ट सक्षम." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "मशीन ID पाने में विफल" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "मशीन ID %s है." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "मशीन ID %s है." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "रनटाइम निर्देशिका %s का प्रयोग कर रहा है." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "स्टेट निर्देशिका %s का प्रयोग कर रहा है." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "तंत्र मोड में चल रहा है: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -459,42 +340,42 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() विफल." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "ताज़ा उच्च विभेदन टाइमर उपलब्ध! आनंद लें!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "" "आपका कर्नेल बुरी स्थिति में है! सलाह है कि उच्च विभेदन युक्त लिनक्स सक्रिय किया जाना चाहिए!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() विफल." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "डेमॉन आरंभ करने में विफल." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "बिना लोड मॉड्यूल के डेमॉन आरंभ, काम करने से अस्वीकार कर रहा है." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "डेमॉन आरंभन पूर्ण." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "डेमॉन बन्द किया जाना आरंभ." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "डेमॉन अवरोधित." @@ -829,14 +710,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### विन्यास फ़ाइल से पढ़ें: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "रूट अधिकार छोड़ रहा है." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "CAP_SYS_NICE में सीमित क्षमता सफलतापूर्वक." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "पल्सऑडियो ध्वनि तंत्र" @@ -845,24 +722,6 @@ msgstr "पल्सऑडियो ध्वनि तंत्र" 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" -msgstr "उच्च प्राथमिकता अनुसूचन (negative Unix nice level) PulseAudio डेमॉन के लिए" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -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." -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:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "मोनो" @@ -1235,183 +1094,187 @@ msgstr "कुकी आंकड़ा के विश्लेषण मे msgid "Failed to open configuration file '%s': %s" msgstr "विन्यास फ़ाइल '%s' खोलने में विफल: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "कोई कुकी नहीं लोड किया गया. इसके बिना कनेक्ट करने की कोशिश कर रहा हूँ." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "अज्ञात विस्तार '%s' के लिए संदेश प्राप्त" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Failed to drain stream: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "प्लेबैक स्ट्रीम खत्म.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "सर्वर में कनेक्शन ले जा रहा है.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() विफल: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() विफल: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() विफल: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "स्ट्रीम सफलतापूर्वक निर्मित.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() विफल: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "बफ़र मेट्रिक्स: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "बफ़र मेट्रिक्स: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "नमूना स्पेक '%s' का प्रयोग, चैनल मैप '%s'.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "युक्ति %s (%u, %ssuspended) से कनेक्टेड.\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "स्ट्रीम त्रुटि: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "स्ट्रीम युक्ति स्थगित.%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "स्ट्रीम युक्ति पुनर्बहाल.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "स्ट्रीम अंडररन.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "स्ट्रीम ओवररन.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "स्ट्रीम आरंभ.%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "स्ट्रीम युक्ति %s (%u, %ssuspended).%s में खिसकाया गया \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "नहीं " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "स्ट्रीम बफ़र गुण परिवर्तित.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "कनेक्शन स्थापित.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() विफल: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() विफल: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() विफल: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "कनेक्शन विफल.%s \n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF पाया.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() विफल: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF पाया.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() विफल: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "संकेत पाया, निकल रहा है.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Failed to get latency: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "समय: %0.3f sec; लैटेंसी: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() विफल: %s\n" #: ../src/utils/pacat.c:605 @@ -1533,34 +1396,34 @@ msgstr "" "लिबपल्स %s के साथ कंपाइल\n" "लिबपल्स %s के साथ लिंक\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "अवैध चैनल मानचित्र '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "अवैध पुनः प्रतिदर्श विधि '%s'." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "अवैध चैनल मानचित्र '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "अवैध लैटेंसी विनिर्दिष्टता '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "अवैध प्रक्रिया समय विनिर्दिष्टता '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "अवैध पुनः प्रतिदर्श विधि '%s'." #: ../src/utils/pacat.c:878 @@ -1569,60 +1432,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "अवैध नमूना विनिर्दिष्टता\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "कई वितर्क.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "नमूना सूचना पाने में विफल: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "ध्वनि फ़ाइल खोलने में विफल.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "%s स्ट्रीम को किसी नमूना विनिर्दिष्टता '%s' के साथ खोल रहा है.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "नमूना सूचना पाने में विफल: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "%s स्ट्रीम को किसी नमूना विनिर्दिष्टता '%s' के साथ खोल रहा है.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "चैनल मानचित्र नमूना विनिर्दिष्टता के मेल नहीं खाता\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "%s स्ट्रीम को किसी नमूना विनिर्दिष्टता '%s' के साथ खोल रहा है.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "%s स्ट्रीम को किसी नमूना विनिर्दिष्टता '%s' के साथ खोल रहा है.\n" #: ../src/utils/pacat.c:1006 @@ -1633,35 +1502,34 @@ msgstr "रिकार्डिंग" msgid "playback" msgstr "प्लेबैक" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() विफल.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() विफल.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() विफल.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() विफल: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() विफल.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() विफल.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() विफल.\n" #: ../src/utils/pasuspender.c:81 @@ -1689,6 +1557,11 @@ msgstr "पुनर्बहाली में विफल: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "चेतावनी: ध्वनि सर्वर स्थानीय नहीं है, स्थगित नहीं कर रहा है.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "कनेक्शन विफल.%s \n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1729,6 +1602,21 @@ msgstr "" "लिबपल्स %s से कंपाइल\n" "लिबपल्स %s से कड़ीबद्ध\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() विफल.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() विफल.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2143,6 +2031,11 @@ msgstr "" "लिबपल्स %s से कंपाइल\n" "लिबपल्स %s से कड़ीबद्ध\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "अवैध चैनल मानचित्र '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "लोड करने के लिए किसी नमूना फ़ाइल निर्दिष्ट करें\n" @@ -2151,6 +2044,11 @@ msgstr "लोड करने के लिए किसी नमूना फ msgid "Failed to open sound file.\n" msgstr "ध्वनि फ़ाइल खोलने में विफल.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "नमूना सूचना पाने में विफल: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2214,11 +2112,6 @@ msgstr "आपको किसी कार्ड नाम/सूची और 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 "" @@ -2335,11 +2228,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "autospawn लॉक की पहुँच नहीं ले सकता है." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2356,7 +2249,7 @@ msgstr "" "हमें POLLOUT सेट के साथ तैयार किया गया है -- हालांकि परवर्ती snd_pcm_avail() ने 0 या " "दूसरा मान < min_avail दिया." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2374,15 +2267,15 @@ msgstr "" "दूसरा मान < min_avail दिया." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "बंद" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "उच्च विश्वसनीयतायुक्ति प्लेबैक (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "टेलिफोनी ड्यूप्लेक्स (HSP/HFP)" @@ -2390,6 +2283,128 @@ msgstr "टेलिफोनी ड्यूप्लेक्स (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "पल्सऑडियो ध्वनि सर्वर" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "तंत्र बस से कनेक्ट नहीं हो सकता है: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "PID से कॉलर पाने में विफल: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "UID को कॉलर वस्तु पर सेट नहीं कर सकता है." + +#~ msgid "Failed to get CK session." +#~ msgstr "CK सत्र पाने में विफल." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "UID को सत्र वस्तु पर सेट नहीं कर सकता है." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "PolKitAction आबंटित नहीं कर सकता है." + +#~ msgid "Cannot set action_id" +#~ msgstr "action_id सेट नहीं कर सकता है" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "PolKitContext आबंटित नहीं कर सकता है." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "PolKitContext आरंभ नहीं कर सकता है.: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "निर्धारित नहीं कर सकता है कि क्या कॉलर अधिकृत है: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "अधिकार प्राप्त नहीं कर सकता है: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit ने '%s' के साथ अनुक्रिया किया" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "उच्च प्राथमिकता अनुसूचन (negative Unix nice level) PulseAudio डेमॉन के लिए" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "पल्सऑडियो डेमॉन के लिए वास्तविक समय नियोजन" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "तंत्र नीति PulseAudio को रोकती है उच्च प्राथमिकता अनुसूचन के लिए." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "तंत्र नीति PulseAudio को वास्तविक समय अनुसूचन पाने से रोकती है." + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() विफल: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() विफल: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "हम '%s' समूह में हैं, उच्च प्राथमिकता नियोजन की अनुमति के साथ." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "हम '%s' समूह में हैं, वास्तविक समय नियोजन को अनुमति देते हुए." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit उच्च प्राथमिकता अधिकार अधिग्रहण हमें देती है." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit उच्च प्राथमिकता अधिकार अधिग्रहण अस्वीकृत करती है." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit हमें देती है वास्तविक समय अधिकार अधिग्रहण." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit स्वीकृत करती है वास्तविक समय अधिकार अधिग्रहण." + +#~ 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." +#~ msgstr "" +#~ "SUID रूट को आह्वान किया और वास्तविक समय/या उच्च प्राथमिकता नियोजन को इस विन्यास " +#~ "में निवेदन किया गया था. हालांकि, हमें जरूरी अधिकार कम है:\n" +#~ "हम '%s' समूह में नहीं है, PolicyKit निवेदित अधिकार हमें देने से मना करता है और हम " +#~ "RLIMIT_NICE/RLIMIT_RTPRIO संसाधन सीमा को बढ़ाना नहीं है.\n" +#~ "वास्तविक समय/या उच्च प्राथमिकता नियोजन को सक्रिय करने के लिए कृपया उचित " +#~ "PolicyKit अधिकार अधिग्रहित करें, या '%s' का सदस्य बनें, RLIMIT_NICE/" +#~ "RLIMIT_RTPRIO संसाधन सीमा को इस उपयोक्ता के लिए बढ़ाएँ." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "विन्यास में उच्च प्राथमिकता नियोजन सक्रिय है लेकिन नीति के द्वारा अनुमति प्राप्त नहीं है." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "सफलतापूर्वक बढ़ा हुआ RLIMIT_RTPRIO" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO विफल: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "CAP_NICE छोड़ रहा है" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "विन्यास में वास्तविक समय नियोजन लेकिन नीति के द्वारा अनुमति प्राप्त नहीं." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "CAP_SYS_NICE में सीमित क्षमता सफलतापूर्वक." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() विफल.\n" + #~ msgid "Analog Mono" #~ msgstr "एनालॉग मोनो" diff --git a/po/it.po b/po/it.po index 3ecca4e4..edb1fd59 100644 --- a/po/it.po +++ b/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-20 22:34+0200\n" "Last-Translator: mario_santagiuliana \n" "Language-Team: Italian \n" @@ -19,7 +19,12 @@ msgstr "" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -31,7 +36,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:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -43,7 +48,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:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -69,7 +74,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Audio interno" @@ -89,222 +94,93 @@ msgstr "Allocazione del nuovo loader dl non riuscita." msgid "Failed to add bind-now-loader." msgstr "Aggiunta di bind-now-loader non riuscita." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Impossibile effettuare la connessione al bus di sistema: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Impossibile ottenere il chiamante dal PID: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Impossibile impostare l'UID sull'oggetto chiamante." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Recupero della sessione CK non riuscito." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Impossibile impostare l'UID sull'oggetto sessione." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Impossibile allocare PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Impossibile impostare action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Impossibile allocare PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Impossibile inizializzare PolKitContext: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Impossibile determinare se il chiamante è autorizzato: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Impossibile ottenere l'autorizzazione: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit ha risposto con \"%s\"" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Ottenuto il segnale %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Uscita." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Ricerca dell'utente \"%s\" non riuscita." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Ricerca del gruppo \"%s\" non riuscita." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Trovato l'utente \"%s\" (UID %lu) e il gruppo \"%s\" (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "Il GID dell'utente \"%s\" e del gruppo \"%s\" non corrispondono." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "La directory home dell'utente \"%s\" non è \"%s\", ignorato." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Creazione di \"%s\" non riuscita: %s" # group list ???? -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Cambio dell'elenco di gruppo non riuscito: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Cambio di GID non riuscito: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Cambio di UID non riuscito: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Privilegi di root abbandonati con successo." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "Modalità \"system wide\" non supportata su questa piattaforma." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) non riuscita: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Analisi della riga di comando non riuscita." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "Attualmente nel gruppo \"%s\", che consente scheduling high-priority." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "Attualmente nel gruppo \"%s\", che consente scheduling real-time." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "Privilegi acquire-high-priority assegnati da PolicyKit." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "Privilegi acquire-high-priority rifiutati da PolicyKit." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "Privilegi acquire-real-time assegnati da PolicyKit." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "Privilegi acquire-real-time rifiutati da PolicyKit." - -#: ../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." -msgstr "" -"Lo SUID root e lo scheduling real-time o high-priority erano richiesti nella " -"configurazione, ma mancano i privilegi necessari:\n" -"non si è nel gruppo «%s», PolicyKit non consente di acquisire i privilegi " -"richiesti e non è possibile incrementare i limiti RLIMIT_NICE/RLIMIT_RTPRIO " -"della risorsa.\n" -"Per abilitare lo scheduling real-time/high-priority, acquisire i privilegi " -"PolicyKit appropriati, diventare un membro di «%s» oppure incrementare i " -"limiti RLIMIT_NICE/RLIMIT_RTPRIO della risorsa per questo utente." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Scheduling high-priority abilitato nella configurazione, ma non ammesso " -"dalla politica." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "Incremento di RLIMIT_RTPRIO riuscito" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO non riuscito: %s" - -# abbandono?? -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Abbandono del CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Scheduling real-time abilitato nella configurazione, ma non ammesso dalla " -"politica." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Demone non in esecuzione" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Demone in esecuzione con PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Terminazione del demone non riuscita: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -312,158 +188,158 @@ msgstr "" "Questo programma non è pensato per essere eseguito come root (a meno di " "specificare --system)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Richiesti privilegi di root." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start non supportato per le istanze di sistema." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "In esecuzione in modalità sistema, ma --disallow-exit non impostato." -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "In esecuzione in modalità sistema, ma --disallow-module-loading non " "impostato." -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "" "In esecuzione in modalità sistema, disabilitata in modo forzoso la modalità " "SHM." -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "In esecuzione in modalità sistema, disabilitato in modo forzoso il tempo di " "uscita per inattività." -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Acquisizione di STDIO non riuscita." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "pipe non riuscita: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() non riuscita: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() non riuscita: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Avvio del demone non riuscito." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Avvio del demone riuscito." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Questo è PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Host di compilazione: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS di compilazione: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "In esecuzione sull'host: %s" # evviva il rispetto della l10n!!! -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "Trovate %u CPU." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "La dimensione di pagina è %lu byte" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Compilato con supporto a Valgrind: sì" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Compilato con supporto a Valgrind: no" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "In esecuzione in modalità valgrind: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Build ottimizzata: sì" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Build ottimizzata: no" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definito, tutte le dichiarazioni sono disabilitate." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" "FASTPATH definito, solo le dichiarazioni veloci di path sono disabilitate." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Tutte le dichiarazioni sono abilitate." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Recupero dell'ID della macchina non riuscito" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "L'ID della macchina è %s" -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "L'ID della macchina è %s" -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "In uso directory di runtime %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "In uso directory di stato %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "In esecuzione in modalità sistema: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -473,17 +349,17 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() non riuscita." # io mi domando e dico..... mah! -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 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:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -491,27 +367,27 @@ msgstr "" "Hey, questo kernel è andato a male! Lo chef oggi raccomanda Linux con i " "timer high-resolution abilitati!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() non riuscita." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Inizializzazione del demone non riuscita." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 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:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Completato l'avvio del demone." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Iniziato l'arresto del demone." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Demone terminato." @@ -881,14 +757,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Lettura dal file di configurazione: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Abbandono dei privilegi di root." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Limitazione delle capacità a CAP_SYS_NICE riuscita." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "Sistema sonoro PulseAudio" @@ -897,30 +769,6 @@ msgstr "Sistema sonoro PulseAudio" msgid "Start the PulseAudio Sound System" msgstr "Avvia il sistema sonoro PulseAudio" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" -"Scheduling high-priority (valori negativi di \"nice\") per il demone " -"PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Scheduling realt-time per il demone PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"La politica di sistema previene PulseAudio dall'ottenere lo scheduling high-" -"priority." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" -"La politica di sistema previene PulseAudio dall'ottenere lo scheduling real-" -"time." - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1295,186 +1143,190 @@ msgstr "Analisi dei dati cookie non riuscita" msgid "Failed to open configuration file '%s': %s" msgstr "Apertura del file di configurazione \"%s\" non riuscita: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Nessun cookie caricato. Tentativo di connettersi senza." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Ricevuto messaggio per l'estensione sconosciuta \"%s\"" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Svuotamento dello stream non riuscito: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "Stream di riproduzione svuotato.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "Svuotamento della connessione sul server.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() non riuscita: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() non riuscita: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() non riuscita: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Creazione dello stream riuscita.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() non riuscita: %s\n" # maxlength, fragsize e gli altri non so se vanno tradotti... -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Metriche del buffer: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" # maxlength e fragsize non so se vanno tradotti... -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Metriche del buffer: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "In uso specifica di campionamento \"%s\", mappa di canali \"%s\".\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "Connesso al device %s (%u, %ssospeso).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Errore di stream: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "Device stream sospeso.%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "Device stream ripristinato.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "Underrun dello stream.%s\n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "Overrun dello stream.%s\n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "Stream avviato.%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "Stream spostato sul device %s (%u, %ssospeso).%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "non " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "Attributi del buffer di stream cambiati.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "Connessione stabilita.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() non riuscita: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() non riuscita: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() non riuscita: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Connessione non riuscita: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Ricevuto EOF.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() non riuscita: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "Ricevuto EOF.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() non riuscita: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "Ricevuto il segnale, uscita.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Recupero della latenza non riuscito: %s\n" # dubbio: tempo o durata?? -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Tempo: %0.3f sec; Latenza: %0.0f microsec. \\r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() non riuscita: %s\n" #: ../src/utils/pacat.c:605 @@ -1608,35 +1460,35 @@ msgstr "" "Compilato con libpulse %s\n" "Link eseguito con libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "Mappa di canali \"%s\" non valida\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "Metodo di ricampionamento \"%s\" non valido." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "Mappa di canali \"%s\" non valida\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Specifica di latenza \"%s\" non valida\n" # esecuzione??? #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "Specifica di tempo di elaborazione \"%s\" non valida\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "Metodo di ricampionamento \"%s\" non valido." #: ../src/utils/pacat.c:878 @@ -1645,60 +1497,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "Specifica di campionamento non valida\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "Troppi argomenti.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "Recupero delle informazioni del campione non riuscito: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Apertura del file audio non riuscita.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "Apertura di uno stream %s con specifica di campionamento \"%s\".\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "Recupero delle informazioni del campione non riuscito: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "Apertura di uno stream %s con specifica di campionamento \"%s\".\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "La mappa di canali non corrisponde alla specifica di campionamento\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "Apertura di uno stream %s con specifica di campionamento \"%s\".\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "Apertura di uno stream %s con specifica di campionamento \"%s\".\n" #: ../src/utils/pacat.c:1006 @@ -1709,35 +1567,34 @@ msgstr "registrazione" msgid "playback" msgstr "riproduzione" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() non riuscita.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() non riuscita.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() non riuscita.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() non riuscita: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() non riuscita.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() non riuscita.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() non riuscita.\n" #: ../src/utils/pasuspender.c:81 @@ -1766,6 +1623,11 @@ 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:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Connessione non riuscita: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1806,6 +1668,21 @@ msgstr "" "Compilato con libpulse %s\n" "Link eseguito con libpulse %s\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "pa_mainloop_new() non riuscita.\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() non riuscita.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() non riuscita.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2234,6 +2111,11 @@ msgstr "" "Compilato con libpulse %s\n" "Link eseguito con libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Mappa di canali \"%s\" non valida\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Specificare un file campione da caricare\n" @@ -2242,6 +2124,11 @@ msgstr "Specificare un file campione da caricare\n" msgid "Failed to open sound file.\n" msgstr "Apertura del file audio non riuscita.\n" +#: ../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" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2308,11 +2195,6 @@ msgstr "" msgid "No valid command specified.\n" msgstr "Nessun comando valido specificato.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "pa_context_connect() non riuscita: %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2431,11 +2313,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Impossibile accedere al lock di autospawn." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2452,7 +2334,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:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2470,15 +2352,15 @@ msgstr "" "snd_pcm_avail() ritorna 0 o un altro valore < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Spento" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "Playback ad alta fidabilità (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Doppino Telefonico (HSP/HFP)" @@ -2486,6 +2368,140 @@ msgstr "Doppino Telefonico (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "Server sonoro PulseAudio" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Impossibile effettuare la connessione al bus di sistema: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Impossibile ottenere il chiamante dal PID: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Impossibile impostare l'UID sull'oggetto chiamante." + +#~ msgid "Failed to get CK session." +#~ msgstr "Recupero della sessione CK non riuscito." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "Impossibile impostare l'UID sull'oggetto sessione." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Impossibile allocare PolKitAction." + +#~ msgid "Cannot set action_id" +#~ msgstr "Impossibile impostare action_id" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Impossibile allocare PolKitContext." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Impossibile inizializzare PolKitContext: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Impossibile determinare se il chiamante è autorizzato: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Impossibile ottenere l'autorizzazione: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit ha risposto con \"%s\"" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Scheduling high-priority (valori negativi di \"nice\") per il demone " +#~ "PulseAudio" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Scheduling realt-time per il demone PulseAudio" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "La politica di sistema previene PulseAudio dall'ottenere lo scheduling " +#~ "high-priority." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "La politica di sistema previene PulseAudio dall'ottenere lo scheduling " +#~ "real-time." + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() non riuscita: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() non riuscita: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Attualmente nel gruppo \"%s\", che consente scheduling high-priority." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "Attualmente nel gruppo \"%s\", che consente scheduling real-time." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "Privilegi acquire-high-priority assegnati da PolicyKit." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "Privilegi acquire-high-priority rifiutati da PolicyKit." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "Privilegi acquire-real-time assegnati da PolicyKit." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "Privilegi acquire-real-time rifiutati da PolicyKit." + +#~ 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." +#~ msgstr "" +#~ "Lo SUID root e lo scheduling real-time o high-priority erano richiesti " +#~ "nella configurazione, ma mancano i privilegi necessari:\n" +#~ "non si è nel gruppo «%s», PolicyKit non consente di acquisire i privilegi " +#~ "richiesti e non è possibile incrementare i limiti RLIMIT_NICE/" +#~ "RLIMIT_RTPRIO della risorsa.\n" +#~ "Per abilitare lo scheduling real-time/high-priority, acquisire i " +#~ "privilegi PolicyKit appropriati, diventare un membro di «%s» oppure " +#~ "incrementare i limiti RLIMIT_NICE/RLIMIT_RTPRIO della risorsa per questo " +#~ "utente." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "Scheduling high-priority abilitato nella configurazione, ma non ammesso " +#~ "dalla politica." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "Incremento di RLIMIT_RTPRIO riuscito" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO non riuscito: %s" + +# abbandono?? +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Abbandono del CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "Scheduling real-time abilitato nella configurazione, ma non ammesso dalla " +#~ "politica." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Limitazione delle capacità a CAP_SYS_NICE riuscita." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() non riuscita.\n" + #~ msgid "Analog Mono" #~ msgstr "Mono analogico" diff --git a/po/kn.po b/po/kn.po index b6636504..94ff0063 100644 --- a/po/kn.po +++ b/po/kn.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-07 11:13+0530\n" "Last-Translator: Shankar Prasad \n" "Language-Team: Kannada \n" @@ -17,7 +17,12 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -29,7 +34,7 @@ msgstr "" "ಇದಕ್ಕೆ ALSA ಚಾಲಕ '%s' ದಲ್ಲಿನ ಒಂದು ದೋಷದ ಕಾರಣವಿರಬಹುದು. ದಯವಿಟ್ಟುಈ ತೊಂದರೆಯನ್ನು ALSA " "ವಿಕಸನಗಾರರ ಗಮನಕ್ಕೆ ತನ್ನಿ." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -41,7 +46,7 @@ msgstr "" "ಇದಕ್ಕೆ ALSA ಚಾಲಕ '%s' ದಲ್ಲಿನ ಒಂದು ದೋಷದ ಕಾರಣವಿರಬಹುದು. ದಯವಿಟ್ಟುಈ ತೊಂದರೆಯನ್ನು ALSA " "ವಿಕಸನಗಾರರ ಗಮನಕ್ಕೆ ತನ್ನಿ." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -66,7 +71,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "ಆಂತರಿಕ ಆಡಿಯೊ" @@ -86,220 +91,92 @@ msgstr "ಹೊಸ dl ಲೋಡರ್ ಅನ್ನು ನಿಯೋಜಿಸುವ msgid "Failed to add bind-now-loader." msgstr "bind-now-ಲೋಡರ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿಲ್ಲ." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "ವ್ಯವಸ್ಥೆಯ ಬಸ್‌ಗೆ ಸಂಪರ್ಕಜೋಡಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "PID ಇಂದ ಕಾಲರ್ ಅನ್ನು ಪಡೆಯಲಾಗಿಲ್ಲ: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "ಕಾಲರ್ ವಸ್ತುವಿನಲ್ಲಿ UID ಅನ್ನು ಅಣಿಗೊಳಿಸಲಾಗಲಿಲ್ಲ." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK ಅಧಿವೇಶನವನ್ನು ಪಡೆಯಲಾಗಲಿಲ್ಲ." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "ಅಧಿವೇಶನದ ವಸ್ತುವಿನಲ್ಲಿ UID ಅನ್ನು ಅಣಿಗೊಳಿಸಲಾಗಲಿಲ್ಲ." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "PolKitAction ಅನ್ನು ನಿಯೋಜಿಸಲಾಗಿಲ್ಲ." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "action_id ಅನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "PolKitContext ಅನ್ನು ನಿಯೋಜಿಸಲಾಗಿಲ್ಲ." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "PolKitContext ಅನ್ನು ಆರಂಭಿಸಲಾಗಿಲ್ಲ: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "ಕಾಲರ್ ಅಧೀಕೃತವಾಗಿದುದೆ ಎಂದು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "auth ಅನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit '%s' ನೊಂದಿಗೆ ಪ್ರತ್ಯುತ್ತರಿಸಿದೆ" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "%s ನಿಂದ ಸಂಕೇತವು ದೊರೆತಿದೆ." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "ನಿರ್ಗಮಿಸುತ್ತಿದೆ." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "ಬಳಕೆದಾರ '%s' ಅನ್ನು ಪತ್ತೆ ಮಾಡಲು ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "ಗುಂಪು '%s' ಅನ್ನು ಪತ್ತೆ ಮಾಡಲು ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "ಬಳಕೆದಾರ '%s' (UID %lu) ಹಾಗು ಗುಂಪು '%s' (GID %lu) ಕಂಡುಬಂದಿದೆ." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "ಬಳಕೆದಾರ '%s' ರ GID ಹಾಗು ಗುಂಪು '%s' ತಾಳೆಯಾಗುತ್ತಿಲ್ಲ." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "ಬಳಕೆದಾರ '%s' ರ ನೆಲೆ ಕೋಶವು '%s' ಆಗಿಲ್ಲ, ಆಲಕ್ಷಿಸಲಾಗುತ್ತಿದೆ." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' ಅನ್ನು ರಚಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "ಗುಂಪಿನ ಪಟ್ಟಿಯನ್ನು ಬದಲಾಯಿಸಲು ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GID ಅನ್ನು ಬದಲಾಯಿಸಲು ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UID ಅನ್ನು ಬದಲಾಯಿಸಲು ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "ರೂಟ್ ಸವಲತ್ತುಗಳನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬಿಡಲಾಗಿದೆ." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "ವ್ಯವಸ್ಥೆಯಾದ್ಯಂತದ ಕ್ರಮಕ್ಕೆ ಈ ಪ್ಲಾಟ್‌ಫಾರ್ಮಿನಲ್ಲಿ ಬೆಂಬಲವಿಲ್ಲ." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "ಆಜ್ಞಾ ಸಾಲನ್ನು ಪಾರ್ಸ್ ಮಾಡುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"ನಾವು '%s' ಗುಂಪಿನಲ್ಲಿದ್ದೇವೆ, ಹಾಗು ಹೆಚ್ಚು-ಆದ್ಯತೆ ಶೆಡ್ಯೂಲಿಂಗ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತೇವೆ." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "ನಾವು '%s' ಗುಂಪಿನಲ್ಲಿದ್ದೇವೆ, ಹಾಗು ರಿಯಲ್-ಟೈಮ್ ಶೆಡ್ಯೂಲಿಂಗ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತೇವೆ." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "ಹೆಚ್ಚು-ಆದ್ಯತೆ ಸವಲತ್ತನ್ನು ಪಡೆದುಕೊ ಅನ್ನು PolicyKit ಅನುಮತಿಸುತ್ತದೆ." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "ಹೆಚ್ಚು-ಆದ್ಯತೆ ಸವಲತ್ತನ್ನು ಪಡೆದುಕೊ ಅನ್ನು PolicyKit ನಿರಾಕರಿಸುತ್ತದೆ." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "ರಿಯಲ್-ಟೈಮ್ ಸವಲತ್ತನ್ನು ಪಡೆದುಕೊ ಅನ್ನು PolicyKit ಅನುಮತಿಸುತ್ತದೆ." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "ರಿಯಲ್-ಟೈಮ್ ಸವಲತ್ತನ್ನು ಪಡೆದುಕೊ ಅನ್ನು PolicyKit ನಿರಾಕರಿಸುತ್ತದೆ." - -#: ../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." -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:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಹೆಚ್ಚಿಸಲಾಗಿದೆ" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO ವಿಫಲಗೊಂಡಿದೆ: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "CAP_NICE ಅನ್ನು ಬಿಡಲಾಗುತ್ತಿದೆ" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"ಸಂರಚನೆಯಲ್ಲಿ ರಿಯಲ್-ಟೈಮ್ ಶೆಡ್ಯೂಲಿಂಗ್ ಅನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ ಆದರೆ ಪಾಲಿಸಿಯಿಂದ ಅನುಮತಿ ಇಲ್ಲ." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "ಡೀಮನ್ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದೆ" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "ಡೀಮನ್ PID %u ಯಾಗಿ ಚಲಾಯಿಗೊಳ್ಳುತ್ತಿದೆ" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "ಡೀಮನ್ ಅನ್ನು ಕೊಲ್ಲಲು ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -307,158 +184,158 @@ msgstr "" "ಈ ಪ್ರೋಗ್ರಾಮನ್ನು ರೂಟ್‌ ಆಗಿ ಚಲಾಯಿಸುವ ಉದ್ಧೇಶವನ್ನು ಹೊಂದಿಲ್ಲ (--system ಅನ್ನು ಸೂಚಿಸದೆ " "ಇದ್ದಲ್ಲಿ ಮಾತ್ರ)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "ನಿರ್ವಾಹಕ ಸವಲತ್ತುಗಳ ಅಗತ್ಯವಿದೆ." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "ವ್ಯವಸ್ಥೆಯ ಸನ್ನಿವೇಶದಿಂದ --start ಬೆಂಬಲಿತವಾಗಿಲ್ಲ." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" "ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದೆ, ಆದರೆ --disallow-exit ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದೆ, ಆದರೆ --disallow-module-loading ಅನ್ನು " "ಹೊಂದಿಸಲಾಗಿಲ್ಲ!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "" "ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದ್ದು, SHM ಕ್ರಮವನ್ನು ಒತ್ತಾಯಪೂರ್ವಕವಾಗಿ " "ಅಶಕ್ತಗೊಳಿಸುತ್ತಿದೆ!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದ್ದು, ನಿರ್ಗಮಿಸುವ ಜಡ ಸಮಯವನ್ನು ಒತ್ತಾಯಪೂರ್ವಕವಾಗಿ " "ಅಶಕ್ತಗೊಳಿಸುತ್ತಿದೆ!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "stdio ಅನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "ಪೈಪ್‌ ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "ಡೀಮನ್ ಆರಂಭಗೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "ಡೀಮನ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಆರಂಭಿಸಲಾಗಿದೆ." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "ಇದು PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "ಕಂಪೈಲ್ ಮಾಡುವ ಅತಿಥೇಯ: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "ಕಂಪೈಲ್ ಮಾಡುವ CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "ಅತಿಥೇಯದಲ್ಲಿ ಚಲಾಯಿತಗೊಳ್ಳುತ್ತಿದೆ: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPUಗಳು ಕಂಡುಬಂದಿವೆ." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "ಪುಟದ ಗಾತ್ರವು %lu ಬೈಟ್‌ಗಳಾಗಿವೆ" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind ಬೆಂಬಲದೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ: ಹೌದು" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Valgrind ಬೆಂಬಲದೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ: ಇಲ್ಲ" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿಸಲಾಗುತ್ತಿದೆ: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "ಪ್ರಶಸ್ತವಾದ ನಿರ್ಮಾಣ: ಹೌದು" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "ಪ್ರಶಸ್ತವಾದ ನಿರ್ಮಾಣ: ಇಲ್ಲ" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG ಅನ್ನು ಸೂಚಿಸಲಾಗಿದೆ, ಎಲ್ಲಾ ಪ್ರತಿಪಾದನೆಗಳನ್ನೂ ಅಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" "FASTPATH ಅನ್ನು ಸೂಚಿಸಲಾಗಿದೆ, ಕೇವಲ ವೇಗ ಮಾರ್ಗದ ಪ್ರತಿಪಾದನೆಗಳನ್ನೂ ಅಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "ಎಲ್ಲಾ ಪ್ರತಿಪಾದನೆಗಳನ್ನೂ ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "ಮೆಶೀನ್ ID ಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "ಮೆಶೀನ್ ID ಯು %s ಆಗಿದೆ." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "ಮೆಶೀನ್ ID ಯು %s ಆಗಿದೆ." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "ಚಲಾವಣಾಸಮಯ(ರನ್‌ಟೈಮ್) ಕೋಶ %s ಅನ್ನು ಬಳಸಿಕೊಂಡು." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "ಸ್ಥಿತಿ ಕೋಶ %s ಅನ್ನು ಬಳಸಿಕೊಂಡು." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "ವ್ಯವಸ್ಥೆಯ ಕ್ರಮದಲ್ಲಿ ಚಲಾಯಿಸಲಾಗುತ್ತಿದೆ: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -468,15 +345,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "ತಾಜಾ ರೆಸಲ್ಯೂಶನ್ ಟೈಮರ್ ಲಭ್ಯವಿದೆ! Bon appetit!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -484,27 +361,27 @@ msgstr "" "ಮಹಾಶಯರೆ, ನಿಮ್ಮ ಕರ್ನಲ್ ಕೊಳೆತುಹೋಗಿದೆ! ಅತ್ಯುತ್ತಮ ರೆಸಲ್ಯೂಶನ್ ಟೈಮರ್ ಅನ್ನು ಶಕ್ತಗೊಳಿಸಲಾದ " "ಲಿನಕ್ಸನ್ನು ಬಳಸುವಂತೆ ಅಡುಗೆಯವರು ಸಲಹೆ ಮಾಡುತ್ತಿದ್ದಾರೆ!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "ಡೀಮನ್ ಅನ್ನು ಆರಂಭಿಸಲು ವಿಫಲಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "ಲೋಡ್ ಮಾಡಲಾದ ಯಾವುದೆ ಡೀಮನ್ ಇಲ್ಲದೆ ಆರಂಭಗೊಂಡಿದೆ, ಕೆಲಸ ಮಾಡಲು ನಿರಾಕರಿಸಿದೆ." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "ಡೀಮನ್ ಆರಂಭಗೊಳಿಕೆ ಪೂರ್ಣಗೊಂಡಿದೆ." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "ಡೀಮನ್ ಸ್ಥಗಿತಗೊಳಿಕೆಯನ್ನು ಆರಂಭಿಸಲಾಗಿದೆ." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "ಡೀಮನ್ ಅನ್ನು ಅಂತ್ಯಗೊಳಿಸಲಾಗಿದೆ." @@ -844,14 +721,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### ಸಂರಚನಾ ಕಡತದಿಂದ ಓದು: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "ರೂಟ್‌ ಸವಲತ್ತುಗಳನ್ನು ಬಿಡಲಾಗುತ್ತಿದೆ." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "CAP_SYS_NICE ಗಾಗಿನ ಯಶಸ್ವಿ ನಿಯಮಿತ ಸಾಮರ್ಥ್ಯಗಳು." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio ಧ್ವನಿ ವ್ಯವಸ್ಥೆ" @@ -860,27 +733,6 @@ msgstr "PulseAudio ಧ್ವನಿ ವ್ಯವಸ್ಥೆ" msgid "Start the PulseAudio Sound System" msgstr "PulseAudio ಧ್ವನಿ ವ್ಯವಸ್ಥೆಯನ್ನು ಆರಂಭಿಸಿ" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "PulseAudio ಡೀಮನ್‌ಗಾಗಿ ಹೆಚ್ಚಿನ ಆದ್ಯತೆಯ ಶೆಡ್ಯೂಲಿಂಗ್ (ಋಣಾತ್ಮಕ ಯೂನಿಕ್ಸ್‌ ನೈಸ್ ಹಂತ)" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "PulseAudio ಡೀಮನ್‌ಗಾಗಿ ರಿಯಲ್-ಟೈಮ್ ಶೆಡ್ಯೂಲಿಂಗ್" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -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:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "ಮೊನೊ" @@ -1253,184 +1105,188 @@ msgstr "ಕುಕಿ ದತ್ತಾಂಶವನ್ನು ಪಾರ್ಸ್ ಮ msgid "Failed to open configuration file '%s': %s" msgstr "ಸಂರಚನಾ ಕಡತ '%s' ಅನ್ನು ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "" "ಯಾವುದೆ ಕುಕಿಯನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿಲ್ಲ. ಕುಕಿ ಇಲ್ಲದೆ ಸಂಪರ್ಕಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತಿದೆ." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "ಫೋರ್ಕ್(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "ಅಜ್ಞಾತ ವಿಸ್ತರಣೆ '%s' ಇಂದ ಸಂದೇಶವನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗಿದೆ" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "ಸ್ಟ್ರೀಮನ್ನು ಬರಿದಾಗಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "ಪ್ಲೇಬ್ಯಾಕ್ ಸ್ಟ್ರೀಮನ್ನು ಬರಿದಾಗಿಸಲಾಗಿದೆ.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "ಪರಿಚಾರಕಕ್ಕೆ ಬರಿದಾಗಿಸುವ ಸಂಪರ್ಕ.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() failed: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() failed: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() failed: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "ಸ್ಟ್ರೀಮನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನಿರ್ಮಿಸಲಾಗಿದೆ.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() failed: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "ಬಫರ್ ಮೆಟ್ರಿಕ್‌ಗಳು: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "ಬಫರ್ ಮೆಟ್ರಿಕ್‌ಗಳು: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "ನಮೂನೆಯ ವಿವರ '%s' ಅನ್ನು ಬಳಸಿಕೊಂಡು, ಚಾನಲ್‌ ನಕ್ಷೆ '%s'.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "ಸಾಧನ %s ಕ್ಕೆ ಸಂಪರ್ಕ ಜೋಡಿಸಲಾಗಿದೆ (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "ಸ್ಟ್ರೀಮ್ ದೋಷ: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "ಸ್ಟ್ರೀಮ್ ಸಾಧನವನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ತಡೆಹಿಡಿಯಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "ಸ್ಟ್ರೀಮ್ ಸಾಧನವನ್ನು ಮರಳಿ ಆರಂಭಿಸಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಕಡಿಮೆ ಚಲಾಯಿಸಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಹೆಚ್ಚು ಚಲಾಯಿಸಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಆರಂಭಿಸಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "ಸಾಧನ %s ಅನ್ನು ಸ್ಟ್ರೀಮ್‌ ಸ್ಥಳಾಂತರಿಸಲಾಗಿದೆ (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "ಇಲ್ಲ " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "ಸ್ಟ್ರೀಮ್ ಬಫರ್ ಗುಣವಿಶೇಷತೆಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "ಸಂಪರ್ಕವನ್ನು ಸಾಧಿಸಲಾಗಿದೆ.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() failed: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() failed: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() failed: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "ಸಂಪರ್ಕದ ವಿಫಲತೆ: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF ಅನ್ನು ಪಡೆಯಲಾಗಿದೆ.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "ಓದುವಿಕೆ() ವಿಫಲಗೊಂಡಿದೆ: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF ಅನ್ನು ಪಡೆಯಲಾಗಿದೆ.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "ಬರೆಯುವಿಕೆ() ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "ಸಂಕೇತ ದೊರೆತಿದೆ, ನಿರ್ಗಮಿಸುತ್ತಿದೆ.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "ಅಗೋಚರತೆಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "ಸಮಯ: %0.3f sec; ಅಗೋಚರತೆ: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() failed: %s\n" #: ../src/utils/pacat.c:605 @@ -1549,34 +1405,34 @@ msgstr "" "libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ\n" "libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "ಅಮಾನ್ಯವಾದ ಚಾನಲ್ ನಕ್ಷೆ '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "ಅಮಾನ್ಯವಾದ ಮರುನಮೂನೆ ವಿಧಾನ '%s'." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "ಅಮಾನ್ಯವಾದ ಚಾನಲ್ ನಕ್ಷೆ '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "ಅಮಾನ್ಯವಾದ ಅಗೋಚರತೆ ವಿವರಣೆ '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "ಅಮಾನ್ಯವಾದ ಪ್ರಕ್ರಿಯೆ ಸಮಯದ ವಿವರಣೆ '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "ಅಮಾನ್ಯವಾದ ಮರುನಮೂನೆ ವಿಧಾನ '%s'." #: ../src/utils/pacat.c:878 @@ -1585,60 +1441,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "ಅಮಾನ್ಯವಾದ ನಮೂನೆ ವಿವರ\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "ತೆರೆ(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "ಬಹಳಷ್ಟು ಆರ್ಗುಮೆಂಟ್‌ಗಳು.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "ನಮೂನೆಯ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "ಧ್ವನಿ ಕಡತವನ್ನು ತೆರೆಯುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "ಒಂದು %s ಸ್ಟ್ರೀಮ್‌ ಅನ್ನು ನಮೂನೆ ವಿವರಣೆ '%s' ಯೊಂದಿಗೆ ತೆರೆಯಲಾಗುತ್ತಿದೆ.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "ನಮೂನೆಯ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "ಒಂದು %s ಸ್ಟ್ರೀಮ್‌ ಅನ್ನು ನಮೂನೆ ವಿವರಣೆ '%s' ಯೊಂದಿಗೆ ತೆರೆಯಲಾಗುತ್ತಿದೆ.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "ಚಾನಲ್ ನಕ್ಷೆಯು ನಮೂನೆಯ ವಿವರಣೆಯೊಂದಿಗೆ ತಾಳೆಯಾಗುತ್ತಿಲ್ಲ\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "ಒಂದು %s ಸ್ಟ್ರೀಮ್‌ ಅನ್ನು ನಮೂನೆ ವಿವರಣೆ '%s' ಯೊಂದಿಗೆ ತೆರೆಯಲಾಗುತ್ತಿದೆ.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "ಒಂದು %s ಸ್ಟ್ರೀಮ್‌ ಅನ್ನು ನಮೂನೆ ವಿವರಣೆ '%s' ಯೊಂದಿಗೆ ತೆರೆಯಲಾಗುತ್ತಿದೆ.\n" #: ../src/utils/pacat.c:1006 @@ -1649,35 +1511,34 @@ msgstr "ರೆಕಾರ್ಡಿಂಗ್" msgid "playback" msgstr "ಪ್ಲೇಬ್ಯಾಕ್‌" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() failed.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() ವಿಫಲಗೊಂಡಿದೆ.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() failed.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() failed: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() failed.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() failed.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() failed.\n" #: ../src/utils/pasuspender.c:81 @@ -1705,6 +1566,11 @@ msgstr "ಮರಳಿ ಆರಂಭಿಸಲು ವಿಫಲಗೊಂಡಿದೆ: msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "ಎಚ್ಚರಿಕೆ: ಧ್ವನಿ ಪರಿಚಾರಕವು ಸ್ಥಳೀಯವಾಗಿಲ್ಲ, ತಾತ್ಕಾಲಿಕವಾಗಿ ತಡೆಹಿಡಿಯಲಾಗುತ್ತಿಲ್ಲ.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "ಸಂಪರ್ಕದ ವಿಫಲತೆ: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1744,6 +1610,21 @@ msgstr "" "libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ\n" "libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "pa_mainloop_new() failed.\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() failed.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() failed.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2159,6 +2040,11 @@ msgstr "" "libpulse %s ನೊಂದಿಗೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆ\n" "libpulse %s ನೊಂದಿಗೆ ಜೋಡಿಸಲಾಗಿದೆ\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "ಅಮಾನ್ಯವಾದ ಚಾನಲ್ ನಕ್ಷೆ '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "ಲೋಡ್ ಮಾಡಬೇಕಿರುವ ಒಂದು ಕಡತದ ನಮೂನೆಯನ್ನು ಸೂಚಿಸಿ\n" @@ -2167,6 +2053,11 @@ msgstr "ಲೋಡ್ ಮಾಡಬೇಕಿರುವ ಒಂದು ಕಡತದ msgid "Failed to open sound file.\n" msgstr "ಧ್ವನಿ ಕಡತವನ್ನು ತೆರೆಯುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "ನಮೂನೆಯ ಮಾಹಿತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2230,11 +2121,6 @@ msgstr "ಒಂದು ಕಾರ್ಡಿನ ಹೆಸರು/ಸೂಚಿಯನ್ 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() failed: %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2352,11 +2238,11 @@ msgstr "ಓದು(): %s" msgid "write(): %s" msgstr "ಬರೆ(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "ಸ್ವಯಂಹೆಚ್ಚಿಸುವಿಕೆಯ ಲಾಕ್ ಅನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2371,7 +2257,7 @@ msgstr "" "ವಿಕಸನಗಾರರ ಗಮನಕ್ಕೆ ತನ್ನಿ.POLLOUT ಸೆಟ್‌ನಿಂದ ನಾವು ಎಚ್ಚೆತ್ತುಗೊಂಡಿದ್ದೇವೆ -- ಆದರೆ ನಂತರದ " "snd_pcm_avail() 0 ಅಥವ min_avail ಕ್ಕಿಂತ ಚಿಕ್ಕದಾದ ಇನ್ನೊಂದು ಮೌಲ್ಯವನ್ನು ಮರಳಿಸಿದೆ." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2387,15 +2273,15 @@ msgstr "" "snd_pcm_avail() 0 ಅಥವ min_avail ಕ್ಕಿಂತ ಚಿಕ್ಕದಾದ ಇನ್ನೊಂದು ಮೌಲ್ಯವನ್ನು ಮರಳಿಸಿದೆ." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "ಜಡ" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "ಹೈ ಫಿಡಿಲಿಟಿ ಪ್ಲೇಬ್ಯಾಕ್ (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "ಟೆಲಿಫೋನಿ ಡ್ಯೂಪ್ಲೆಕ್ಸ್‌ (HSP/HFP)" @@ -2403,6 +2289,137 @@ msgstr "ಟೆಲಿಫೋನಿ ಡ್ಯೂಪ್ಲೆಕ್ಸ್‌ (HSP/HF msgid "PulseAudio Sound Server" msgstr "ಪಲ್ಸ್‍ಆಡಿಯೋ ಧ್ವನಿ ಪರಿಚಾರಕ" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "ವ್ಯವಸ್ಥೆಯ ಬಸ್‌ಗೆ ಸಂಪರ್ಕಜೋಡಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "PID ಇಂದ ಕಾಲರ್ ಅನ್ನು ಪಡೆಯಲಾಗಿಲ್ಲ: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "ಕಾಲರ್ ವಸ್ತುವಿನಲ್ಲಿ UID ಅನ್ನು ಅಣಿಗೊಳಿಸಲಾಗಲಿಲ್ಲ." + +#~ msgid "Failed to get CK session." +#~ msgstr "CK ಅಧಿವೇಶನವನ್ನು ಪಡೆಯಲಾಗಲಿಲ್ಲ." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "ಅಧಿವೇಶನದ ವಸ್ತುವಿನಲ್ಲಿ UID ಅನ್ನು ಅಣಿಗೊಳಿಸಲಾಗಲಿಲ್ಲ." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "PolKitAction ಅನ್ನು ನಿಯೋಜಿಸಲಾಗಿಲ್ಲ." + +#~ msgid "Cannot set action_id" +#~ msgstr "action_id ಅನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "PolKitContext ಅನ್ನು ನಿಯೋಜಿಸಲಾಗಿಲ್ಲ." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "PolKitContext ಅನ್ನು ಆರಂಭಿಸಲಾಗಿಲ್ಲ: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "ಕಾಲರ್ ಅಧೀಕೃತವಾಗಿದುದೆ ಎಂದು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "auth ಅನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit '%s' ನೊಂದಿಗೆ ಪ್ರತ್ಯುತ್ತರಿಸಿದೆ" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "PulseAudio ಡೀಮನ್‌ಗಾಗಿ ಹೆಚ್ಚಿನ ಆದ್ಯತೆಯ ಶೆಡ್ಯೂಲಿಂಗ್ (ಋಣಾತ್ಮಕ ಯೂನಿಕ್ಸ್‌ ನೈಸ್ ಹಂತ)" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "PulseAudio ಡೀಮನ್‌ಗಾಗಿ ರಿಯಲ್-ಟೈಮ್ ಶೆಡ್ಯೂಲಿಂಗ್" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "PulseAudio ಹೆಚ್ಚಿನ ಆದ್ಯತೆಯ ಶೆಡ್ಯೂಲಿಂಗ್ ಅನ್ನು ಪಡೆದುಕೊಳ್ಳದಂತೆ ವ್ಯವಸ್ಥೆಯ ಪಾಲಿಸಿಯು " +#~ "ತಡೆಯುತ್ತದೆ." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "PulseAudio ರಿಯಲ್-ಟೈಮ್‌ ಶೆಡ್ಯೂಲಿಂಗ್ ಅನ್ನು ಪಡೆದುಕೊಳ್ಳದಂತೆ ವ್ಯವಸ್ಥೆಯ ಪಾಲಿಸಿಯು " +#~ "ತಡೆಯುತ್ತದೆ." + +#~ msgid "read() failed: %s\n" +#~ msgstr "ಓದುವಿಕೆ() ವಿಫಲಗೊಂಡಿದೆ: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() failed: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "ನಾವು '%s' ಗುಂಪಿನಲ್ಲಿದ್ದೇವೆ, ಹಾಗು ಹೆಚ್ಚು-ಆದ್ಯತೆ ಶೆಡ್ಯೂಲಿಂಗ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತೇವೆ." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "" +#~ "ನಾವು '%s' ಗುಂಪಿನಲ್ಲಿದ್ದೇವೆ, ಹಾಗು ರಿಯಲ್-ಟೈಮ್ ಶೆಡ್ಯೂಲಿಂಗ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತೇವೆ." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "ಹೆಚ್ಚು-ಆದ್ಯತೆ ಸವಲತ್ತನ್ನು ಪಡೆದುಕೊ ಅನ್ನು PolicyKit ಅನುಮತಿಸುತ್ತದೆ." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "ಹೆಚ್ಚು-ಆದ್ಯತೆ ಸವಲತ್ತನ್ನು ಪಡೆದುಕೊ ಅನ್ನು PolicyKit ನಿರಾಕರಿಸುತ್ತದೆ." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "ರಿಯಲ್-ಟೈಮ್ ಸವಲತ್ತನ್ನು ಪಡೆದುಕೊ ಅನ್ನು PolicyKit ಅನುಮತಿಸುತ್ತದೆ." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "ರಿಯಲ್-ಟೈಮ್ ಸವಲತ್ತನ್ನು ಪಡೆದುಕೊ ಅನ್ನು PolicyKit ನಿರಾಕರಿಸುತ್ತದೆ." + +#~ 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." +#~ msgstr "" +#~ "SUID ರೂಟ್ ಅನ್ನು ಕರೆಯಲಾಗಿದೆ ಹಾಗು ಸಂರಚನೆಯಲ್ಲಿ ರಿಯಲ್-ಟೈಲ್ ಹಾಗು/ಅಥವ ಹೆಚ್ಚು-ಆದ್ಯತೆ " +#~ "ಶೆಡ್ಯೂಲಿಂಗ್‌ಗೆ ಮನವಿ ಸಲ್ಲಿಸಲಾಗಿದೆ. ಆದರೆ, ಅಗತ್ಯವಿರುವ ಸವಲತ್ತುಗಳು ನಮ್ಮಲ್ಲಿಲ್ಲ:\n" +#~ "ನಾವು '%s' ಗುಂಪಿನಲ್ಲಿಲ್ಲ,ಮನವಿ ಸಲ್ಲಿಸಲಾದ ಸವಲತ್ತುಗಳನ್ನು ಒದಗಿಸಲು PolicyKit " +#~ "ನಿರಾಕರಿಸಿದೆ ಹಾಗು RLIMIT_NICE/RLIMIT_RTPRIO ಸಂಪನ್ಮೂಲದ ಮಿತಿಯನ್ನು ಹೆಚ್ಚಿಸಲು " +#~ "ನಮ್ಮಿಂದ ಸಾಧ್ಯವಿಲ್ಲ.\n" +#~ "ರಿಯಲ್-ಟೈಲ್ ಹಾಗು/ಅಥವ ಹೆಚ್ಚು-ಆದ್ಯತೆ ಶೆಡ್ಯೂಲಿಂಗ್‌ ಅನ್ನು ಶಕ್ತಗೊಳಿಸಲು ದಯವಿಟ್ಟು ಸೂಕ್ತವಾದ " +#~ "PolicyKit ಸವಲತ್ತುಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ, ಅಥವ '%s' ನ ಸದಸ್ಯರಾಗಿ, ಅಥವ ಈ " +#~ "ಬಳಕೆದಾರನಿಗಾಗಿ RLIMIT_NICE/RLIMIT_RTPRIO ಸಂಪನ್ಮೂಲ ಮಿತಿಯನ್ನು ಹೆಚ್ಚಿಸಿ." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "ಸಂರಚನೆಯಲ್ಲಿ ಹೆಚ್ಚು-ಆದ್ಯತೆಯ ಶೆಡ್ಯೂಲಿಂಗ್ ಅನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ ಆದರೆ ಪಾಲಿಸಿಯಿಂದ " +#~ "ಅನುಮತಿ ಇಲ್ಲ." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಹೆಚ್ಚಿಸಲಾಗಿದೆ" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO ವಿಫಲಗೊಂಡಿದೆ: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "CAP_NICE ಅನ್ನು ಬಿಡಲಾಗುತ್ತಿದೆ" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "ಸಂರಚನೆಯಲ್ಲಿ ರಿಯಲ್-ಟೈಮ್ ಶೆಡ್ಯೂಲಿಂಗ್ ಅನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ ಆದರೆ ಪಾಲಿಸಿಯಿಂದ ಅನುಮತಿ " +#~ "ಇಲ್ಲ." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "CAP_SYS_NICE ಗಾಗಿನ ಯಶಸ್ವಿ ನಿಯಮಿತ ಸಾಮರ್ಥ್ಯಗಳು." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() failed.\n" + #~ msgid "Analog Mono" #~ msgstr "ಅನಲಾಗ್ ಮೊನೊ" diff --git a/po/mr.po b/po/mr.po index 6e3c759a..56bc731c 100644 --- a/po/mr.po +++ b/po/mr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-06 13:43+0530\n" "Last-Translator: Sandeep Shedmake \n" "Language-Team: marathi\n" @@ -17,7 +17,12 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -29,7 +34,7 @@ msgstr "" "हे सहसा ALSA ड्राइवर '%s' अंतर्गत बग अशू शकते. कृपया या अडचणीस ALSA डेव्हलपर करीता " "कळवा." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -41,7 +46,7 @@ msgstr "" "हे सहसा ALSA ड्राइवर '%s' अंतर्गत बग अशू शकते. कृपया या अडचणीस ALSA डेव्हलपर करीता " "कळवा." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -66,7 +71,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "आंतरीक ऑडिओ" @@ -86,367 +91,242 @@ msgstr "नवीन dl दाखलकर्ता वाटप करण्य msgid "Failed to add bind-now-loader." msgstr "bind-now-loader समावेष करण्यास अपयशी." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "प्रणाली बसशी जुळवणी करण्यास अशक्य: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "PID पासून कॉलर प्राप्त करणे अशक्य: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "कॉलर ऑबजेक्ट वरील UID निश्चित करणे अशक्य." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK सत्र प्राप्त करणे अपयशी." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "सत्र ऑबजेक्ट वरील UID निश्चित करणे अशक्य." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "PolKitAction वाटप करणे अशक्य." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "action_id निश्चित करणे अशक्य" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "PolKitContext वाटप करणे अशक्य." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "PolKitContext प्रारंभ करणे अशक्य: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "कॉलर अधिकृत आहे की नाही हे ओळखणे शक्य नाही: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "परवानगी प्राप्त करणे अशक्य: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit ने '%s' सह प्रतिसाद दिला" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "संकेत %s प्राप्त झाले." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "बाहेर पडत आहे." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "वापरकर्ता '%s' शोधणे अशक्य." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "गट '%s' शोधण्यास अपयशी." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "वापरकर्ता '%s' (UID %lu) व गट '%s' (GID %lu) आढळले." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "वापरकर्ता '%s' व गट '%s' चे GID जुळत नाही." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "वापरकर्ता '%s' ची मुख्य डिरेक्ट्री '%s' नाही, दुर्लक्ष करत आहे." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' बनवण्यास अपयशी: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "गट यादी बदलवण्यास अपयशी: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GID बदलवण्यास अपयशी: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UID बदलवण्यास अपयशी: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "रूट परवानगी यशस्वीरित्या वगळले." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "प्रणाली भर पद्धत या प्लॅटफॉर्म करीता समर्थीत नाही." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) अपयशी: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "आदेश ओळ वाचण्यास अपयशी." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "आपण गट '%s' अंतर्गत आहोत, उच्च-प्राधन्यक्रम वेळपत्रक करीता परवानगी देते." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "आपण गट '%s' अंतर्गत आहोत, रियल-टाईम वेळपत्रक करीता परवानगी देते." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit आपल्याला acquire-high-priority परवानगी देतो." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit acquire-high-priority परवानगी नकारतो." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit acquire-real-time परवानगी पुरवितो." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit acquire-real-time परवानगी नकारतो." - -#: ../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." -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:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "यशस्वीरित्या RLIMIT_RTPRIO वाढवले" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO अपयशी: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "CAP_NICE करीता प्रयत्न बंद केले" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"संयोजना अंतर्गत रियल-टाईम वेळपत्र कार्यान्वीत करत आहे परंतु करार द्वारे स्वीकार्य नाही." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "डिमन कार्यरत नाही" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "डिमन PID %u नुरूप कार्यरत आहे" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "डिमन नष्ट करण्यास अपयशी: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "हा कार्यक्रम रूट नुरूप चालविण्याकरीता नाही (जोपर्यंत --system निश्चित नाही)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "रूट परवानगी आवश्यक." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "प्रणाली घटनांकरीता --start समर्थीत नाही." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "प्रणाली पद्धती अंतर्गत कार्यरत, परंतु --disallow-exit निश्चित केले नाही!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "प्रणाली पद्धती अंतर्गत कार्यरत, परंतु --disallow-module-loading निश्चित केले नाही!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "प्रणाली पद्धती अंतर्गत कार्यरत, SHM पद्धत जबरनरित्या अकार्यान्वीत करत आहे!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "प्रणाली पद्धती अंतर्गत कार्यरत, रिकामे वेळ जबरनरित्या अकार्यान्वीत करत आहे!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "stdio प्राप्त करण्यास अपयशी." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "पाइप अपयशी: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() अपयशी: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() अपयशी: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "डिमन स्टार्टअप अपयशी." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "डिमन स्टार्टअप यशस्वी." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "हे PulseAudio %s आहे" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "कंपाइलेशन यजमान: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "कंपाइलेशन CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "यजमान वर कार्यरत: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs आढळले." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "पान आकार %lu बाईटस् आहे" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind समर्थनशी कंपाईल केले: होय" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Valgrind समर्थनशी कंपाईल केले: नाही" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind पद्धतीत कार्यरत: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "अनुकूल बिल्ड: होय" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "अनुकूल बिल्ड: नाही" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG वर्णीकृत, सर्व asserts अकार्यान्वीत." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH वर्णीकृत, फक्त जलद मार्गीय asserts अकार्यान्वीत केले." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "सर्व asserts कार्यान्वीत केले." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "मशीन ID प्राप्त करण्यास अपयशी" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "मशीन ID %s आहे." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "मशीन ID %s आहे." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "रनटाईम डिरेक्ट्री %s वापरत आहे." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "स्थिती डिरेक्ट्री %s वापरत आहे." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "प्रणाली पद्धतीत कार्यरत: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -456,15 +336,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() अपयशी." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "नवीन उच्च-बिंदूता टाइमर उपलब्ध! Bon appetit!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -472,27 +352,27 @@ msgstr "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() अपयशी." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "डिमन प्रारंभ करण्यास अपयशी." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "विना विभाग दाखल केल्यास डिमन प्रारंभ झाले, कार्य करण्यास नकार." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "डिमन स्टार्टअप पूर्ण झाले." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "डिमन पूर्णपणे बंद करण्यास प्रारंभ केले." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "डिमन नष्ट केले." @@ -827,14 +707,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### संयोजना फाइल: %s पासून वाचा ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "रुट परवानगी वगळत आहे." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "क्षमता यशस्वीरित्या CAP_SYS_NICE करीता मर्यादीत केले." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio आवाज प्रणाली" @@ -843,24 +719,6 @@ msgstr "PulseAudio आवाज प्रणाली" msgid "Start the PulseAudio Sound System" msgstr "PulseAudio आवाज प्रणाली सुरू करा" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "PulseAudio डिमन करीता उच्च-प्राधान्यक्रम वेळपत्रक (नकारात्मक Unix nice स्तर)" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "PulseAudio डिमन करीता रियल-टाइम वेळपत्रक" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -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:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "मोनो" @@ -1233,183 +1091,187 @@ msgstr "कुकी डेटा वाचण्यास अपयशी" msgid "Failed to open configuration file '%s': %s" msgstr "संयोजना फाइल '%s' उघडण्यास अपयशी: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "कुकी दाखल केले नाही. जुळवणीचा प्रयत्न करत आहे." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "अपरिचीत वाढ '%s' करीता संदेश प्राप्त झाले" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "स्ट्रीम रिकामे करण्यास अपयशी: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "प्लेबॅक स्ट्रीम रिकामे केले.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "सर्वर करीता जुळवणी ड्रेन केली.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() अपयशी: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() अपयशी: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() अपयशी: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "स्ट्रीम यशस्वीरित्या बनवले.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() अपयशी: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "बफर मेट्रीक: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "बफर मेट्रीक: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "उदाहरणतया spec '%s', वाहिनी नकाशा '%s' वापरत आहे.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "साधन %s शी जुळले (%u, %s सस्पेंड केले).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "स्ट्रीम त्रुटी: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "स्ट्रीम साधन सस्पेंड केले.%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "स्ट्रीम साधन पुन्हा सुरू केले.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "स्ट्रीम underrun.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "स्ट्रीम overrun.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "स्ट्रीम सुरू केले.%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "स्ट्रीम साधन %s कडे स्थानांतरीत केले (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "नाही " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "स्ट्रीम बफर गुणधर्म बदलले.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "जुळवणी स्थापीत केली.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() अपयशी: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() अपयशी: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() अपयशी: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "जुळवणी अपयशी: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF प्राप्त झाले.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() अपयशी: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF प्राप्त झाले.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() अपयशी: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "संकेत प्राप्त झाले, बाहेर पडत आहे.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "विलंब प्राप्त करण्यास अपयशी: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "वेळ: %0.3f sec; विलंब: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() अपयशी: %s\n" #: ../src/utils/pacat.c:605 @@ -1531,34 +1393,34 @@ msgstr "" "libpulse %s शी कंपाई केले\n" "libpulse %s शी लिंक केले\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "अवैध वाहिनी नकाशा '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "अवैध पुन्ह सॅम्पल पद्धत '%s'." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "अवैध वाहिनी नकाशा '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "अवैध विलंब संयोजना '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "अवैध कार्य वेळ संयोजना '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "अवैध पुन्ह सॅम्पल पद्धत '%s'." #: ../src/utils/pacat.c:878 @@ -1567,60 +1429,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "अवैध सॅम्पल संयोजना\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "खूप जास्त बाब.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "सॅम्पल माहिती प्राप्त करण्यास अपयशी: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "आवाज फाइल उघडण्यास अपयशी.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "%s स्ट्रीम सॅम्पल संयोजना '%s' शी उघडत आहे.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "सॅम्पल माहिती प्राप्त करण्यास अपयशी: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "%s स्ट्रीम सॅम्पल संयोजना '%s' शी उघडत आहे.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "वाहिनी नकाशा सॅम्पल संयोजनाशी जुळत नाही\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "%s स्ट्रीम सॅम्पल संयोजना '%s' शी उघडत आहे.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "%s स्ट्रीम सॅम्पल संयोजना '%s' शी उघडत आहे.\n" #: ../src/utils/pacat.c:1006 @@ -1631,35 +1499,34 @@ msgstr "रेकॉर्डींग" msgid "playback" msgstr "प्लेबॅक" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() अपयशी.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() अपयशी.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() अपयशी.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() अपयशी: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() अपयशी.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() अपयशी.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() अपयशी.\n" #: ../src/utils/pasuspender.c:81 @@ -1687,6 +1554,11 @@ msgstr "पुन्हा चालू करण्यास अपयशी: % msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "सावधानता: आवाज सर्वर स्थानीय नाही, सस्पेंड करत नाही.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "जुळवणी अपयशी: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1727,6 +1599,21 @@ msgstr "" "libpulse %s शी कंपाई केले\n" "libpulse %s शी लिंक केले\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() अपयशी.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() अपयशी.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2141,6 +2028,11 @@ msgstr "" "libpulse %s सह कंपाईल केले\n" "libpulse %s सह जुळले\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "अवैध वाहिनी नकाशा '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "कृपया दाखल करण्याजोगी तात्पूर्ती फाइल निश्चित करा\n" @@ -2149,6 +2041,11 @@ msgstr "कृपया दाखल करण्याजोगी तात् msgid "Failed to open sound file.\n" msgstr "आवाज फाइल उघडण्यास अपयशी.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "सॅम्पल माहिती प्राप्त करण्यास अपयशी: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2212,11 +2109,6 @@ msgstr "तुम्हाला कार्ड नाव/निर्देश 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 "" @@ -2333,11 +2225,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "autospawn कुलूप करीता प्रवेश प्राप्य अशक्य." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2352,7 +2244,7 @@ msgstr "" "POLLOUT द्वारे सज्ज होणे शक्य आहे -- तरी परस्पर snd_pcm_avail() ने 0 पूरविले किंवा इतर " "मूल्य < min_avail असावे." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2368,15 +2260,15 @@ msgstr "" "मूल्य < min_avail असावे." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "बंद करा" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "High Fidelity Playback (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telephony Duplex (HSP/HFP)" @@ -2384,6 +2276,130 @@ msgstr "Telephony Duplex (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "PulseAudio आवाज सर्वर" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "प्रणाली बसशी जुळवणी करण्यास अशक्य: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "PID पासून कॉलर प्राप्त करणे अशक्य: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "कॉलर ऑबजेक्ट वरील UID निश्चित करणे अशक्य." + +#~ msgid "Failed to get CK session." +#~ msgstr "CK सत्र प्राप्त करणे अपयशी." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "सत्र ऑबजेक्ट वरील UID निश्चित करणे अशक्य." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "PolKitAction वाटप करणे अशक्य." + +#~ msgid "Cannot set action_id" +#~ msgstr "action_id निश्चित करणे अशक्य" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "PolKitContext वाटप करणे अशक्य." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "PolKitContext प्रारंभ करणे अशक्य: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "कॉलर अधिकृत आहे की नाही हे ओळखणे शक्य नाही: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "परवानगी प्राप्त करणे अशक्य: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit ने '%s' सह प्रतिसाद दिला" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "PulseAudio डिमन करीता उच्च-प्राधान्यक्रम वेळपत्रक (नकारात्मक Unix nice स्तर)" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "PulseAudio डिमन करीता रियल-टाइम वेळपत्रक" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "प्रणाली करार PulseAudio ला उच्च-प्राधान्यक्रम वेळपत्रक प्राप्त करण्यापासून रोखते." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "प्रणाली करार PulseAudio ला रियल-टाइम वेळपत्रक प्राप्त करण्यापासून रोखते." + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() अपयशी: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() अपयशी: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "आपण गट '%s' अंतर्गत आहोत, उच्च-प्राधन्यक्रम वेळपत्रक करीता परवानगी देते." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "आपण गट '%s' अंतर्गत आहोत, रियल-टाईम वेळपत्रक करीता परवानगी देते." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit आपल्याला acquire-high-priority परवानगी देतो." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit acquire-high-priority परवानगी नकारतो." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit acquire-real-time परवानगी पुरवितो." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit acquire-real-time परवानगी नकारतो." + +#~ 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." +#~ msgstr "" +#~ "SUID रूटला कॉल केले व वास्तविक-वेळ व/किंवा संयोजना अंतर्गत उच्च-प्राधान्यक्रम वेळपत्रक " +#~ "विनंतीकृत केले. तरी, आमच्याकडे आवश्यक परवानगी नाही:\n" +#~ "आम्ही गट '%s' अंतर्गत नाही, PolicyKit ने विनंतीकृत परवानगी देण्यास नकार दिला व " +#~ "RLIMIT_NICE/RLIMIT_RTPRIO स्त्रोत मर्यादा वाढविणे आवश्यक आहे.\n" +#~ "रियल-टाइम/उच्च-प्राधान्यक्रम वेळपत्रक कार्यान्वीत करण्याकरीता कृपयायोग्य PolicyKit " +#~ "परवानगी प्राप्त करा, किंवा '%s' चे सदस्य बनवा, किंवा या वापरकर्ता " +#~ "करीताRLIMIT_NICE/RLIMIT_RTPRIO स्त्रोत मर्यादा वाढवा." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "संयोजना अंतर्गत उच्च-प्राधान्यक्रम वेळपत्रक कार्यान्वीत केले करार द्वारे स्वीकार्य नाही." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "यशस्वीरित्या RLIMIT_RTPRIO वाढवले" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO अपयशी: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "CAP_NICE करीता प्रयत्न बंद केले" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "संयोजना अंतर्गत रियल-टाईम वेळपत्र कार्यान्वीत करत आहे परंतु करार द्वारे स्वीकार्य नाही." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "क्षमता यशस्वीरित्या CAP_SYS_NICE करीता मर्यादीत केले." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() अपयशी.\n" + #~ msgid "Analog Mono" #~ msgstr "ऍनलॉग मोनो" diff --git a/po/nl.po b/po/nl.po index a75efed0..452ff5ba 100644 --- a/po/nl.po +++ b/po/nl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-15 21:04+0200\n" "Last-Translator: Geert Warrink \n" "Language-Team: Dutch \n" @@ -17,7 +17,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -30,7 +35,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:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -43,7 +48,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:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -69,7 +74,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Intern geluid" @@ -89,220 +94,92 @@ msgstr "Kon die nieuwe dl lader niet toekennen." msgid "Failed to add bind-now-loader." msgstr "Kon bind-now-loader niet toevoegen." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Kan niet verbinden met systeem bus: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Kan geen bezoeker krijgen van PID: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Kan UID niet instellen op caller object." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Kon geen CK sessie krijgen." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Kan UID niet instellen op sessie object." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Kan PolKitAction niet toekennen." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Kan action_id niet instellen" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Kan PolKitContext niet toekennen." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Kan PolKitContext niet intialiseren: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Kon niet bepalen of bezoeker gemachtigd is: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Kan geen authorisatie krijgen: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit antwoordde met '%s'" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Ontving signaal %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Afsluiten." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Kon gebruiker '%s' niet vinden." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Kon groep '%s' niet vinden." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Gebruiker '%s' (UID %lu) en groep '%s' (GID %lu) gevonden." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID van gebruiker '%s' en van groep '%s' passen niet bij elkaar." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Persoonlijke map van gebruiker '%s' is niet '%s', negeer het." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Aanmaken van '%s': %s mislukte" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Veranderen van groeps lijst: '%s' mislukte" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Veranderen van GID: %s mislukte" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Veranderen van UID: %s mislukte" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Root rechten met succes laten vervallen." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "Systeem brede mode wordt op dit platform niet ondersteund." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) mislukte: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Analyseren van de commandoregel mislukte." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "Wij zijn in de groep '%s', wat plannen met hoge prioriteit toestaat." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "Wij zijn in de groep '%s', war real-time planning toestaat." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit kent ons acquire-high-priority rechten toe." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit weigert ons acquire-high-priority rechten." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit kent ons acquire-real-time rechten toe." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit weigert ons acquire-real-time rechten." - -#: ../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." -msgstr "" -"Aangeroepen met SUID root en real-time en/of high-priority inplannen was " -"verzocht in de configuratie. Echter de nodige rechten ontbreken:\n" -"We zijn niet in groep '%s', PolicyKit weigert om ons de gevraagde rechten te " -"geven en we hebben geen rect om de RLIMIT_NICE/RLIMIT_RTPRIO limieten te " -"verhogen.\n" -"Voor het aanzetten van real-time/high-priority inplannen mort je juiste " -"PolicyKit privileges hebben, of lid van '%s\" worden, of de RLIMIT_NICE/" -"RLIMIT_RTPRIO limieten voor deze gebruiker verhogen." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Hoge prioriteit inplannen is aangezet in de configuratie maar niet " -"toegestaan door de richtlijnen." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO met succes verhoogd" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO mislukte: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Opgeven CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Real-time inplannen is aangezet in de configuratie maar niet toegestaan door " -"de richtlijnen." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Daemon draait niet" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Daemon draait met PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Afschieten mislukt van daemon: '%s'" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -310,151 +187,151 @@ msgstr "" "Dit programma is niet bedoeld om als root gedraaid te worden (behalve als --" "system is opgegeven)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Root rechten vereisd" -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start wordt niet ondersteund voor systeem instances" -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "Draaiend in systeem mode, maar --disallow-exit is niet gezet!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "Draaiend in systeem mode, maar --disallow-module-loading is niet gezet!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Draaiend in systeem mode, geforceerd uitzetten van SHM mode!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "Draaiend in systeem mode, geforceerd uitzetten van exit idle time!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Verkrijgen van stdio mislukte." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "pipe mislukte: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() mislukte: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() mislukte: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Daemon opstarten mislukte." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Daemon met succes opgestart." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Dit is PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Compilatie host: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Compilatie CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Draaiend op host: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPU's gevonden." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "Pagina grootte is %lu bytes" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Gecompileerd met Valgrind ondersteuning: ja" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Gecompileerd met Valgrind ondersteuning: nee" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Draaiend in valgrind mode: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Optimaal gebouwd: ja" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Optimaak gebouwd: nee" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG gedefinieerd, alle verklaringen uitgezet." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH gedefinieerd, alleen snel pad verklaringen uitgezet." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Alle verklaringen aangezet." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Machine ID verkrijgen mislukte" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "Machine ID is: %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "Machine ID is: %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Gebruik van runtime map %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Verbruik van state map %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Draaiend in systeem mode: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -464,15 +341,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() mislukte." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Verse high-resolution timers beschikbaar! Smakelijk eten!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -480,27 +357,27 @@ msgstr "" "Kerel, je kernel stinkt! De aanbeveling van de chef is vandaag Linux met " "aangezette high-resolution timers!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() mislukte." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Initialiseren van de daemon mislukte." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Daemon opgestart zonder geladen modules, dat werkt niet." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Daemon opstarten is klaar." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Daemon afsluiten is begonnen." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Daemon is afgesloten." @@ -843,14 +720,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "" -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "" - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "" @@ -859,24 +732,6 @@ msgstr "" 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" -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -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." -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1249,184 +1104,184 @@ msgstr "" msgid "Failed to open configuration file '%s': %s" msgstr "" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "" -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" +msgstr "Kon gebruiker '%s' niet vinden." -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +msgid "Playback stream drained." msgstr "" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +msgid "Draining connection to server." msgstr "" -#: ../src/utils/pacat.c:135 +#: ../src/utils/pacat.c:136 #, c-format -msgid "pa_stream_drain(): %s\n" +msgid "pa_stream_drain(): %s" msgstr "" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" -msgstr "" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" +msgstr "read() mislukte: %s" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" -msgstr "" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_core_new() mislukte." -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" -msgstr "" +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" +msgstr "read() mislukte: %s" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:307 +msgid "Stream successfully created." msgstr "" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -msgstr "" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" +msgstr "pa_core_new() mislukte." -#: ../src/utils/pacat.c:312 +#: ../src/utils/pacat.c:314 #, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "" -#: ../src/utils/pacat.c:316 +#: ../src/utils/pacat.c:317 #, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "" -#: ../src/utils/pacat.c:320 +#: ../src/utils/pacat.c:321 #, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +msgid "Using sample spec '%s', channel map '%s'." msgstr "" -#: ../src/utils/pacat.c:330 +#: ../src/utils/pacat.c:325 #, c-format -msgid "Stream error: %s\n" +msgid "Connected to device %s (%u, %ssuspended)." msgstr "" -#: ../src/utils/pacat.c:340 +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" +msgstr "Interne fout" + +#: ../src/utils/pacat.c:345 #, c-format -msgid "Stream device suspended.%s \n" +msgid "Stream device suspended.%s" msgstr "" -#: ../src/utils/pacat.c:342 +#: ../src/utils/pacat.c:347 #, c-format -msgid "Stream device resumed.%s \n" +msgid "Stream device resumed.%s" msgstr "" -#: ../src/utils/pacat.c:350 +#: ../src/utils/pacat.c:355 #, c-format -msgid "Stream underrun.%s \n" +msgid "Stream underrun.%s" msgstr "" -#: ../src/utils/pacat.c:357 +#: ../src/utils/pacat.c:362 #, c-format -msgid "Stream overrun.%s \n" +msgid "Stream overrun.%s" msgstr "" -#: ../src/utils/pacat.c:364 +#: ../src/utils/pacat.c:369 #, c-format -msgid "Stream started.%s \n" +msgid "Stream started.%s" msgstr "" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 #, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "" -#: ../src/utils/pacat.c:378 +#: ../src/utils/pacat.c:383 #, c-format -msgid "Stream buffer attributes changed.%s \n" +msgid "Stream buffer attributes changed.%s" msgstr "" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" -msgstr "" - -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" -msgstr "" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" +msgstr "Verbinding geweigert" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" -msgstr "" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" +msgstr "pa_core_new() mislukte." -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" -msgstr "" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" +msgstr "pa_core_new() mislukte." -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" -msgstr "" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" +msgstr "pa_core_new() mislukte." -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" +msgstr "Verbinding geweigert" #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "" - -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +msgid "Got EOF." msgstr "" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" -msgstr "" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" +msgstr "read() mislukte: %s" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" -msgstr "" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." +msgstr "Ontving signaal %s." #: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" +msgstr "Aanmaken van '%s': %s mislukte" + +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" -msgstr "" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" +msgstr "pa_core_new() mislukte." #: ../src/utils/pacat.c:605 #, c-format @@ -1496,34 +1351,34 @@ msgid "" "Linked with libpulse %s\n" msgstr "" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "Ongeldige resample methode '%s'." #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "Ongeldige resample methode '%s'." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" -msgstr "" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" +msgstr "Ongeldige resample methode '%s'." #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" -msgstr "" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" +msgstr "Ongeldige resample methode '%s'." #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" -msgstr "" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" +msgstr "Ongeldige resample methode '%s'." #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "Ongeldige resample methode '%s'." #: ../src/utils/pacat.c:878 @@ -1532,58 +1387,59 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" -msgstr "" +#, fuzzy +msgid "Invalid sample specification" +msgstr "Ongeldige resample methode '%s'." #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" -msgstr "" +#, fuzzy, c-format +msgid "open(): %s" +msgstr "fork(): %s" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" -msgstr "" +#, fuzzy, c-format +msgid "dup2(): %s" +msgstr "waitpid(): %s" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +msgid "Too many arguments." msgstr "" #: ../src/utils/pacat.c:930 -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Analyseren van de commandoregel mislukte." #: ../src/utils/pacat.c:956 msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" +"specification from file." msgstr "" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 -msgid "Failed to determine sample specification from file.\n" +#: ../src/utils/pacat.c:959 +msgid "Failed to determine sample specification from file." msgstr "" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" +msgid "Warning: Failed to determine channel map from file." msgstr "" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +msgid "Channel map doesn't match sample specification" msgstr "" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" +msgid "Warning: failed to write channel map to file." msgstr "" #: ../src/utils/pacat.c:1005 #, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "" #: ../src/utils/pacat.c:1006 @@ -1594,36 +1450,35 @@ msgstr "" msgid "playback" msgstr "" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" -msgstr "" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." +msgstr "pa_core_new() mislukte." #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" -msgstr "" +#, fuzzy +msgid "io_new() failed." +msgstr "pa_core_new() mislukte." -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." +msgstr "pa_core_new() mislukte." + +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 #, c-format -msgid "pa_context_new() failed.\n" +msgid "pa_context_connect() failed: %s" msgstr "" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." msgstr "pa_core_new() mislukte." -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "" - -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" -msgstr "" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." +msgstr "pa_core_new() mislukte." #: ../src/utils/pasuspender.c:81 #, c-format @@ -1650,6 +1505,11 @@ msgstr "" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1680,6 +1540,21 @@ msgid "" "Linked with libpulse %s\n" msgstr "" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -1969,6 +1844,11 @@ msgid "" "Linked with libpulse %s\n" msgstr "" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Ongeldige resample methode '%s'." + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "" @@ -1977,6 +1857,10 @@ msgstr "" msgid "Failed to open sound file.\n" msgstr "" +#: ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "" + #: ../src/utils/pactl.c:951 msgid "Warning: Failed to determine sample specification from file.\n" msgstr "" @@ -2033,11 +1917,6 @@ msgstr "" msgid "No valid command specified.\n" msgstr "" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2147,11 +2026,11 @@ msgstr "" msgid "write(): %s" msgstr "" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "" -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2162,7 +2041,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2174,15 +2053,15 @@ msgid "" msgstr "" #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "" @@ -2190,6 +2069,103 @@ msgstr "" msgid "PulseAudio Sound Server" msgstr "" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Kan niet verbinden met systeem bus: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Kan geen bezoeker krijgen van PID: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Kan UID niet instellen op caller object." + +#~ msgid "Failed to get CK session." +#~ msgstr "Kon geen CK sessie krijgen." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "Kan UID niet instellen op sessie object." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Kan PolKitAction niet toekennen." + +#~ msgid "Cannot set action_id" +#~ msgstr "Kan action_id niet instellen" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Kan PolKitContext niet toekennen." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Kan PolKitContext niet intialiseren: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Kon niet bepalen of bezoeker gemachtigd is: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Kan geen authorisatie krijgen: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit antwoordde met '%s'" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Wij zijn in de groep '%s', wat plannen met hoge prioriteit toestaat." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "Wij zijn in de groep '%s', war real-time planning toestaat." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit kent ons acquire-high-priority rechten toe." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit weigert ons acquire-high-priority rechten." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit kent ons acquire-real-time rechten toe." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit weigert ons acquire-real-time rechten." + +#~ 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." +#~ msgstr "" +#~ "Aangeroepen met SUID root en real-time en/of high-priority inplannen was " +#~ "verzocht in de configuratie. Echter de nodige rechten ontbreken:\n" +#~ "We zijn niet in groep '%s', PolicyKit weigert om ons de gevraagde rechten " +#~ "te geven en we hebben geen rect om de RLIMIT_NICE/RLIMIT_RTPRIO limieten " +#~ "te verhogen.\n" +#~ "Voor het aanzetten van real-time/high-priority inplannen mort je juiste " +#~ "PolicyKit privileges hebben, of lid van '%s\" worden, of de RLIMIT_NICE/" +#~ "RLIMIT_RTPRIO limieten voor deze gebruiker verhogen." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "Hoge prioriteit inplannen is aangezet in de configuratie maar niet " +#~ "toegestaan door de richtlijnen." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO met succes verhoogd" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO mislukte: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Opgeven CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "Real-time inplannen is aangezet in de configuratie maar niet toegestaan " +#~ "door de richtlijnen." + #~ msgid "Analog Mono" #~ msgstr "Analoog mono" diff --git a/po/or.po b/po/or.po index 1fcf836e..b6a20671 100644 --- a/po/or.po +++ b/po/or.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-09 13:16+0530\n" "Last-Translator: Manoj Kumar Giri \n" "Language-Team: Oriya \n" @@ -23,7 +23,12 @@ msgstr "" "\n" "\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -36,7 +41,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:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -49,7 +54,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:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -75,7 +80,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "ଆଭ୍ୟନ୍ତରୀଣ ଧ୍ୱନି" @@ -95,216 +100,92 @@ msgstr "ନୂତନ dl ଧାରକକୁ ବଣ୍ଟନ କରିବାରେ msgid "Failed to add bind-now-loader." msgstr "bind-now-loaderକୁ ଯୋଗ କରିବାରେ ବିଫଳ।" -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "ତନ୍ତ୍ର ପରିପଥ ସହିତ ସଂଯୋଗ କରିପାରିବେ ନାହିଁ: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "PIDରୁ କଲରକୁ ପାଇପାରିବେ ନାହିଁ: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "କଲର ବସ୍ତୁରେ UID କୁ ସେଟ କରିପାରିବେ ନାହିଁ।" - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK ଅଧିବେଶନକୁ ପାଇବାରେ ବିଫଳ।" - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "ଅଧିବେଶନ ବସ୍ତୁରେ UID ସେଟ କରିପାରିବେ ନାହିଁ।" - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "PolKitActionକୁ ବଣ୍ଟନ କରିପାରିବେ ନାହିଁ।" - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "action_id ସେଟ କରିପାରିବେ ନାହିଁ" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "PolKitContext ବଣ୍ଟନ କରିପାରିବେ ନାହିଁ।" - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "PolKitContextକୁ ଆରମ୍ଭ କରିପାରିବେ ନାହିଁ: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "କଲର ଅଧିକାର ପ୍ରାପ୍ତ କି ନୁହଁ ତାହା ନିର୍ଦ୍ଧାରଣ କରି ପାରିଲା ନାହିଁ: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "auth ପାଇଲା ନାହିଁ: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit '%s' ସହିତ ଉତ୍ତର ଦେଇଥିଲା" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "ସଂକେତ %s ପାଇଲା।" -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "ଉତ୍ତେଜିତ କରୁଅଛି।" -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "ଚାଳକ '%s' କୁ ଖୋଜିବାରେ ବିଫଳ।" -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "ସମୂହ '%s' କୁ ଖୋଜି ପାଇବାରେ ବିଫଳ।" -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "ଚାଳକ '%s' (UID %lu) ଏବଂ ସମୂହ '%s' (GID %lu) ମିଳିଲା।" -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "ଚାଳକ '%s' ଏବଂ ସମୂହ '%s' ର GID ମେଳଖାଏନାହିଁ।" -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "ଚାଳକ '%s' ର ମୂଖ୍ୟ ଡିରେକ୍ଟୋରୀଟି '%s' ନୁହଁ, ଅଗ୍ରାହ୍ୟ କରୁଅଛି।" -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' ନିର୍ମାଣ କରିବାରେ ବିଫଳ: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "ସମୂହ ତାଲିକାକୁ ପରିବର୍ତ୍ତନ କରିବାରେ ବିଫଳ: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GID କୁ ପରିବର୍ତ୍ତନ କରିବାରେ ବିଫଳ ହୋଇଛି: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UID କୁ ପରିବର୍ତ୍ତନ କରିବାରେ ବିଫଳ ହୋଇଛି: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "ମୂଖ୍ୟ ଚାଳକ ଅଧିକାରକୁ ସଫଳତାର ସହିତ ପକାଯାଇଛି।" -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "ତନ୍ତ୍ରମୟ ଧାରା ଏହି ପ୍ଲାଟଫର୍ମରେ ଅସମର୍ଥିତ।" -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) ବିଫଳ ହୋଇଛି: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "ପାଠ୍ୟ ନିର୍ଦ୍ଦେଶକୁ ବିଶ୍ଳେଷଣ କରିବାରେ ବିଫଳ।" -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "ଆମେ ମାନେ ଶ୍ରେଣୀ '%s'ରେ ଅଛୁ, ଉଚ୍ଚ-ପ୍ରାଥମିକତା ଯୋଜନାକୁ ଅନୁମତି ଦେଇ।" - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "ଆମେ ମାନେ ଶ୍ରେଣୀ '%s'ରେ ଅଛୁ, ପ୍ରକୃତ- ସମୟ ଯୋଜନାକୁ ଅନୁମତି ଦେଇ।" - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit ଆମକୁ acquire-high-priority ଅଧିକାର ଦେଇଥାଏ।" - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit acquire-high-priority ଅଧିକାରକୁ ବାରଣ କରିଥାଏ।" - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit ଆମକୁ acquire-real-time ଅଧିକାର ଦେଇଥାଏ।" - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit acquire-real-time ଅଧିକାରକୁ ବାରଣ କରିଥାଏ।" - -#: ../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." -msgstr "" -"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." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "ଉଚ୍ଚ-ପ୍ରାଥମିକ ଯୋଜନା ବିନ୍ୟାସରେ ସକ୍ରିୟ କିନ୍ତୁ ନୀତି ଦ୍ୱାରା ଅନୁମୋଦିତ ନୁହଁ।" - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO କୁ ସଫଳତାର ସହିତ ବୃଦ୍ଧିକରିଥାଏ" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO ବିଫଳ ହୋଇଛି: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "CAP_NICE କୁ ତ୍ୟାଗ କରିଥାଏ" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "Real-time ଯୋଜନା ବିନ୍ୟାସ ଫାଇଲରେ ସକ୍ରିୟ ହୋଇଥାଏ କିନ୍ତୁ ନିତୀ ଦ୍ୱାରା ଅନୁମୋଦିତ ନୁହଁ।" - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "ଡେମନ ଚାଲୁନାହିଁ" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "ଡେମନ PID %u ପରି ଚାଲୁଅଛି" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "ଡେମନକୁ ବନ୍ଦ କରିବାରେ ବିଫଳ: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -312,150 +193,150 @@ msgstr "" "ଏହି ପ୍ରଗ୍ରାମଟି ମୂଖ୍ୟ ଚାଳକ ଭାବରେ ଚଲାଇବା ପାଇଁ ନିର୍ଦ୍ଦିଷ୍ଟ ହୋଇନାହିଁ (unless --system is " "specified)।" -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "ମୂଖ୍ୟ ଚାଳକ ଅଧିକାର ଆବଶ୍ୟକ।" -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start ତନ୍ତ୍ର ସ୍ଥିତି ପାଇଁ ସମର୍ଥିତ ନୁହଁ।" -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "ତନ୍ତ୍ର ଧାରାରେ ଚାଲୁଅଛି, କିନ୍ତୁ --disallow-exit କୁ ସେଟ କରାଯାଇନାହିଁ!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "ତନ୍ତ୍ର ଧାରାରେ ଚାଲୁଅଛି, କିନ୍ତୁ --disallow-module-loading କୁ ସେଟ କରାଯାଇନାହିଁ!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "ତନ୍ତ୍ର ଧାରାରେ ଚାଲୁଅଛି, SHM ଧାରାକୁ ବାଧ୍ଯତାମୁଳକ ଭାବରେ ନିଷ୍କ୍ରିୟ କରିଥାଏ!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "ତନ୍ତ୍ର ଧାରାରେ ଚାଲୁଅଛି, ପ୍ରସ୍ଥାନ ସ୍ଥିର ସମୟକୁ ବାଧ୍ଯତାମୁଳକ ଭାବରେ ନିଷ୍କ୍ରିୟ କରିଥାଏ!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "stdio କୁ ଅଧିକାର କରିବାରେ ବିଫଳ।" -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "ପାଇପ ବିଫଳ ହୋଇଛି: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() ବିଫଳ ହୋଇଛି: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() ବିଫଳ ହୋଇଛି: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "ଡେମନ ଆରମ୍ଭ ବିଫଳ ହୋଇଛି।" -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "ଡେମନ ଆରମ୍ଭ ସଫଳ ହୋଇଛି।" -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "ଏହା ହେଉଛି PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "ସଂକଳନ ଆଧାର: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "ସଂକଳନ CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "ଆଧାରରେ ଚାଲୁଅଛି: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs ମିଳିଛି।" -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "ପୃଷ୍ଠା ଆକାରଟି ହେଉଛି %lu ବାଇଟ" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind ସମର୍ଥନ ସହିତ ସଂକଳନ ହୋଇଛି: yes" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Valgrind ସମର୍ଥନ ସହିତ ସଂକଳନ ହୋଇଛି: no" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind ଧାରାରେ ଚାଲୁଅଛି: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "ଉପଯୁକ୍ତ ନିର୍ମାଣ: yes" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "ଉପଯୁକ୍ତ ନିର୍ମାଣ: no" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG କୁ ବ୍ୟାଖ୍ୟା କରାଯାଇଛି, ସମସ୍ତ ନିଶ୍ଚୟକୁ ନିଷ୍କ୍ରିୟ କରାଯାଇଛି।" -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH କୁ ବ୍ୟାଖ୍ୟା କରାଯାଇଛି, କେବଳ ତୀବ୍ର ପଥ ନିଶ୍ଚୟକୁ ନିଷ୍କ୍ରିୟ କରାଯାଇଛି।" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "ସମସ୍ତ ନିଶ୍ଚୟକୁ ସକ୍ରିୟ କରାଯାଇଛି।" -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "ଯନ୍ତ୍ର ID ପାଇବାରେ ବିଫଳ" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "ଯନ୍ତ୍ର ID ଟି ହେଉଛି %s।" -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "ଯନ୍ତ୍ର ID ଟି ହେଉଛି %s।" -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "ପ୍ରଚଳିତ ଡିରେକ୍ଟୋରୀ %s କୁ ବ୍ୟବହାର କରୁଅଛି।" -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "ସ୍ଥିତି ଡିରେକ୍ଟୋରୀ %s କୁ ବ୍ୟବହାର କରି।" -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "ତନ୍ତ୍ର ଧାରାରେ ଚାଲୁଅଛି: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -465,15 +346,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() ବିଫଳ ହୋଇଛି।" -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "ସତେଜ ଉଚ୍ଚ-ବିଭେଦନ ସମୟ ମାପକ ଉପଲବ୍ଧ! Bon appetit!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -481,27 +362,27 @@ msgstr "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() ବିଫଳ ହୋଇଛି।" -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "ଡେମନକୁ ଆରମ୍ଭ କରିବାରେ ବିଫଳ।" -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "ଧାରଣ ହୋଇଥିବା ଏକକାଂଶଗୁଡ଼ିକ ବିନା ଡେମନ ଆରମ୍ଭ ହୋଇଛି, କାର୍ଯ୍ୟ କରିବାକୁ ବାରଣ କରୁଅଛି।" -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "ଡେମନ ଆରମ୍ଭ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଛି।" -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "ଡେମନ ବନ୍ଦକୁ ଆରମ୍ଭ କରାଯାଇଛି।" -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "ଡେମନକୁ ସମାପ୍ତ କରାଯାଇଛି।" @@ -835,14 +716,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### ବିନ୍ୟାସ ଫାଇଲରୁ ପଢ଼ନ୍ତୁ: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "ମୂଖ୍ୟ ଚାଳକ ଅଧିକାରଗୁଡ଼ିକୁ ବାତିଲ କରୁଅଛି।" -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "CAP_SYS_NICE କୁ ସୀମିତ କ୍ଷମତା ସଫଳତାର ସହିତ ଦିଆହୋଇଛି।" - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio ଧ୍ୱନି ତନ୍ତ୍ର" @@ -851,24 +728,6 @@ msgstr "PulseAudio ଧ୍ୱନି ତନ୍ତ୍ର" msgid "Start the PulseAudio Sound System" msgstr "PulseAudio ଧ୍ୱନି ତନ୍ତ୍ରକୁ ଆରମ୍ଭ କରନ୍ତୁ" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "PulseAudio ଡେମନ ପାଇଁ ଉଚ୍ଚ-ପ୍ରାଥମିକତା ଯୋଜନା (ଋଣାତ୍ମକ Unix ସୁନ୍ଦର ସ୍ତର)" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "PulseAudio ଡେମନ ପାଇଁ ପ୍ରକୃତ-ସମୟ ଯୋଜନା" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -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:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "ମୋନୋ" @@ -1241,183 +1100,187 @@ msgstr "କୁକି ତଥ୍ୟକୁ ବିଶ୍ଳେଷଣ କରିବା msgid "Failed to open configuration file '%s': %s" msgstr "ବିନ୍ୟାସ ଫାଇଲ '%s' କୁ ଖୋଲିବାରେ ବିଫଳ: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "କୌଣସି କୁକି ଧାରଣ କରାଯାଇନାହିଁ। ତାହା ବିନା ସଂଯୋଗ କରିବାକୁ ପ୍ରଚେଷ୍ଚା କରୁଅଛି।" -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "ଅଜଣା ଅନୁଲଗ୍ନ '%s' ପାଇଁ ସନ୍ଦେଶ ଗ୍ରହଣ କରିଅଛି" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "ଧାରାକୁ ବାହାର କରିବାରେ ବିଫଳ ହୋଇଛି: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "ପଛଚଲା ଧାରାକୁ ବାହାର କରାଯାଇଛି।\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "ସର୍ଭର ପ୍ରତି ଡ୍ରେନିଙ୍ଗ ସଂଯୋଗ।\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() ବିଫଳ ହୋଇଛି: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() ବିଫଳ ହୋଇଛି: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() ବିଫଳ ହୋଇଛି: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "ଧାରା ସଫଳତାର ସହିତ ନିର୍ମାଣ ହୋଇଛି।\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() ବିଫଳ ହୋଇଛି: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "ବଫର ମେଟ୍ରିକସ: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "ବଫର ମେଟ୍ରିକସ: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "ନମୁନା spec '%s' ବ୍ୟବହାର କରି, ଚ୍ୟାନେଲ ମ୍ୟାପ '%s'।\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "ଉପକରଣ %s ସହିତ ସଂଯୁକ୍ତ ହୋଇଛି (%u, %ssuspended)।\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "ଧାରା ତ୍ରୁଟି: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "ଧାରା ଉପକରଣ ନିଲମ୍ବିତ ହୋଇଛି।%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "ଧାରା ଉପକରଣ ପୁନଃ ଚଳନ ହୋଇଛି।%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "ଧାରା underrun.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "ଧାରା overrun.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "ଧାରା ଆରମ୍ଭ ହୋଇଛି।%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "ଧାରା ଉପକରଣ %sକୁ ଗତି କରିଛି (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "not " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "ଧାରା ବଫର ଗୁଣଗୁଡ଼ିକ ପରିବର୍ତ୍ତନ ହୋଇଛି।%s\n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "ସଂଯୋଗ ସ୍ଥାପିତ ହୋଇଛି।%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() ବିଫଳ ହୋଇଛି: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() ବିଫଳ ହୋଇଛି: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() ବିଫଳ ହୋଇଛି: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "ସଂଯୋଗ ବିଫଳ ହୋଇଛି: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF ପାଇଅଛି।\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() ବିଫଳ ହୋଇଛି: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF ପାଇଅଛି।\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() ବିଫଳ ହୋଇଛି: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "ସଂକେତ ପାଇଲା, ପ୍ରସ୍ଥାନ କରୁଅଛି।\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "ବିଳମ୍ବତା ପାଇବାରେ ବିଫଳ: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "ସମୟ: %0.3f sec; ବିଳମ୍ବତା: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() ବିଫଳ ହୋଇଛି: %s\n" #: ../src/utils/pacat.c:605 @@ -1536,34 +1399,34 @@ msgstr "" "libpulse %s ସହିତ ସଂକଳିତ\n" "libpulse %s ସହିତ ସଂଯୁକ୍ତ\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "ଅବୈଧ ଚ୍ୟାନେଲ ମ୍ୟାପ '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "ଅବୈଧ ପୁନଃ ପ୍ରତିଦର୍ଶନ ଧାରା '%s'।" #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "ଅବୈଧ ଚ୍ୟାନେଲ ମ୍ୟାପ '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "ଅବୈଧ ବିଳମ୍ବତା ବିଶେଷ ଲକ୍ଷଣ '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "ଅବୈଧ ପଦ୍ଧତି ସମୟ ବିଶେଷ ଲକ୍ଷଣ '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "ଅବୈଧ ପୁନଃ ପ୍ରତିଦର୍ଶନ ଧାରା '%s'।" #: ../src/utils/pacat.c:878 @@ -1572,60 +1435,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "ଅବୈଧ ନମୁନା ବିଶେଷ ଲକ୍ଷଣ\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "ଅତ୍ୟଧିକ ସ୍ୱତନ୍ତ୍ରଚର।\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "ନମୁନା ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "ଧ୍ୱନି ଫାଇଲ ଖୋଲିବାରେ ବିଫଳ।\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "ନମୁନା ବିଶେଷ ଲକ୍ଷଣ '%s' ସହିତ ଗୋଟିଏ %s ଧାରାକୁ ଖୋଲୁଅଛି।\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "ନମୁନା ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "ନମୁନା ବିଶେଷ ଲକ୍ଷଣ '%s' ସହିତ ଗୋଟିଏ %s ଧାରାକୁ ଖୋଲୁଅଛି।\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "ନମୁନା ବିଶେଷ ଲକ୍ଷଣ ସହିତ ଚ୍ୟାନେଲ ମ୍ୟାପ ମେଳ ଖାଉନାହିଁ\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "ନମୁନା ବିଶେଷ ଲକ୍ଷଣ '%s' ସହିତ ଗୋଟିଏ %s ଧାରାକୁ ଖୋଲୁଅଛି।\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "ନମୁନା ବିଶେଷ ଲକ୍ଷଣ '%s' ସହିତ ଗୋଟିଏ %s ଧାରାକୁ ଖୋଲୁଅଛି।\n" #: ../src/utils/pacat.c:1006 @@ -1636,35 +1505,34 @@ msgstr "ଅନୁଲିପି କରୁଅଛି" msgid "playback" msgstr "ପଛଚଲା" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() ବିଫଳ ହୋଇଛି।\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() ବିଫଳ ହୋଇଛି।\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() ବିଫଳ ହୋଇଛି।\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() ବିଫଳ ହୋଇଛି: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() ବିଫଳ ହୋଇଛି।\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() ବିଫଳ ହୋଇଛି।\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() ବିଫଳ ହୋଇଛି।\n" #: ../src/utils/pasuspender.c:81 @@ -1692,6 +1560,11 @@ msgstr "ପୁନଃ ଚଳନ କରିବାରେ ବିଫଳ: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "WARNING: ଧ୍ୱନି ସର୍ଭରଟି ସ୍ଥାନୀୟ ନୁହଁ, ନିଲମ୍ବିତ କରୁନାହିଁ।\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "ସଂଯୋଗ ବିଫଳ ହୋଇଛି: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1731,6 +1604,21 @@ msgstr "" "libpulse %s ସହିତ ସଂକଳିତ\n" "libpulse %s ସହିତ ସଂଯୁକ୍ତ\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() ବିଫଳ ହୋଇଛି।\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() ବିଫଳ ହୋଇଛି।\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2145,6 +2033,11 @@ msgstr "" "libpulse %s ସହିତ ସଂକଳିତ\n" "libpulse %s ସହିତ ସଂଯୁକ୍ତ\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "ଅବୈଧ ଚ୍ୟାନେଲ ମ୍ୟାପ '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "ଧାରଣ କରିବା ପାଇଁ ଗୋଟିଏ ନୁମନା ଫାଇଲ ଉଲ୍ଲେଖ କରନ୍ତୁ\n" @@ -2153,6 +2046,11 @@ msgstr "ଧାରଣ କରିବା ପାଇଁ ଗୋଟିଏ ନୁମନ msgid "Failed to open sound file.\n" msgstr "ଧ୍ୱନି ଫାଇଲ ଖୋଲିବାରେ ବିଫଳ।\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "ନମୁନା ସୂଚନା ପାଇବାରେ ବିଫଳ: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2216,11 +2114,6 @@ msgstr "ଆପଣଙ୍କୁ ଗୋଟିଏ କାର୍ଡ ନାମ/ଅନ 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 "" @@ -2336,11 +2229,11 @@ msgstr "ପଢ଼ନ୍ତୁ(): %s" msgid "write(): %s" msgstr "ଲେଖନ୍ତୁ(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "autospawn ଅପରିବର୍ତ୍ତନୀୟତାକୁ ଅଭିଗମ୍ୟ କରିହେଉ ନାହିଁ" -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2357,7 +2250,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:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2375,15 +2268,15 @@ msgstr "" "returned 0 or another value < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "ଅଫ" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "ଉଚ୍ଚ ଫିଡିଲିଟି ପଛଚଲା (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "ଟେଲିଫୋନି ଡ୍ୟୁପ୍ଲେକ୍ସ (HSP/HFP)" @@ -2391,6 +2284,128 @@ msgstr "ଟେଲିଫୋନି ଡ୍ୟୁପ୍ଲେକ୍ସ (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "PulseAudio ଧ୍ୱନି ସର୍ଭର" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "ତନ୍ତ୍ର ପରିପଥ ସହିତ ସଂଯୋଗ କରିପାରିବେ ନାହିଁ: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "PIDରୁ କଲରକୁ ପାଇପାରିବେ ନାହିଁ: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "କଲର ବସ୍ତୁରେ UID କୁ ସେଟ କରିପାରିବେ ନାହିଁ।" + +#~ msgid "Failed to get CK session." +#~ msgstr "CK ଅଧିବେଶନକୁ ପାଇବାରେ ବିଫଳ।" + +#~ msgid "Cannot set UID on session object." +#~ msgstr "ଅଧିବେଶନ ବସ୍ତୁରେ UID ସେଟ କରିପାରିବେ ନାହିଁ।" + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "PolKitActionକୁ ବଣ୍ଟନ କରିପାରିବେ ନାହିଁ।" + +#~ msgid "Cannot set action_id" +#~ msgstr "action_id ସେଟ କରିପାରିବେ ନାହିଁ" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "PolKitContext ବଣ୍ଟନ କରିପାରିବେ ନାହିଁ।" + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "PolKitContextକୁ ଆରମ୍ଭ କରିପାରିବେ ନାହିଁ: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "କଲର ଅଧିକାର ପ୍ରାପ୍ତ କି ନୁହଁ ତାହା ନିର୍ଦ୍ଧାରଣ କରି ପାରିଲା ନାହିଁ: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "auth ପାଇଲା ନାହିଁ: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit '%s' ସହିତ ଉତ୍ତର ଦେଇଥିଲା" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "PulseAudio ଡେମନ ପାଇଁ ଉଚ୍ଚ-ପ୍ରାଥମିକତା ଯୋଜନା (ଋଣାତ୍ମକ Unix ସୁନ୍ଦର ସ୍ତର)" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "PulseAudio ଡେମନ ପାଇଁ ପ୍ରକୃତ-ସମୟ ଯୋଜନା" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "ତନ୍ତ୍ର ନୀତି PulseAudio କୁ ଉଚ୍ଚ-ପ୍ରାଥମିକ ଯୋଜନାକୁ ଗ୍ରହଣ କରିବାରୁ ଅଟକାଇଥାଏ।" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "ତନ୍ତ୍ର ନୀତି PulseAudio କୁ ପ୍ରକୃତ-ସମୟ ଯୋଜନାକୁ ଗ୍ରହଣ କରିବାରୁ ଅଟକାଇଥାଏ।" + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() ବିଫଳ ହୋଇଛି: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() ବିଫଳ ହୋଇଛି: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "ଆମେ ମାନେ ଶ୍ରେଣୀ '%s'ରେ ଅଛୁ, ଉଚ୍ଚ-ପ୍ରାଥମିକତା ଯୋଜନାକୁ ଅନୁମତି ଦେଇ।" + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "ଆମେ ମାନେ ଶ୍ରେଣୀ '%s'ରେ ଅଛୁ, ପ୍ରକୃତ- ସମୟ ଯୋଜନାକୁ ଅନୁମତି ଦେଇ।" + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit ଆମକୁ acquire-high-priority ଅଧିକାର ଦେଇଥାଏ।" + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit acquire-high-priority ଅଧିକାରକୁ ବାରଣ କରିଥାଏ।" + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit ଆମକୁ acquire-real-time ଅଧିକାର ଦେଇଥାଏ।" + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit acquire-real-time ଅଧିକାରକୁ ବାରଣ କରିଥାଏ।" + +#~ 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." +#~ msgstr "" +#~ "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." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "ଉଚ୍ଚ-ପ୍ରାଥମିକ ଯୋଜନା ବିନ୍ୟାସରେ ସକ୍ରିୟ କିନ୍ତୁ ନୀତି ଦ୍ୱାରା ଅନୁମୋଦିତ ନୁହଁ।" + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO କୁ ସଫଳତାର ସହିତ ବୃଦ୍ଧିକରିଥାଏ" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO ବିଫଳ ହୋଇଛି: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "CAP_NICE କୁ ତ୍ୟାଗ କରିଥାଏ" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "Real-time ଯୋଜନା ବିନ୍ୟାସ ଫାଇଲରେ ସକ୍ରିୟ ହୋଇଥାଏ କିନ୍ତୁ ନିତୀ ଦ୍ୱାରା ଅନୁମୋଦିତ ନୁହଁ।" + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "CAP_SYS_NICE କୁ ସୀମିତ କ୍ଷମତା ସଫଳତାର ସହିତ ଦିଆହୋଇଛି।" + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() ବିଫଳ ହୋଇଛି।\n" + #~ msgid "Analog Mono" #~ msgstr "ଅନୁରୂପ ମୋନୋ" diff --git a/po/pa.po b/po/pa.po index 5f5585e0..fe5a31f5 100644 --- a/po/pa.po +++ b/po/pa.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-06-06 07:38+0530\n" "Last-Translator: A S Alam \n" "Language-Team: American English \n" @@ -19,7 +19,12 @@ msgstr "" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -30,7 +35,7 @@ msgstr "" "snd_pcm_avail() ਤੋਂ ਇੱਕ ਮੁੱਲ ਮਿਲਿਆ ਹੈ, ਜੋ ਬਹੁਤ ਵੱਡਾ ਹੈ: %lu ਬਾਈਟ (%lu ms)।\n" "ਇਹ ALSA ਡਰਾਈਵਰ '%s' ਵਿਚਲਾ ਬੱਗ ਲੱਗਦਾ ਹੈ। ਇਸ ਮੁੱਦੇ ਦੀ ALSA ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਰਿਪੋਰਟ ਦਿਓ ਜੀ।" -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -41,7 +46,7 @@ msgstr "" "snd_pcm_delay() ਤੋਂ ਇੱਕ ਮੁੱਲ ਮਿਲਿਆ ਹੈ, ਜੋ ਬਹੁਤ ਵੱਡਾ ਹੈ: %li ਬਾਈਟ (%s%lu ms)।\n" "ਇਹ ALSA ਡਰਾਈਵਰ '%s' ਵਿਚਲਾ ਬੱਗ ਲੱਗਦਾ ਹੈ। ਇਸ ਮੁੱਦੇ ਦੀ ALSA ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਰਿਪੋਰਟ ਦਿਓ ਜੀ।" -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -65,7 +70,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "ਅੰਦਰੂਨੀ ਆਡੀਓ" @@ -85,365 +90,241 @@ msgstr "ਨਵਾਂ dl ਲੋਡਰ ਦੇਣ ਲਈ ਫੇਲ੍ਹ।" msgid "Failed to add bind-now-loader." msgstr "ਬਾਈਂਡ-ਨਾਓ-ਲੋਡਰ ਜੋੜਨ ਵਿੱਚ ਫੇਲ੍ਹ ਹੋਇਆ।" -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "ਸਿਸਟਮ ਬੱਸ ਨਾਲ ਜੁੜਨ ਨਹੀਂ ਸਕਿਆ: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "PID ਤੋਂ ਕਾਲਰ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "ਕਾਲਰ ਐਬਜੈਕਟ ਤੇ UID ਸੈੱਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।" - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK ਸ਼ੈਸ਼ਨ ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਫੇਲ।" - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "ਸ਼ੈਸ਼ਨ ਆਬਜੈਕਟ ਤੇ UID ਸੈੱਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।" - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "PolKitAction ਨਹੀਂ ਦੇ ਸਕਿਆ।" - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "action_id ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "PolKitContext ਜਾਰੀ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "PolKitContext ਨੂੰ ਸ਼ੁਰੂ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਿਆ ਕਿ ਕੀ ਕਾਲਰ ਪਰਮਾਣਿਤ ਹੈ: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "ਪਰਮਾਣਕਿਤਾ ਨਹੀਂ ਲੈ ਸਕਦਾ: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit ਦੇ ਜਵਾਬ ਵਜੋਂ '%s' ਮਿਲਿਆ ਹੈ" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "%s ਸਿਗਨਲ ਮਿਲਿਆ ਹੈ।" -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।" -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "'%s' ਯੂਜ਼ਰ ਲੱਭਣ ਵਿੱਚ ਫੇਲ੍ਹ ਹੋਇਆ ਹੈ।" -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "'%s' ਗਰੁੱਪ ਲੱਭਣ ਵਿੱਚ ਫੇਲ ਹੋਇਆ ਹੈ।" -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "ਯੂਜ਼ਰ '%s' (UID %lu) ਅਤੇ ਗਰੁੱਪ '%s' (GID %lu) ਲੱਭੇ ਹਨ।" -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "ਯੂਜ਼ੂ '%s' ਅਤੇ ਗਰੁੱਪ '%s' ਦਾ GID ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ।" -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "ਯੂਜ਼ੂ '%s' ਦੀ ਘਰ ਡਾਇਰੈਕਟਰੀ '%s' ਨਹੀਂ, ਅਣਡਿੱਠਾ ਕਰ ਰਿਹਾ।" -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ੍ਹ: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "ਗਰੁੱਪ ਲਿਸਟ ਬਦਲਣ ਲਈ ਫੇਲ੍ਹ: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GID ਬਦਲਣ ਲਈ ਫੇਲ੍ਹ: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UID ਬਦਲਣ ਲਈ ਫੇਲ੍ਹ: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "ਰੂਟ ਅਧਿਕਾਰ ਸਫਲਤਾਪੂਰਕ ਹਟਾਏ ਗਏ।" -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "ਇਸ ਪਲੇਟਫਾਰਮ ਤੇ ਸਿਸਟਮ ਸੰਬੰਧੀ ਮੋਡ ਨੂੰ ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ।" -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) ਫੇਲ੍ਹ ਹੋਇਆ: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "ਕਮਾਂਡ ਲਾਈਨ ਪਾਰਸ ਕਰਨ ਵਿੱਚ ਫੇਲ੍ਹ।" -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "ਅਸੀਂ ਗਰੁੱਪ '%s' ਵਿੱਚ ਹਾਂ, ਜਿਸ ਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ ਤਹਿ ਕੀਤਾ ਗਿਆ ਹੈ।" - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "ਅਸੀਂ ਗਰੁੱਪ '%s' ਵਿੱਚ ਹਾਂ, ਜਿਸ ਨੂੰ ਰੀਅਲ-ਟਾਈਮ ਤਹਿ ਕੀਤਾ ਗਿਆ ਹੈ।" - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit ਸਾਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ-ਪ੍ਰਾਪਤੀ ਅਧਿਕਾਰ ਦਿੰਦੀ ਹੈ।" - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit ਵਧੇਰੇ-ਤਰਜੀਹ-ਪ੍ਰਾਪਤੀ ਅਧਿਕਾਰ ਹਟਾਉਂਦੀ ਹੈ।" - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit ਸਾਨੂੰ ਰੀਅਲ-ਟਾਈਮ-ਪ੍ਰਾਪਤੀ ਅਧਿਕਾਰ ਦਿੰਦੀ ਹੈ।" - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit ਰੀਅਲ-ਟਾਈਮ-ਪ੍ਰਾਪਤੀ ਅਧਿਕਾਰ ਹਟਾਉਂਦੀ ਹੈ।" - -#: ../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." -msgstr "" -"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." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "ਸੰਰਚਨਾ ਵਿੱਚ ਵਧੇਰੇ-ਤਰਜੀਹ ਯੋਗ ਕੀਤੀ ਗਈ ਹੈ, ਪਰ ਪਾਲਸੀ ਵਲੋਂ ਮਨਜ਼ੂਰ ਨਹੀਂ ਕੀਤੀ।" - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO ਨੂੰ ਸਫਲਤਾਪੂਰਕ ਵਧਾਇਆ ਗਿਆ" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO ਫੇਲ੍ਹ: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "CAP_NICE ਨੂੰ ਹਟਾ ਰਿਹਾ ਹੈ" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "ਰੀਅਲ-ਟਾਈਮ ਤਹਿ ਨੂੰ ਸੰਰਚਨਾ ਵਿੱਚ ਯੋਗ ਕਰਨ ਨਾਲ, ਪਰ ਪਾਲਸੀ ਵਲੋਂ ਮਨਜੂਰ ਨਹੀਂ ਕੀਤੀ।" - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "ਡੈਮਨ ਚੱਲ ਨਹੀਂ ਰਿਹਾ" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "ਡੈਮਨ PID %u ਤੌਰ ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "ਡੈਮਨ ਖਤਮ ਕਰਨ ਵਿੱਚ ਫੇਲ੍ਹ: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "ਇਹ ਪਰੋਗਰਾਮ ਰੂਟ ਦੇ ਤੌਰ ਤੇ ਚਲਾਉਣ ਲਈ ਨਹੀਂ ਹੈ (ਜਦੋਂ ਤੱਕ --system ਦਿੱਤਾ ਨਹੀਂ ਜਾਂਦਾ)।" -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "ਰੂਟ ਅਧਿਕਾਰਾਂ ਦੀ ਲੋੜ ਹੈ।" -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start ਨੂੰ ਸਿਸਟਮ ਮੌਕਿਆਂ ਲਈ ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ।" -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ, ਪਰ --disallow-exit ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ, ਪਰ --disallow-module-loading ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ, ਜ਼ਬਰਦਸਤੀ SHM ਮੋਡ ਨੂੰ ਅਯੋਗ ਕਰ ਰਿਹਾ ਹੈ!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ, ਜ਼ਬਰਦਸਤੀ idle ਟਾਈਲ ਬੰਦ ਨੂੰ ਅਯੋਗ ਕਰ ਰਿਹਾ ਹੈ!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "ਸਟੂਡੀਓ ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਫੇਲ੍ਹ।" -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "pipe ਫੇਲ੍ਹ: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() ਫੇਲ੍ਹ ਹੈ: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() ਫੇਲ੍ਹ ਹੈ: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "ਡੈਮਨ ਸ਼ੁਰੂਆਤੀ ਫੇਲ੍ਹ ਹੋਈ।" -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "ਡੈਮਨ ਸ਼ੁਰੂਆਤੀ ਸਫ਼ਲ ਹੋਈ।" -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "ਇਹ ਪਲਸਆਡੀਓ %s ਹੈ" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "ਕੰਪਾਈਲੇਸ਼ਨ ਹੋਸਟ: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "ਕੰਪਾਈਲੇਸ਼ਨ CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "ਹੋਸਟ ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPUs ਲੱਭੇ।" -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "ਪੇਜ਼ ਸਾਈਜ਼ %lu ਬਾਈਟ ਹੈ" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind ਸਹਿਯੋਗ ਨਾਲ ਕੰਪਾਈਲ: ਹਾਂ" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Valgrind ਸਹਿਯੋਗ ਨਾਲ ਕੰਪਾਈਲ: ਨਹੀਂ" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Valgrind ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "ਓਪਟੀਮਾਈਜ਼ਡ ਬਿਲਡ: ਹਾਂ" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "ਓਪਟੀਮਾਈਜ਼ਡ ਬਿਲਡ: ਨਹੀਂ" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG ਪਰਿਭਾਸ਼ਤ, ਸਭ asserts ਅਯੋਗ ਹਨ।" -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH ਪਰਿਭਾਸ਼ਤ, ਸਿਰਫ ਫਾਸਟ ਪਾਥ asserts ਅਯੋਗ ਹਨ।" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "ਸਭ asserts ਯੋਗ ਕੀਤੇ ਹਨ।" -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "ਮਸ਼ੀਨ ID ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਫੇਲ੍ਹ" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "ਮਸ਼ੀਨ ID %s ਹੈ।" -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "ਮਸ਼ੀਨ ID %s ਹੈ।" -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "ਰਨਟਾਈਮ ਡਾਇਰੈਕਟਰੀ %s ਦੀ ਵਰਤੋਂ।" -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "ਸਟੇਟ ਡਾਇਰੈਕਟਰੀ %s ਦੀ ਵਰਤੋਂ।" -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "ਸਿਸਟਮ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -453,42 +334,42 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() ਫੇਲ੍ਹ ਹੈ।" -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "ਤਾਜ਼ੀ ਹਾਈ-ਰੈਜ਼ੋਲੂਸ਼ਨ ਟਾਈਮਰ ਉਪਲੱਬਧ ਹੈ! Bon appetit!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "" "ਮਿੱਤਰਾ, ਤੇਰਾ ਕਰਨਲ ਪੁਰਾਣਾ ਹੈ! ਚੀਫ ਦੀ ਅੱਜ ਦੀ ਸਿਫਾਰਸ਼ ਹਾਈ-ਰੈਜ਼ੋਲੂਸ਼ਨ ਟਾਈਮਰ ਯੋਗ ਨਾਲ ਲੀਨਕਸ ਹੈ!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() ਫੇਲ੍ਹ ਹੈ।" -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "ਡੈਮਨ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਫੇਲ੍ਹ।" -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "ਡੈਮਨ ਸ਼ੁਰੂਆਤੀ ਬਿਨਾਂ ਕਿਸੇ ਲੋਡ ਕੀਤੇ ਮੈਡਿਊਲ, ਕੰਮ ਕਰਨ ਤੋਂ ਰੋਕ ਰਿਹਾ ਹੈ।" -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "ਡੈਮਨ ਸ਼ੁਰੂਆਤੀ ਮੁਕੰਮਲ।" -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "ਡੈਮਨ ਬੰਦ ਕਰਨਾ ਸ਼ੁਰੂ ਹੋ ਗਿਆ।" -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "ਡੈਮਨ ਬੰਦ ਹੋ ਗਿਆ।" @@ -821,14 +702,10 @@ msgstr "ਦਿੱਤੇ ਡਿਫਾਲਟ ਚੈਨਲ ਮੈਪ ਦੀ ਦਿ msgid "### Read from configuration file: %s ###\n" msgstr "### ਸੰਰਚਨਾ ਫਾਇਲ ਵਿੱਚੋਂ ਪੜਿਆ: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "ਰੂਟ ਅਧਿਕਾਰ ਹਟਾ ਰਿਹਾ ਹੈ।" -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "CAP_SYS_NICE ਨੂੰ ਸਫਲਤਾਪੂਰਕ ਸੀਮਿਤ ਸਮੱਰਥਾ।" - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "ਪਲਸਆਡੀਓ ਸਾਊਂਡ ਸਿਸਟਮ" @@ -837,24 +714,6 @@ msgstr "ਪਲਸਆਡੀਓ ਸਾਊਂਡ ਸਿਸਟਮ" 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" -msgstr "ਪਲਸਆਡੀਓ ਡੈਮਨ ਲਈ ਵਧੇਰੇ-ਤਰਜੀਹ ਸੈਡਿਊਲ (ਨਾਂ-ਵਾਚਕ ਯੂਨੈਕਸ ਨਾਈਸ ਲੈਵਲ)" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -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." -msgstr "ਸਿਸਟਮ ਪਾਲਸੀ ਪਲਸਆਡੀਓ ਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ ਸੈਡਿਊਲ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ।" - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "ਸਿਸਟਮ ਪਾਲਸੀ ਪਲਸਆਡੀਓ ਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ ਰੀਅਲ-ਟਾਈਮ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ।" - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "ਮੋਨੋ" @@ -1227,183 +1086,187 @@ msgstr "ਕੂਕੀ ਡਾਟਾ ਪਾਰਸ ਕਰਨ ਵਿੱਚ ਫੇਲ msgid "Failed to open configuration file '%s': %s" msgstr "ਸੰਰਚਨਾ ਫਾਇਲ '%s' ਨੂੰ ਖੋਲ੍ਹਣ ਵਿੱਚ ਫੇਲ੍ਹ: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "ਕੋਈ ਕੂਕੀ ਲੋਡ ਨਹੀਂ ਕੀਤੀ। ਇਸ ਤੋਂ ਬਿਨਾਂ ਕੁਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।" -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "ਅਣਜਾਣੀ ਇਕਸਟੈਂਸ਼ਨ '%s' ਲਈ ਸੁਨੇਹਾ ਮਿਲਿਆ ਹੈ" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "ਸਟਰੀਮ ਡਰੇਨ ਫੇਲ੍ਹ ਹੋਇਆ: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "ਪਲੇਬੈਕ ਸਟਰੀਮ ਡਰੇਨ ਕੀਤੀ।\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਡਰੇਨ ਹੋ ਰਿਹਾ ਹੈ।\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() ਫੇਲ੍ਹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() ਫੇਲ੍ਹ ਹੈ: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() ਫੇਲ੍ਹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "ਸਟਰੀਮ ਸਫਲਤਾਪੂਰਕ ਬਣ ਗਈ ਹੈ।\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() ਫੇਲ੍ਹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Buffer metrics: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "ਸਧਾਰਨ spec '%s', ਚੈਨਲ ਮੈਪ '%s' ਦੀ ਵਰਤੋਂ।\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "%s ਜੰਤਰ ਨਾਲ ਕੁਨਕੈਟ ਕੀਤਾ (%u, %ssuspended)।\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "ਸਟਰੀਮ ਗਲਤੀ: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "ਸਟਰੀਮ ਜੰਤਰ ਸਸਪੈਂਡ ਕੀਤਾ ਹੈ।%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "ਸਟਰੀਮ ਜੰਤਰ ਮੁੜ-ਪ੍ਰਾਪਤ ਕੀਤਾ।%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "ਸਟਰੀਮ ਅੰਡਰਰਨ।%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "ਸਟਰੀਮ ਓਵਰਰਨ।%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "ਸਟਰੀਮ ਸ਼ੁਰੂ ਕੀਤੀ। %s\n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "ਸਟਰੀਮ ਨੂੰ ਜੰਤਰ %s ਤੋਂ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ ਹੈ (%u, %ssuspended)।%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "ਨਹੀਂ " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "ਸਟਰੀਮ ਬਫਰ ਐਟਰੀਬਿਊਟ ਤਬਦੀਲ ਕੀਤੇ ਗਏ।%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "ਕੁਨੈਕਸ਼ਨ ਬਣ ਗਿਆ।%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() ਫੇਲ੍ਹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() ਫੇਲ੍ਹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() ਫੇਲ੍ਹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "ਕੁਨੈਕਸ਼ਨ ਫੇਲ: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF ਮਿਲਿਆ।\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() ਫੇਲ੍ਹ ਹੈ: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF ਮਿਲਿਆ।\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() ਫੇਲ੍ਹ ਹੈ: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "ਸਿਗਨਲ ਮਿਲਿਆ, ਬੰਦ ਹੋ ਰਿਹਾ ਹੈ।\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "ਵਕਫਾ ਪ੍ਰਾਪਤੀ ਫੇਲ ਹੋਈ: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "ਸਮਾਂ: %0.3f ਸਕਿੰਟ; ਵਕਫਾ: %0.0f usec। \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() ਫੇਲ੍ਹ ਹੈ: %s\n" #: ../src/utils/pacat.c:605 @@ -1525,34 +1388,34 @@ msgstr "" "libpulse %s ਦੇ ਕੰਪਾਇਲ\n" "libpulse %s ਨਾਲ ਲਿੰਕ ਕੀਤਾ\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "ਅਢੁੱਕਵਾਂ ਚੈਨਲ ਮੈਪ '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "ਅਢੁੱਕਵਾਂ ਰੀਸੈਂਪਲ ਢੰਗ '%s'।" #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "ਅਢੁੱਕਵਾਂ ਚੈਨਲ ਮੈਪ '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "ਅਢੁੱਕਵਾਂ ਵਕਫਾ ਹਦਾਇਤ '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "ਅਢੁੱਕਵਾਂ ਪਰੋਸੈੱਸ ਟਾਈਮ ਹਦਾਇਤ '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "ਅਢੁੱਕਵਾਂ ਰੀਸੈਂਪਲ ਢੰਗ '%s'।" #: ../src/utils/pacat.c:878 @@ -1561,60 +1424,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "ਅਢੁੱਕਵਾਂ ਸੈਂਪਲ ਹਦਾਇਤ\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "ਬਹੁਤ ਵੱਧ ਆਰਗੂਮੈਂਟ।\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "ਸੈਂਪਲ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "ਸਾਊਂਡ ਫਾਇਲ ਖੋਲ੍ਹਣ ਲਈ ਫੇਲ੍ਹ ਹੈ।\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "ਇੱਕ %s ਸਟਰੀਮ ਨੂੰ ਸੈਂਪਲ ਹਦਾਇਤ '%s' ਨਾਲ ਖੋਲ੍ਹਿਆ ਜਾ ਰਿਹਾ ਹੈ।\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "ਸੈਂਪਲ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "ਇੱਕ %s ਸਟਰੀਮ ਨੂੰ ਸੈਂਪਲ ਹਦਾਇਤ '%s' ਨਾਲ ਖੋਲ੍ਹਿਆ ਜਾ ਰਿਹਾ ਹੈ।\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "ਚੈਨਲ ਮੈਪ ਸੈਂਪਲ ਹਦਾਇਤ ਨਾਲ ਨਹੀਂ ਮਿਲਦਾ\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "ਇੱਕ %s ਸਟਰੀਮ ਨੂੰ ਸੈਂਪਲ ਹਦਾਇਤ '%s' ਨਾਲ ਖੋਲ੍ਹਿਆ ਜਾ ਰਿਹਾ ਹੈ।\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "ਇੱਕ %s ਸਟਰੀਮ ਨੂੰ ਸੈਂਪਲ ਹਦਾਇਤ '%s' ਨਾਲ ਖੋਲ੍ਹਿਆ ਜਾ ਰਿਹਾ ਹੈ।\n" #: ../src/utils/pacat.c:1006 @@ -1625,35 +1494,34 @@ msgstr "ਰਿਕਾਰਡਿੰਗ" msgid "playback" msgstr "ਪਲੇਅਬੈਕ" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() ਫੇਲ੍ਹ ਹੈ।\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() ਫੇਲ੍ਹ ਹੈ।\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() ਫੇਲ੍ਹ ਹੈ।\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() ਫੇਲ੍ਹ ਹੈ: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() ਫੇਲ੍ਹ ਹੈ।\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() ਫੇਲ੍ਹ ਹੈ।\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() ਫੇਲ੍ਹ ਹੈ।\n" #: ../src/utils/pasuspender.c:81 @@ -1681,6 +1549,11 @@ msgstr "ਮੁੜ-ਪ੍ਰਾਪਤੀ ਫੇਲ: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "ਚੇਤਾਵਨੀ: ਸਾਊਂਡ ਸਰਵਰ ਲੋਕਲ ਨਹੀਂ ਹੈ, ਸਸਪੈਂਡ ਨਹੀਂ ਹੋ ਰਿਹਾ।\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "ਕੁਨੈਕਸ਼ਨ ਫੇਲ: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1721,6 +1594,21 @@ msgstr "" "libpulse %s ਨਾਲ ਕੰਪਾਇਲ\n" "libpulse %s ਨਾਲ ਲਿੰਕ\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() ਫੇਲ੍ਹ ਹੈ।\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() ਫੇਲ੍ਹ ਹੈ।\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2135,6 +2023,11 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "ਅਢੁੱਕਵਾਂ ਚੈਨਲ ਮੈਪ '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "ਲੋਡ ਕਰਨ ਲਈ ਸੈਂਪਲ ਫਾਇਲ ਦਿਓ\n" @@ -2143,6 +2036,11 @@ msgstr "ਲੋਡ ਕਰਨ ਲਈ ਸੈਂਪਲ ਫਾਇਲ ਦਿਓ\n" msgid "Failed to open sound file.\n" msgstr "ਸਾਊਂਡ ਫਾਇਲ ਖੋਲ੍ਹਣ ਲਈ ਫੇਲ੍ਹ ਹੈ।\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "ਸੈਂਪਲ ਜਾਣਕਾਰੀ ਲੈਣ ਵਿੱਚ ਫੇਲ: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2202,11 +2100,6 @@ msgstr "ਤੁਹਾਨੂੰ ਇੱਕ ਕਾਰਡ ਨਾਂ/ਲਿਸਟ ਅ 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 "" @@ -2323,11 +2216,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "autospawn ਲਾਕ ਵਰਤ ਨਹੀਂ ਸਕਦਾ।" -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2344,7 +2237,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:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2362,15 +2255,15 @@ msgstr "" "returned 0 or another value < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "ਬੰਦ" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "ਹਾਈ ਫਡੈਲਿਟੀ ਪਲੇਅਬੈਕ (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "ਟੈਲੀਫੋਨੀ ਡੁਪਲੈਕਸ (HSP/HFP)" @@ -2378,6 +2271,128 @@ msgstr "ਟੈਲੀਫੋਨੀ ਡੁਪਲੈਕਸ (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "ਪਲਸਆਡੀਓ ਸਾਊਂਡ ਡਰਾਇਵਰ" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "ਸਿਸਟਮ ਬੱਸ ਨਾਲ ਜੁੜਨ ਨਹੀਂ ਸਕਿਆ: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "PID ਤੋਂ ਕਾਲਰ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "ਕਾਲਰ ਐਬਜੈਕਟ ਤੇ UID ਸੈੱਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।" + +#~ msgid "Failed to get CK session." +#~ msgstr "CK ਸ਼ੈਸ਼ਨ ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਫੇਲ।" + +#~ msgid "Cannot set UID on session object." +#~ msgstr "ਸ਼ੈਸ਼ਨ ਆਬਜੈਕਟ ਤੇ UID ਸੈੱਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।" + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "PolKitAction ਨਹੀਂ ਦੇ ਸਕਿਆ।" + +#~ msgid "Cannot set action_id" +#~ msgstr "action_id ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "PolKitContext ਜਾਰੀ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "PolKitContext ਨੂੰ ਸ਼ੁਰੂ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਿਆ ਕਿ ਕੀ ਕਾਲਰ ਪਰਮਾਣਿਤ ਹੈ: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "ਪਰਮਾਣਕਿਤਾ ਨਹੀਂ ਲੈ ਸਕਦਾ: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit ਦੇ ਜਵਾਬ ਵਜੋਂ '%s' ਮਿਲਿਆ ਹੈ" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "ਪਲਸਆਡੀਓ ਡੈਮਨ ਲਈ ਵਧੇਰੇ-ਤਰਜੀਹ ਸੈਡਿਊਲ (ਨਾਂ-ਵਾਚਕ ਯੂਨੈਕਸ ਨਾਈਸ ਲੈਵਲ)" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "ਪਲਸਆਡੀਓ ਡੈਮਨ ਰੀਅਲ-ਟਾਈਮ ਸੈਡਿਊਲ" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "ਸਿਸਟਮ ਪਾਲਸੀ ਪਲਸਆਡੀਓ ਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ ਸੈਡਿਊਲ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ।" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "ਸਿਸਟਮ ਪਾਲਸੀ ਪਲਸਆਡੀਓ ਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ ਰੀਅਲ-ਟਾਈਮ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ।" + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() ਫੇਲ੍ਹ ਹੈ: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() ਫੇਲ੍ਹ ਹੈ: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "ਅਸੀਂ ਗਰੁੱਪ '%s' ਵਿੱਚ ਹਾਂ, ਜਿਸ ਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ ਤਹਿ ਕੀਤਾ ਗਿਆ ਹੈ।" + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "ਅਸੀਂ ਗਰੁੱਪ '%s' ਵਿੱਚ ਹਾਂ, ਜਿਸ ਨੂੰ ਰੀਅਲ-ਟਾਈਮ ਤਹਿ ਕੀਤਾ ਗਿਆ ਹੈ।" + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit ਸਾਨੂੰ ਵਧੇਰੇ-ਤਰਜੀਹ-ਪ੍ਰਾਪਤੀ ਅਧਿਕਾਰ ਦਿੰਦੀ ਹੈ।" + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit ਵਧੇਰੇ-ਤਰਜੀਹ-ਪ੍ਰਾਪਤੀ ਅਧਿਕਾਰ ਹਟਾਉਂਦੀ ਹੈ।" + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit ਸਾਨੂੰ ਰੀਅਲ-ਟਾਈਮ-ਪ੍ਰਾਪਤੀ ਅਧਿਕਾਰ ਦਿੰਦੀ ਹੈ।" + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit ਰੀਅਲ-ਟਾਈਮ-ਪ੍ਰਾਪਤੀ ਅਧਿਕਾਰ ਹਟਾਉਂਦੀ ਹੈ।" + +#~ 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." +#~ msgstr "" +#~ "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." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "ਸੰਰਚਨਾ ਵਿੱਚ ਵਧੇਰੇ-ਤਰਜੀਹ ਯੋਗ ਕੀਤੀ ਗਈ ਹੈ, ਪਰ ਪਾਲਸੀ ਵਲੋਂ ਮਨਜ਼ੂਰ ਨਹੀਂ ਕੀਤੀ।" + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO ਨੂੰ ਸਫਲਤਾਪੂਰਕ ਵਧਾਇਆ ਗਿਆ" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO ਫੇਲ੍ਹ: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "CAP_NICE ਨੂੰ ਹਟਾ ਰਿਹਾ ਹੈ" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "ਰੀਅਲ-ਟਾਈਮ ਤਹਿ ਨੂੰ ਸੰਰਚਨਾ ਵਿੱਚ ਯੋਗ ਕਰਨ ਨਾਲ, ਪਰ ਪਾਲਸੀ ਵਲੋਂ ਮਨਜੂਰ ਨਹੀਂ ਕੀਤੀ।" + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "CAP_SYS_NICE ਨੂੰ ਸਫਲਤਾਪੂਰਕ ਸੀਮਿਤ ਸਮੱਰਥਾ।" + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() ਫੇਲ੍ਹ ਹੈ।\n" + #~ msgid "Analog Mono" #~ msgstr "ਐਨਾਲਾਗ ਮੋਨੋ" diff --git a/po/pl.po b/po/pl.po index df526062..371de41c 100644 --- a/po/pl.po +++ b/po/pl.po @@ -5,15 +5,20 @@ msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" -"PO-Revision-Date: 2009-06-09 00:03+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" +"PO-Revision-Date: 2009-07-28 21:54+0200\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "%s %s" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -25,7 +30,7 @@ msgstr "" "Prawdopodobnie jest to błąd sterownika ALSA \"%s\". Proszę zgłosić ten " "problem programistom ALSA." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -37,7 +42,7 @@ msgstr "" "Prawdopodobnie jest to błąd sterownika ALSA \"%s\". Proszę zgłosić ten " "problem programistom ALSA." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -51,7 +56,7 @@ msgstr "" #: ../src/modules/module-ladspa-sink.c:49 msgid "Virtual LADSPA sink" -msgstr "" +msgstr "Wirtualny odpływ LADSPA" #: ../src/modules/module-ladspa-sink.c:53 msgid "" @@ -61,8 +66,13 @@ msgid "" "plugin name> label= control=" msgstr "" +"sink_name= sink_properties= " +"master= format= " +"rate= channels= channel_map= plugin= label= " +"control=" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Wewnętrzny dźwięk" @@ -83,222 +93,92 @@ msgstr "Przydzielenie nowego programu wczytującego dl nie powiodło się." msgid "Failed to add bind-now-loader." msgstr "Dodanie bind-now-loader nie powiodło się." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Nie można połączyć się z magistralą systemową: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Nie można uzyskać obiektu caller z PID: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Nie można ustawić UID obiektu caller." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Uzyskanie sesji CK nie powiodło się." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Nie można ustawić UID obiektowi sesji." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Nie można przydzielić PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Nie można ustawić action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Nie można przydzielić PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Nie można zainicjować PolKitContext: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Nie można ustalić, czy obiekt caller jest upoważniony: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Nie można uzyskać upoważnienia: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit zwróciło \"%s\"" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Otrzymano sygnał %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Wyłączanie." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Znalezienie użytkownika \"%s\" nie powiodło się." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Znalezienie grupy \"%s\" nie powiodło się." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Znaleziono użytkownika \"%s\" (UID %lu) i grupę \"%s\" (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID użytkownika \"%s\" i grupy \"%s\" nie zgadzają się." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Folder domowy użytkownika \"%s\" nie jest \"%s\", ignorowanie." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Utworzenie \"%s\" nie powiodło się: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Zmiana listy grup nie powiodła się: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Zmiana GID nie powiodła się: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Zmiana UID nie powiodła się: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Pomyślnie porzucono uprawnienia roota." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "Tryb systemowy nie jest obsługiwany na tej platformie." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) nie powiodło się: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Analiza wiersza poleceń nie powiodła się." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"Jesteśmy w grupie \"%s\", co umożliwia szeregowanie o wysokim priorytecie." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" -"Jesteśmy w grupie \"%s\", co umożliwia szeregowanie w czasie rzeczywistym." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit nadał uprawnienie \"acquire-high-priority\"." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit odmówił nadania uprawnienia \"acquire-high-priority\"." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit nadał uprawnienie \"acquire-real-time\"." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit odmówił nadania uprawnienia \"acquire-real-time\"." - -#: ../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." -msgstr "" -"W konfiguracji zażądano SUID roota i szeregowanie w czasie rzeczywistym i/" -"lub o wysokim priorytecie. Brak wymaganych uprawnień:\n" -"Nie jesteśmy w grupie \"%s\", PolicyKit odmawia przyznania żądanych " -"uprawnień i brak ograniczeń zwiększania zasobów RLIMIT_NICE/RLIMIT_RTPRIO.\n" -"Aby włączyć szeregowanie w czasie rzeczywistym i/lub o wysokim priorytecie, " -"należy uzyskać odpowiednie uprawnienia PolicyKit, zostać członkiem grupy \"%s" -"\" lub zwiększyć ograniczenia zasobów RLIMIT_NICE/RLIMIT_RTPRIO dla tego " -"użytkownika." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Szeregowanie o wysokim priorytecie jest włączone w konfiguracji, ale nie " -"jest zezwolone przez politykę." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "Pomyślnie zwiększono RLIMIT_RTPRIO" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO nie powiodło się: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Oddawanie CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Szeregowanie w czasie rzeczywistym jest włączone w konfiguracji, ale nie " -"jest zezwolone przez politykę." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Demon nie jest uruchomiony" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Demon jest uruchomiony jako PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Zniszczenie demona nie powiodło się: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -306,155 +186,155 @@ msgstr "" "Ten program nie powinien być uruchomiany jako root (chyba, że podano --" "system)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Wymagane są uprawnienia roota." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start nie jest obsługiwane przy uruchamianiu systemowym." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" "Uruchamianie w trybie systemowym, ale --disallow-exit nie jest ustawione!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "Uruchamianie w trybie systemowym, ale --disallow-module-loading nie jest " "ustawione!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Uruchamianie w trybie systemowym, wymuszanie wyłączenia trybu SHM!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "Uruchamianie w trybie systemowym, wymuszanie wyłączenia czasu oczekiwania na " "zakończenie!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Uzyskanie standardowego wejścia/wyjścia nie powiodło się." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "potok nie powiódł się: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() nie powiodło się: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() nie powiodło się: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Uruchomienie demona nie powiodło się." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Pomyślnie uruchomiono demona." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "To jest PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Komputer kompilacji: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS kompilacji: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Uruchamianie na komputerze: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "Znaleziono %u procesorów." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "Rozmiar strony to %lu bajtów" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Skompilowano z obsługą Valgrind: tak" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Skompilowano z obsługą Valgrind: nie" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Uruchamianie w trybie Valgrind: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Budowanie optymalizowane: tak" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Budowanie optymalizowane: nie" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "Podano NDEBUG, wszystkie asercje zostały wyłączone." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "Podano FASTPATH, tylko szybkie asercje ścieżek zostały wyłączone." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Wszystkie asercje są włączone." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Uzyskanie identyfikatora komputera nie powiodło się" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "Identyfikator komputera to %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, c-format msgid "Session ID is %s." msgstr "Identyfikator sesji to %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Używanie folderu wykonywania %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Używanie folderu stanu %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Uruchamianie w trybie systemowym: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -463,16 +343,22 @@ msgid "" "Please read http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode for an " "explanation why system mode is usually a bad idea." msgstr "" - -#: ../src/daemon/main.c:951 +"OK, więc PA jest uruchomione w trybie systemowym. Proszę zauważyć, że " +"prawdopodobnie tak nie powinno być.\n" +"Jeśli mimo to tak jest, to twoja wina, jeśli coś nie działa tak jak " +"powinno.\n" +"Proszę przeczytać http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode, " +"gdzie wyjaśniono, dlaczego tryb systemowy jest zwykle złym pomysłem." + +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() nie powiodło się." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Świeże zegary o wysokiej rozdzielczości! Smacznego!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -480,27 +366,27 @@ msgstr "" "Koleś, twoje jądro śmierdzi! Szef kuchni poleca dzisiaj Linuksa w włączonymi " "zegarami o wysokiej rozdzielczości!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() nie powiodło się." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Zainicjowanie demona nie powiodło się." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Uruchamianie demona bez żadnych wczytanych modułów, odmawianie pracy." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Zakończono uruchamianie demona." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Zainicjowano wyłączenie demona." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Demon został zniszczony." @@ -844,14 +730,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Odczytano z pliku konfiguracji: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Porzucanie uprawnień roota." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Pomyślnie ograniczono możliwości do CAP_SYS_NICE." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "System dźwięku PulseAudio" @@ -860,30 +742,6 @@ msgstr "System dźwięku PulseAudio" msgid "Start the PulseAudio Sound System" msgstr "Uruchomienie systemu dźwięku PulseAudio" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" -"Szeregowanie o wysokim priorytecie (ujemny poziom nice Uniksa) dla demona " -"PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Szeregowanie w czasie rzeczywistym dla demona PulseAudio" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"Polityka systemu uniemożliwia PulseAudio uzyskanie szeregowania o wysokim " -"priorytecie." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" -"Polityka systemu uniemożliwia PulseAudio uzyskanie szeregowania w czasie " -"rzeczywistym." - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1256,184 +1114,183 @@ msgstr "Analiza danych ciasteczka nie powiodło się" msgid "Failed to open configuration file '%s': %s" msgstr "Otwarcie pliku konfiguracji \"%s\" nie powiodło się: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Nie wczytano ciasteczka. Próbowanie połączenia się bez niego." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Otrzymano komunikat z nieznanego powodu \"%s\"" -#: ../src/utils/pacat.c:107 +#: ../src/utils/pacat.c:108 #, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Opróżnienie strumienia nie powiodło się: %s\n" +msgid "Failed to drain stream: %s" +msgstr "Opróżnienie strumienia nie powiodło się: %s" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" -msgstr "Opróżniono strumień odtwarzania.\n" +#: ../src/utils/pacat.c:113 +msgid "Playback stream drained." +msgstr "Opróżniono strumień odtwarzania." -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" -msgstr "Opróżnianie połączenia z serwerem.\n" +#: ../src/utils/pacat.c:123 +msgid "Draining connection to server." +msgstr "Opróżnianie połączenia z serwerem." -#: ../src/utils/pacat.c:135 +#: ../src/utils/pacat.c:136 #, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" +msgid "pa_stream_drain(): %s" +msgstr "pa_stream_drain(): %s" -#: ../src/utils/pacat.c:158 +#: ../src/utils/pacat.c:159 #, c-format -msgid "pa_stream_write() failed: %s\n" -msgstr "pa_stream_write() nie powiodło się: %s\n" +msgid "pa_stream_write() failed: %s" +msgstr "pa_stream_write() nie powiodło się: %s" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 +#: ../src/utils/pacat.c:197 #, c-format -msgid "pa_stream_peek() failed: %s\n" -msgstr "pa_stream_peek() nie powiodło się: %s\n" +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_begin_write() nie powiodło się: %s" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" -msgstr "Pomyślnie utworzono strumień.\n" +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, c-format +msgid "pa_stream_peek() failed: %s" +msgstr "pa_stream_peek() nie powiodło się: %s" + +#: ../src/utils/pacat.c:307 +msgid "Stream successfully created." +msgstr "Pomyślnie utworzono strumień." -#: ../src/utils/pacat.c:305 +#: ../src/utils/pacat.c:310 #, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" -msgstr "pa_stream_get_buffer_attr() nie powiodło się: %s\n" +msgid "pa_stream_get_buffer_attr() failed: %s" +msgstr "pa_stream_get_buffer_attr() nie powiodło się: %s" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:314 #, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -msgstr "Metryka bufora: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" +msgstr "Metryka bufora: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" -#: ../src/utils/pacat.c:312 +#: ../src/utils/pacat.c:317 #, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" -msgstr "Metryka bufora: maxlength=%u, fragsize=%u\n" +msgid "Buffer metrics: maxlength=%u, fragsize=%u" +msgstr "Metryka bufora: maxlength=%u, fragsize=%u" -#: ../src/utils/pacat.c:316 +#: ../src/utils/pacat.c:321 #, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" -msgstr "Używanie przykładowej specyfikacji \"%s\", mapa kanałów \"%s\".\n" +msgid "Using sample spec '%s', channel map '%s'." +msgstr "Używanie przykładowej specyfikacji \"%s\", mapa kanałów \"%s\"." -#: ../src/utils/pacat.c:320 +#: ../src/utils/pacat.c:325 #, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" -msgstr "Połączono się z urządzeniem %s (%u, %swstrzymane).\n" +msgid "Connected to device %s (%u, %ssuspended)." +msgstr "Połączono się z urządzeniem %s (%u, %swstrzymane)." -#: ../src/utils/pacat.c:330 +#: ../src/utils/pacat.c:335 #, c-format -msgid "Stream error: %s\n" -msgstr "Błąd strumienia: %s\n" +msgid "Stream error: %s" +msgstr "Błąd strumienia: %s" -#: ../src/utils/pacat.c:340 +#: ../src/utils/pacat.c:345 #, c-format -msgid "Stream device suspended.%s \n" -msgstr "Wstrzymano urządzenie strumienia.%s \n" +msgid "Stream device suspended.%s" +msgstr "Wstrzymano urządzenie strumienia.%s" -#: ../src/utils/pacat.c:342 +#: ../src/utils/pacat.c:347 #, c-format -msgid "Stream device resumed.%s \n" -msgstr "Wznowiono urządzenie strumienia.%s \n" +msgid "Stream device resumed.%s" +msgstr "Wznowiono urządzenie strumienia.%s" -#: ../src/utils/pacat.c:350 +#: ../src/utils/pacat.c:355 #, c-format -msgid "Stream underrun.%s \n" -msgstr "Niedopełniono strumień.%s \n" +msgid "Stream underrun.%s" +msgstr "Niedopełniono strumień.%s" -#: ../src/utils/pacat.c:357 +#: ../src/utils/pacat.c:362 #, c-format -msgid "Stream overrun.%s \n" -msgstr "Przepełniono strumień.%s \n" +msgid "Stream overrun.%s" +msgstr "Przepełniono strumień.%s" -#: ../src/utils/pacat.c:364 +#: ../src/utils/pacat.c:369 #, c-format -msgid "Stream started.%s \n" -msgstr "Utworzono strumień.%s \n" +msgid "Stream started.%s" +msgstr "Utworzono strumień.%s" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 #, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" -msgstr "Strumień został przeniesiony do urządzenia %s (%u, %swstrzymane).%s \n" +msgid "Stream moved to device %s (%u, %ssuspended).%s" +msgstr "Strumień został przeniesiony do urządzenia %s (%u, %swstrzymane).%s" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "nie " -#: ../src/utils/pacat.c:378 +#: ../src/utils/pacat.c:383 #, c-format -msgid "Stream buffer attributes changed.%s \n" -msgstr "Zmieniono atrybuty bufora strumienia.%s \n" +msgid "Stream buffer attributes changed.%s" +msgstr "Zmieniono atrybuty bufora strumienia.%s" -#: ../src/utils/pacat.c:411 +#: ../src/utils/pacat.c:416 #, c-format -msgid "Connection established.%s \n" -msgstr "Ustanowiono połączenie.%s \n" +msgid "Connection established.%s" +msgstr "Ustanowiono połączenie.%s" -#: ../src/utils/pacat.c:414 +#: ../src/utils/pacat.c:419 #, c-format -msgid "pa_stream_new() failed: %s\n" -msgstr "pa_stream_new() nie powiodło się: %s\n" +msgid "pa_stream_new() failed: %s" +msgstr "pa_stream_new() nie powiodło się: %s" -#: ../src/utils/pacat.c:442 +#: ../src/utils/pacat.c:447 #, c-format -msgid "pa_stream_connect_playback() failed: %s\n" -msgstr "pa_stream_connect_playback() nie powiodło się: %s\n" +msgid "pa_stream_connect_playback() failed: %s" +msgstr "pa_stream_connect_playback() nie powiodło się: %s" -#: ../src/utils/pacat.c:448 +#: ../src/utils/pacat.c:453 #, c-format -msgid "pa_stream_connect_record() failed: %s\n" -msgstr "pa_stream_connect_record() nie powiodło się: %s\n" +msgid "pa_stream_connect_record() failed: %s" +msgstr "pa_stream_connect_record() nie powiodło się: %s" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 +#: ../src/utils/pacat.c:467 #, c-format -msgid "Connection failure: %s\n" -msgstr "Połączenie nie powiodło się: %s\n" - -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Otrzymano EOF.\n" +msgid "Connection failure: %s" +msgstr "Połączenie nie powiodło się: %s" #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() nie powiodło się: %s\n" +msgid "Got EOF." +msgstr "Otrzymano EOF." -#: ../src/utils/pacat.c:532 +#: ../src/utils/pacat.c:537 #, c-format -msgid "write() failed: %s\n" -msgstr "write() nie powiodło się: %s\n" +msgid "write() failed: %s" +msgstr "write() nie powiodło się: %s" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" -msgstr "Otrzymano sygnał, wyłączanie.\n" +#: ../src/utils/pacat.c:558 +msgid "Got signal, exiting." +msgstr "Otrzymano sygnał, wyłączanie." -#: ../src/utils/pacat.c:567 +#: ../src/utils/pacat.c:572 #, c-format -msgid "Failed to get latency: %s\n" -msgstr "Uzyskanie opóźnienia nie powiodło się: %s\n" +msgid "Failed to get latency: %s" +msgstr "Uzyskanie opóźnienia nie powiodło się: %s" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Czas: %0.3f sekundy; opóźnienie: %0.0f usekundy. \r" -#: ../src/utils/pacat.c:592 +#: ../src/utils/pacat.c:595 #, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" -msgstr "pa_stream_update_timing_info() nie powiodło się: %s\n" +msgid "pa_stream_update_timing_info() failed: %s" +msgstr "pa_stream_update_timing_info() nie powiodło się: %s" #: ../src/utils/pacat.c:605 #, c-format @@ -1561,35 +1418,35 @@ msgstr "" "Skompilowane za pomocą libpulse %s\n" "Skonsolidowane za pomocą libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, c-format -msgid "Invalid client name '%s'\n" -msgstr "Nieprawidłowa nazwa klienta \"%s\"\n" +msgid "Invalid client name '%s'" +msgstr "Nieprawidłowa nazwa klienta \"%s\"" #: ../src/utils/pacat.c:776 #, c-format -msgid "Invalid stream name '%s'\n" -msgstr "Nieprawidłowa nazwa strumienia \"%s\"\n" +msgid "Invalid stream name '%s'" +msgstr "Nieprawidłowa nazwa strumienia \"%s\"" #: ../src/utils/pacat.c:813 #, c-format -msgid "Invalid channel map '%s'\n" -msgstr "Nieprawidłowa mapa kanałów \"%s\"\n" +msgid "Invalid channel map '%s'" +msgstr "Nieprawidłowa mapa kanałów \"%s\"" #: ../src/utils/pacat.c:842 #, c-format -msgid "Invalid latency specification '%s'\n" -msgstr "Nieprawidłowe określenie opóźnienia \"%s\"\n" +msgid "Invalid latency specification '%s'" +msgstr "Nieprawidłowe określenie opóźnienia \"%s\"" #: ../src/utils/pacat.c:849 #, c-format -msgid "Invalid process time specification '%s'\n" -msgstr "Nieprawidłowe określenie czasu procesu \"%s\"\n" +msgid "Invalid process time specification '%s'" +msgstr "Nieprawidłowe określenie czasu procesu \"%s\"" #: ../src/utils/pacat.c:861 #, c-format -msgid "Invalid property '%s'\n" -msgstr "Nieprawidłowa własność \"%s\"\n" +msgid "Invalid property '%s'" +msgstr "Nieprawidłowa własność \"%s\"" #: ../src/utils/pacat.c:878 #, c-format @@ -1597,62 +1454,62 @@ msgid "Unknown file format %s." msgstr "Nieznany format pliku %s." #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" -msgstr "Nieprawidłowe określenie próbki\n" +msgid "Invalid sample specification" +msgstr "Nieprawidłowe określenie próbki" #: ../src/utils/pacat.c:907 #, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" +msgid "open(): %s" +msgstr "open(): %s" #: ../src/utils/pacat.c:912 #, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" +msgid "dup2(): %s" +msgstr "dup2(): %s" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" -msgstr "Za dużo parametrów.\n" +msgid "Too many arguments." +msgstr "Za dużo parametrów." #: ../src/utils/pacat.c:930 -msgid "Failed to generate sample specification for file.\n" -msgstr "Utworzenie określenia próbki dla pliku nie powiodło się.\n" +msgid "Failed to generate sample specification for file." +msgstr "Utworzenie określenia próbki dla pliku nie powiodło się." #: ../src/utils/pacat.c:950 -msgid "Failed to open audio file.\n" -msgstr "Otwarcie pliku dźwiękowego nie powiodło się.\n" +msgid "Failed to open audio file." +msgstr "Otwarcie pliku dźwiękowego nie powiodło się." #: ../src/utils/pacat.c:956 msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" +"specification from file." msgstr "" "Ostrzeżenie: podane określenie próbki zostanie zastąpione przez określenie z " -"pliku.\n" +"pliku." -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 -msgid "Failed to determine sample specification from file.\n" -msgstr "Ustalenie określenia próbki z pliku nie powiodło się.\n" +#: ../src/utils/pacat.c:959 +msgid "Failed to determine sample specification from file." +msgstr "Ustalenie określenia próbki z pliku nie powiodło się." #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "Ostrzeżenie: ustalenie mapy kanałów z pliku nie powiodło się.\n" +msgid "Warning: Failed to determine channel map from file." +msgstr "Ostrzeżenie: ustalenie mapy kanałów z pliku nie powiodło się." #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" -msgstr "Mapa kanałów nie zgadza się z określeniem próbki\n" +msgid "Channel map doesn't match sample specification" +msgstr "Mapa kanałów nie zgadza się z określeniem próbki" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "Ostrzeżenie: zapisanie mapy kanałów do pliku nie powiodło się.\n" +msgid "Warning: failed to write channel map to file." +msgstr "Ostrzeżenie: zapisanie mapy kanałów do pliku nie powiodło się." #: ../src/utils/pacat.c:1005 #, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "" "Otwieranie strumienia %s za pomocą określenie próbki \"%s\" i mapy kanałów " -"\"%s\".\n" +"\"%s\"." #: ../src/utils/pacat.c:1006 msgid "recording" @@ -1662,36 +1519,30 @@ msgstr "nagrywanie" msgid "playback" msgstr "odtwarzanie" -#: ../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() nie powiodło się.\n" +#: ../src/utils/pacat.c:1032 +msgid "pa_mainloop_new() failed." +msgstr "pa_mainloop_new() nie powiodło się." #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" -msgstr "io_new() nie powiodło się.\n" +msgid "io_new() failed." +msgstr "io_new() nie powiodło się." -#: ../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() nie powiodło się.\n" +#: ../src/utils/pacat.c:1058 +msgid "pa_context_new() failed." +msgstr "pa_context_new() nie powiodło się." -#: ../src/utils/pacat.c:1066 +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 #, c-format -msgid "pa_context_connect() failed: %s\n" -msgstr "pa_context_connect() nie powiodło się: %s\n" +msgid "pa_context_connect() failed: %s" +msgstr "pa_context_connect() nie powiodło się: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() nie powiodło się.\n" +#: ../src/utils/pacat.c:1072 +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_rttime_new() nie powiodło się." -#: ../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() nie powiodło się.\n" +#: ../src/utils/pacat.c:1079 +msgid "pa_mainloop_run() failed." +msgstr "pa_mainloop_run() nie powiodło się." #: ../src/utils/pasuspender.c:81 #, c-format @@ -1719,6 +1570,11 @@ msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "" "OSTRZEŻENIE: serwer dźwięku nie jest lokalny, nie zostanie wstrzymany.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Połączenie nie powiodło się: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1758,6 +1614,21 @@ msgstr "" "Skompilowane za pomocą libpulse %s\n" "Skonsolidowane za pomocą libpulse %s\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "pa_mainloop_new() nie powiodło się.\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() nie powiodło się.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() nie powiodło się.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -1853,14 +1724,14 @@ msgstr "" "\t\t%s\n" #: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 -#, fuzzy, c-format +#, c-format msgid "\tPorts:\n" -msgstr "\tProfile:\n" +msgstr "\tPorty:\n" #: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 -#, fuzzy, c-format +#, c-format msgid "\tActive Port: %s\n" -msgstr "\tAktywny profil: %s\n" +msgstr "\tAktywny port: %s\n" #: ../src/utils/pactl.c:290 #, c-format @@ -2115,7 +1986,7 @@ msgid "Premature end of file\n" msgstr "Przedwczesny koniec pliku\n" #: ../src/utils/pactl.c:826 -#, fuzzy, c-format +#, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2154,6 +2025,8 @@ msgstr "" "%s [opcje] suspend-sink [ODPŁYW] 1|0\n" "%s [opcje] suspend-source [ŹRÓDŁO] 1|0\n" "%s [opcje] set-card-profile [KARTA] [PROFIL] \n" +"%s [opcje] set-sink-port [ODPŁYW] [PORT] \n" +"%s [opcje] set-source-port [ŹRÓDŁO] [PORT] \n" "\n" " -h, --help Wyświetla tę pomoc\n" " --version Wyświetla wersję\n" @@ -2172,6 +2045,11 @@ msgstr "" "Skompilowane za pomocą libpulse %s\n" "Skonsolidowane za pomocą libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, c-format +msgid "Invalid client name '%s'\n" +msgstr "Nieprawidłowa nazwa klienta \"%s\"\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Proszę podać plik próbki do wczytania\n" @@ -2180,6 +2058,10 @@ msgstr "Proszę podać plik próbki do wczytania\n" msgid "Failed to open sound file.\n" msgstr "Otwarcie pliku dźwiękowego nie powiodło się.\n" +#: ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "Ustalenie określenia próbki z pliku nie powiodło się.\n" + #: ../src/utils/pactl.c:951 msgid "Warning: Failed to determine sample specification from file.\n" msgstr "Ostrzeżenie: ustalenie określenia próbki z pliku nie powiodło się.\n" @@ -2227,24 +2109,17 @@ msgid "You have to specify a card name/index and a profile name\n" msgstr "Należy podać nazwę karty/indeks i nazwę profilu\n" #: ../src/utils/pactl.c:1073 -#, fuzzy msgid "You have to specify a sink name/index and a port name\n" -msgstr "Należy podać nazwę karty/indeks i nazwę profilu\n" +msgstr "Należy podać nazwę odpływu/indeks i nazwę portu\n" #: ../src/utils/pactl.c:1084 -#, fuzzy msgid "You have to specify a source name/index and a port name\n" -msgstr "Należy podać nazwę karty/indeks i nazwę profilu\n" +msgstr "Należy podać nazwę źródła/indeks i nazwę portu\n" #: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Nie podano prawidłowego polecenia.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "pa_context_connect() nie powiodło się: %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2363,11 +2238,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Nie można uzyskać dostępu do blokady automatycznego wznawiania." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2384,7 +2259,7 @@ msgstr "" "Wybudzono za pomocą ustawienia POLLOUT - ale jednoczesne wywołanie " "snd_pcm_avail() zwróciło zero lub inną wartość < min_avail." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2402,15 +2277,15 @@ msgstr "" "snd_pcm_avail() zwróciło zero lub inną wartość < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Wyłącz" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "Odtwarzanie o wysokiej dokładności (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Duplex telefoniczny (HSP/HFP)" @@ -2418,44 +2293,60 @@ msgstr "Duplex telefoniczny (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "Serwer dźwięku PulseAudio" -#~ msgid "Analog Mono" -#~ msgstr "Analogowe mono" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Nie można połączyć się z magistralą systemową: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Nie można uzyskać obiektu caller z PID: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Nie można ustawić UID obiektu caller." -#~ msgid "Analog Stereo" -#~ msgstr "Analogowe stereo" +#~ msgid "Failed to get CK session." +#~ msgstr "Uzyskanie sesji CK nie powiodło się." -#~ msgid "Digital Stereo (IEC958)" -#~ msgstr "Cyfrowe stereo (IEC958)" +#~ msgid "Cannot set UID on session object." +#~ msgstr "Nie można ustawić UID obiektowi sesji." -#~ msgid "Digital Stereo (HDMI)" -#~ msgstr "Cyfrowe stereo (HDMI)" +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Nie można przydzielić PolKitAction." -#~ msgid "Analog Surround 4.0" -#~ msgstr "Analogowe surround 4.0" +#~ msgid "Cannot set action_id" +#~ msgstr "Nie można ustawić action_id" -#~ msgid "Digital Surround 4.0 (IEC958/AC3)" -#~ msgstr "Cyfrowe surround 4.0 (IEC958/AC3)" +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Nie można przydzielić PolKitContext." -#~ msgid "Analog Surround 4.1" -#~ msgstr "Analogowe surround 4.1" +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Nie można zainicjować PolKitContext: %s" -#~ msgid "Analog Surround 5.0" -#~ msgstr "Analogowe surround 5.0" +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Nie można ustalić, czy obiekt caller jest upoważniony: %s" -#~ msgid "Analog Surround 5.1" -#~ msgstr "Analogowe surround 5.1" +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Nie można uzyskać upoważnienia: %s" -#~ msgid "Digital Surround 5.1 (IEC958/AC3)" -#~ msgstr "Cyfrowe surround 5.1 (IEC958/AC3)" +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit zwróciło \"%s\"" -#~ msgid "Analog Surround 7.1" -#~ msgstr "Analogowe surround 7.1" +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Szeregowanie o wysokim priorytecie (ujemny poziom nice Uniksa) dla demona " +#~ "PulseAudio" -#~ msgid "Output %s + Input %s" -#~ msgstr "Wyjście %s + wejście %s" +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Szeregowanie w czasie rzeczywistym dla demona PulseAudio" -#~ msgid "Output %s" -#~ msgstr "Wyjście %s" +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "Polityka systemu uniemożliwia PulseAudio uzyskanie szeregowania o wysokim " +#~ "priorytecie." -#~ msgid "Input %s" -#~ msgstr "Wejście %s" +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "Polityka systemu uniemożliwia PulseAudio uzyskanie szeregowania w czasie " +#~ "rzeczywistym." diff --git a/po/pt.po b/po/pt.po index b44d622d..e077d093 100644 --- a/po/pt.po +++ b/po/pt.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: \n" "Last-Translator: Rui Gouveia \n" "Language-Team: pt \n" @@ -12,7 +12,12 @@ msgstr "" "X-Poedit-Language: Portuguese\n" "X-Poedit-Country: PORTUGAL\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, fuzzy, c-format +msgid "%s %s" +msgstr "%s %s" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -25,7 +30,7 @@ msgstr "" "Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este " "problema aos programadores do ALSA." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -38,7 +43,7 @@ msgstr "" "Provavelmente isto é um erro no driver ALSA '%s'. Por favor, reporte este " "problema aos programadores do ALSA." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -52,8 +57,9 @@ msgstr "" "problema aos programadores do ALSA." #: ../src/modules/module-ladspa-sink.c:49 +#, fuzzy msgid "Virtual LADSPA sink" -msgstr "" +msgstr "Alarme virtual" #: ../src/modules/module-ladspa-sink.c:53 msgid "" @@ -64,7 +70,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Áudio Interno" @@ -84,220 +90,92 @@ msgstr "Não foi possível alocar o novo carregador \"dl\"." msgid "Failed to add bind-now-loader." msgstr "Não foi possível adicionar \"bind-now-loader\"." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Incapaz de se ligar ao bus de sistema: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Não foi possível obter chamador a partir do PID: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Não foi possível definir o UID no objecto chamador." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Falha ao obter sessão CK." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Não foi possível definir o UID no objecto da sessão." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Não é possível alocar PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "impossível definir action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Não é possível alocar contexto PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Incapaz de inicializar o PolKitContext: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Não foi possível determinar se o chamador está autorizado: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Não foi possível obter autenticação: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit respondeu com '%s'" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Foi obtido o sinal %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "A sair." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Falha ao procurar o utilizador '%s'." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Falha ao procurar o grupo '%s'." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, 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:201 +#: ../src/daemon/main.c:204 #, 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:206 +#: ../src/daemon/main.c:209 #, 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:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Falha ao criar o '%s': %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Falhou a alteração da lista de grupos: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Não foi possível mudar o GID: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Não foi possível mudar o UID: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Privilégios de root cedidos com sucesso." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "Modo de sistema não suportado nesta plataforma." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) falhou: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Não foi possível processar linha de comando." -#: ../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: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:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "" -"O PolicyKit permite-nos o privilégio \"acquire-high-priority\" (adquirir " -"alta prioridade)." - -#: ../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)." - -#: ../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)." - -#: ../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)." - -#: ../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." -msgstr "" - -#: ../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:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO aumentado com sucesso" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO falhou: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "A desistir de CAP_NICE" - -#: ../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:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Serviço não está a executar" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Serviço a executar como PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Tentativa de matar serviço falhou: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -305,154 +183,154 @@ 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:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "São necessários privilégios de root." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start não é suportado para instâncias do sistema." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 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:737 +#: ../src/daemon/main.c:583 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!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 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:745 +#: ../src/daemon/main.c:591 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!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Não foi possível adquirir o stdio." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "pipe falhou: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() falhou: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() falhou: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Arranque do serviço falhou." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Arranque do serviço sucedeu." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Isto é PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Máquina de compilação: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS utilizadas na compilação: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "A executar na máquina: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "Foram encontrados %u CPUs." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "Tamanho da página é %lu bytes" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Compilado com suporte para Valgrind: sim" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Compilado com suporte para Valgrind: não" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "A executar em modo \"valgrind\": %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Optimizado: sim" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Compilação optimizada: não" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definido, todas as declarações desactivadas." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH definido, apenas as declarações \"fast path\" desactivadas." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Todas as declarações desactivadas." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "A tentativa de ler o ID da máquina falhou" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "O ID da máquina é %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." -msgstr "O ID da máquina é %s." +msgstr "A sessão está fechada" -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Execução a utilizar o directório %s" -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "A manter o estado no directório %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Execução em modo de sistema: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -462,15 +340,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() falhou." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Timer \"frescos\" de alta resolução disponíveis. Bom apetite!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -478,32 +356,32 @@ 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:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() falhou." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Falha ao inicializar serviço." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 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:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Arranque do serviço completo." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Encerramento do serviço iniciado." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Serviço terminado." #: ../src/daemon/cmdline.c:115 -#, fuzzy, c-format +#, c-format msgid "" "%s [options]\n" "\n" @@ -596,7 +474,7 @@ msgstr "" "\n" "OPTIONS:\n" " --system[=BOOL] Executa em modo de sistema\n" -" -D, --daemonize[=BOOL] Passa serviço depois de executar\n" +" -D, --daemonize[=BOOL] Passa a 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" @@ -647,15 +525,14 @@ msgstr "" "partilhada.\n" "\n" "STARTUP SCRIPT:\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" -" after startup\n" +" -L, --load=\"MODULE ARGUMENTS\" Carrega o módulo especificado com\n" +" o argumento especificado\n" +" -F, --file=FILENAME Executa o script especificado\n" +" -C Abre uma linha de comando no TTY " +"(consola) em execução\n" +" depois do arranque\n" "\n" -" -n Don't load default script file\n" +" -n Não carrega o script por omissão\n" #: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" @@ -760,9 +637,9 @@ msgid "Load Once: %s\n" msgstr "Carregar Uma Vez: %s\n" #: ../src/daemon/dumpmodules.c:75 -#, c-format +#, fuzzy, c-format msgid "DEPRECATION WARNING: %s\n" -msgstr "" +msgstr "Aviso de Impressão" #: ../src/daemon/dumpmodules.c:79 #, c-format @@ -780,9 +657,9 @@ msgid "[%s:%u] Invalid log level '%s'." msgstr "[%s:%u] Nível do ficheiro de registo inválido '%s'." #: ../src/daemon/daemon-conf.c:248 -#, c-format +#, fuzzy, c-format msgid "[%s:%u] Invalid resample method '%s'." -msgstr "" +msgstr "nome do método de acesso" #: ../src/daemon/daemon-conf.c:271 #, c-format @@ -800,19 +677,19 @@ msgid "[%s:%u] Invalid sample format '%s'." msgstr "[%s:%u] Formato da amostra inválido '%s'." #: ../src/daemon/daemon-conf.c:312 -#, c-format +#, fuzzy, c-format msgid "[%s:%u] Invalid sample rate '%s'." -msgstr "" +msgstr "Taxa de amostragem em kHz" #: ../src/daemon/daemon-conf.c:336 -#, c-format +#, fuzzy, c-format msgid "[%s:%u] Invalid sample channels '%s'." -msgstr "" +msgstr "Número de canais de audio" #: ../src/daemon/daemon-conf.c:354 -#, c-format +#, fuzzy, c-format msgid "[%s:%u] Invalid channel map '%s'." -msgstr "" +msgstr "Activar mapa de _radar" #: ../src/daemon/daemon-conf.c:372 #, c-format @@ -839,20 +716,18 @@ msgid "" "The specified default channel map has a different number of channels than " "the specified default number of channels." msgstr "" +"O mapa de canais especificado tem um número de canais diferente do número de " +"canais definido por omissão." #: ../src/daemon/daemon-conf.c:616 #, c-format msgid "### Read from configuration file: %s ###\n" msgstr "### Ler configuração a partir do ficheiro: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "A largar privilégios de root." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "" - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "Sistema de Som PulseAudio" @@ -861,24 +736,6 @@ msgstr "Sistema de Som PulseAudio" 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" -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -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." -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1251,183 +1108,187 @@ msgstr "Não foi possível processar dados da cookie" msgid "Failed to open configuration file '%s': %s" msgstr "Falha ao abrir ficheiro de configuração '%s': %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Nenhuma cookie carregada. A tentar ligar sem cookie." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Recebida mensagem para extensão desconhecida '%s'" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Falhou ao esvaziar fluxo: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" -msgstr "" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." +msgstr "O álbum do fluxo actual." -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" -msgstr "" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." +msgstr "Ligação ao Servidor Recusada" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() falhou: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() falhou: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() falhou: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Fluxo criado com sucesso.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() falhou: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Métricas do Buffer: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Métricas do Buffer: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" -msgstr "" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." +msgstr "Utilizando especificação da amostra '%s'\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "Ligado ao dispositivo %s (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Erro de fluxo: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" -msgstr "" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" +msgstr "Nenhum dispositivo configurado" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" -msgstr "" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" +msgstr "Nenhum dispositivo configurado" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "Fluxo com falta de dados.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "Fluxo com excesso de dados.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "Fluxo iniciado.%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" -msgstr "" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" +msgstr "Ligado ao dispositivo %s (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "negação" -#: ../src/utils/pacat.c:378 +#: ../src/utils/pacat.c:383 #, c-format -msgid "Stream buffer attributes changed.%s \n" +msgid "Stream buffer attributes changed.%s" msgstr "" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "Ligação Estabelecida.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() falhou: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() falhou: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() falhou: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Ligação falhou: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Obtive EOF.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() falhou: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "Obtive EOF.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() falhou: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "Recebido sinal, a sair.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Falhou a obtenção da latência: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, 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:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() falhou: %s\n" #: ../src/utils/pacat.c:605 @@ -1497,97 +1358,104 @@ msgid "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" msgstr "" +"pacat %s\n" +"Compilado com libpulse %s\n" +"Ligado com libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" -msgstr "Método de resample inválido '%s'." +msgid "Invalid client name '%s'" +msgstr "Nome de máquina inválido" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" -msgstr "Método de resample inválido '%s'." +msgid "Invalid stream name '%s'" +msgstr "Nome de máquina inválido" #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" -msgstr "" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" +msgstr "Mapa de canais inválido '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Especificação da latência inválida '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" -msgstr "" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" +msgstr "Especificação da infra-estrutura da impressora inválida: %1" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" -msgstr "Método de resample inválido '%s'." +msgid "Invalid property '%s'" +msgstr "Tipo de propriedade inválido %s para propriedade %s" #: ../src/utils/pacat.c:878 -#, c-format +#, fuzzy, c-format msgid "Unknown file format %s." -msgstr "" +msgstr "Formato de ficheiro desconhecido" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "Especificação da amostra inválida\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "demasiados argumentos.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." 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" +msgid "Failed to open audio file." +msgstr "Falha ao abrir ficheiro temporário" #: ../src/utils/pacat.c:956 msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" +"specification from file." msgstr "" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." 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 "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "não foi possível obter informações da amostra: %s\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" -msgstr "" +#, fuzzy +msgid "Channel map doesn't match sample specification" +msgstr "Mapa de canais não corresponde com ficheiro.\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" +msgid "Warning: failed to write channel map to file." msgstr "" #: ../src/utils/pacat.c:1005 #, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "" #: ../src/utils/pacat.c:1006 @@ -1598,35 +1466,34 @@ msgstr "a gravar" msgid "playback" msgstr "reprodução" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() falhou.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() falhou.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() falhou.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() falhou: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() falhou.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "não foi possível obter o novo contexto.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() falhou.\n" #: ../src/utils/pasuspender.c:81 @@ -1654,6 +1521,11 @@ 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:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Ligação falhou: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1684,6 +1556,21 @@ msgid "" "Linked with libpulse %s\n" msgstr "" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() falhou.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() falhou.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -1758,7 +1645,7 @@ 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" +msgstr "MÁQUINA:PORTO" #: ../src/utils/pactl.c:290 #, c-format @@ -1853,9 +1740,10 @@ msgid "\tActive Profile: %s\n" msgstr "\tPerfil Activo: %s\n" #: ../src/utils/pactl.c:489 -#, c-format +#, fuzzy, c-format msgid "Failed to get sink input information: %s\n" msgstr "" +"Não foi possível obter informações sobre o Método de Introdução de Dados" #: ../src/utils/pactl.c:508 #, c-format @@ -1976,6 +1864,11 @@ msgstr "" "Compilado com libpulse %s\n" "Linkado com libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Nome de máquina inválido" + #: ../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" @@ -1984,6 +1877,11 @@ msgstr "Por favor, especifique um ficheiro de amostra para carregar\n" msgid "Failed to open sound file.\n" msgstr "Falha ao abrir ficheiro de som.\n" +#: ../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/pactl.c:951 msgid "Warning: Failed to determine sample specification from file.\n" msgstr "" @@ -2046,11 +1944,6 @@ msgstr "Tem de especificar um nome/índice de carta e um nome de perfil\n" 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 "" @@ -2160,11 +2053,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Impossível aceder ao lock \"autospawn\"." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2181,7 +2074,7 @@ msgstr "" "Fomos acordados pelo conjunto POLLOUT -- contudo uma chamada a seguir de " "snd_pcm_avail() retornou 0 ou outro valor < min_avail." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2199,15 +2092,15 @@ msgstr "" "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 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Desligado" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "Reprodução Alta Fidelidade (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Telefonia Duplex (HSP/HFP)" @@ -2215,6 +2108,71 @@ msgstr "Telefonia Duplex (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "Servidor de Som PulseAudio" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Incapaz de se ligar ao bus de sistema: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Não foi possível obter chamador a partir do PID: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Não foi possível definir o UID no objecto chamador." + +#~ msgid "Failed to get CK session." +#~ msgstr "Falha ao obter sessão CK." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "Não foi possível definir o UID no objecto da sessão." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Não é possível alocar PolKitAction." + +#~ msgid "Cannot set action_id" +#~ msgstr "impossível definir action_id" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Não é possível alocar contexto PolKitContext." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Incapaz de inicializar o PolKitContext: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Não foi possível determinar se o chamador está autorizado: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Não foi possível obter autenticação: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit respondeu com '%s'" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Escalonamento de alta-prioridade (nível 'nice' negativo em Unix) para o " +#~ "serviço PulseAudio" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Escalonamento em tempo-real para o serviço PulseAudio" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "Politica do sistema impede o PulseAudio de obter escalonamento de alta-" +#~ "prioridade." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "Politica do sistema impede o PulseAudio de obter escalonamento de tempo-" +#~ "real." + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() falhou: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "Impossível ligar ao servidor." + #~ msgid "Analog Mono" #~ msgstr "Mono Analógico" @@ -2248,6 +2206,60 @@ msgstr "Servidor de Som PulseAudio" #~ msgid "Analog Surround 7.1" #~ msgstr "Analog Surround 7.1" +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "Estamos no grupo '%s', permitindo escalonamento de alta-prioridade." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "Estamos no grupo '%s', permitindo escalonamento em tempo real." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "" +#~ "O PolicyKit permite-nos o privilégio \"acquire-high-priority\" (adquirir " +#~ "alta prioridade)." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "" +#~ "O PolicyKit recusa-nos o privilégio \"acquire-high-priority\" (adquirir " +#~ "alta prioridade)." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "" +#~ "O PolicyKit permite-nos o privilégio \"acquire-real-time\" (adquirir " +#~ "tempo real)." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "" +#~ "O PolicyKit recusa-nos o privilégio \"acquire-real-time\" (adquirir tempo " +#~ "real)." + +#~ 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." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO aumentado com sucesso" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO falhou: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "A desistir de CAP_NICE" + +#~ 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." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Capacidades limitadas com sucesso em CAP_SYS_NICE." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() falhou.\n" + #~ msgid "Stream successfully created\n" #~ msgstr "Fluxo criado com sucesso\n" @@ -2266,12 +2278,12 @@ msgstr "Servidor de Som PulseAudio" #~ "Compilado com libpulse %s\n" #~ "Linkado com libpulse %s\n" +#~ msgid "Invalid channel map\n" +#~ msgstr "Mapa de canais inválido\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" diff --git a/po/pt_BR.po b/po/pt_BR.po index fd4f5391..323e5b94 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1,498 +1,367 @@ -# Brazilian Translation of PulseAudio -# Copyright (C) 2008 pulseaudio +# Brazilian Portuguese translation of PulseAudio +# Copyright (C) 2008,2009 pulseaudio # This file is distributed under the same license as the pulseaudio package. # Fabian Affolter , 2008. +# Igor Pires Soares , 2009. # msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \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 \n" +"POT-Creation-Date: 2009-08-08 14:46+0000\n" +"PO-Revision-Date: 2009-08-08 19:02-0300\n" +"Last-Translator: Igor Pires Soares \n" "Language-Team: Brazilian-Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Poedit-Language: Brazilian Portuguese\n" +"X-Poedit-Language: Portuguese\n" "X-Poedit-Country: Brazil\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 +#: ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "%s %s" + +#: ../src/modules/alsa/alsa-util.c:1023 #, 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 "" +"O snd_pcm_avail() retornou um valor que é excepcionalmente grande: %lu bytes (%lu ms).\n" +"É mais provável que isso seja um erro no driver \"%s\" do ALSA. Por favor, relate esse problema aos desenvolvedores do ALSA." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, 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 "" +"O snd_pcm_delay() retornou um valor que é excepcionalmente grande: %li bytes (%s%lu ms).\n" +"É mais provável que isso seja um erro no driver \"%s\" do ALSA. Por favor, relate esse problema aos desenvolvedores do ALSA." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, 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 "" +"O snd_pcm_mmap_begin() retornou um valor que é excepcionalmente grande: %lu bytes (%lu ms).\n" +"É mais provável que isso seja um erro no driver \"%s\" do ALSA. Por favor, relate esse problema aos desenvolvedores do ALSA." #: ../src/modules/module-ladspa-sink.c:49 msgid "Virtual LADSPA sink" -msgstr "" +msgstr "Destino Virtual LADSPA" #: ../src/modules/module-ladspa-sink.c:53 -msgid "" -"sink_name= sink_properties= " -"master= format= rate= " -"channels= channel_map= plugin= label= control=" -msgstr "" +msgid "sink_name= sink_properties= master= format= rate= channels= channel_map= plugin= label= control=" +msgstr "sink_name= sink_properties= master= format= rate= channels= channel_map= plugin= label= control=" -#: ../src/pulsecore/sink.c:2394 -#, fuzzy +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" -msgstr "Erro interno" +msgstr "Áudio interno" #: ../src/pulsecore/sink.c:2400 msgid "Modem" -msgstr "" +msgstr "Modem" #: ../src/daemon/ltdl-bind-now.c:124 -#, fuzzy msgid "Failed to find original lt_dlopen loader." -msgstr "Falha em encontrar o carregador original dlopen" +msgstr "Falha ao localizar o carregador original lt_dlopen." #: ../src/daemon/ltdl-bind-now.c:129 -#, fuzzy msgid "Failed to allocate new dl loader." -msgstr "Falha em encontrar o carregador original dlopen" +msgstr "Falha ao alocar o novo carregador dl." #: ../src/daemon/ltdl-bind-now.c:142 msgid "Failed to add bind-now-loader." msgstr "Falha em adicionar o bind-now-loader." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Não foi possível conectar com o barramento do sistema: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Não foi possível obter quem chamou pelo PID: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Não foi possível definir o UID sobre o objeto que chamou." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Falha em obter a sessão CK." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Não foi possível definir o UID do objeto da sessão." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Não foi possível alocar o PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Não foi possível definir a action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Não foi possível alocar o PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Não foi possível iniciar o PolKitContext: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Não foi possível determinar se o solicitante está autorizado: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Não foi possível obter auth: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit respondeu com '%s'" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Sinal %s recebido." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Saindo." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Falha em encontrar o usuário '%s'." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Falha em encontrar o grupo '%s'." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Usuário '%s' (UID %lu) e grupo '%s' (GID %lu) encontrados." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "O GID do usuário'%s' e do grupo '%s' não combinam." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "O diretório Home do usuário '%s' não é '%s', ignorando." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 +#: ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Falha em criar '%s': %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Falha em alterar a lista de grupos: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Falha em mudar o GID: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Falha em mudar o UID: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Os privilégios do root foram retirados com sucesso." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "O modo ampliado do sistema não tem suporte nessa plataforma." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) falhou: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Falha em interpretar a linha de comando." -#: ../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: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:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "O PolicyKit assegura-nos a aquisição de privilégio de alta prioridade." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "O PolicyKit recusa a aquisição de privilégios de alta prioridade." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "O PolicyKit assegura-nos a aquisição de privilégios de tempo-real." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "O PolicyKit recusa a aquisição de privilégios de tempo real." - -#: ../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." -msgstr "" - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"O escalonamento de alta prioridade foi habilitado para esta configuração, " -"mas não é permitida pela política." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "RLIMIT_RTPRIO aumentado com sucesso" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO falhou: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Abandonando CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"O escalonamento de tempo real foi habilitado pela configuração, mas não é " -"permitido pela política." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "O daemon não está em execução" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Daemon executando como PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Falha em encerrar o daemon: %s" -#: ../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 é para ser executado como root (a não ser que --system " -"seja especificado)." +#: ../src/daemon/main.c:568 +msgid "This program is not intended to be run as root (unless --system is specified)." +msgstr "Este programa não é para ser executado como root (a não ser que --system seja especificado)." -#: ../src/daemon/main.c:724 -#, fuzzy +#: ../src/daemon/main.c:570 msgid "Root privileges required." -msgstr "Privilégios de rot são requeridos." +msgstr "Privilégios de root requeridos." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start não tem suporte para instâncias de sistemas." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "Executando em no modo system, mas --disallow-exit não foi configurado!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" -msgstr "" -"Executando no modo system, mas --disallow-module-loading não foi configurado!" +msgstr "Executando no modo system, mas --disallow-module-loading não foi configurado!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Executando no modo system, desabilitando forçadamente o modo SHM!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" -msgstr "" -"Executando no modo system, desabilitando forçadamente o exit idle time!" +msgstr "Executando no modo system, desabilitando forçadamente o exit idle time!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Falha em adquirir o stdio." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "O pipe falhou: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "O fork() falhou: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 +#: ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "A operação read() falhou: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Falha na partida do daemon." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Os daemons foram iniciados com sucesso." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Este é o PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Host de compilação: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "Compilação CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Executando no host: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." -msgstr "" +msgstr "%u CPUs localizadas." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "O tamanho da página é %lu bytes" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Compilado com suporte do Valgrind: sim" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Compilado com suporte do Valgrind: não" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Executando em modo valgrind: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Build otimizado: sim" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Build otimizado: não" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." -msgstr "" +msgstr "NDEBUG definido, todas as declarações desabilitadas." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." -msgstr "" +msgstr "FASTPATH definido, somente as declarações do \"fast path\" foram desabilitadas." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." -msgstr "" +msgstr "Todas as declarações habilitadas." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Falha em obter o ID da máquina" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "A ID da máquina é %s." -#: ../src/daemon/main.c:917 -#, fuzzy, c-format +#: ../src/daemon/main.c:770 +#, c-format msgid "Session ID is %s." -msgstr "A ID da máquina é %s." +msgstr "O ID da sessão é %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Usando o diretório de runtime %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Usando o diretório de estado %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Executando em modo do sistema: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 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." +"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 "" +"OK, então você está executando o PA no modo de sistema. Por favor, note que é mais provável que você não deveria estar fazendo isso.\n" +"Todavia, se você o fizer, então a culpa será sua se as coisas não funcionarem como esperado.\n" +"Por favor, leia o http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode para obter um explicação sobre porque o modo de sistema é uma má idéia." -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() falhou." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Timers de alta resolução frequinhos disponíveis! Bon appetit!" -#: ../src/daemon/main.c:963 -msgid "" -"Dude, your kernel stinks! The chef's recommendation today is Linux with high-" -"resolution timers enabled!" -msgstr "" -"Cara, teu kernel fede! A recomendação do chef hoje é Linux com timers de " -"alta resolução habilitados!" +#: ../src/daemon/main.c:816 +msgid "Dude, your kernel stinks! The chef's recommendation today is Linux with high-resolution timers enabled!" +msgstr "Cara, teu kernel fede! A recomendação do chef hoje é Linux com timers de alta resolução habilitados!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() falhou." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Falha em iniciar o daemon." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." -msgstr "" -"O Daemon iniciou sem qualquer módulo carregado, recusando-se a trabalhar." +msgstr "O Daemon iniciou sem qualquer módulo carregado, recusando-se a trabalhar." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "A partida dos Daemon está completa." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "O encerramento do Daemon foi iniciado." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Daemon terminado." #: ../src/daemon/cmdline.c:115 -#, fuzzy, c-format +#, c-format msgid "" "%s [options]\n" "\n" @@ -502,48 +371,37 @@ 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" @@ -554,12 +412,10 @@ 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" @@ -570,74 +426,56 @@ msgstr "" " -h, --help Mostra esta ajuda\n" " --version Mostra a versão\n" " --dump-conf Descarrega a configuração padrão\n" -" --dump-modules Descarrega a lista de módulos " -"disponíveis\n" -" --dump-resample-methods Descarrega os métodos de " -"reamostragem (resample)\n" -" --cleanup-shm Limpa os segmentos de memória " -"compartilhados\n" -" --start Inicia o daemon se ele não estiver " -"em execução\n" +" --dump-modules Descarrega a lista de módulos disponíveis\n" +" --dump-resample-methods Descarrega os métodos de reamostragem\n" +" --cleanup-shm Limpa os segmentos de memória compartilhados\n" +" --start Inicia o daemon se ele não estiver em execução\n" " -k --kill Encerra um daemon em execução\n" -" --check Verifica um daemon em execução\n" +" --check Verifica se há um daemon em execução (somente retorna o código de saída)\n" "\n" "OPÇÕES:\n" -" --system[=BOOL] Executa como uma instância do " -"sistema em escala ampla \n" -" -D, --daemonize[=BOOL] Torna um daemom (daemonize) depois " -"da partida\n" +" --system[=BOOL] Executa como uma instância do sistema em escala ampla\n" +" -D, --daemonize[=BOOL] Torna-se um daemom após o início\n" " --fail[=BOOL] Sai quando a partida falha\n" " --high-priority[=BOOL] Tenta definir um nível alto de nice\n" " (disponível apenas, quando SUID ou\n" " com RLIMIT_NICE) elevado\n" -" --realtime[=BOOL] Tenta habilidar o escalonamento em " -"tempo real\n" -" (disponível apenas como root, quando " -"SUID ou\n" +" --realtime[=BOOL] Tenta habilitar o escalonamento em tempo real\n" +" (disponível apenas como root, quando SUID ou\n" " com RLIMIT_RTPRIO) elevado\n" -" --disallow-module-loading[=BOOL] Não permite carga/descarga de módulo " -"requerido pelo usuário\n" +" --disallow-module-loading[=BOOL] Não permite carga/descarga de módulo requerido pelo usuário\n" " depois da partida\n" -" --disallow-exit[=BOOL] Não permite saída requisitada pelo " -"usuário\n" -" --exit-idle-time=SECS Termina um daemon quando ocioso e " -"este\n" -" tempo foi decorrido\n" -" --module-idle-time=SECS Descarrega os modulos " -"autocarregáveis quando ociosos e\n" +" --disallow-exit[=BOOL] Não permite saída requisitada pelo usuário\n" +" --exit-idle-time=SECS Termina um daemon quando ocioso e este\n" " tempo foi decorrido\n" -" --scache-idle-time=SECS Descarrega amostras quando ociosas " -"e\n" -" este tempo tenha passado\n" -" --log-level[=LEVEL] Aumenta ou define o grau de " -"verbosidade\n" -" -v Aumenta o nível de verbosidade\n" -" --log-target={auto,syslog,stderr} Especifica o alvo do log\n" -" -p, --dl-search-path=PATH Define o caminho de busca (search " -"paht)para objetos (plugins)\n" -" dinamicamente commpartilhados\n" -" --resample-method=METHOD Usa o método de reamostragem " -"especificado\n" +" --module-idle-time=SECS Descarrega os módulos autocarregáveis quando ociosos e\n" +" este tempo foi decorrido\n" +" --scache-idle-time=SECS Descarrega amostras quando ociosas e\n" +" este tempo foi decorrido\n" +" --log-level[=LEVEL] Aumenta ou define o grau de detalhamento\n" +" -v Aumenta o nível de detalhamento\n" +" --log-target={auto,syslog,stderr} Especifica o destino do log\n" +" --log-meta[=BOOL] Inclui a localização do código na mensagem de log\n" +" --log-time[=BOOL] Inclui carimbos de hora nas mensagens de log\n" +" --log-backtrace=FRAMES Inclui um backtrace na mensagem de log\n" +" -p, --dl-search-path=PATH Define o caminho de pesquisa para objetos (plugins)\n" +" dinamicamente compartilhados\n" +" --resample-method=METHOD Usa o método de reamostragem especificado\n" " (Veja --dump-resample-methods para\n" " valores possíveis)\n" -" --use-pid-file[=BOOL] Cria um arquivo PID file\n" -" --no-cpu-limit[=BOOL] Não instala um limitador de carga de " -"CPU load em\n" +" --use-pid-file[=BOOL] Cria um arquivo PID\n" +" --no-cpu-limit[=BOOL] Não instala um limitador de carga de CPU em\n" " plataformas que o suportem.\n" -" --disable-shm[=BOOL] Desabilita o suporte a memória " -"compartilhada.\n" +" --disable-shm[=BOOL] Desabilita o suporte à memória compartilhada.\n" "\n" -"STARTUP SCRIPT:\n" -" -L, --load=\"MODULE ARGUMENTS\" Carrega um plugin especificado " -"com\n" +"SCRIPT DE INÍCIO:\n" +" -L, --load=\"ARGUMENTOS DO MÓDULO\" Carrega um plugin especificado com\n" " o argumento especificado\n" -" -F, --file=FILENAME Executa o script especificado\n" -" -C Abre uma linha de comando no TTY em " -"execução\n" +" -F, --file=NOME_DO_ARQUIVO Executa o script especificado\n" +" -C Abre uma linha de comando no TTY em execução\n" " depois da partida\n" "\n" -" -n Não carrega o arquivo de script " -"padrão\n" +" -n Não carrega o arquivo de script padrão\n" #: ../src/daemon/cmdline.c:247 msgid "--daemonize expects boolean argument" @@ -648,12 +486,8 @@ msgid "--fail expects boolean argument" msgstr "--fail espera argumento booleano" #: ../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 em nível de log (seja numérico na faixa de " -"0..4 seja algum entre debug, info, notice, warn, error)." +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 em nível de log (seja numérico na faixa de 0..4 seja algum entre debug, info, notice, warn, error)." #: ../src/daemon/cmdline.c:276 msgid "--high-priority expects boolean argument" @@ -668,9 +502,8 @@ msgid "--disallow-module-loading expects boolean argument" msgstr "--disallow-module-loading espera um argumento booleano" #: ../src/daemon/cmdline.c:297 -#, fuzzy msgid "--disallow-exit expects boolean argument" -msgstr "--disallow-exit argumento booleano" +msgstr "--disallow-exit espera um argumento booleano" #: ../src/daemon/cmdline.c:304 msgid "--use-pid-file expects boolean argument" @@ -681,14 +514,12 @@ msgid "Invalid log target: use either 'syslog', 'stderr' or 'auto'." msgstr "Log target inválido: use 'syslog', 'stderr' ou 'auto'." #: ../src/daemon/cmdline.c:328 -#, fuzzy msgid "--log-time expects boolean argument" -msgstr "--realtime espera um argumento booleano" +msgstr "--log-time espera um argumento booleano" #: ../src/daemon/cmdline.c:335 -#, fuzzy msgid "--log-meta expects boolean argument" -msgstr "--disallow-exit argumento booleano" +msgstr "--log-meta espera um argumento booleano" #: ../src/daemon/cmdline.c:354 #, c-format @@ -745,7 +576,7 @@ msgstr "Carrega uma vez: %s\n" #: ../src/daemon/dumpmodules.c:75 #, c-format msgid "DEPRECATION WARNING: %s\n" -msgstr "" +msgstr "AVISO DE OBSOLESCÊNCIA: %s\n" #: ../src/daemon/dumpmodules.c:79 #, c-format @@ -793,9 +624,9 @@ msgid "[%s:%u] Invalid sample channels '%s'." msgstr "[%s:%u] Canais de amostragem inválidos'%s'." #: ../src/daemon/daemon-conf.c:354 -#, fuzzy, c-format +#, c-format msgid "[%s:%u] Invalid channel map '%s'." -msgstr "[%s:%u] Canais de amostragem inválidos'%s'." +msgstr "[%s:%u] Mapa de canais \"%s\" inválido." #: ../src/daemon/daemon-conf.c:372 #, c-format @@ -818,54 +649,28 @@ msgid "Failed to open configuration file: %s" msgstr "Falha em abrir o arquivo de configuração: %s" #: ../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 "" +msgid "The specified default channel map has a different number of channels than the specified default number of channels." +msgstr "O mapa padrão dos canais especificado tem um número diferente de canais do que o número de canais padrão especificado." #: ../src/daemon/daemon-conf.c:616 #, c-format msgid "### Read from configuration file: %s ###\n" msgstr "### Lido do arquivo de configuração: %s ###\n" -#: ../src/daemon/caps.c:63 -#, fuzzy +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Descartando os privilégios de root." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "As capacidades foram limitadas com sucesso para CAP_SYS_NICE." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" -msgstr "" +msgstr "Sistema de som PulseAudio" #: ../src/daemon/pulseaudio.desktop.in.h:2 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" -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -#, fuzzy -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Falha em cancelar o daemon do PulseAudio." +msgstr "Iniciar o sistema de som PulseAudio" -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -#, fuzzy -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "Estamos no grupo '%s', permitindo escalonamento de alta prioridade." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" - -#: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 +#: ../src/pulse/channelmap.c:105 +#: ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1069,35 +874,38 @@ msgstr "Posterior Superior Esquerdo" msgid "Top Rear Right" msgstr "Posterior Superior Direito" -#: ../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 +#: ../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:751 msgid "Stereo" -msgstr "" +msgstr "Stereo" #: ../src/pulse/channelmap.c:756 msgid "Surround 4.0" -msgstr "" +msgstr "Surround 4.0" #: ../src/pulse/channelmap.c:762 msgid "Surround 4.1" -msgstr "" +msgstr "Surround 4.1" #: ../src/pulse/channelmap.c:768 msgid "Surround 5.0" -msgstr "" +msgstr "Surround 5.0" #: ../src/pulse/channelmap.c:774 msgid "Surround 5.1" -msgstr "" +msgstr "Surround 5.1" #: ../src/pulse/channelmap.c:781 msgid "Surround 7.1" -msgstr "" +msgstr "Surround 7.1" #: ../src/pulse/error.c:43 msgid "OK" @@ -1189,42 +997,43 @@ msgstr "Não existe tal extensão" #: ../src/pulse/error.c:65 msgid "Obsolete functionality" -msgstr "" +msgstr "Funcionalidade obsoleta" #: ../src/pulse/error.c:66 msgid "Missing implementation" -msgstr "" +msgstr "Implementação faltando" #: ../src/pulse/error.c:67 msgid "Client forked" -msgstr "" +msgstr "Cliente bifurcado" #: ../src/pulse/sample.c:169 #, c-format msgid "%s %uch %uHz" -msgstr "" +msgstr "%s %uch %uHz" #: ../src/pulse/sample.c:181 #, c-format msgid "%0.1f GiB" -msgstr "" +msgstr "%0.1f GiB" #: ../src/pulse/sample.c:183 #, c-format msgid "%0.1f MiB" -msgstr "" +msgstr "%0.1f MiB" #: ../src/pulse/sample.c:185 #, c-format msgid "%0.1f KiB" -msgstr "" +msgstr "%0.1f KiB" #: ../src/pulse/sample.c:187 #, c-format msgid "%u B" -msgstr "" +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" @@ -1237,187 +1046,187 @@ msgstr "Falhou ao analisar os dados do cookie" msgid "Failed to open configuration file '%s': %s" msgstr "Falha em abrir o arquivo de configuração '%s': %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Nenhum cookie foi carregado. Tentativa de conexão sem eles." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Foi recebida uma mensagem para uma extensão desconhecida '%s'" -#: ../src/utils/pacat.c:107 +#: ../src/utils/pacat.c:108 #, c-format -msgid "Failed to drain stream: %s\n" -msgstr "Falha em drenar o fluxo: %s\n" +msgid "Failed to drain stream: %s" +msgstr "Falha ao drenar o fluxo: %s" + +#: ../src/utils/pacat.c:113 +msgid "Playback stream drained." +msgstr "Fluxo de reprodução drenado." -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" -msgstr "Drenado o fluxo de playback.\n" +#: ../src/utils/pacat.c:123 +msgid "Draining connection to server." +msgstr "Drenando conexão para o servidor." -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" -msgstr "Drenando a conexão par ao servidor.\n" +#: ../src/utils/pacat.c:136 +#, c-format +msgid "pa_stream_drain(): %s" +msgstr "pa_stream_drain(): %s" -#: ../src/utils/pacat.c:135 +#: ../src/utils/pacat.c:159 #, c-format -msgid "pa_stream_drain(): %s\n" -msgstr "pa_stream_drain(): %s\n" +msgid "pa_stream_write() failed: %s" +msgstr "pa_stream_write() falhou: %s" -#: ../src/utils/pacat.c:158 +#: ../src/utils/pacat.c:197 #, c-format -msgid "pa_stream_write() failed: %s\n" -msgstr "pa_stream_write() falhou: %s\n" +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_begin_write() falhou: %s" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 +#: ../src/utils/pacat.c:237 +#: ../src/utils/pacat.c:267 #, c-format -msgid "pa_stream_peek() failed: %s\n" -msgstr "pa_stream_peek() falhou: %s\n" +msgid "pa_stream_peek() failed: %s" +msgstr "pa_stream_peek() falhou: %s" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" -msgstr "O fluxo (stream) foi criado com sucesso.\n" +#: ../src/utils/pacat.c:307 +msgid "Stream successfully created." +msgstr "Fluxo criado com sucesso." -#: ../src/utils/pacat.c:305 +#: ../src/utils/pacat.c:310 #, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" -msgstr "pa_stream_get_buffer_attr() falhou: %s\n" +msgid "pa_stream_get_buffer_attr() failed: %s" +msgstr "pa_stream_get_buffer_attr() falhou: %s" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:314 #, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -msgstr "Metrica do buffer: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" +msgstr "Métricas do buffer: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" -#: ../src/utils/pacat.c:312 +#: ../src/utils/pacat.c:317 #, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" -msgstr "Métrica do buffer: maxlength=%u, fragsize=%u\n" +msgid "Buffer metrics: maxlength=%u, fragsize=%u" +msgstr "Métricas do buffer: maxlength=%u, fragsize=%u" -#: ../src/utils/pacat.c:316 +#: ../src/utils/pacat.c:321 #, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" -msgstr "Usando a espeficifação de amostragem '%s', mapa do canal '%s'.\n" +msgid "Using sample spec '%s', channel map '%s'." +msgstr "Usando especificação de amostragem \"%s\", mapa de canais \"%s\"." -#: ../src/utils/pacat.c:320 +#: ../src/utils/pacat.c:325 #, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" -msgstr "Conectado ao dispositivo %s (%u, %ssuspended).\n" +msgid "Connected to device %s (%u, %ssuspended)." +msgstr "Conectado ao dispositivo %s (%u, %ssuspended)." -#: ../src/utils/pacat.c:330 +#: ../src/utils/pacat.c:335 #, c-format -msgid "Stream error: %s\n" -msgstr "Erro de fluxo: %s\n" +msgid "Stream error: %s" +msgstr "Erro de fluxo: %s" -#: ../src/utils/pacat.c:340 +#: ../src/utils/pacat.c:345 #, c-format -msgid "Stream device suspended.%s \n" -msgstr "Dispositivo de fluxo suspenso.%s \n" +msgid "Stream device suspended.%s" +msgstr "Dispositivo de fluxo suspenso.%s" -#: ../src/utils/pacat.c:342 +#: ../src/utils/pacat.c:347 #, c-format -msgid "Stream device resumed.%s \n" -msgstr "Dispositivo de fluxo prosseguiu.%s \n" +msgid "Stream device resumed.%s" +msgstr "O dispositivo de fluxo continuou.%s" -#: ../src/utils/pacat.c:350 +#: ../src/utils/pacat.c:355 #, c-format -msgid "Stream underrun.%s \n" -msgstr "Extravazamento do fluxo. %s\n" +msgid "Stream underrun.%s" +msgstr "Subestimação do fluxo.%s" -#: ../src/utils/pacat.c:357 +#: ../src/utils/pacat.c:362 #, c-format -msgid "Stream overrun.%s \n" -msgstr "O fluxo extravazou.%s \n" +msgid "Stream overrun.%s" +msgstr "Superestimação do fluxo.%s" -#: ../src/utils/pacat.c:364 +#: ../src/utils/pacat.c:369 #, c-format -msgid "Stream started.%s \n" -msgstr "O fluxo iniciou: %s\n" +msgid "Stream started.%s" +msgstr "Fluxo iniciado.%s" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 #, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" -msgstr "O fluxo foi movido para o dispositivo %s (%u, %ssuspended).%s \n" +msgid "Stream moved to device %s (%u, %ssuspended).%s" +msgstr "Fluxo movido para o dispositivo %s (%u, %ssuspended).%s" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "não" -#: ../src/utils/pacat.c:378 -#, fuzzy, c-format -msgid "Stream buffer attributes changed.%s \n" -msgstr "Extravazamento do fluxo. %s\n" - -#: ../src/utils/pacat.c:411 +#: ../src/utils/pacat.c:383 #, c-format -msgid "Connection established.%s \n" -msgstr "Conexão estabelecida.%s \n" +msgid "Stream buffer attributes changed.%s" +msgstr "Atributos do buffer de fluxo alterados.%s" -#: ../src/utils/pacat.c:414 +#: ../src/utils/pacat.c:416 #, c-format -msgid "pa_stream_new() failed: %s\n" -msgstr "pa_stream_new() falhou: %s\n" +msgid "Connection established.%s" +msgstr "Conexão estabelecida.%s" -#: ../src/utils/pacat.c:442 +#: ../src/utils/pacat.c:419 #, c-format -msgid "pa_stream_connect_playback() failed: %s\n" -msgstr "pa_stream_connect_playback() falhou: %s\n" +msgid "pa_stream_new() failed: %s" +msgstr "pa_stream_new() falhou: %s" -#: ../src/utils/pacat.c:448 +#: ../src/utils/pacat.c:447 #, c-format -msgid "pa_stream_connect_record() failed: %s\n" -msgstr "pa_stream_connect_record() falhou: %s\n" +msgid "pa_stream_connect_playback() failed: %s" +msgstr "pa_stream_connect_playback() falhou: %s" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 +#: ../src/utils/pacat.c:453 #, c-format -msgid "Connection failure: %s\n" -msgstr "Falha na conexão: %s\n" +msgid "pa_stream_connect_record() failed: %s" +msgstr "pa_stream_connect_record() falhou: %s" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Atingiu EOF.\n" +#: ../src/utils/pacat.c:467 +#, c-format +msgid "Connection failure: %s" +msgstr "Falha na conexão: %s" #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() falhou: %s\n" +msgid "Got EOF." +msgstr "Atingiu EOF." -#: ../src/utils/pacat.c:532 +#: ../src/utils/pacat.c:537 #, c-format -msgid "write() failed: %s\n" -msgstr "write() falhou: %s\n" +msgid "write() failed: %s" +msgstr "write() falhou: %s" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" -msgstr "Sinal recebido, saindo (exiting).\n" +#: ../src/utils/pacat.c:558 +msgid "Got signal, exiting." +msgstr "Sinal recebido, saindo." -#: ../src/utils/pacat.c:567 +#: ../src/utils/pacat.c:572 #, c-format -msgid "Failed to get latency: %s\n" -msgstr "Falhou em obter a latência: %s\n" +msgid "Failed to get latency: %s" +msgstr "Falha ao obter a latência: %s" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Tempo: %0.3f s; Latência: %0.0f us. \r" -#: ../src/utils/pacat.c:592 +#: ../src/utils/pacat.c:595 #, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" -msgstr "Falha em pa_stream_update_timing_info(): %s\n" +msgid "pa_stream_update_timing_info() failed: %s" +msgstr "pa_stream_update_timing_info() falhou: %s" #: ../src/utils/pacat.c:605 -#, fuzzy, c-format +#, c-format msgid "" "%s [options]\n" "\n" @@ -1429,48 +1238,29 @@ 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, " -"s24le, s24be,\n" -" s24-32le, s24-32be (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" -" --property=PROPERTY=VALUE Set the specified property to the " -"specified value.\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" @@ -1481,44 +1271,36 @@ msgstr "" " --version Mostra a versão\n" "\n" " -r, --record Cria uma conexão para gravação\n" -" -p, --playback Cria uma conexão para playback\n" +" -p, --playback Cria uma conexão para reprodução\n" "\n" -" -v, --verbose Habilita operações no modo verboso\n" +" -v, --verbose Habilita operações no modo detalhado\n" "\n" -" -s, --server=SERVER Nome do servidor a ser conectado\n" -" -d, --device=DEVICE O nome do destino/fonte a conectar\n" -" -n, --client-name=NAME Como chamar o cliente no servidor\n" -" --stream-name=NAME Como chamar este fluxo no " -"servidorn --volume=VOLUME Especifica a faixa (linear) " -"inicial de volume no intervalo 0...65536\n" -" --rate=SAMPLERATE Taxa de amostragem em Hz (o padrão é " -"44100)\n" -" --format=SAMPLEFORMAT Tipo de amostragem, um de s16le, " -"s16be, u8, float32le,\n" -" float32be, ulaw, alaw, s32le, s32be " -"(o padrão é s16ne)\n" -" --channels=CHANNELS O número de canais, 1 para mono, 2 " -"para estéreo\n" +" -s, --server=SERVIDOR Nome do servidor a conectar-se\n" +" -d, --device=DISPOSITIVO O nome do destino/fonte a conectar-se\n" +" -n, --client-name=NOME Como chamar este cliente no servidor\n" +" --stream-name=NOME Como chamar este fluxo no servidor\n" +" --volume=VOLUME Especifica a faixa (linear) inicial de volume no intervalo 0...65536\n" +" --rate=TAXA_DE_AMOSTRAGEM Taxa de amostragem em Hz (o padrão é 44100)\n" +" --format=FORMATO_DE_AMOSTRAGEM Tipo de amostragem, um de s16le, s16be, u8, float32le,\n" +" float32be, ulaw, alaw, s32le, s32be, s24le, s24be,\n" +" s24-32le, s24-32be (o padrão é s16ne)\n" +" --channels=CANAIS O número de canais, 1 para mono, 2 para estéreo\n" " (o padrão é 2)\n" -" --channel-map=CHANNELMAP Mapeamento de canais a ser usando em " -"lugar do padrão\n" -" --fix-format Obtém o formato da amostragem do " -"destino onde o fluxo\n" -" está sendo conectado.\n" -" --fix-rate Obtém o taxa de amostragem do " -"destino onde o fluxo está\n" +" --channel-map=MAPA_DE_CANAIS Mapeamento de canais a ser usado no lugar do padrão\n" +" --fix-format Obtém o formato da amostragem do destino onde o fluxo\n" +" está sendo conectado.\n" +" --fix-rate Obtém a taxa de amostragem do destino onde o fluxo está\n" " sendo conectado.\n" -" --fix-channels Obtém o número de canais e o mapa de " -"canais\n" -" do destino onde o fluxo está sendo " -"conectado.\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" +" --fix-channels Obtém o número de canais e o mapa de canais\n" +" do destino onde o fluxo está sendo conectado.\n" +" --no-remix Não realizar upmix nem downmix dos canais.\n" +" --no-remap Mapear os canais por índice em vez de nome.\n" +" --latency=BYTES Requisitar a latência especificada em bytes.\n" +" --process-time=BYTES Requisitar o tempo de processo especificado por requisições em bytes.\n" +" --property=PROPRIEDADE=VALOR Define a propriedade especificada para o valor especificado.\n" +" --raw Grava/reproduz dados PCM não tratados.\n" +" --file-format=FORMATO_DO_ARQ. Grava/reproduz dados PCM formatados.\n" +" --list-file-formats Lista os formatos de arquivo disponíveis.\n" #: ../src/utils/pacat.c:727 #, c-format @@ -1531,97 +1313,91 @@ msgstr "" "Compilado com libpulse %s\n" "Linkado com libpulse %s\n" -#: ../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" +#: ../src/utils/pacat.c:760 +#, c-format +msgid "Invalid client name '%s'" +msgstr "Nome do cliente \"%s\" inválido" #: ../src/utils/pacat.c:776 -#, fuzzy, c-format -msgid "Invalid stream name '%s'\n" -msgstr "Método de reamostragem inválido '%s'." +#, c-format +msgid "Invalid stream name '%s'" +msgstr "Nome do fluxo \"%s\" inválido" #: ../src/utils/pacat.c:813 #, c-format -msgid "Invalid channel map '%s'\n" -msgstr "Mapa de canal inválido '%s'\n" +msgid "Invalid channel map '%s'" +msgstr "Mapa de canais \"%s\" inválido" #: ../src/utils/pacat.c:842 #, c-format -msgid "Invalid latency specification '%s'\n" -msgstr "Especificação de latência inválida '%s'\n" +msgid "Invalid latency specification '%s'" +msgstr "Especificação de latência inválida \"%s\"" #: ../src/utils/pacat.c:849 #, c-format -msgid "Invalid process time specification '%s'\n" -msgstr "Especificação do tempo do processo inválida '%s'\n" +msgid "Invalid process time specification '%s'" +msgstr "Especificação do tempo de processo \"%s\" inválida" #: ../src/utils/pacat.c:861 -#, fuzzy, c-format -msgid "Invalid property '%s'\n" -msgstr "Método de reamostragem inválido '%s'." +#, c-format +msgid "Invalid property '%s'" +msgstr "Propriedade \"%s\" inválida" #: ../src/utils/pacat.c:878 #, c-format msgid "Unknown file format %s." -msgstr "" +msgstr "Formato de arquivo %s desconhecido." #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" -msgstr "Especificação de amostragem inválida\n" +msgid "Invalid sample specification" +msgstr "Especificação de amostragem inválida" #: ../src/utils/pacat.c:907 #, c-format -msgid "open(): %s\n" -msgstr "open(): %s\n" +msgid "open(): %s" +msgstr "open(): %s" #: ../src/utils/pacat.c:912 #, c-format -msgid "dup2(): %s\n" -msgstr "dup2(): %s\n" +msgid "dup2(): %s" +msgstr "dup2(): %s" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" -msgstr "Argumentos em excesso.\n" +msgid "Too many arguments." +msgstr "Argumentos em excesso." #: ../src/utils/pacat.c:930 -#, fuzzy -msgid "Failed to generate sample specification for file.\n" -msgstr "Falha em obter informações sobre a amostragem: %s\n" +msgid "Failed to generate sample specification for file." +msgstr "Falha ao gerar a especificação de amostragem para o arquivo." #: ../src/utils/pacat.c:950 -#, fuzzy -msgid "Failed to open audio file.\n" -msgstr "Falha em abrir o arquivo de som.\n" +msgid "Failed to open audio file." +msgstr "Falha ao abrir o arquivo de áudio." #: ../src/utils/pacat.c:956 -msgid "" -"Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +msgid "Warning: specified sample specification will be overwritten with specification from file." +msgstr "Aviso: a especificação de amostragem especificada será sobrescrita pela especificação do arquivo." -#: ../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" +#: ../src/utils/pacat.c:959 +msgid "Failed to determine sample specification from file." +msgstr "Falha ao determinar a especificação de amostragem a partir do arquivo." #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +msgid "Warning: Failed to determine channel map from file." +msgstr "Aviso: falha ao determinar o mapa de canais a partir do arquivo." #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" -msgstr "O mapeamento do canal não casa com a especificação da amostragem\n" +msgid "Channel map doesn't match sample specification" +msgstr "O mapa de canais não combina com a especificação da amostragem" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +msgid "Warning: failed to write channel map to file." +msgstr "Aviso: falha ao gravar o mapa de canais no arquivo." #: ../src/utils/pacat.c:1005 -#, fuzzy, c-format -msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" -msgstr "Abrindo um %s fluxo com a especificação de amostragem '%s'.\n" +#, c-format +msgid "Opening a %s stream with sample specification '%s' and channel map '%s'." +msgstr "Abrindo um fluxo %s com a especificação de amostragem \"%s\" e mapeamento de canais \"%s\"." #: ../src/utils/pacat.c:1006 msgid "recording" @@ -1631,36 +1407,31 @@ msgstr "gravando" msgid "playback" msgstr "playback" -#: ../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:1032 +msgid "pa_mainloop_new() failed." +msgstr "pa_mainloop_new() falhou." #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" -msgstr "io_new() falhou.\n" +msgid "io_new() failed." +msgstr "io_new() falhou." -#: ../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:1058 +msgid "pa_context_new() failed." +msgstr "pa_context_new() falhou." #: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_new() falhou: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() falhou.\n" +#: ../src/utils/pacat.c:1072 +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_rttime_new() falhou." -#: ../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" +#: ../src/utils/pacat.c:1079 +msgid "pa_mainloop_run() failed." +msgstr "pa_mainloop_run() falhou." #: ../src/utils/pasuspender.c:81 #, c-format @@ -1685,11 +1456,16 @@ msgstr "Falha ao prosseguir: %s\n" #: ../src/utils/pasuspender.c:147 #, c-format msgid "WARNING: Sound server is not local, not suspending.\n" -msgstr "" -"AVISO: O servidor de som não é local, Sound server is not local, não está em " -"suspenso.\n" +msgstr "AVISO: O servidor de som não é local, Sound server is not local, não está em suspenso.\n" + +#: ../src/utils/pasuspender.c:159 +#: ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Falha na conexão: %s\n" -#: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 +#: ../src/utils/pasuspender.c:176 +#: ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" msgstr "Recebido o SIGINT, saindo.\n" @@ -1706,8 +1482,7 @@ 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 "" "%s [options] ... \n" @@ -1728,6 +1503,24 @@ msgstr "" "Compilado com libpulse %s\n" "Linkado com libpulse %s\n" +#: ../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/pasuspender.c:290 +#: ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() falhou.\n" + +#: ../src/utils/pasuspender.c:298 +#: ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() falhou.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -1754,7 +1547,7 @@ msgid "Failed to get server information: %s\n" msgstr "Falha em obter a informação do servidor: %s\n" #: ../src/utils/pactl.c:157 -#, fuzzy, c-format +#, c-format msgid "" "User name: %s\n" "Host Name: %s\n" @@ -1766,11 +1559,12 @@ msgid "" "Default Source: %s\n" "Cookie: %08x\n" msgstr "" -"Nome do Usuário: %s\n" -"Nome do Host: %s\n" -"Nome do Servidor: %s\n" -"Versão do Servidor: %s\n" +"Nome do usuário: %s\n" +"Nome da máquina: %s\n" +"Nome do servidor: %s\n" +"Versão do servidor: %s\n" "Especificação padrão de amostragem: %s\n" +"Mapa de canais padrão: %s\n" "Destino padrão: %s\n" "Fonte padrão %s\n" "Cookie: %08x\n" @@ -1781,7 +1575,7 @@ msgid "Failed to get sink information: %s\n" msgstr "Falha em obter a informação do destino: %s\n" #: ../src/utils/pactl.c:214 -#, fuzzy, c-format +#, c-format msgid "" "Sink #%u\n" "\tState: %s\n" @@ -1801,28 +1595,35 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Destino #%u ***\n" -"Nome: %s\n" -"Driver: %s\n" -"Especificação de amostragem: %s\n" -"Mapa de canais: %s\n" -"Propretário do módulo: %u\n" -"Volume: %s\n" -"Fonte do monitor: %s\n" -"Latência: %0.0f us, configurado %0.0f us\n" -"Flags: %s%s%s%s%s%s\n" -"Propriedades:\n" -"%s" - -#: ../src/utils/pactl.c:261 ../src/utils/pactl.c:353 +"Destino #%u\n" +"\tEstado: %s\n" +"\tNome: %s\n" +"\tDescrição: %s\n" +"\tDriver: %s\n" +"\tEspecificação da amostragem: %s\n" +"\tMapa dos canais: %s\n" +"\tMódulo proprietário: %u\n" +"\tMudo: %s\n" +"\tVolume: %s%s%s\n" +"\t balanço %0.2f\n" +"\tVolume base: %s%s%s\n" +"\tFonte de monitoração: %s\n" +"\tLatência: %0.0f usec, %0.0f usec configurado\n" +"\tSinalizadores: %s%s%s%s%s%s\n" +"\tPropriedades:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:261 +#: ../src/utils/pactl.c:353 #, c-format msgid "\tPorts:\n" -msgstr "" +msgstr "\tPortas:\n" -#: ../src/utils/pactl.c:267 ../src/utils/pactl.c:359 -#, fuzzy, c-format +#: ../src/utils/pactl.c:267 +#: ../src/utils/pactl.c:359 +#, c-format msgid "\tActive Port: %s\n" -msgstr "O pipe falhou: %s" +msgstr "\tPorta ativa: %s\n" #: ../src/utils/pactl.c:290 #, c-format @@ -1830,7 +1631,7 @@ msgid "Failed to get source information: %s\n" msgstr "Falha em obter a informação da fonte: %s\n" #: ../src/utils/pactl.c:306 -#, fuzzy, c-format +#, c-format msgid "" "Source #%u\n" "\tState: %s\n" @@ -1850,23 +1651,36 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Fonte #%u ***\n" -"Nome: %s\n" -"Driver: %s\n" -"Especificação de amostragem: %s\n" -"Mapa do canal: %s\n" -"Proprietário do módulo: %u\n" -"Volume: %s\n" -"Monitor do destino: %s\n" -"Latência: %0.0f us, configurado %0.0f us:\n" -"Flags: %s%s%s%s%s%s\n" -"Propriedades:\n" -"%s" - -#: ../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 +"Fonte #%u\n" +"\tEstado: %s\n" +"\tNome: %s\n" +"\tDescrição: %s\n" +"\tDriver: %s\n" +"\tEspecificação da amostragem: %s\n" +"\tMapa dos canais: %s\n" +"\tMódulo proprietário: %u\n" +"\tMudo: %s\n" +"\tVolume: %s%s%s\n" +"\t balanço %0.2f\n" +"\tVolume base: %s%s%s\n" +"\tMonitor do destino: %s\n" +"\tLatência: %0.0f usec, %0.0f usec configurado\n" +"\tSinalizadores: %s%s%s%s%s%s\n" +"\tPropriedades:\n" +"\t\t%s\n" + +#: ../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" @@ -1877,7 +1691,7 @@ msgid "Failed to get module information: %s\n" msgstr "Falha em obter a informação do módulo: %s\n" #: ../src/utils/pactl.c:386 -#, fuzzy, c-format +#, c-format msgid "" "Module #%u\n" "\tName: %s\n" @@ -1886,11 +1700,12 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Módulo #%u ***\n" -"Nome: %s\n" -"Argumento: %s\n" -"Contador de uso: %s\n" -"Auto descarregar: %s\n" +"Módulo #%u\n" +"\tNome: %s\n" +"\tArgumento: %s\n" +"\tContador de uso: %s\n" +"\tPropriedades:\n" +"\t\t%s\n" #: ../src/utils/pactl.c:405 #, c-format @@ -1898,7 +1713,7 @@ msgid "Failed to get client information: %s\n" msgstr "Falhou ao obter a informação do cliente: %s\n" #: ../src/utils/pactl.c:423 -#, fuzzy, c-format +#, c-format msgid "" "Client #%u\n" "\tDriver: %s\n" @@ -1906,19 +1721,19 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Cliente #%u ***\n" -"Driver: %s\n" -"Poprietário do módulo: %s\n" -"Propriedades:\n" -"%s" +"Cliente #%u\n" +"\tDriver: %s\n" +"\tMódulo proprietário: %s\n" +"\tPropriedades:\n" +"\t\t%s\n" #: ../src/utils/pactl.c:440 -#, fuzzy, c-format +#, c-format msgid "Failed to get card information: %s\n" -msgstr "Falha em obter a informação do autoload: %s\n" +msgstr "Falha ao obter as informações da placa: %s\n" #: ../src/utils/pactl.c:458 -#, fuzzy, c-format +#, c-format msgid "" "Card #%u\n" "\tName: %s\n" @@ -1927,21 +1742,22 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Cliente #%u ***\n" -"Driver: %s\n" -"Poprietário do módulo: %s\n" -"Propriedades:\n" -"%s" +"Placa #%u\n" +"\tNome: %s\n" +"\tDriver: %s\n" +"\tMódulo proprietário: %s\n" +"\tPropriedades:\n" +"\t\t%s\n" #: ../src/utils/pactl.c:472 #, c-format msgid "\tProfiles:\n" -msgstr "" +msgstr "\tPerfis:\n" #: ../src/utils/pactl.c:478 -#, fuzzy, c-format +#, c-format msgid "\tActive Profile: %s\n" -msgstr "O pipe falhou: %s" +msgstr "\tPerfil ativo: %s\n" #: ../src/utils/pactl.c:489 #, c-format @@ -1949,7 +1765,7 @@ 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:508 -#, fuzzy, c-format +#, c-format msgid "" "Sink Input #%u\n" "\tDriver: %s\n" @@ -1968,19 +1784,22 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Entrada do destino #%u ***\n" -"Driver: %s\n" -"Proprietário do módulo: %s\n" -"Cliente: %s\n" -"Destino: %u\n" -"Especificação da amostragem: %s\n" -"Mapa de canais: %s\n" -"Volume: %s\n" -"Latência do buffer: %0.0f us\n" -"Latência do destino %0.0f usec\n" -"Método de reamostragem (resample): %s\n" -"Propriedades:\n" -"%s" +"Entrada do destino #%u\n" +"\tDriver: %s\n" +"\tMódulo proprietário: %s\n" +"\tCliente: %s\n" +"\tDestino: %u\n" +"\tEspecificação da amostragem: %s\n" +"\tMapa dos canais: %s\n" +"\tMudo: %s\n" +"\tVolume: %s\n" +"\t %s\n" +"\t balanço %0.2f\n" +"\tLatência do buffer: %0.0f usec\n" +"\tLatência do destino: %0.0f usec\n" +"\tMétodo de reamostragem: %s\n" +"\tPropriedades:\n" +"\t\t%s\n" #: ../src/utils/pactl.c:547 #, c-format @@ -1988,7 +1807,7 @@ 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:567 -#, fuzzy, c-format +#, c-format msgid "" "Source Output #%u\n" "\tDriver: %s\n" @@ -2003,18 +1822,18 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Saída da Fonte #%u ***\n" -"Driver: %s\n" -"Proprietário do Módulo: %s\n" -"Cliente: %s\n" -"Fonte: %u\n" -"Especificação de Amostragem: %s\n" -"Mapa do Canal: %s\n" -"Latência do Buffer: %0.0f usec\n" -"Latência da Fonte: %0.0f usec\n" -"Método de Reamostragem (resample): %s\n" -"Propriedades:\n" -"%s" +"Saída da fonte #%u\n" +"\tDriver: %s\n" +"\tMódulo proprietário: %s\n" +"\tCliente: %s\n" +"\tFonte: %u\n" +"\tEspecificação da amostragem: %s\n" +"\tMapa dos canais: %s\n" +"\tLatência do buffer: %0.0f usec\n" +"\tLatência da fonte: %0.0f usec\n" +"\tMétodo de reamostragem: %s\n" +"\tPropriedades:\n" +"\t\t%s\n" #: ../src/utils/pactl.c:598 #, c-format @@ -2022,7 +1841,7 @@ msgid "Failed to get sample information: %s\n" msgstr "Falha em obter informações sobre a amostragem: %s\n" #: ../src/utils/pactl.c:616 -#, fuzzy, c-format +#, c-format msgid "" "Sample #%u\n" "\tName: %s\n" @@ -2038,19 +1857,22 @@ msgid "" "\tProperties:\n" "\t\t%s\n" msgstr "" -"*** Amostragem #%u ***\n" -"Nome: %s\n" -"Volume: %s\n" -"Especificação da Amostragem: %s\n" -"Mapa de Canais: %s\n" -"Duração: %0.1fs\n" -"Tamanho: %s\n" -"Lazy: %s\n" -"Nome do Arquivo: %s\n" -"Propriedades:\n" -"%s" - -#: ../src/utils/pactl.c:646 ../src/utils/pactl.c:656 +"Amostra #%u\n" +"\tNome: %s\n" +"\tEspecificação da amostragem: %s\n" +"\tMapa dos canais: %s\n" +"\tVolume: %s\n" +"\t %s\n" +"\t balanço %0.2f\n" +"\tDuração: %0.1fs\n" +"\tTamanho: %s\n" +"\tLazy: %s\n" +"\tNome do arquivo: %s\n" +"\tPropriedades:\n" +"\t\t%s\n" + +#: ../src/utils/pactl.c:646 +#: ../src/utils/pactl.c:656 #, c-format msgid "Failure: %s\n" msgstr "Falha: %s\n" @@ -2065,7 +1887,7 @@ msgid "Premature end of file\n" msgstr "Fim prematuro do arquivo\n" #: ../src/utils/pactl.c:826 -#, fuzzy, c-format +#, c-format msgid "" "%s [options] stat\n" "%s [options] list\n" @@ -2086,30 +1908,30 @@ msgid "" " -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" -msgstr "" -"%s [options] stat\n" -"%s [options] list\n" -"%s [options] exit\n" -"%s [options] upload-sample FILENAME [NAME]\n" -"%s [options] play-sample NAME [SINK]\n" -"%s [options] remove-sample NAME\n" -"%s [options] move-sink-input ID SINK\n" -"%s [options] move-source-output ID SOURCE\n" -"%s [options] load-module NAME [ARGS ...]\n" -"%s [options] unload-module ID\n" -"%s [options] suspend-sink [SINK] 1|0\n" -"%s [options] suspend-source [SOURCE] 1|0\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 "" +"%s [opções] stat\n" +"%s [opções] list\n" +"%s [opções] exit\n" +"%s [opções] upload-sample NOME_DO_ARQUIVO [NOME]\n" +"%s [opções] play-sample NOME [DESTINO]\n" +"%s [opções] remove-sample NOME\n" +"%s [opções] move-sink-input ID DESTINO\n" +"%s [opções] move-source-output ID FONTE\n" +"%s [opções] load-module NOME [ARGS ...]\n" +"%s [opções] unload-module ID\n" +"%s [opções] suspend-sink [DESTINO] 1|0\n" +"%s [opções] suspend-source [FONTE] 1|0\n" +"%s [opções] set-card-profile [PLACA] [PERFIL] \n" +"%s [opções] set-sink-port [DESTINO] [PORTA] \n" +"%s [opções] set-source-port [FONTE] [PORTA] \n" "\n" " -h, --help Mostra essa ajuda\n" " --version Mostra a versão\n" "\n" " -s, --server=SERVER O nome do servidor a ser conectado\n" -" -n, --client-name=NAME Como chamar este cliente no " -"servidor \n" +" -n, --client-name=NAME Como chamar este cliente no servidor \n" #: ../src/utils/pactl.c:880 #, c-format @@ -2122,6 +1944,11 @@ msgstr "" "Compilado com libpulse %s\n" "Linkado com libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, c-format +msgid "Invalid client name '%s'\n" +msgstr "Nome do cliente \"%s\" inválido\n" + #: ../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" @@ -2130,10 +1957,13 @@ msgstr "Por favor, especifique o arquivo de amostra a ser carregado\n" msgid "Failed to open sound file.\n" msgstr "Falha em abrir o arquivo de som.\n" +#: ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "Falha ao determinar a especificação de amostragem a partir do arquivo.\n" + #: ../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" +msgstr "Aviso: falha ao determinar a especificação da amostragem a partir do arquivo.\n" #: ../src/utils/pactl.c:961 msgid "You have to specify a sample name to play\n" @@ -2145,8 +1975,7 @@ msgstr "Você deve especificar um nome da amostra para ser removida\n" #: ../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" +msgstr "Você tem que especificar a entrada para o destino e um destino\n" #: ../src/utils/pactl.c:992 msgid "You have to specify a source output index and a source\n" @@ -2161,50 +1990,29 @@ msgid "You have to specify a module index\n" msgstr "Você deve especificar um índice de um módulo\n" #: ../src/utils/pactl.c:1037 -#, fuzzy -msgid "" -"You may not specify more than one sink. You have to specify a boolean " -"value.\n" -msgstr "" -"Você não pode especificar mais de um destino. Pelo menos um valor booleano " -"deve ser especificado.\n" +msgid "You may not specify more than one sink. You have to specify a boolean value.\n" +msgstr "Você não pode especificar mais de um destino. Você tem que especificar um valor booleano.\n" #: ../src/utils/pactl.c:1050 -#, fuzzy -msgid "" -"You may not specify more than one source. You have to specify a boolean " -"value.\n" -msgstr "" -"Você não pode especificar mais de uma fonte. Pelo menos um valor booleano " -"deve ser especificado.\n" +msgid "You may not specify more than one source. You have to specify a boolean value.\n" +msgstr "Você não pode especificar mais de uma fonte. Você tem que especificar um valor booleano.\n" #: ../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" +msgstr "Você tem que especificar um nome/índice da placa e um nome de perfil\n" #: ../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" +msgstr "Você tem que especificar um nome/índice do destino e o nome da porta\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" +msgstr "Você tem que especificar um nome/índice da fonte e o nome da porta\n" #: ../src/utils/pactl.c:1099 msgid "No valid command specified.\n" msgstr "Nenhum comando válido especificado.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "pa_context_new() falhou: %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2212,17 +2020,14 @@ 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 "" "%s [-D display] [-S server] [-O sink] [-I source] [-c file] [-d|-e|-i|-r]\n" "\n" -" -d Mostra os dados atuais do PulseAudio associados ao display X11 " -"(padrão)\n" +" -d Mostra os dados atuais do PulseAudio associados ao display X11 (padrão)\n" " -e Exporta os dados locais do PulseAudio para um display X11 \n" -" -i Importa os dados do PulseAudio de um display X11 para as variáveis " -"de ambiente locais e para o arquivo de cookie.\n" +" -i Importa os dados do PulseAudio de um display X11 para as variáveis de ambiente locais e para o arquivo de cookie.\n" " -r Remove os dados do PulseAudio do display X11\n" #: ../src/utils/pax11publish.c:94 @@ -2287,7 +2092,7 @@ msgstr "Ainda não implementado.\n" #: ../src/utils/pacmd.c:61 msgid "No PulseAudio daemon running, or not running as session daemon." -msgstr "" +msgstr "Nenhum daemon do PulseAudio em execução ou não está em execução como daemon de sessão." #: ../src/utils/pacmd.c:66 #, c-format @@ -2301,79 +2106,161 @@ msgstr "connect(): %s" #: ../src/utils/pacmd.c:91 msgid "Failed to kill PulseAudio daemon." -msgstr "Falha em cancelar o daemon do PulseAudio." +msgstr "Falha ao matar o daemon do PulseAudio." #: ../src/utils/pacmd.c:99 msgid "Daemon not responding." -msgstr "Daemon não responde." +msgstr "O daemon não responde." #: ../src/utils/pacmd.c:146 #, c-format msgid "select(): %s" msgstr "select(): %s" -#: ../src/utils/pacmd.c:156 ../src/utils/pacmd.c:173 +#: ../src/utils/pacmd.c:156 +#: ../src/utils/pacmd.c:173 #, c-format msgid "read(): %s" msgstr "read(): %s" -#: ../src/utils/pacmd.c:189 ../src/utils/pacmd.c:203 +#: ../src/utils/pacmd.c:189 +#: ../src/utils/pacmd.c:203 #, c-format msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 +#: ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Não foi possível acessar a trava de autogeração." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 +#: ../src/modules/alsa/alsa-sink.c:606 #, 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." +"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 "" +"O ALSA nos acordou para gravar novos dados no dispositivo, mas não há nada a ser gravado!\n" +"É mais provável que isso seja um erro no driver \"%s\" do ALSA. Por favor, relate esse problema para os desenvolvedores do ALSA.\n" +"Nós fomos acordados com o conjunto POLLOUT -- entretanto, a snd_pcm_avail() subseqüente retornou 0 ou outro valor < min_avail." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 +#: ../src/modules/alsa/alsa-source.c:578 #, 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." +"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 "" +"O ALSA nos acordou para ler novos dados no dispositivo, mas não há nada a ser lido!\n" +"É mais provável que isso seja um erro no driver \"%s\" do ALSA. Por favor, relate esse problema para os desenvolvedores do ALSA.\n" +"Nós fomos acordados com o conjunto POLLIN -- entretanto, a snd_pcm_avail() subseqüente retornou 0 ou outro valor < min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" -msgstr "" +msgstr "Desligado" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" -msgstr "" +msgstr "Reprodução de alta fidelidade (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" -msgstr "" +msgstr "Duplex telefônico (HSP/HFP)" #: ../src/modules/reserve-wrap.c:151 msgid "PulseAudio Sound Server" -msgstr "" - +msgstr "Servidor de som PulseAudio" + +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Não foi possível conectar com o barramento do sistema: %s" +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Não foi possível obter quem chamou pelo PID: %s" +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Não foi possível definir o UID sobre o objeto que chamou." +#~ msgid "Failed to get CK session." +#~ msgstr "Falha em obter a sessão CK." +#~ msgid "Cannot set UID on session object." +#~ msgstr "Não foi possível definir o UID do objeto da sessão." +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Não foi possível alocar o PolKitAction." +#~ msgid "Cannot set action_id" +#~ msgstr "Não foi possível definir a action_id" +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Não foi possível alocar o PolKitContext." +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Não foi possível iniciar o PolKitContext: %s" +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Não foi possível determinar se o solicitante está autorizado: %s" +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Não foi possível obter auth: %s" +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit respondeu com '%s'" +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Escalonamento de alta prioridade (nível de nice Unix negativo) para o " +#~ "daemon do PulseAudio" +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Escalonamento em tempo real para o daemon do PulseAudio" +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "Uma política do sistema impede que o PulseAudio adquira escalonamento de " +#~ "alta prioridade." +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "Uma política do sistema impede que o PulseAudio adquira o escalonamento " +#~ "em tempo real." +#~ msgid "read() failed: %s\n" +#~ msgstr "read() falhou: %s\n" +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() falhou: %s\n" +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "Estamos no grupo '%s', permitindo escalonamento de alta prioridade." +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "Estamos no grupo '%s', permitindo escalonamento em tempo real." +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "" +#~ "O PolicyKit assegura-nos a aquisição de privilégio de alta prioridade." +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "O PolicyKit recusa a aquisição de privilégios de alta prioridade." +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "O PolicyKit assegura-nos a aquisição de privilégios de tempo-real." +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "O PolicyKit recusa a aquisição de privilégios de tempo real." +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "O escalonamento de alta prioridade foi habilitado para esta configuração, " +#~ "mas não é permitida pela política." +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "RLIMIT_RTPRIO aumentado com sucesso" +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO falhou: %s" +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Abandonando CAP_NICE" +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "O escalonamento de tempo real foi habilitado pela configuração, mas não é " +#~ "permitido pela política." +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "As capacidades foram limitadas com sucesso para CAP_SYS_NICE." +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() falhou.\n" #~ 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 "Conexão estabelecida.\n" - #~ msgid "" #~ "%s [options] [FILE]\n" #~ "\n" @@ -2412,7 +2299,6 @@ msgstr "" #~ " --volume=VOLUME Especifica o volume inicial " #~ "(linear) no intervalo 0...65536\n" #~ " --channel-map=CHANNELMAP Define o mapa do canal para uso\n" - #~ msgid "" #~ "paplay %s\n" #~ "Compiled with libpulse %s\n" @@ -2421,16 +2307,12 @@ msgstr "" #~ "paplay %s\n" #~ "Compilado com libpulse %s\n" #~ "Linkado com libpulse %s\n" - #~ msgid "Invalid channel map\n" #~ msgstr "Mapa de canais inválido\n" - #~ msgid "Failed to open file '%s'\n" #~ msgstr "Falha ao abrir o arquivo '%s'\n" - #~ msgid "Channel map doesn't match file.\n" #~ msgstr "O mapa dos canais não coincide com o arquivo.\n" - #~ msgid "Using sample spec '%s'\n" #~ msgstr "Usando a especificação da amostragem '%s'\n" @@ -2449,19 +2331,14 @@ msgstr "" #, fuzzy #~ msgid "--log-time boolean argument" #~ msgstr "--disallow-exit argumento booleano" - #~ msgid "Default sink name (%s) does not exist in name register." #~ msgstr "O nome padrão do destino (%s) não existe no registro de nomes." - #~ msgid "Buffer overrun, dropping incoming data\n" #~ msgstr "Houve estouro de buffer, os dados que chegaram foram descartados\n" - #~ msgid "pa_stream_drop() failed: %s\n" #~ msgstr "pa_stream_drop() falhou: %s\n" - #~ msgid "muted" #~ msgstr "mudo" - #~ msgid "" #~ "*** Autoload Entry #%u ***\n" #~ "Name: %s\n" @@ -2474,13 +2351,10 @@ msgstr "" #~ "Tipo: %s\n" #~ "Módulo: %s\n" #~ "Argumento: %s\n" - #~ msgid "sink" #~ msgstr "destino" - #~ msgid "source" #~ msgstr "fonte" - #~ msgid "" #~ "' and PolicyKit refuse to grant us priviliges. Dropping SUID again.\n" #~ "For enabling real-time scheduling please acquire the appropriate " @@ -2490,13 +2364,11 @@ msgstr "" #~ "outra vez.\n" #~ " Para habilitar o escalonamento em tempo real, por favo, adquira os " #~ "privilégios adequados pelo PolicyKit, ou torne-se membro do'" - #~ msgid "" #~ "', or increase the RLIMIT_NICE/RLIMIT_RTPRIO resource limits for this " #~ "user." #~ msgstr "" #~ "', ou eleve o RLIMIT_NICE/RLIMIT_RTPRIO dos limites do recurso para este " #~ "usuário." - #~ msgid "socketpair(): %s" #~ msgstr "socketpair(): %s" diff --git a/po/sr.po b/po/sr.po index b8c861fe..371c7b52 100644 --- a/po/sr.po +++ b/po/sr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-07 23:02+0100\n" "Last-Translator: Miloš Komarčević \n" "Language-Team: Serbian \n" @@ -19,7 +19,12 @@ msgstr "" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 0.3\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -32,7 +37,7 @@ msgstr "" "Ово је највероватније грешка у „%s“ ALSA управљачком програму. Пријавите " "овај проблем ALSA програмерима." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -45,7 +50,7 @@ msgstr "" "Ово је највероватније грешка у „%s“ ALSA управљачком програму. Пријавите " "овај проблем ALSA програмерима." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -71,7 +76,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Унутрашњи звук" @@ -91,222 +96,92 @@ msgstr "Неуспешно смештање новог dl учитавача." msgid "Failed to add bind-now-loader." msgstr "Неуспешно додавање „повежи одмах“ учитавача." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Није се могуће прикључити на системску магистралу: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Не могу добавити позивника из PID-а: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Не могу поставити UID за позивнички објекат." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Неуспешно добављање CK сесије." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Не могу поставити UID за објекат сесије." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Не могу поставити PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Не могу поставити action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Не могу поставити PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Не могу иницијализовати PolKitContex: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Није могуће одредити овлашћење позивника: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Не могу добити овлашћење: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit је одговорио са „%s“" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Добих сигнал %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Напуштам." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Не могу наћи корисника „%s“." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Не могу наћи групу „%s“." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Нађени су корисник „%s“ (UID %lu) и група „%s“ (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID корисника „%s“ се не поклапа са групом „%s“." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Лични директоријум корисника „%s“ није „%s“, занемарујем." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Неуспешно прављење „%s“: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Неуспешна промена групног списка: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Неуспешна промена GID-а: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Неуспешна промена UID-а: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Успешно одбачена root овлашћења." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "Режим за читав систем није подржан на овој платформи." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) није успело: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Неуспешно тумачење командне линије." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"Налазимо се у групи „%s“ која дозвољава високоприоритетно распоређивање." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" -"Налазимо се у групи „%s“ која дозвољава стварновременско распоређивање." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit нам је дао овлашћење за добијање високог приоритета." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit одбија овлашћење за добијање високог приоритета." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit нам је дао овлашћење за добијање рада у стварном времену." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit одбија овлашћење за добијање рада у стварном времену." - -# -#: ../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." -msgstr "" -"SUID root и стварновременско и/или високоприоритетно распоређивање је " -"захтевано у подешавањима. Међутим, немамо потребна овлашћења:\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:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "Успешно повећано RLIMIT_RTPRIO ограничење" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "Неуспешно постављање RLIMIT_RTPRIO-а:%s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Одустајем од CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Стварновременско распоређивање је омогућено у подешавањима, али политика то " -"не дозвољава." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Демон није покренут" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Демон је покренут са PID-ом %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Неуспешно убијање демона: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -314,153 +189,153 @@ msgstr "" "Није намеравано да се овај програм покреће из root налога (осим у случају " "када је --system наведено)" -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Потребна су root овлашћења." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start није подржано за системске примерке." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "Покренуто у системском режиму, али --disallow-exit није постављено!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "Покренуто у системском режиму, али --disallow-module-loading није постављено!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Покренуто у системском режиму, присилно онемогућујем SHM режим!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "Покренуто у системском режиму, присилно онемогућујем гашење после одређеног " "времена мировања!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Неуспешно проналажење стандардног улаза/излаза." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "Неуспешно пуштање података кроз цев: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "Неуспела функција fork(): %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "Неуспела функција read(): %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Неуспешно покретање демона." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Демон успешно покренут." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Ово је PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Домаћин компајлирања: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS компајлирања: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Покренут на домаћину: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "Нашао %u процесор(а)" -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "Величина странице је %lu бајтова" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Компајлирано са подршком за Valgrind: да" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Компајлирано са подршком за Valgrind: не" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Покренут у Valgrind режиму: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Оптимизована изградња: да" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Оптимизована изградња: не" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG дефинисан, сва обавештења искључена." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH дефинисан, само обавештења брзе путање искључена." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Сва обавештења омогућена." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Неуспешно добављање ИБ машине" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "ИБ машине је %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "ИБ машине је %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Користи се %s извршни директоријум." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Користи се %s директоријум стања." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Покренуто у системском режиму: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -470,15 +345,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "Неуспела функција pa_pid_file_create()." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Доступни су нови бројачи високе резолуције! Пријатно!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -486,27 +361,27 @@ msgstr "" "Ваше језгро није добро подешено за pulseaudio! Препоручује Вам се да " "користите Linux језгро са омогућеним бројачима високе резолуције." -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "Неуспела функција pa_core_new()." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Неуспешно покретање демона." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "Демон је покренут без иједног учитаног модула, одбија да ради." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Покретање демона успешно." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Покренуто гашење демона." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Рад демона је прекинут." @@ -850,14 +725,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Прочитај из датотеке подешавања: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Одбацујем root повластице." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Успешно ограничио могућности на CAP_SYS_NICE." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio звучни систем" @@ -866,30 +737,6 @@ msgstr "PulseAudio звучни систем" msgid "Start the PulseAudio Sound System" msgstr "Покрени PulseAudio звучни систем" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" -"Високоприоритетно распоређивање (негативни Unix нивои финоће, тј. nice " -"нивои) за PulseAudio демона" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Стварновременско распоређивање за PulseAudio демона" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -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:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Моно" @@ -1263,183 +1110,187 @@ msgstr "Неуспешно тумачење података из колачић msgid "Failed to open configuration file '%s': %s" msgstr "Неуспешно отварање датотеке подешавања „%s“: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Колачић није учитан. Покушавам се повезати без колачића." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Примио поруку за непознати локал „%s“" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Неуспешно исушивање тока: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "Репродукциони ток исушен.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "Веза до сервера се исушује.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "Неуспела функција pa_stream_write(): %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "Неуспела функција pa_stream_write(): %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "Неуспела функција pa_stream_peek(): %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Ток успешно направљен.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "Неуспешно pa_stream_get_buffer_attr(): %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Метрике бафера: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Метрике бафера: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "Користим следеће параметре узорка „%s“ и мапу канала „%s“.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "Прикључен на уређај %s (%u, %s обустављено).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Грешка тока: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "Уређај тока обустављен.%s\n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "Уређај тока настављен.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "Ток није попуњен. %s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "Ток се прелива.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "Ток покренут. %s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "Ток пребачен на уређај %s (%u, %s обустављено). %s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "није" -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "Параметри бафера тока су промењени. %s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "Веза успостављена.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "Неуспела функција pa_stream_new() : %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "Неуспела функција pa_stream_connect_playback(): %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "Неуспела функција pa_stream_connect_record(): %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Неуспешно повезивање: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Дошао до краја датотеке.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "Неуспела функција read(): %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "Дошао до краја датотеке.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "Неуспела функција write(): %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "Добио сигнал, излазим.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Немогу добити вредност кашњења: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Време: %0.3f s. Кашњење: %0.0f μs. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "Неуспела функција pa_stream_update_timing_info(): %s\n" # Шта да радимо са downmix и upmix. Пресликај навише и пресликај наниже? -- Игор @@ -1558,34 +1409,34 @@ msgstr "" "Компајлирано са libpulse %s\n" "Повезано са libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "Неисправна мапа канала „%s“\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "Неисправан начин дискретизације „%s“." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "Неисправна мапа канала „%s“\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Неисправан параметар кашњења „%s“\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "Неисправан параметар за време процеса „%s“\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "Неисправан начин дискретизације „%s“." #: ../src/utils/pacat.c:878 @@ -1594,60 +1445,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "Неисправни параметри узорка\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "Превише параметара.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "Није успело добављање података о узорку: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Није успело отварање звучне датотеке.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "Отварам ток %s са следећим параметрима узорка „%s“.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "Није успело добављање података о узорку: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "Отварам ток %s са следећим параметрима узорка „%s“.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "Мапа канала се не поклапа са параметрима узорка\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "Отварам ток %s са следећим параметрима узорка „%s“.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "Отварам ток %s са следећим параметрима узорка „%s“.\n" #: ../src/utils/pacat.c:1006 @@ -1658,35 +1515,34 @@ msgstr "снима" msgid "playback" msgstr "пушта" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "Неуспела функција pa_mainloop_new().\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "Неуспела функција io_new() \n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "Неуспела функција pa_context_new().\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "Неуспела функција pa_context_connect(): %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "Неуспела функција time_new() \n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "Неуспела функција pa_context_new().\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "Неуспела функција pa_mainloop_run().\n" #: ../src/utils/pasuspender.c:81 @@ -1714,6 +1570,11 @@ msgstr "Неуспешно настављање: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "УПОЗОРЕЊЕ: Звучни сервер није локални, не заустављам.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Неуспешно повезивање: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1753,6 +1614,21 @@ msgstr "" "Компајлирано са libpulse %s\n" "Повезано са libpulse %s\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "Неуспела функција pa_context_new().\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "Неуспела функција pa_mainloop_run().\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2167,6 +2043,11 @@ msgstr "" "Компајлирано са libpulse %s\n" "Повезано са libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Неисправна мапа канала „%s“\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Наведите датотеку узорка коју треба учитати\n" @@ -2175,6 +2056,11 @@ msgstr "Наведите датотеку узорка коју треба уч msgid "Failed to open sound file.\n" msgstr "Није успело отварање звучне датотеке.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Није успело добављање података о узорку: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2234,11 +2120,6 @@ msgstr "Морате навести име/индекс картице и име 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 "" @@ -2358,11 +2239,11 @@ msgid "write(): %s" msgstr "write(): %s" # Како превести autospawn (могућност прављења или покретања процеса из истог) -- Игор -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Није могуће приступити датотеци закључавања за самоумножавање." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2379,7 +2260,7 @@ msgstr "" "Пробуђени смо са постављеним POLLOUT-ом -- али следећи snd_pcm_avail() је " "вратио 0 или неку другу вредност мању од min_avail." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2397,15 +2278,15 @@ msgstr "" "вратио 0 или неку другу вредност мању од min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Искључено" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "Репродукција високе тачности (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Двострано телефонирање (HSP/HFP)" @@ -2413,6 +2294,140 @@ msgstr "Двострано телефонирање (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "PulseAudio звучни систем" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Није се могуће прикључити на системску магистралу: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Не могу добавити позивника из PID-а: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Не могу поставити UID за позивнички објекат." + +#~ msgid "Failed to get CK session." +#~ msgstr "Неуспешно добављање CK сесије." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "Не могу поставити UID за објекат сесије." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Не могу поставити PolKitAction." + +#~ msgid "Cannot set action_id" +#~ msgstr "Не могу поставити action_id" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Не могу поставити PolKitContext." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Не могу иницијализовати PolKitContex: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Није могуће одредити овлашћење позивника: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Не могу добити овлашћење: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit је одговорио са „%s“" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Високоприоритетно распоређивање (негативни Unix нивои финоће, тј. nice " +#~ "нивои) за PulseAudio демона" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Стварновременско распоређивање за PulseAudio демона" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "Системска политика спречава PulseAudio-у да добије високоприоритетно " +#~ "распоређивање." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "Системска политика спречава PulseAudio-у да добије стварновременско " +#~ "распоређивање." + +#~ msgid "read() failed: %s\n" +#~ msgstr "Неуспела функција read(): %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "Неуспела функција pa_context_connect(): %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Налазимо се у групи „%s“ која дозвољава високоприоритетно распоређивање." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "" +#~ "Налазимо се у групи „%s“ која дозвољава стварновременско распоређивање." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit нам је дао овлашћење за добијање високог приоритета." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit одбија овлашћење за добијање високог приоритета." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit нам је дао овлашћење за добијање рада у стварном времену." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit одбија овлашћење за добијање рада у стварном времену." + +# +#~ 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." +#~ msgstr "" +#~ "SUID root и стварновременско и/или високоприоритетно распоређивање је " +#~ "захтевано у подешавањима. Међутим, немамо потребна овлашћења:\n" +#~ "нисмо у групи „%s“, PolicyKit одбија да нам да̑ тражена овлашћења и " +#~ "немамо средстава за повећање RLIMIT_NICE/RLIMIT_RTPRIO ограничења.\n" +#~ "Морате добити одговарајућа PolicyKit овлашћења, или постати члан групе „%" +#~ "s“, или повећати ограничења за RLIMIT_NICE/RLIMIT_RTPRIO средства овог " +#~ "корисника како би омогућили стварновременско или високоприоритетно " +#~ "распоређивање." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "Високоприоритетно распоређивање је омогућено у подешавањима, али политика " +#~ "то не дозвољава." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "Успешно повећано RLIMIT_RTPRIO ограничење" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "Неуспешно постављање RLIMIT_RTPRIO-а:%s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Одустајем од CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "Стварновременско распоређивање је омогућено у подешавањима, али политика " +#~ "то не дозвољава." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Успешно ограничио могућности на CAP_SYS_NICE." + +#~ msgid "time_new() failed.\n" +#~ msgstr "Неуспела функција time_new() \n" + #~ msgid "Analog Mono" #~ msgstr "Аналогни моно" diff --git a/po/sr@latin.po b/po/sr@latin.po index e5b0f7b1..ddbacadf 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-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-07 23:02+0100\n" "Last-Translator: Miloš Komarčević \n" "Language-Team: Serbian \n" @@ -19,7 +19,12 @@ msgstr "" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 0.3\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -32,7 +37,7 @@ msgstr "" "Ovo je najverovatnije greška u „%s“ ALSA upravljačkom programu. Prijavite " "ovaj problem ALSA programerima." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -45,7 +50,7 @@ msgstr "" "Ovo je najverovatnije greška u „%s“ ALSA upravljačkom programu. Prijavite " "ovaj problem ALSA programerima." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -71,7 +76,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Unutrašnji zvuk" @@ -91,223 +96,92 @@ msgstr "Neuspešno smeštanje novog dl učitavača." msgid "Failed to add bind-now-loader." msgstr "Neuspešno dodavanje „poveži odmah“ učitavača." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Nije se moguće priključiti na sistemsku magistralu: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Ne mogu dobaviti pozivnika iz PID-a: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Ne mogu postaviti UID za pozivnički objekat." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Neuspešno dobavljanje CK sesije." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Ne mogu postaviti UID za objekat sesije." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Ne mogu postaviti PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Ne mogu postaviti action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Ne mogu postaviti PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Ne mogu inicijalizovati PolKitContex: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Nije moguće odrediti ovlašćenje pozivnika: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Ne mogu dobiti ovlašćenje: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit je odgovorio sa „%s“" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Dobih signal %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Napuštam." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Ne mogu naći korisnika „%s“." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Ne mogu naći grupu „%s“." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Nađeni su korisnik „%s“ (UID %lu) i grupa „%s“ (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID korisnika „%s“ se ne poklapa sa grupom „%s“." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Lični direktorijum korisnika „%s“ nije „%s“, zanemarujem." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Neuspešno pravljenje „%s“: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Neuspešna promena grupnog spiska: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Neuspešna promena GID-a: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Neuspešna promena UID-a: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Uspešno odbačena root ovlašćenja." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "Režim za čitav sistem nije podržan na ovoj platformi." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) nije uspelo: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Neuspešno tumačenje komandne linije." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"Nalazimo se u grupi „%s“ koja dozvoljava visokoprioritetno raspoređivanje." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" -"Nalazimo se u grupi „%s“ koja dozvoljava stvarnovremensko raspoređivanje." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit nam je dao ovlašćenje za dobijanje visokog prioriteta." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit odbija ovlašćenje za dobijanje visokog prioriteta." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit nam je dao ovlašćenje za dobijanje rada u stvarnom vremenu." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit odbija ovlašćenje za dobijanje rada u stvarnom vremenu." - -# -#: ../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." -msgstr "" -"SUID root i stvarnovremensko i/ili visokoprioritetno raspoređivanje je " -"zahtevano u podešavanjima. Međutim, nemamo potrebna ovlašćenja:\n" -"nismo u grupi „%s“, PolicyKit odbija da nam dȃ tražena ovlašćenja i nemamo " -"sredstava za povećanje RLIMIT_NICE/RLIMIT_RTPRIO ograničenja.\n" -"Morate dobiti odgovarajuća PolicyKit ovlašćenja, ili postati član grupe „%" -"s“, ili povećati ograničenja za RLIMIT_NICE/RLIMIT_RTPRIO sredstva ovog " -"korisnika kako bi omogućili stvarnovremensko ili visokoprioritetno " -"raspoređivanje." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Visokoprioritetno raspoređivanje je omogućeno u podešavanjima, ali politika " -"to ne dozvoljava." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "Uspešno povećano RLIMIT_RTPRIO ograničenje" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "Neuspešno postavljanje RLIMIT_RTPRIO-a:%s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Odustajem od CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Stvarnovremensko raspoređivanje je omogućeno u podešavanjima, ali politika " -"to ne dozvoljava." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Demon nije pokrenut" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Demon je pokrenut sa PID-om %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Neuspešno ubijanje demona: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -315,154 +189,154 @@ msgstr "" "Nije nameravano da se ovaj program pokreće iz root naloga (osim u slučaju " "kada je --system navedeno)" -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Potrebna su root ovlašćenja." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start nije podržano za sistemske primerke." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "Pokrenuto u sistemskom režimu, ali --disallow-exit nije postavljeno!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "Pokrenuto u sistemskom režimu, ali --disallow-module-loading nije " "postavljeno!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Pokrenuto u sistemskom režimu, prisilno onemogućujem SHM režim!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "Pokrenuto u sistemskom režimu, prisilno onemogućujem gašenje posle određenog " "vremena mirovanja!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Neuspešno pronalaženje standardnog ulaza/izlaza." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "Neuspešno puštanje podataka kroz cev: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "Neuspela funkcija fork(): %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "Neuspela funkcija read(): %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Neuspešno pokretanje demona." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Demon uspešno pokrenut." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Ovo je PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Domaćin kompajliranja: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS kompajliranja: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Pokrenut na domaćinu: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "Našao %u procesor(a)" -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "Veličina stranice je %lu bajtova" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Kompajlirano sa podrškom za Valgrind: da" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Kompajlirano sa podrškom za Valgrind: ne" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Pokrenut u Valgrind režimu: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Optimizovana izgradnja: da" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Optimizovana izgradnja: ne" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG definisan, sva obaveštenja isključena." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH definisan, samo obaveštenja brze putanje isključena." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "Sva obaveštenja omogućena." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Neuspešno dobavljanje IB mašine" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "IB mašine je %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "IB mašine je %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Koristi se %s izvršni direktorijum." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Koristi se %s direktorijum stanja." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Pokrenuto u sistemskom režimu: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -472,15 +346,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "Neuspela funkcija pa_pid_file_create()." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Dostupni su novi brojači visoke rezolucije! Prijatno!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -488,27 +362,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:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "Neuspela funkcija pa_core_new()." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Neuspešno pokretanje demona." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 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:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Pokretanje demona uspešno." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Pokrenuto gašenje demona." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Rad demona je prekinut." @@ -852,14 +726,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Pročitaj iz datoteke podešavanja: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Odbacujem root povlastice." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Uspešno ograničio mogućnosti na CAP_SYS_NICE." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio zvučni sistem" @@ -868,30 +738,6 @@ msgstr "PulseAudio zvučni sistem" msgid "Start the PulseAudio Sound System" msgstr "Pokreni PulseAudio zvučni sistem" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" -"Visokoprioritetno raspoređivanje (negativni Unix nivoi finoće, tj. nice " -"nivoi) za PulseAudio demona" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "Stvarnovremensko raspoređivanje za PulseAudio demona" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"Sistemska politika sprečava PulseAudiu da dobije visokoprioritetno " -"raspoređivanje." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" -"Sistemska politika sprečava PulseAudiu da dobije stvarnovremensko " -"raspoređivanje." - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1265,183 +1111,187 @@ msgstr "Neuspešno tumačenje podataka iz kolačića" msgid "Failed to open configuration file '%s': %s" msgstr "Neuspešno otvaranje datoteke podešavanja „%s“: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "Kolačić nije učitan. Pokušavam se povezati bez kolačića." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Primio poruku za nepoznati lokal „%s“" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Neuspešno isušivanje toka: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "Reprodukcioni tok isušen.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "Veza do servera se isušuje.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "Neuspela funkcija pa_stream_write(): %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "Neuspela funkcija pa_stream_write(): %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "Neuspela funkcija pa_stream_peek(): %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Tok uspešno napravljen.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "Neuspešno pa_stream_get_buffer_attr(): %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Metrike bafera: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Metrike bafera: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "Koristim sledeće parametre uzorka „%s“ i mapu kanala „%s“.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "Priključen na uređaj %s (%u, %s obustavljeno).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Greška toka: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "Uređaj toka obustavljen.%s\n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "Uređaj toka nastavljen.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "Tok nije popunjen. %s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "Tok se preliva.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "Tok pokrenut. %s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "Tok prebačen na uređaj %s (%u, %s obustavljeno). %s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "nije" -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "Parametri bafera toka su promenjeni. %s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "Veza uspostavljena.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "Neuspela funkcija pa_stream_new() : %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "Neuspela funkcija pa_stream_connect_playback(): %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "Neuspela funkcija pa_stream_connect_record(): %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Neuspešno povezivanje: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Došao do kraja datoteke.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "Neuspela funkcija read(): %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "Došao do kraja datoteke.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "Neuspela funkcija write(): %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "Dobio signal, izlazim.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Nemogu dobiti vrednost kašnjenja: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Vreme: %0.3f s. Kašnjenje: %0.0f μs. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "Neuspela funkcija pa_stream_update_timing_info(): %s\n" # Šta da radimo sa downmix i upmix. Preslikaj naviše i preslikaj naniže? -- Igor @@ -1561,34 +1411,34 @@ msgstr "" "Kompajlirano sa libpulse %s\n" "Povezano sa libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "Neispravna mapa kanala „%s“\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "Neispravan način diskretizacije „%s“." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "Neispravna mapa kanala „%s“\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Neispravan parametar kašnjenja „%s“\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "Neispravan parametar za vreme procesa „%s“\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "Neispravan način diskretizacije „%s“." #: ../src/utils/pacat.c:878 @@ -1597,60 +1447,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "Neispravni parametri uzorka\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "Previše parametara.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "Nije uspelo dobavljanje podataka o uzorku: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Nije uspelo otvaranje zvučne datoteke.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "Otvaram tok %s sa sledećim parametrima uzorka „%s“.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "Nije uspelo dobavljanje podataka o uzorku: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "Otvaram tok %s sa sledećim parametrima uzorka „%s“.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "Mapa kanala se ne poklapa sa parametrima uzorka\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "Otvaram tok %s sa sledećim parametrima uzorka „%s“.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "Otvaram tok %s sa sledećim parametrima uzorka „%s“.\n" #: ../src/utils/pacat.c:1006 @@ -1661,35 +1517,34 @@ msgstr "snima" msgid "playback" msgstr "pušta" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "Neuspela funkcija pa_mainloop_new().\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "Neuspela funkcija io_new() \n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "Neuspela funkcija pa_context_new().\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "Neuspela funkcija pa_context_connect(): %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "Neuspela funkcija time_new() \n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "Neuspela funkcija pa_context_new().\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "Neuspela funkcija pa_mainloop_run().\n" #: ../src/utils/pasuspender.c:81 @@ -1717,6 +1572,11 @@ 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:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Neuspešno povezivanje: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1756,6 +1616,21 @@ msgstr "" "Kompajlirano sa libpulse %s\n" "Povezano sa libpulse %s\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "Neuspela funkcija pa_mainloop_new().\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "Neuspela funkcija pa_context_new().\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "Neuspela funkcija pa_mainloop_run().\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2170,6 +2045,11 @@ msgstr "" "Kompajlirano sa libpulse %s\n" "Povezano sa libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Neispravna mapa kanala „%s“\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Navedite datoteku uzorka koju treba učitati\n" @@ -2178,6 +2058,11 @@ msgstr "Navedite datoteku uzorka koju treba učitati\n" msgid "Failed to open sound file.\n" msgstr "Nije uspelo otvaranje zvučne datoteke.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Nije uspelo dobavljanje podataka o uzorku: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2237,11 +2122,6 @@ msgstr "Morate navesti ime/indeks kartice i ime profila\n" msgid "No valid command specified.\n" msgstr "Ni jedna ispravna naredba nije navedena.\n" -#: ../src/utils/pactl.c:1122 -#, c-format -msgid "pa_context_connect() failed: %s" -msgstr "Neuspela funkcija pa_context_connect(): %s" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2361,11 +2241,11 @@ msgid "write(): %s" msgstr "write(): %s" # Kako prevesti autospawn (mogućnost pravljenja ili pokretanja procesa iz istog) -- Igor -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Nije moguće pristupiti datoteci zaključavanja za samoumnožavanje." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2382,7 +2262,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:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2400,15 +2280,15 @@ msgstr "" "vratio 0 ili neku drugu vrednost manju od min_avail." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "Isključeno" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "Reprodukcija visoke tačnosti (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "Dvostrano telefoniranje (HSP/HFP)" @@ -2416,6 +2296,141 @@ msgstr "Dvostrano telefoniranje (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "PulseAudio zvučni sistem" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Nije se moguće priključiti na sistemsku magistralu: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Ne mogu dobaviti pozivnika iz PID-a: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Ne mogu postaviti UID za pozivnički objekat." + +#~ msgid "Failed to get CK session." +#~ msgstr "Neuspešno dobavljanje CK sesije." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "Ne mogu postaviti UID za objekat sesije." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Ne mogu postaviti PolKitAction." + +#~ msgid "Cannot set action_id" +#~ msgstr "Ne mogu postaviti action_id" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Ne mogu postaviti PolKitContext." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Ne mogu inicijalizovati PolKitContex: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Nije moguće odrediti ovlašćenje pozivnika: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Ne mogu dobiti ovlašćenje: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit je odgovorio sa „%s“" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "Visokoprioritetno raspoređivanje (negativni Unix nivoi finoće, tj. nice " +#~ "nivoi) za PulseAudio demona" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "Stvarnovremensko raspoređivanje za PulseAudio demona" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "Sistemska politika sprečava PulseAudiu da dobije visokoprioritetno " +#~ "raspoređivanje." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "" +#~ "Sistemska politika sprečava PulseAudiu da dobije stvarnovremensko " +#~ "raspoređivanje." + +#~ msgid "read() failed: %s\n" +#~ msgstr "Neuspela funkcija read(): %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "Neuspela funkcija pa_context_connect(): %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Nalazimo se u grupi „%s“ koja dozvoljava visokoprioritetno raspoređivanje." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "" +#~ "Nalazimo se u grupi „%s“ koja dozvoljava stvarnovremensko raspoređivanje." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit nam je dao ovlašćenje za dobijanje visokog prioriteta." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit odbija ovlašćenje za dobijanje visokog prioriteta." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "" +#~ "PolicyKit nam je dao ovlašćenje za dobijanje rada u stvarnom vremenu." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit odbija ovlašćenje za dobijanje rada u stvarnom vremenu." + +# +#~ 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." +#~ msgstr "" +#~ "SUID root i stvarnovremensko i/ili visokoprioritetno raspoređivanje je " +#~ "zahtevano u podešavanjima. Međutim, nemamo potrebna ovlašćenja:\n" +#~ "nismo u grupi „%s“, PolicyKit odbija da nam dȃ tražena ovlašćenja i " +#~ "nemamo sredstava za povećanje RLIMIT_NICE/RLIMIT_RTPRIO ograničenja.\n" +#~ "Morate dobiti odgovarajuća PolicyKit ovlašćenja, ili postati član grupe „%" +#~ "s“, ili povećati ograničenja za RLIMIT_NICE/RLIMIT_RTPRIO sredstva ovog " +#~ "korisnika kako bi omogućili stvarnovremensko ili visokoprioritetno " +#~ "raspoređivanje." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "Visokoprioritetno raspoređivanje je omogućeno u podešavanjima, ali " +#~ "politika to ne dozvoljava." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "Uspešno povećano RLIMIT_RTPRIO ograničenje" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "Neuspešno postavljanje RLIMIT_RTPRIO-a:%s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Odustajem od CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "Stvarnovremensko raspoređivanje je omogućeno u podešavanjima, ali " +#~ "politika to ne dozvoljava." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Uspešno ograničio mogućnosti na CAP_SYS_NICE." + +#~ msgid "time_new() failed.\n" +#~ msgstr "Neuspela funkcija time_new() \n" + #~ msgid "Analog Mono" #~ msgstr "Analogni mono" diff --git a/po/sv.po b/po/sv.po index 3f91c9ae..3bf80f2c 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2008-09-05 18:24+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" @@ -15,7 +15,12 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -24,7 +29,7 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -33,7 +38,7 @@ msgid "" "to the ALSA developers." msgstr "" -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -55,7 +60,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 #, fuzzy msgid "Internal Audio" msgstr "Internt fel" @@ -77,208 +82,92 @@ msgstr "Misslyckades med att öppna ljudfil.\n" msgid "Failed to add bind-now-loader." msgstr "" -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "" - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "" - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "" - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "" - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "" - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit svarade med \"%s\"" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Fick signal %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Avslutar." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Misslyckades med att hitta användaren \"%s\"." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Misslyckades med att hitta gruppen \"%s\"." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "" -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "" -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Hemkatalogen för användaren \"%s\" är inte \"%s\", ignorerar." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Misslyckades med att skapa \"%s\": %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "" -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "" -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) misslyckades: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "" -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "" - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "" - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "" - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "" - -#: ../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." -msgstr "" - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO misslyckades: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -286,151 +175,151 @@ msgstr "" "Detta program är inte tänkt att köras som root (såvida inte --system har " "angivits)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 #, fuzzy msgid "Root privileges required." msgstr "Root-behörighet krävs." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start stöds inte för systeminstanser." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "" -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "pipe misslyckades: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() misslyckades: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() misslyckades: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "" -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "" -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Detta är PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "" -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "" -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "" -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "" -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, c-format msgid "Session ID is %s." msgstr "" -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "" -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "" -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -440,41 +329,41 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() misslyckades." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() misslyckades." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "" -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "" -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "" -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "" @@ -739,15 +628,11 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 #, fuzzy msgid "Dropping root privileges." msgstr "Släpper root-behörighet." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "" - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "" @@ -756,24 +641,6 @@ msgstr "" 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" -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -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." -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Mono" @@ -1147,183 +1014,184 @@ msgstr "" msgid "Failed to open configuration file '%s': %s" msgstr "Misslyckades med att öppna konfigurationsfilen \"%s\": %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "" -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" -msgstr "" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" +msgstr "Misslyckades med att hitta användaren \"%s\"." -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +msgid "Playback stream drained." msgstr "" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +msgid "Draining connection to server." msgstr "" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() misslyckades: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() misslyckades: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() misslyckades: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +msgid "Stream successfully created." msgstr "" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() misslyckades: %s\n" -#: ../src/utils/pacat.c:309 +#: ../src/utils/pacat.c:314 #, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "" -#: ../src/utils/pacat.c:312 +#: ../src/utils/pacat.c:317 #, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "" -#: ../src/utils/pacat.c:316 +#: ../src/utils/pacat.c:321 #, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +msgid "Using sample spec '%s', channel map '%s'." msgstr "" -#: ../src/utils/pacat.c:320 +#: ../src/utils/pacat.c:325 #, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +msgid "Connected to device %s (%u, %ssuspended)." msgstr "" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Strömfel: %s\n" -#: ../src/utils/pacat.c:340 +#: ../src/utils/pacat.c:345 #, c-format -msgid "Stream device suspended.%s \n" +msgid "Stream device suspended.%s" msgstr "" -#: ../src/utils/pacat.c:342 +#: ../src/utils/pacat.c:347 #, c-format -msgid "Stream device resumed.%s \n" +msgid "Stream device resumed.%s" msgstr "" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" -msgstr "" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" +msgstr "Strömfel: %s\n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" -msgstr "" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" +msgstr "Strömfel: %s\n" -#: ../src/utils/pacat.c:364 +#: ../src/utils/pacat.c:369 #, c-format -msgid "Stream started.%s \n" +msgid "Stream started.%s" msgstr "" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 #, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "inte " -#: ../src/utils/pacat.c:378 +#: ../src/utils/pacat.c:383 #, c-format -msgid "Stream buffer attributes changed.%s \n" +msgid "Stream buffer attributes changed.%s" msgstr "" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" -msgstr "" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" +msgstr "Anslutning etablerad.\n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() misslyckades: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() misslyckades: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() misslyckades: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Anslutningsfel: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Fick filslut.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() misslyckades: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "Fick filslut.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() misslyckades: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" -msgstr "" - -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" -msgstr "" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." +msgstr "Fick signal %s." #: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" +msgstr "Misslyckades med att få statistik: %s\n" + +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Tid: %0.3f sec; Latens: %0.0f ms \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() misslyckades: %s\n" #: ../src/utils/pacat.c:605 @@ -1394,34 +1262,34 @@ msgid "" "Linked with libpulse %s\n" msgstr "" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 -#, c-format -msgid "Invalid client name '%s'\n" -msgstr "" +#: ../src/utils/pacat.c:760 +#, fuzzy, c-format +msgid "Invalid client name '%s'" +msgstr "Ogiltig server" #: ../src/utils/pacat.c:776 -#, c-format -msgid "Invalid stream name '%s'\n" -msgstr "" +#, fuzzy, c-format +msgid "Invalid stream name '%s'" +msgstr "Ogiltig server" #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" -msgstr "" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" +msgstr "Ogiltig server" #: ../src/utils/pacat.c:842 #, c-format -msgid "Invalid latency specification '%s'\n" +msgid "Invalid latency specification '%s'" msgstr "" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" -msgstr "" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" +msgstr "Ogiltig server" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "Ogiltig server" #: ../src/utils/pacat.c:878 @@ -1430,59 +1298,63 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" -msgstr "" +#, fuzzy +msgid "Invalid sample specification" +msgstr "Misslyckades med att få modulinformation: %s\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "För många argument.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "Misslyckades med att få modulinformation: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Misslyckades med att öppna ljudfil.\n" #: ../src/utils/pacat.c:956 msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" +"specification from file." msgstr "" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 -msgid "Failed to determine sample specification from file.\n" -msgstr "" +#: ../src/utils/pacat.c:959 +#, fuzzy +msgid "Failed to determine sample specification from file." +msgstr "Misslyckades med att få modulinformation: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" +msgid "Warning: Failed to determine channel map from file." msgstr "" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" -msgstr "" +#, fuzzy +msgid "Channel map doesn't match sample specification" +msgstr "Misslyckades med att få modulinformation: %s\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" +msgid "Warning: failed to write channel map to file." msgstr "" #: ../src/utils/pacat.c:1005 #, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "" #: ../src/utils/pacat.c:1006 @@ -1493,35 +1365,34 @@ msgstr "" msgid "playback" msgstr "" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() misslyckades.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() misslyckades.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() misslyckades.\n" -#: ../src/utils/pacat.c:1066 +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 #, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +msgid "pa_context_connect() failed: %s" msgstr "pa_context_new() misslyckades.\n" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() misslyckades.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() misslyckades.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() misslyckades.\n" #: ../src/utils/pasuspender.c:81 @@ -1549,6 +1420,11 @@ msgstr "" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Anslutningsfel: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1582,6 +1458,21 @@ msgstr "" "Kompilerad med libpulse %s\n" "Länkad med libpulse %s\n" +#: ../src/utils/pasuspender.c:277 ../src/utils/pactl.c:1104 +#, c-format +msgid "pa_mainloop_new() failed.\n" +msgstr "pa_mainloop_new() misslyckades.\n" + +#: ../src/utils/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() misslyckades.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() misslyckades.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -1874,6 +1765,11 @@ msgstr "" "Kompilerad med libpulse %s\n" "Länkad med libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, c-format +msgid "Invalid client name '%s'\n" +msgstr "" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "" @@ -1882,6 +1778,10 @@ msgstr "" msgid "Failed to open sound file.\n" msgstr "Misslyckades med att öppna ljudfil.\n" +#: ../src/utils/pactl.c:944 +msgid "Failed to determine sample specification from file.\n" +msgstr "" + #: ../src/utils/pactl.c:951 msgid "Warning: Failed to determine sample specification from file.\n" msgstr "" @@ -1938,11 +1838,6 @@ msgstr "" msgid "No valid command specified.\n" msgstr "" -#: ../src/utils/pactl.c:1122 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s" -msgstr "pa_context_new() misslyckades.\n" - #: ../src/utils/pax11publish.c:61 #, c-format msgid "" @@ -2052,11 +1947,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "" -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2067,7 +1962,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2079,15 +1974,15 @@ msgid "" msgstr "" #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "" @@ -2095,8 +1990,21 @@ msgstr "" msgid "PulseAudio Sound Server" msgstr "" -#~ msgid "Connection established.\n" -#~ msgstr "Anslutning etablerad.\n" +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit svarade med \"%s\"" + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() misslyckades: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_new() misslyckades.\n" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO misslyckades: %s" + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() misslyckades.\n" #~ msgid "" #~ "paplay %s\n" diff --git a/po/ta.po b/po/ta.po index a10b0168..73da25ed 100644 --- a/po/ta.po +++ b/po/ta.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.pulseaudio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-12 05:02+0530\n" "Last-Translator: I. Felix \n" "Language-Team: Tamil \n" @@ -34,7 +34,12 @@ msgstr "" "\n" "\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -47,7 +52,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:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -60,7 +65,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:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -86,7 +91,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "உட்புற ஆடியோ" @@ -106,373 +111,242 @@ msgstr "புதிய dl ஏற்றுபவரை ஒதுக்கிர msgid "Failed to add bind-now-loader." msgstr "இப்போது பிணைக்கும் ஏற்பியை சேர்ப்பதில் தோல்வி." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "கணினி பஸ்ஸை இணைக்க முடியவில்லை: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "PID லிருந்து அழைப்பாளரை பெற முடியவில்லை: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "UID க்கு அழைப்பாளர் பொருளை அமைக்க முடியவில்லை." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK அமர்வை பெறுவதில் தோல்வி." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "அமர்வு பொருளில் UIDஐ அமைக்க முடியவில்லை." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "PolKitActionஐ ஒதுக்க இயலவில்லை." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "செயலை அமைக்க முடியவில்லை (_i)" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "PolKitContextஐ ஒஉக்கிட முடியசவில்லை." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "PolKitContextஐ துவக்க முடியவில்லை: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "அழைப்பாளர் அங்கீகரிக்கப்பட்டவரா என்பயை நிச்சயிக்க முடியவில்லை: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "authஐ பெற முடியவில்லை: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "'%s'உடன் பாலிஸிகிட் ஒத்துபோகிறது" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "%sக்கு சிக்னல் கிடைத்துவிட்டது." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "வெளியேறுதல்." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "'%s' பயனரை கண்டுபிடிப்பதில் தோல்வி." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "'%s' குழுவை கண்டுபிடிப்பதில் தோல்வி." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "'%s'பயனர் கண்டுபிடிக்கப்பட்டார் (UID %lu) மற்றும் குழு '%s' (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID ன் பயனர் '%s' மற்றும் '%s' குழுவுடன் ஒத்து போகவில்லை." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "முகப்பு அடைவு பயனரான'%s' '%s'ஆல், புறக்கணிக்கப்படவில்லை." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s'ஐ உருவாக்க முடியவில்லை: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "குழுப் பட்டியலை மாற்ற முடியவில்லை: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GIDக்கு மாற்றுவதில் தோல்வி: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UIDக்கு மாற்றுவதில் தோல்வி: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "ரூட் முன்னுரிமைகள் வெற்றிகரமாக விடப்பட்டது." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "இந்த தளத்தில் கணினியின் திறந்த முறைமை துணைபுரியவில்லை." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) தோல்வியுற்றது: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "கட்டளை வரியை மாற்றுவதில் தோல்வி." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"நாம் குழு '%s'ல் இருந்த போது , உயர்ந்த முதன்மை அட்டவணைப்படுத்த அனுமதி " -"அளிக்கப்பட்டிருந்தது." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "குழு '%s'இல் இருக்கிறோம், நிகழ்நேர திட்டமிடுதலை அனுமதிக்கிறது." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "நமக்காக PolicyKit உயர்ந்த முக்கிய முன்னுரிமையை வழங்குகிறது." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit உயர்ந்த முக்கிய முன்னுரிமையை மறுக்கிறது." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit acquire-real-time முன்னுரிமைகளை கொடுக்கிறது." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit acquire-real-time முன்னுரிமைகளை நிராகரிக்கிறது." - -#: ../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." -msgstr "" -"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." - -#: ../src/daemon/main.c:585 -msgid "" -"High-priority scheduling enabled in configuration but not allowed by policy." -msgstr "" -"உயர்ந்த சலுகைகளின் அட்டவணையை கட்டமைப்பில் செயல்படுத்தப்பட்டது ஆனால் பாலிசியால் " -"அனுமதிக்கப்படவில்லை." - -#: ../src/daemon/main.c:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "வெற்றிகரமாக அதிகரிக்கப்பட்டது RLIMIT_RTPRIO" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO தோல்வியுற்றது: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "" -"CAP_NICEஐ மேலே கொடுக்கிறது (_N\n" -")" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"நிகழ்நேர திட்டமிடுதல் கட்டமைப்பில் செயல்படுத்தப்பட்டது ஆனால் கொள்கையால் அனுமதிக்கப்படுவதில்லை" - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "டோமோன் இயங்கவில்லை" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "PID %uவாக டோமோன் இயங்குகிறது" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "டோமோனுக்கு முடிவு கட்டுவதில் தோல்வி: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "இந்த நிரல் ரூட்டாக இயங்க முடியவில்லை (--system குறிப்பிடாத வரை)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "ரூட் முன்னுரிமைகள் தேவைப்படுகிறது." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start கணினி நிகழ்வில் துணைபுரியவில்லை." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "கணினி முறைமையில் இயங்குகிறது, ஆனால் --disallow-exit அமைக்கப்படவில்லை!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "கணினி முறைமையில் இயங்குகிறது, ஆனால் --disallow-module-loading அமைக்கப்படவில்லை!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "கணினி முறைமையில் இயங்குகிறது, SHM முறைமை செயல்நீக்குதல் கட்டாயப்படுத்துகிறது!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "கணினி முறைமையில் இயங்குகிறது, வெறுமை நேரத்தை செயல்நீக்க கட்டாயப்படுத்துகிறது!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "stdioஐ பெற முடியவில்லை." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "பைப் தோல்வியுற்றது: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() தோல்வியுற்றது: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "வாசிப்பதில்() தோல்வியுற்றது: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "டோமோனை துவக்குவதில் தோல்வியுற்றது." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "டோமோனை வெற்றிகரமாக துவக்ககப்பட்டது." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "இது தான் பள்ஸ் ஆடியோ %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "தொகுக்கப்பட்ட புரவலன்: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "தொகுப்பு CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "புரவலனாக இயங்குகிறத: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "CPUs %uவில் காணப்படுகிறது ." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "பக்க அளவுகள் %lu பைட்ஸ்" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Compiled with Valgrind support: yes" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Compiled with Valgrind support: no" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind முறைமையில் இயங்குகிறது: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Optimized build: yes" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "சுருக்கமான உருவாக்கம்: இல்லை" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "" -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "" -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "கணினி குறியீடை பெறுவதில் தோல்வி" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "கணினி குறியீடு %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "கணினி குறியீடு %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "ஓடும்நேரம் %s அடைவை பயன்படுத்துகிறது." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "%s நிலை அடைவினை பயன்படுத்துகிறது." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "கணினியின் முறைமையில் இயங்குகிறது: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -482,15 +356,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() தோல்வியுற்றது." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "உயர்ந்த திரைத்திறன் நேரம்காட்டி கிடைக்கிளது! Bon appetit!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -498,27 +372,27 @@ msgstr "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() தோல்வியுற்றது." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "டோமோனை ஆரம்பிப்பதில் தோல்வி." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "டீமான் துவக்கம் எந்த தொகுதிகளும் ஏற்றப்படாமல், வேலையை நிராகரிக்கிறது." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "டோமோன் துவக்குவது முடிவடைந்தது." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "டோமோன் பணிநிறுத்தம் முனைகிறது." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "டோமோன் நீக்கப்பட்டுது." @@ -853,14 +727,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### கட்டமைப்பு கோப்பிலிருந்து வாசிக்கவும்: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "ரூட் முன்னுரிமைகள் விடுபடுகிறது." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "குறிப்பிட்ட திறன்கள் CAP_SYS_NICEக்கு அமைக்கப்பட்டது." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "பள்ஸ் ஆடியோ ஒலி கணினி" @@ -869,26 +739,6 @@ msgstr "பள்ஸ் ஆடியோ ஒலி கணினி" 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" -msgstr "" -"அதிக முன்னுரிமையுள்ள திட்டமிடுதல் (negative Unix nice level) PulseAudio daemonக்கு" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "PulseAudio daemonக்கான நிகழ்நேர திட்டமிடுதல்" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -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:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "மோனோ" @@ -1261,183 +1111,187 @@ msgstr "குக்கீ தரவை மாற்றுவதில் தோ msgid "Failed to open configuration file '%s': %s" msgstr "'%s'கட்டமைக்கப்பட்ட கோப்பினை திறக்க முடியவில்லை: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "குக்கி ஏற்றப்படவில்லை. இணைப்பில்லாமல் முயற்சிக்கிறது." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "தெரியாத தொடரிச்சியிலிருந்து '%s'க்கு செய்திகள் பெறப்பட்டன" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "ஸ்டீரிமை ட்ரைன் செய்ய முடியவில்லை: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "ட்ரைன் செய்யப்பட்ட ஸ்டீரிம்.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "ட்ரைன் செய்யும் இணைப்பு சேவையகத்திற்கு.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() தோல்வியுற்றது: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() தோல்வியுற்றது: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() தோல்வியுற்றது: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "ஸ்டிரீம் வெற்றிகரமாக உருவாக்கப்பட்டது.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() தோல்வியுற்றது: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Buffer metrics: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "குறிப்பிட்ட குறிப்பு '%s', சேனல் மேப் '%s'ஐ பயன்படுத்தி.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "%s சாதனத்துடன் இணைக்கப்பட்டது (%u, %ssuspended).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "ஸ்டிரீம் பிழை: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "ஸ்டீரிம் சாதனம் இடைநீக்கப்பட்டது.%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "ஸ்டீரிம் சாதனம் தொடர்கிறது.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "ஸ்டீரிம் இயங்குகிறது.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "ஸ்டீரிம் அதிகளவு இயங்கியது.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "ஸ்டிரீம் %s துவக்கப்பட்டது \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "ஸ்டிரீம் %s இயக்கிக்கு நகர்ந்தது (%u, %ssuspended).%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "இல்லை" -#: ../src/utils/pacat.c:378 +#: ../src/utils/pacat.c:383 #, fuzzy, c-format -msgid "Stream buffer attributes changed.%s \n" +msgid "Stream buffer attributes changed.%s" msgstr "ஸ்டீரிம் இயங்குகிறது.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "இணைப்பு துவக்கப்பட்டது.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() தோல்வியுற்றது: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() தோல்வியுற்றது: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() தோல்வியுற்றது: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "இணைப்பதில் தோல்வி: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF கிடைக்கப் பெற்றது\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "வாசிப்பதில் () தோல்வியுற்றது: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF கிடைக்கப் பெற்றது\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "எழுதுவதில் () தோல்வியுற்றது: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "சிக்னல் கிடைத்தது, வெளியேறுகிறது.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "லடன்சியை பெற முடியவில்லை: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Time: %0.3f sec; Latency: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() தோல்வி: %s\n" #: ../src/utils/pacat.c:605 @@ -1559,34 +1413,34 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "தவறான சேனல் வரைபடம் '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "தவறான மறுமாதிரி முறை '%s'." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "தவறான சேனல் வரைபடம் '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "தவறான லேடன்சி குறிப்பீடு '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "தவறான செயல் நேர குறிப்பீடு '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "தவறான மறுமாதிரி முறை '%s'." #: ../src/utils/pacat.c:878 @@ -1595,60 +1449,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "தவறான மாதிரி குறிப்பீடு\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "நிறைய விவாதங்கள்.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "மாதிரி தகவலை பெற முடியவில்லை.: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "ஒலி கோப்பினை திறக்க முடியவில்லை.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "ஒரு %s ஸ்டீரமை மாதிரி குறிப்பீடு '%s'உடன் திறக்கிறது.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "மாதிரி தகவலை பெற முடியவில்லை.: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "ஒரு %s ஸ்டீரமை மாதிரி குறிப்பீடு '%s'உடன் திறக்கிறது.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "சேனல் மேப் மாதிரி குறிப்பீட்டுடன் பொருந்தவில்லை\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "ஒரு %s ஸ்டீரமை மாதிரி குறிப்பீடு '%s'உடன் திறக்கிறது.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "ஒரு %s ஸ்டீரமை மாதிரி குறிப்பீடு '%s'உடன் திறக்கிறது.\n" #: ../src/utils/pacat.c:1006 @@ -1659,35 +1519,34 @@ msgstr "ஒலிப்பதிவு" msgid "playback" msgstr "பிண்ணனி" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() தோல்வி.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_புதிய() தோல்வியுற்றது.(_n) \n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() தோல்வி.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() தோல்வி: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() தோல்வி.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() தோல்வி.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() தோல்வி.\n" #: ../src/utils/pasuspender.c:81 @@ -1715,6 +1574,11 @@ msgstr "தொடர முடியவில்லை: %s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "எச்சரிக்கை: ஒலி சேவையம் உள்ளமைவாக இல்லை, இடைநிறுத்தப்படவில்லை.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "இணைப்பதில் தோல்வி: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1754,6 +1618,21 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() தோல்வி.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() தோல்வி.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2169,6 +2048,11 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "தவறான சேனல் வரைபடம் '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "ஏற்றுவதற்கு ஒரு மாதிரி கோப்பினை குறிப்பிடவும்\n" @@ -2177,6 +2061,11 @@ msgstr "ஏற்றுவதற்கு ஒரு மாதிரி கோப msgid "Failed to open sound file.\n" msgstr "ஒலி கோப்பினை திறக்க முடியவில்லை.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "மாதிரி தகவலை பெற முடியவில்லை.: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2242,11 +2131,6 @@ msgstr "" 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 "" @@ -2363,11 +2247,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "autospawn பூட்டை அணுக முடியவில்லை." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2378,7 +2262,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2390,15 +2274,15 @@ msgid "" msgstr "" #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "" @@ -2407,6 +2291,140 @@ msgstr "" msgid "PulseAudio Sound Server" msgstr "பள்ஸ் ஆடியோ ஒலி கணினி" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "கணினி பஸ்ஸை இணைக்க முடியவில்லை: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "PID லிருந்து அழைப்பாளரை பெற முடியவில்லை: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "UID க்கு அழைப்பாளர் பொருளை அமைக்க முடியவில்லை." + +#~ msgid "Failed to get CK session." +#~ msgstr "CK அமர்வை பெறுவதில் தோல்வி." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "அமர்வு பொருளில் UIDஐ அமைக்க முடியவில்லை." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "PolKitActionஐ ஒதுக்க இயலவில்லை." + +#~ msgid "Cannot set action_id" +#~ msgstr "செயலை அமைக்க முடியவில்லை (_i)" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "PolKitContextஐ ஒஉக்கிட முடியசவில்லை." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "PolKitContextஐ துவக்க முடியவில்லை: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "அழைப்பாளர் அங்கீகரிக்கப்பட்டவரா என்பயை நிச்சயிக்க முடியவில்லை: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "authஐ பெற முடியவில்லை: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "'%s'உடன் பாலிஸிகிட் ஒத்துபோகிறது" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "" +#~ "அதிக முன்னுரிமையுள்ள திட்டமிடுதல் (negative Unix nice level) PulseAudio " +#~ "daemonக்கு" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "PulseAudio daemonக்கான நிகழ்நேர திட்டமிடுதல்" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "கணினி கொள்கை PulseAudioஐ அதிக முன்னுரிமை திட்டமிடுதலை பெறுவதிலிருந்து " +#~ "தடுக்கிறது." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "கணினி கொள்கை PulseAudio ஐ நிகழ்நேர திட்டமிடுதலை எடுக்கிறது." + +#~ msgid "read() failed: %s\n" +#~ msgstr "வாசிப்பதில் () தோல்வியுற்றது: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() தோல்வி: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "நாம் குழு '%s'ல் இருந்த போது , உயர்ந்த முதன்மை அட்டவணைப்படுத்த அனுமதி " +#~ "அளிக்கப்பட்டிருந்தது." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "குழு '%s'இல் இருக்கிறோம், நிகழ்நேர திட்டமிடுதலை அனுமதிக்கிறது." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "நமக்காக PolicyKit உயர்ந்த முக்கிய முன்னுரிமையை வழங்குகிறது." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit உயர்ந்த முக்கிய முன்னுரிமையை மறுக்கிறது." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit acquire-real-time முன்னுரிமைகளை கொடுக்கிறது." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit acquire-real-time முன்னுரிமைகளை நிராகரிக்கிறது." + +#~ 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." +#~ msgstr "" +#~ "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." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "உயர்ந்த சலுகைகளின் அட்டவணையை கட்டமைப்பில் செயல்படுத்தப்பட்டது ஆனால் பாலிசியால் " +#~ "அனுமதிக்கப்படவில்லை." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "வெற்றிகரமாக அதிகரிக்கப்பட்டது RLIMIT_RTPRIO" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO தோல்வியுற்றது: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "" +#~ "CAP_NICEஐ மேலே கொடுக்கிறது (_N\n" +#~ ")" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "நிகழ்நேர திட்டமிடுதல் கட்டமைப்பில் செயல்படுத்தப்பட்டது ஆனால் கொள்கையால் " +#~ "அனுமதிக்கப்படுவதில்லை" + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "குறிப்பிட்ட திறன்கள் CAP_SYS_NICEக்கு அமைக்கப்பட்டது." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() தோல்வி.\n" + #~ msgid "Analog Mono" #~ msgstr "Analog Mono" diff --git a/po/te.po b/po/te.po index d4f79e06..bf3ec2d5 100644 --- a/po/te.po +++ b/po/te.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx.te\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-08 18:21+0530\n" "Last-Translator: Krishna Babu K \n" "Language-Team: Telugu \n" @@ -21,7 +21,12 @@ msgstr "" "\n" "\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -33,7 +38,7 @@ msgstr "" "సాదారణంగా యిది ALSA డ్రైవర్ '%s' నందలి బగ్ కావచ్చును. దయచేసి దీనిని ALSA అభివృద్ది కారులకు " "నివేదించుము." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -45,7 +50,7 @@ msgstr "" "సాదారణంగా యిది ALSA డ్రైవర్ '%s' నందు బగ్ కావచ్చును . దయచేసి దీనిని ALSA అభివృద్దికారులక " "నివేదించుము." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -69,7 +74,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "అంతర్గత ఆడియో" @@ -89,364 +94,241 @@ msgstr "కొత్త dl లోడర్ కేటాయించుటలో msgid "Failed to add bind-now-loader." msgstr "bind-now-loader జతచేయుటకు విఫలమైంది." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "సిస్టమ్ బస్‌నకు అనుసంధానము కాలేకపోయింది: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "PID నుండి కాలర్‌ను పొందలేక పోయింది: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "కాలర్ ఆబ్జక్టునందు UIDను అమర్చలేక పోయింది." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "CK సెషన్ పొందుటకు విఫలమైంది." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "సెషన్ ఆబ్జక్టునందు UIDను అమర్చ లేకపోయింది." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "PolKitAction చిరునామాను కేటాయించలేక పోయింది." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "action_id అమర్చలేక పోయింది" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "PolKitContext కేటాయించలేక పోయింది." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "PolKitContext సిద్దము చేయలేక పోయింది: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "కాలర్ అధికారము కలదో లేదో నిర్ణయించలేక పోయింది: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "దృవీకరణ పొందలేక పోయింది: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit స్పందిచినది దీనితో '%s'" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "సంకేతము %s పొందినది." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "నిష్క్రమించుచున్నది." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "వినియోగదారి '%s'ను కనుగొనుటకు విఫలమైంది." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "సమూహం '%s' కనుగొనుటకు విఫలమైంది." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "వినియోగదారి '%s' (UID %lu) మరియు సమూహము '%s' (GID %lu) కనబడినవి." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "వినియోగదారి '%s' మరియు సమూహము '%s' యొక్క GID సరితూగలేదు." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "వినియోగదారి '%s' యొక్క నివాస డైరెక్టరీ '%s' కాదు, వదిలివేయుచున్నది." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "'%s' సృష్టించుటకు విఫలమైంది: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "సమూహ జాబితా మార్చుటకు విఫలమైంది: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "GID మార్చుటకు విఫలమైంది: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "UID మార్చటకు విఫలమైంది: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "root అనుమతులు విజయవంతంగా తిసివేయబడినాయి." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "ఈ ప్లాట్‌ఫాం నందు సిస్టమ్ తరహా రీతి మద్దతీయబడదు." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) విఫలమైంది: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "ఆదేశ వరుసను పార్శ్ చేయుటకు విఫలమైంది." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "మనము సమూహము '%s' నందు వున్నాము, అదిక-ప్రాముఖ్యతా పణాళికను అనుమతించుచున్నది." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "మనము సమూహము '%s' నందు వున్నాము, వాస్తవ-సమయ ప్రణాళికను అనుమతించుచున్నది." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit మనకు acquire-high-priority అనుమతిని యిచ్చుచున్నది." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit అనునది acquire-high-priority అనుమతిని తిరస్కరించుచున్నది." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit మనకు acquire-real-time అనుమతిని యిచ్చుచున్నది." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit acquire-real-time అనుమతిని తిరస్కరించుచున్నది." - -#: ../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." -msgstr "" -"SUID root కాల్ చేసింది మరియు వాస్తవ-సమయ మరియు/లేదా అదిక-ప్రాముఖ్యత ప్రణాళిక అభ్యర్ధింబడింది " -"ఆకృతీకరణనందు. ఏమైనప్పుటికి, మనకు అవసరమైన అనుమతలు లోపించినవి:\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:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "సమర్ధవంతంగా RLIMIT_RTPRIOను పెంచినది" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO విఫలమైంది: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "CAP_NICE యిస్తోంది" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "వాస్తవ-సమయ ప్రణాళిక ఆకృతీకరణనందు చేతనంచేయబడింది కాని విధానము ద్వారా అనుమతించబడలేదు." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "డెమోన్ నడుచుట లేదు" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "డెమోన్ PID %u వలె నడుచుచున్నది" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "డెమోన్ చంపుటకు విఫలమైంది: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "ఈ ప్రోగ్రామ్ root లా నడుపవలసింది కాదు (--system తెలిపితే తప్ప)" -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Root అనుమతులు అవసరము." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "--start సిస్టమ్ సంభవాల ద్వారా మద్దతీయబడదు." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "సిస్టమ్ మోడ్ నందు నడుపుతోంది, అయితే --disallow-exit అమర్చలేదు!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "సిస్టమ్ రీతినందు నడుచుచున్నది, అయితే --disallow-module-loading అమర్చలేదు!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "సిస్టమ్ రీతినందు నడుపుచున్నది, బలవంతంగా SHM రీతిని అచేతనము చేస్తోంది!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "సిస్టమ్ రీతినందు నడుచుచున్నది, బలవంతంగా నిష్క్రమణ వృధా సమయాన్ని అచేతనము చేయుచున్నది!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "stdio పొందుటకు విఫలమైంది." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "పైర్ విఫలమైంది: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork() విఫలమైంది: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read() విఫలమైంది: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "డెమోన్ ప్రారంభం విఫలమైంది." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "డెమోన్ ప్రారంభము సఫలమైంది." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "ఇది PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "నిర్వర్తన హోస్టు: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "నిర్వర్తన CFLAGS: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "హోస్టును నడుపుచున్నది: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "%u CPUలను కనుగొన్నది." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "పేజీ పరిమాణము %lu బైట్లు" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Valgrind మద్దతుతో నిర్వర్తించబడింది: అవును" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Valgrind మద్దతుతో నిర్వర్తించబడింది: లేదు" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "valgrind రీతినందు నడుపుచున్నది: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "ఆప్టిమైజ్డు బుల్డు: అవును" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "ఆప్టిమైజ్డు బుల్డు: కాదు" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "NDEBUG నిర్వచించబడింది, అన్ని స్థిరరాశులు అచేతనమైనవి." -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "FASTPATH నిర్వచించబడింది, ఫాస్ట్ పాత్ స్థిరరాశులు మాత్రమే అచేతనమైనవి." -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "అన్ని స్థిరరాశులు చేతనమైనవి." -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "మిషన్ ID పొందుటకు విఫలమైంది" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "మిషన్ ID %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "మిషన్ ID %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "రన్‌టైమ్ డైరెక్టరీను వుపయోగించుచున్నది %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "స్థితి డైరెక్టరీను వుపయోగించుచున్నది %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "సిస్టమ్ రీతినందు వుపయోగించుచున్నది: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -456,41 +338,41 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create() విఫలమైంది." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "తాజా అధిక-తీవ్రత కాలసూచికలు అందుబాటులో వున్నాయి! బాన్ ఎపటైట్!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "మిత్రమా, నీ కెర్నల్ చెడిపోయింది! అధిక-తీవ్రత కాలసూచకిలను చేతనము చేయమని సూచించడమైనది!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new() విఫలమైంది." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "డెమోన్ సిద్దముచేయుటకు విఫలమైంది." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "ఏవిధమైన మాడ్యూళ్ళు లోడవకుండా డెమోన్ ప్రారంభము, పనిచేయుటకు తిరస్కరించబడింది." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "డెమోన్ ప్రారంభము పూర్తైనది." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "డెమోన్ మూసివేత సిద్దముచేయబడింది." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "డెమోన్ అంతముచేయబడింది." @@ -825,14 +707,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### ఆకృతీకరణ దస్త్రమునుండి చదువుము: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "root అనుమతులను తీసివేయుచున్నది." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "సామర్ధ్యాలను CAP_SYS_NICE కు సమర్దవంతంగా పరిమితం చేయబడినవి." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio శబ్దపు సిస్టమ్" @@ -841,24 +719,6 @@ msgstr "PulseAudio శబ్దపు సిస్టమ్" msgid "Start the PulseAudio Sound System" msgstr "PulseAudio శబ్దపు సిస్టమ్‌ను ప్రారంభించుము" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "అధిక-ప్రాముఖ్యతా ప్రణాళిక (ఋణ యునిక్స్ సాదా స్థాయి) PulseAudio డెమోన్‌కు" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "PulseAudio డెమోన్‌ కొరకు వాస్తవ-సమయ ప్రణాళిక" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -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:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "మోనో" @@ -1231,183 +1091,187 @@ msgstr "కుకీ డాటా పార్శ్ చేయుటకు వ msgid "Failed to open configuration file '%s': %s" msgstr "ఆకృతీకరణ దస్త్రము '%s' తెరువుటకు విఫలమైంది: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "ఏ కుకీ లోడవలేదు. లేకుండా అనుసంధానమగుటకు ప్రయత్నిస్తోంది." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "తెలియని పొడిగింపు కొరకు సందేశము స్వీకరించింది '%s'" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "స్ట్రీమ్ ఎండగట్టుటకు విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "ప్లేబ్యాక్ స్ట్రీమ్ ఎండగట్టినది.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "సేవికకు అనుసంధానమును నశింపచేస్తోంది.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write() విఫలమైంది: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "స్ట్రీమ్ సమర్ధవంతంగా సృష్టించబడింది.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Buffer metrics: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "సాదారణ విశదీకరణ(స్పెక్) '%s' వుపయోగిస్తోంది, ప్రసారమార్గం మాప్ '%s'.\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "పరికరము %s (%u, %ssuspended) కు అనుసంధానించబడింది.\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "స్ట్రీమ్ దోషము: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "స్ట్రీమ్ పరికరము అర్దాంతరముగా నిలిపివేయి.%s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "స్ట్రీమ్ పరికరము తిరిగికొనసాగించబడింది.%s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "స్ట్రీమ్ తక్కువగానడుచుచున్నది.%s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "స్ట్రీమ్ మించినడుచుచున్నది.%s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "స్ట్రీమ్ ప్రారంభమైంది.%s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "స్ట్రీమ్ పరికరము %s (%u, %ssuspended) కు కదుపబడింది.%s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "కాదు " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "స్ట్రీమ్ బఫర్ యాట్రిబ్యూట్లు మార్చబడినవి.%s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "అనుసంధానము ఏర్పడినది.%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_record() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "అనుసంధానము వైఫల్యము: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "EOF పొందింది.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read() విఫలమైంది: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "EOF పొందింది.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write() విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "సంకేతము పొందినది, నిష్క్రమించుచున్నది.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "క్రియాహీనతను పొందుటలో విఫలమైంది: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "సమయం: %0.3f sec; క్రియాహీనత: %0.0f usec. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info() విఫలమైంది: %s\n" #: ../src/utils/pacat.c:605 @@ -1529,34 +1393,34 @@ msgstr "" "libpulse తో నిర్వర్తించబడింది %s\n" "libpulse లింకైనది %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "చెల్లని ప్రసారమార్గ మాప్ '%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "చెల్లని పునఃవుదాహరణ పద్దతి '%s'." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "చెల్లని ప్రసారమార్గ మాప్ '%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "చెల్లని క్రియాహీన విశదీకరణము '%s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "చెల్లని కార్యక్రమము సమయ విశదీకరణ '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "చెల్లని పునఃవుదాహరణ పద్దతి '%s'." #: ../src/utils/pacat.c:878 @@ -1565,60 +1429,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "చెల్లనటువంటి మాదిరి విశదీకరణ\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "చాలా యెక్కువ ఆర్గుమెంట్లు.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "మాదిరి సమాచారము పొందుటకు విఫలమైంది: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "శబ్దపు దస్త్రమును తెరువుటకు విఫలమైంది.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "%s స్ట్రీమ్‌ను మాదిరి విశదీకరణి '%s'తో తెరుచుచున్నది.\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "మాదిరి సమాచారము పొందుటకు విఫలమైంది: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "%s స్ట్రీమ్‌ను మాదిరి విశదీకరణి '%s'తో తెరుచుచున్నది.\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "ప్రసారమార్గ మాప్ మాదిరి విశదీకరణితో సరిపోలుటలేదు\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "%s స్ట్రీమ్‌ను మాదిరి విశదీకరణి '%s'తో తెరుచుచున్నది.\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "%s స్ట్రీమ్‌ను మాదిరి విశదీకరణి '%s'తో తెరుచుచున్నది.\n" #: ../src/utils/pacat.c:1006 @@ -1629,35 +1499,34 @@ msgstr "రికార్డింగు" msgid "playback" msgstr "ప్లేబాక్" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new() విఫలమైంది.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new() విఫలమైంది.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new() విఫలమైంది.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect() విఫలమైంది: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new() విఫలమైంది.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new() విఫలమైంది.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run() విఫలమైంది.\n" #: ../src/utils/pasuspender.c:81 @@ -1685,6 +1554,11 @@ msgstr "తిరిగికొనసాగింపు వైఫల్యమ msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "హెచ్చరిక: శబ్ధపు సేవిక స్థానికం కాదు, అర్ధాంతరనిలుపుదల కావడంలేదు.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "అనుసంధానము వైఫల్యము: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1725,6 +1599,21 @@ msgstr "" "libpulse తో నిర్వర్తించబడింది %s\n" "libpulse తో నిర్వర్తించబడింది %s\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new() విఫలమైంది.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run() విఫలమైంది.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2139,6 +2028,11 @@ msgstr "" "libpulse తో నిర్వర్తించబడింది%s\n" "libpulse తో లింకుచేయబడింది %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "చెల్లని ప్రసారమార్గ మాప్ '%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "లోడువ్వుటకు దయచేసి మాదిరి దస్త్రమును తెలుపుము\n" @@ -2147,6 +2041,11 @@ msgstr "లోడువ్వుటకు దయచేసి మాదిరి msgid "Failed to open sound file.\n" msgstr "శబ్దపు దస్త్రమును తెరువుటకు విఫలమైంది.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "మాదిరి సమాచారము పొందుటకు విఫలమైంది: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2208,11 +2107,6 @@ msgstr "మీరు కార్డ్ నామము/విషయసూచి 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 "" @@ -2329,11 +2223,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "ఆటోస్పాన్ తాళంను యాక్సిస్ చేయలేదు." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2349,7 +2243,7 @@ msgstr "" "మనము POLLOUT అమర్పు ద్వారా జాగరూక పరచబడినాము -- ఏమైనప్పటికి snd_pcm_avail() అనునది 0 ను " "యిస్తుంది లేదా వేరొక విలువ < min_avail యిస్తుంది." -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2366,15 +2260,15 @@ msgstr "" "యిస్తుంది లేదా వేరొక విలువ < min_avail యిస్తుంది." #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "ఆఫ్" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "హై ఫెడిలిటి ప్లేబ్యాక్ (A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "టెలిఫోనీ డూప్లెక్స్ (HSP/HFP)" @@ -2382,6 +2276,126 @@ msgstr "టెలిఫోనీ డూప్లెక్స్ (HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "పల్స్ ఆడియో సౌండ్ సేవిక" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "సిస్టమ్ బస్‌నకు అనుసంధానము కాలేకపోయింది: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "PID నుండి కాలర్‌ను పొందలేక పోయింది: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "కాలర్ ఆబ్జక్టునందు UIDను అమర్చలేక పోయింది." + +#~ msgid "Failed to get CK session." +#~ msgstr "CK సెషన్ పొందుటకు విఫలమైంది." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "సెషన్ ఆబ్జక్టునందు UIDను అమర్చ లేకపోయింది." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "PolKitAction చిరునామాను కేటాయించలేక పోయింది." + +#~ msgid "Cannot set action_id" +#~ msgstr "action_id అమర్చలేక పోయింది" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "PolKitContext కేటాయించలేక పోయింది." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "PolKitContext సిద్దము చేయలేక పోయింది: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "కాలర్ అధికారము కలదో లేదో నిర్ణయించలేక పోయింది: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "దృవీకరణ పొందలేక పోయింది: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit స్పందిచినది దీనితో '%s'" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "అధిక-ప్రాముఖ్యతా ప్రణాళిక (ఋణ యునిక్స్ సాదా స్థాయి) PulseAudio డెమోన్‌కు" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "PulseAudio డెమోన్‌ కొరకు వాస్తవ-సమయ ప్రణాళిక" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "సిస్టమ్ విధానము PulseAudio అధిక-ప్రాముఖ్యతా ప్రణాళికను పొందకుండా నిరోధిస్తున్నది." + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "సిస్టమ్ విధానము PulseAudio వాస్తవ-సమయ ప్రణాళికను పొందకుండా నిరోధిస్తోంది." + +#~ msgid "read() failed: %s\n" +#~ msgstr "read() విఫలమైంది: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect() విఫలమైంది: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "మనము సమూహము '%s' నందు వున్నాము, అదిక-ప్రాముఖ్యతా పణాళికను అనుమతించుచున్నది." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "మనము సమూహము '%s' నందు వున్నాము, వాస్తవ-సమయ ప్రణాళికను అనుమతించుచున్నది." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit మనకు acquire-high-priority అనుమతిని యిచ్చుచున్నది." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit అనునది acquire-high-priority అనుమతిని తిరస్కరించుచున్నది." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit మనకు acquire-real-time అనుమతిని యిచ్చుచున్నది." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit acquire-real-time అనుమతిని తిరస్కరించుచున్నది." + +#~ 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." +#~ msgstr "" +#~ "SUID root కాల్ చేసింది మరియు వాస్తవ-సమయ మరియు/లేదా అదిక-ప్రాముఖ్యత ప్రణాళిక అభ్యర్ధింబడింది " +#~ "ఆకృతీకరణనందు. ఏమైనప్పుటికి, మనకు అవసరమైన అనుమతలు లోపించినవి:\n" +#~ "మనము సమూహం '%s' నందు లేము, PolicyKit అనునది మనకు అభ్యర్దించిన అనుమతులను యిచ్చుటకు " +#~ "నిరాకరించినది మరియు మనము వృద్ది RLIMIT_NICE/RLIMIT_RTPRIO వనరు పరిమితులను కలిగిలేము.\n" +#~ "వాస్తవ-సమయ/అధిక-ప్రాముఖ్య ప్రణాళికను చేతనపరచుటకు దయచేసి సరైన PolicyKit అనుమతులను " +#~ "పొందుము, లేదా '%s' యొక్క సభ్యునివి కమ్ము, లేదా ఈ వినియోగదారికి RLIMIT_NICE/RLIMIT_RTPRIO " +#~ "వనరు పరిమితులను పెంచుము." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "అధిక-ప్రాముఖ్యతా ప్రణాళిక ఆకృతీకరణనందు చేతనముచేయబడింది కాని విధానము ద్వారా అనుమతించబడింది." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "సమర్ధవంతంగా RLIMIT_RTPRIOను పెంచినది" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO విఫలమైంది: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "CAP_NICE యిస్తోంది" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "వాస్తవ-సమయ ప్రణాళిక ఆకృతీకరణనందు చేతనంచేయబడింది కాని విధానము ద్వారా అనుమతించబడలేదు." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "సామర్ధ్యాలను CAP_SYS_NICE కు సమర్దవంతంగా పరిమితం చేయబడినవి." + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new() విఫలమైంది.\n" + #~ msgid "Analog Mono" #~ msgstr "ఎనలాగ్ మోనో" diff --git a/po/uk.po b/po/uk.po index c8b21c37..ebf45182 100644 --- a/po/uk.po +++ b/po/uk.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: pulseaudio.master-tx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-18 11:13+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" @@ -17,7 +17,12 @@ 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:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -30,7 +35,7 @@ msgstr "" "Ймовірно, ви натрапили на ваду у драйвері ALSA «%s». Будь ласка, повідомте " "про цю ваду розробникам ALSA." -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -43,7 +48,7 @@ msgstr "" "Ймовірно, ви натрапили на ваду у драйвері ALSA «%s». Будь ласка, повідомте " "про цю ваду розробникам ALSA." -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -69,7 +74,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "Вбудоване аудіо" @@ -92,225 +97,92 @@ msgstr "" msgid "Failed to add bind-now-loader." msgstr "Не вдалося додати bind-now-loader." -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "Не вдалося з’єднатися з шиною системи: %s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "Не вдалося отримати джерело виклику від PID: %s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "Не вдалося встановити UID для об’єкта джерела виклику." - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "Не вдалося отримати CK сеансу." - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "Не вдалося встановити UID для об’єкта сеансу." - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "Не вдалося розмістити PolKitAction." - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "Не вдалося встановити action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "Не вдалося розмістити PolKitContext." - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "Не вдалося ініціалізувати PolKitContext: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "Не вдалося визначити чи уповноважено джерело виклику: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "Не вдалося отримати уповноваження: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit надіслала відповідь: «%s»" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "Отримано сигнал %s." -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "Завершення роботи." -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "Не вдалося знайти користувача «%s»." -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "Не вдалося знайти групу «%s»." -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "Знайдено користувача «%s» (UID %lu) і групу «%s» (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "GID користувача «%s» і групи «%s» не збігаються." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "Домашнім каталогом користувача «%s» не є «%s», дані проігноровано." -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "Не вдалося створити «%s»: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "Не вдалося змінити список груп: %s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "Не вдалося змінити GID: %s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "Не вдалося змінити UID: %s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "Програма успішно позбулася прав доступу користувача root." -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "Загальносистемний режим не підтримується на цій платформі." -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "Спроба виконати setrlimit(%s, (%u, %u)) була невдалою: %s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "Не вдалося обробити рядок команди." -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "" -"Ми перебуваємо у групі «%s», що надає змогу планування з високим пріоритетом." - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "" -"Ми перебуваємо у групі «%s», що надає змогу планування у режимі реального " -"часу." - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit надала нам права доступу acquire-high-priority." - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit відмовила у наданні прав доступу acquire-high-priority." - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit надала нам права доступу acquire-real-time." - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit відмовила у наданні прав доступу acquire-real-time." - -#: ../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." -msgstr "" -"У налаштуваннях було вказано виклик SUID root і планування режиму реального " -"часу і/або режиму високого пріоритету. Але у нас немає потрібних прав " -"доступу:\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:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "Успішно підвищено RLIMIT_RTPRIO" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "Помилка під час спроби підвищити RLIMIT_RTPRIO: %s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "Позбуваємося CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "" -"Планування у режимі реального часу увімкнено у налаштуваннях, але не " -"дозволене правилами безпеки." - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "Фонову службу не запущено" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "Фонову службу запущено як PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "Не вдалося завершити роботу фонової служби: %s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." @@ -318,156 +190,156 @@ msgstr "" "Цю програму не призначено для запуску від імені користувача root (якщо не " "вказано параметра --system)." -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "Потрібні права доступу користувача root." -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "" "Параметр --start не підтримується для загальносистемних екземплярів програми." -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "" "Запуск у загальносистемному режимі, але не встановлено --disallow-exit!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "" "Запуск у загальносистемному режимі, але не встановлено --disallow-module-" "loading!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "Запуск у загальносистемному режимі, примусове вимикання режиму SHM!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "" "Запуск у загальносистемному режимі, примусове вимикання режиму параметрів " "часу виходу за відсутності активності!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "Не вдалося отримати stdio." -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "Спроба створення каналу завершилася невдало: %s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "Спроба виконання fork() завершилася невдало: %s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "Спроба виконання read() завершилася невдало: %s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "Спроба запуску фонової служби завершилася невдало." -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "Фонову службу успішно запущено." -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "Це PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "Вузол збирання: %s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "CFLAGS збирання: %s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "Запущено на вузлі: %s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "Знайдено %u процесорів." -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "Розмір сторінки дорівнює %lu байтам" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "Зібрано з підтримкою Valgrind: так" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "Зібрано з підтримкою Valgrind: ні" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "Запуск у режимі valgrind: %s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "Зібрано з оптимізацією: так" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "Зібрано з оптимізацією: ні" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "" -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "" -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "Спроба отримати ідентифікатор системи завершилася невдало" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "Ідентифікатор системи %s." -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "Ідентифікатор системи %s." -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "Каталог запуску: %s." -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "Каталог стану: %s." -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "Запуску у загальносистемному режимі: %s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -477,15 +349,15 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "Спроба виконання pa_pid_file_create() зазнала невдачі." -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "Доступні свіжі високоточні таймери! Смачного!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" @@ -493,29 +365,29 @@ msgstr "" "Чувак, твоє ядро — лайно! Круті пацани рекомендують Linux з увімкненими " "високоточними таймерами!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "Спроба виконання pa_core_new() зазнала невдачі." -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "Не вдалося ініціалізувати фонову службу." -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "" "Запуск фонової служби без жодного завантаженого модуля, служба не буде " "працездатною." -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "Запуск фонової служби завершено." -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "Ініційовано завершення роботи фонової служби." -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "Виконання фонової служби перервано." @@ -867,14 +739,10 @@ msgstr "" msgid "### Read from configuration file: %s ###\n" msgstr "### Прочитано з файла налаштувань: %s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "Позбуваємося прав доступу root." -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "Успішно обмежено можливості до CAP_SYS_NICE." - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "Звукова система PulseAudio" @@ -883,28 +751,6 @@ msgstr "Звукова система PulseAudio" msgid "Start the PulseAudio Sound System" msgstr "Запустити звукову систему PulseAudio" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -#, fuzzy -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "" -"Спроба завершення роботи фонової служби PulseAudio завершилася невдало." - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -#, fuzzy -msgid "" -"System policy prevents PulseAudio from acquiring high-priority scheduling." -msgstr "" -"Ми перебуваємо у групі «%s», що надає змогу планування з високим пріоритетом." - -#: ../src/daemon/org.pulseaudio.policy.in.h:4 -msgid "System policy prevents PulseAudio from acquiring real-time scheduling." -msgstr "" - #: ../src/pulse/channelmap.c:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "Моно" @@ -1277,184 +1123,188 @@ msgstr "Не вдалося обробити дані куки" msgid "Failed to open configuration file '%s': %s" msgstr "Не вдалося відкрити файл налаштування «%s»: %s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "" "Куків не завантажено. Буде виконано спробу з’єднання за їх відсутності." -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork(): %s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid(): %s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "Отримано повідомлення про невідомий додаток «%s»" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "Не вдалося створити тунель для потоку: %s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "Потік відтворення тунельовано.\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "Тунельне з’єднання з сервером.\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain(): %s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "Спроба виконання pa_stream_write() завершилася невдало: %s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "Спроба виконання pa_stream_write() завершилася невдало: %s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "Спроба виконання pa_stream_peek() завершилася невдало: %s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "Потік було успішно створено.\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "Спроба виконання pa_stream_get_buffer_attr() завершилася невдало: %s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "Метрика буфера: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "Метрика буфера: maxlength=%u, fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "Використання частотної специфікації «%s», карта каналів «%s».\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "З’єднано з пристроєм %s (%u, %s призупинено).\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "Помилка потоку: %s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "Призупинено пристрій потоку. %s \n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "Відновлено пристрій потоку. %s \n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "Недовантаження потоку. %s \n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "Перевантаження потоку. %s \n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "Потік запущено. %s \n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "Потік пересунуто на пристрій %s (%u, %s призупинено). %s \n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "не " -#: ../src/utils/pacat.c:378 +#: ../src/utils/pacat.c:383 #, fuzzy, c-format -msgid "Stream buffer attributes changed.%s \n" +msgid "Stream buffer attributes changed.%s" msgstr "Недовантаження потоку. %s \n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "Встановлено з’єднання. %s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "Спроба виконання pa_stream_new() зазнала невдачі: %s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "Спроба виконання pa_stream_connect_playback() зазнала невдачі: %s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "Спроба виконання pa_stream_connect_record() зазнала невдачі: %s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "Спроба встановлення з’єднання зазнала невдачі: %s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "Отримано EOF.\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "Спроба виконання read() завершилася невдало: %s\n" +#, fuzzy +msgid "Got EOF." +msgstr "Отримано EOF.\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "Спроба виконання write() завершилася невдало: %s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "Отримано сигнал, завершення роботи.\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "Не вдалося отримати латентність: %s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "Час: %0.3f сек.; Латентність: %0.0f мкс. \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "" "Спроба виконання pa_stream_update_timing_info() завершилася невдало: %s\n" @@ -1575,34 +1425,34 @@ msgstr "" "Зібрано з libpulse %s\n" "З’єднано з libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "Некоректна карта каналів «%s»\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "Некоректний метод зміни частотних характеристик «%s»." #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "Некоректна карта каналів «%s»\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "Некоректна специфікація латентності «%s»\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "Некоректна часова специфікація «%s»\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "Некоректний метод зміни частотних характеристик «%s»." #: ../src/utils/pacat.c:878 @@ -1611,60 +1461,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "Некоректна частотна специфікація\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open(): %s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2(): %s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "Забагато аргументів.\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "Не вдалося отримати дані щодо фрагмента: %s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "Не вдалося відкрити звуковий файл.\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "Відкриття потоку %s з частотною специфікацією «%s».\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "Не вдалося отримати дані щодо фрагмента: %s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "Відкриття потоку %s з частотною специфікацією «%s».\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "Карта каналі не відповідає частотній специфікації\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "Відкриття потоку %s з частотною специфікацією «%s».\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "Відкриття потоку %s з частотною специфікацією «%s».\n" #: ../src/utils/pacat.c:1006 @@ -1675,35 +1531,34 @@ msgstr "запис" msgid "playback" msgstr "відтворення" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "Спроба виконання pa_mainloop_new() завершилася невдало.\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "Спроба виконання io_new() завершилася невдало.\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "Спроба виконання pa_context_new() завершилася невдало.\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "Спроба виконання pa_context_connect() завершилася невдало: %s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "Спроба виконання time_new() завершилася невдало.\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "Спроба виконання pa_context_new() завершилася невдало.\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "Спроба виконання pa_mainloop_run() завершилася невдало.\n" #: ../src/utils/pasuspender.c:81 @@ -1732,6 +1587,11 @@ msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "" "ПОПЕРЕДЖЕННЯ: звуковий сервер не є локальним, його не можна призупинити.\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "Спроба встановлення з’єднання зазнала невдачі: %s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1773,6 +1633,21 @@ msgstr "" "Зібрано з libpulse %s\n" "З’єднано з libpulse %s\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "Спроба виконання pa_context_new() завершилася невдало.\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "Спроба виконання pa_mainloop_run() завершилася невдало.\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2187,6 +2062,11 @@ msgstr "" "Зібрано з libpulse %s\n" "З’єднано з libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "Некоректна карта каналів «%s»\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "Будь ласка, вкажіть зразковий файл для завантаження\n" @@ -2195,6 +2075,11 @@ msgstr "Будь ласка, вкажіть зразковий файл для msgid "Failed to open sound file.\n" msgstr "Не вдалося відкрити звуковий файл.\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "Не вдалося отримати дані щодо фрагмента: %s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2258,11 +2143,6 @@ msgstr "Вам слід вказати назву/індекс карти і н 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 "" @@ -2382,11 +2262,11 @@ msgstr "read(): %s" msgid "write(): %s" msgstr "write(): %s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "Не вдалося зняти блокування автоматичного розгалуження." -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2397,7 +2277,7 @@ msgid "" "returned 0 or another value < min_avail." msgstr "" -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2409,15 +2289,15 @@ msgid "" msgstr "" #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "" @@ -2426,6 +2306,133 @@ msgstr "" msgid "PulseAudio Sound Server" msgstr "Звукова система PulseAudio" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "Не вдалося з’єднатися з шиною системи: %s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "Не вдалося отримати джерело виклику від PID: %s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "Не вдалося встановити UID для об’єкта джерела виклику." + +#~ msgid "Failed to get CK session." +#~ msgstr "Не вдалося отримати CK сеансу." + +#~ msgid "Cannot set UID on session object." +#~ msgstr "Не вдалося встановити UID для об’єкта сеансу." + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "Не вдалося розмістити PolKitAction." + +#~ msgid "Cannot set action_id" +#~ msgstr "Не вдалося встановити action_id" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "Не вдалося розмістити PolKitContext." + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "Не вдалося ініціалізувати PolKitContext: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "Не вдалося визначити чи уповноважено джерело виклику: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "Не вдалося отримати уповноваження: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit надіслала відповідь: «%s»" + +#, fuzzy +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "" +#~ "Спроба завершення роботи фонової служби PulseAudio завершилася невдало." + +#, fuzzy +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "" +#~ "Ми перебуваємо у групі «%s», що надає змогу планування з високим " +#~ "пріоритетом." + +#~ msgid "read() failed: %s\n" +#~ msgstr "Спроба виконання read() завершилася невдало: %s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "Спроба виконання pa_context_connect() завершилася невдало: %s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "" +#~ "Ми перебуваємо у групі «%s», що надає змогу планування з високим " +#~ "пріоритетом." + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "" +#~ "Ми перебуваємо у групі «%s», що надає змогу планування у режимі реального " +#~ "часу." + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit надала нам права доступу acquire-high-priority." + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit відмовила у наданні прав доступу acquire-high-priority." + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit надала нам права доступу acquire-real-time." + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit відмовила у наданні прав доступу acquire-real-time." + +#~ 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." +#~ msgstr "" +#~ "У налаштуваннях було вказано виклик SUID root і планування режиму " +#~ "реального часу і/або режиму високого пріоритету. Але у нас немає " +#~ "потрібних прав доступу:\n" +#~ "Ваш користувач не є учасником групи «%s», PolicyKit відмовила у наданні " +#~ "нам потрібних прав доступу, тому зняття обмежень ресурсу RLIMIT_NICE/" +#~ "RLIMIT_RTPRIO не можливе.\n" +#~ "Щоб увімкнути планування режиму реального часу і/або режиму високого " +#~ "пріоритету, будь ласка, отримайте відповідні права доступу у PolicyKit " +#~ "або станьте учасником групи «%s» або збільшіть діапазон ресурсу " +#~ "RLIMIT_NICE/RLIMIT_RTPRIO для цього користувача." + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "" +#~ "Планування з високим пріоритетом увімкнено у налаштуваннях, але не " +#~ "дозволене правилами безпеки." + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "Успішно підвищено RLIMIT_RTPRIO" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "Помилка під час спроби підвищити RLIMIT_RTPRIO: %s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "Позбуваємося CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "" +#~ "Планування у режимі реального часу увімкнено у налаштуваннях, але не " +#~ "дозволене правилами безпеки." + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "Успішно обмежено можливості до CAP_SYS_NICE." + +#~ msgid "time_new() failed.\n" +#~ msgstr "Спроба виконання time_new() завершилася невдало.\n" + #~ msgid "Analog Mono" #~ msgstr "Аналоговий моно" diff --git a/po/zh_CN.po b/po/zh_CN.po index 2da73fe8..90f7cca1 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-17 23:42+0200\n" +"POT-Creation-Date: 2009-08-05 15:09+0200\n" "PO-Revision-Date: 2009-04-06 10:26+1000\n" "Last-Translator: Leah Liu \n" "Language-Team: Simplified Chinese \n" @@ -20,7 +20,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" -#: ../src/modules/alsa/alsa-util.c:1015 +#: ../src/modules/alsa/alsa-util.c:775 ../src/pulsecore/sink.c:2411 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../src/modules/alsa/alsa-util.c:1023 #, c-format msgid "" "snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu " @@ -31,7 +36,7 @@ msgstr "" "snd_pcm_avail() 返回的值非常大:%lu 字节(%lu ms)。\n" "很可能是 ALSA 驱动程序 '%s' 中的 bug。请向 ALSA 开发者举报这个问题。" -#: ../src/modules/alsa/alsa-util.c:1056 +#: ../src/modules/alsa/alsa-util.c:1064 #, c-format msgid "" "snd_pcm_delay() returned a value that is exceptionally large: %li bytes (%s%" @@ -42,7 +47,7 @@ msgstr "" "snd_pcm_delay() 返回的值非常大:%li 字节(%s%lu ms)。\n" "很可能是 ALSA 驱动程序 '%s' 中的 bug。请向 ALSA 开发者举报这个问题。" -#: ../src/modules/alsa/alsa-util.c:1103 +#: ../src/modules/alsa/alsa-util.c:1111 #, c-format msgid "" "snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes " @@ -66,7 +71,7 @@ msgid "" "input control values>" msgstr "" -#: ../src/pulsecore/sink.c:2394 +#: ../src/pulsecore/sink.c:2395 msgid "Internal Audio" msgstr "内部音频" @@ -86,362 +91,241 @@ msgstr "分配新的 dl 加载器失败。" msgid "Failed to add bind-now-loader." msgstr "添加 bind-now-loader 失败。" -#: ../src/daemon/polkit.c:55 -#, c-format -msgid "Cannot connect to system bus: %s" -msgstr "无法连接到系统总线:%s" - -#: ../src/daemon/polkit.c:65 -#, c-format -msgid "Cannot get caller from PID: %s" -msgstr "无法从PID获取调用者:%s" - -#: ../src/daemon/polkit.c:77 -msgid "Cannot set UID on caller object." -msgstr "无法为调用者设定UID。" - -#: ../src/daemon/polkit.c:82 -msgid "Failed to get CK session." -msgstr "获取CK会话失败。" - -#: ../src/daemon/polkit.c:90 -msgid "Cannot set UID on session object." -msgstr "无法为会话对象设定UID。" - -#: ../src/daemon/polkit.c:95 -msgid "Cannot allocate PolKitAction." -msgstr "不能分配PolKitAction。" - -#: ../src/daemon/polkit.c:100 -msgid "Cannot set action_id" -msgstr "无法设定action_id" - -#: ../src/daemon/polkit.c:105 -msgid "Cannot allocate PolKitContext." -msgstr "无法分配PolKitContext。" - -#: ../src/daemon/polkit.c:110 -#, c-format -msgid "Cannot initialize PolKitContext: %s" -msgstr "无法初使化PolKitContext: %s" - -#: ../src/daemon/polkit.c:119 -#, c-format -msgid "Could not determine whether caller is authorized: %s" -msgstr "无法判断调用者是否已获得授权: %s" - -#: ../src/daemon/polkit.c:139 -#, c-format -msgid "Cannot obtain auth: %s" -msgstr "无法获取授权: %s" - -#: ../src/daemon/polkit.c:148 -#, c-format -msgid "PolicyKit responded with '%s'" -msgstr "PolicyKit回复'%s'" - -#: ../src/daemon/main.c:142 +#: ../src/daemon/main.c:145 #, c-format msgid "Got signal %s." msgstr "获得信号%s" -#: ../src/daemon/main.c:169 +#: ../src/daemon/main.c:172 msgid "Exiting." msgstr "退出" -#: ../src/daemon/main.c:187 +#: ../src/daemon/main.c:190 #, c-format msgid "Failed to find user '%s'." msgstr "找不到用户 `%s' " -#: ../src/daemon/main.c:192 +#: ../src/daemon/main.c:195 #, c-format msgid "Failed to find group '%s'." msgstr "找不到用户组 `%s'" -#: ../src/daemon/main.c:196 +#: ../src/daemon/main.c:199 #, c-format msgid "Found user '%s' (UID %lu) and group '%s' (GID %lu)." msgstr "发现用户'%s' (UID %lu)和组'%s' (GID %lu)." -#: ../src/daemon/main.c:201 +#: ../src/daemon/main.c:204 #, c-format msgid "GID of user '%s' and of group '%s' don't match." msgstr "用户'%s'与组'%s'的GID不匹配." -#: ../src/daemon/main.c:206 +#: ../src/daemon/main.c:209 #, c-format msgid "Home directory of user '%s' is not '%s', ignoring." msgstr "用户'%s'的主文件夹不是'%s',忽略。" -#: ../src/daemon/main.c:209 ../src/daemon/main.c:214 +#: ../src/daemon/main.c:212 ../src/daemon/main.c:217 #, c-format msgid "Failed to create '%s': %s" msgstr "创建'%s'失败: %s" -#: ../src/daemon/main.c:221 +#: ../src/daemon/main.c:224 #, c-format msgid "Failed to change group list: %s" msgstr "更改组列表失败:%s" -#: ../src/daemon/main.c:237 +#: ../src/daemon/main.c:240 #, c-format msgid "Failed to change GID: %s" msgstr "更改GID失败:%s" -#: ../src/daemon/main.c:253 +#: ../src/daemon/main.c:256 #, c-format msgid "Failed to change UID: %s" msgstr "更改UID失败:%s" -#: ../src/daemon/main.c:267 +#: ../src/daemon/main.c:270 msgid "Successfully dropped root privileges." msgstr "成功放弃root权限。" -#: ../src/daemon/main.c:275 +#: ../src/daemon/main.c:278 msgid "System wide mode unsupported on this platform." msgstr "此平台不支持system-wide模式。" -#: ../src/daemon/main.c:293 +#: ../src/daemon/main.c:296 #, c-format msgid "setrlimit(%s, (%u, %u)) failed: %s" msgstr "setrlimit(%s, (%u, %u)) 失败:%s" -#: ../src/daemon/main.c:481 +#: ../src/daemon/main.c:471 msgid "Failed to parse command line." msgstr "分析命令行失败。" -#: ../src/daemon/main.c:505 -#, c-format -msgid "We're in the group '%s', allowing high-priority scheduling." -msgstr "我们在'%s'组中,允许高优先级调度。" - -#: ../src/daemon/main.c:512 -#, c-format -msgid "We're in the group '%s', allowing real-time scheduling." -msgstr "我们在'%s'组中,允许实时调度。" - -#: ../src/daemon/main.c:520 -msgid "PolicyKit grants us acquire-high-priority privilege." -msgstr "PolicyKit授予我们“获取高优先级”权限。" - -#: ../src/daemon/main.c:523 -msgid "PolicyKit refuses acquire-high-priority privilege." -msgstr "PolicyKit拒绝“获取高优先级”权限。" - -#: ../src/daemon/main.c:528 -msgid "PolicyKit grants us acquire-real-time privilege." -msgstr "PolicyKit授予我们“获取实时”权限。" - -#: ../src/daemon/main.c:531 -msgid "PolicyKit refuses acquire-real-time privilege." -msgstr "PolicyKit拒绝我们“获取实时”权限。" - -#: ../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." -msgstr "" -"配置中需要调用 SUID root、实时和/或者高优先调度。但是我们缺少必要的特权:\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:614 -msgid "Successfully increased RLIMIT_RTPRIO" -msgstr "提高RLIMIT_RTPRIO成功。" - -#: ../src/daemon/main.c:617 -#, c-format -msgid "RLIMIT_RTPRIO failed: %s" -msgstr "RLIMIT_RTPRIO失败:%s" - -#: ../src/daemon/main.c:624 -msgid "Giving up CAP_NICE" -msgstr "正在放弃CAP_NICE" - -#: ../src/daemon/main.c:631 -msgid "" -"Real-time scheduling enabled in configuration but not allowed by policy." -msgstr "配置中已启用实时调度,但策略未允许。" - -#: ../src/daemon/main.c:692 +#: ../src/daemon/main.c:538 msgid "Daemon not running" msgstr "后台程序没有运行" -#: ../src/daemon/main.c:694 +#: ../src/daemon/main.c:540 #, c-format msgid "Daemon running as PID %u" msgstr "后台程序正在运行,PID %u" -#: ../src/daemon/main.c:704 +#: ../src/daemon/main.c:550 #, c-format msgid "Failed to kill daemon: %s" msgstr "杀死后台程序失败:%s" -#: ../src/daemon/main.c:722 +#: ../src/daemon/main.c:568 msgid "" "This program is not intended to be run as root (unless --system is " "specified)." msgstr "不应以root身份运行本程序(除非指定 --system)。" -#: ../src/daemon/main.c:724 +#: ../src/daemon/main.c:570 msgid "Root privileges required." msgstr "需要 root 权限。" -#: ../src/daemon/main.c:729 +#: ../src/daemon/main.c:575 msgid "--start not supported for system instances." msgstr "系统实例不支持 --start。" -#: ../src/daemon/main.c:734 +#: ../src/daemon/main.c:580 msgid "Running in system mode, but --disallow-exit not set!" msgstr "正在以系统模式运行,但是 --disallow-exit 未设定!" -#: ../src/daemon/main.c:737 +#: ../src/daemon/main.c:583 msgid "Running in system mode, but --disallow-module-loading not set!" msgstr "正在以系统模式运行,但是 --disallow-module-loading 未设定!" -#: ../src/daemon/main.c:740 +#: ../src/daemon/main.c:586 msgid "Running in system mode, forcibly disabling SHM mode!" msgstr "正在以系统模式运行,强制禁用SHM模式!" -#: ../src/daemon/main.c:745 +#: ../src/daemon/main.c:591 msgid "Running in system mode, forcibly disabling exit idle time!" msgstr "正在以系统模式运行,强制禁用退出空闲时间!" -#: ../src/daemon/main.c:772 +#: ../src/daemon/main.c:618 msgid "Failed to acquire stdio." msgstr "获取stdio失败。" -#: ../src/daemon/main.c:778 +#: ../src/daemon/main.c:624 #, c-format msgid "pipe failed: %s" msgstr "管道失败:%s" -#: ../src/daemon/main.c:783 +#: ../src/daemon/main.c:629 #, c-format msgid "fork() failed: %s" msgstr "fork()失败:%s" -#: ../src/daemon/main.c:797 +#: ../src/daemon/main.c:643 ../src/utils/pacat.c:505 #, c-format msgid "read() failed: %s" msgstr "read()失败:%s" -#: ../src/daemon/main.c:803 +#: ../src/daemon/main.c:649 msgid "Daemon startup failed." msgstr "后台程序启动失败。" -#: ../src/daemon/main.c:805 +#: ../src/daemon/main.c:651 msgid "Daemon startup successful." msgstr "后台程序启动成功。" -#: ../src/daemon/main.c:875 +#: ../src/daemon/main.c:728 #, c-format msgid "This is PulseAudio %s" msgstr "这是 PulseAudio %s" -#: ../src/daemon/main.c:876 +#: ../src/daemon/main.c:729 #, c-format msgid "Compilation host: %s" msgstr "编译主机:%s" -#: ../src/daemon/main.c:877 +#: ../src/daemon/main.c:730 #, c-format msgid "Compilation CFLAGS: %s" msgstr "编译CFLAGS:%s" -#: ../src/daemon/main.c:880 +#: ../src/daemon/main.c:733 #, c-format msgid "Running on host: %s" msgstr "正在主机上运行:%s" -#: ../src/daemon/main.c:883 +#: ../src/daemon/main.c:736 #, c-format msgid "Found %u CPUs." msgstr "找到 %u CPU。" -#: ../src/daemon/main.c:885 +#: ../src/daemon/main.c:738 #, c-format msgid "Page size is %lu bytes" msgstr "页面大小为%lu字节" -#: ../src/daemon/main.c:888 +#: ../src/daemon/main.c:741 msgid "Compiled with Valgrind support: yes" msgstr "编译启用Valgrind支持:是" -#: ../src/daemon/main.c:890 +#: ../src/daemon/main.c:743 msgid "Compiled with Valgrind support: no" msgstr "编译启用Valgrind支持:否" -#: ../src/daemon/main.c:893 +#: ../src/daemon/main.c:746 #, c-format msgid "Running in valgrind mode: %s" msgstr "正在以valgrind模式运行:%s" -#: ../src/daemon/main.c:896 +#: ../src/daemon/main.c:749 msgid "Optimized build: yes" msgstr "优化生成:是" -#: ../src/daemon/main.c:898 +#: ../src/daemon/main.c:751 msgid "Optimized build: no" msgstr "优化生成:否" -#: ../src/daemon/main.c:902 +#: ../src/daemon/main.c:755 msgid "NDEBUG defined, all asserts disabled." msgstr "拒绝 NDEBUG,禁用所有 assert" -#: ../src/daemon/main.c:904 +#: ../src/daemon/main.c:757 msgid "FASTPATH defined, only fast path asserts disabled." msgstr "拒绝 FASTPATH,只禁用快速路径 assert。" -#: ../src/daemon/main.c:906 +#: ../src/daemon/main.c:759 msgid "All asserts enabled." msgstr "启用所有 assert。" -#: ../src/daemon/main.c:910 +#: ../src/daemon/main.c:763 msgid "Failed to get machine ID" msgstr "获取machine ID失败" -#: ../src/daemon/main.c:913 +#: ../src/daemon/main.c:766 #, c-format msgid "Machine ID is %s." msgstr "machine ID是%s。" -#: ../src/daemon/main.c:917 +#: ../src/daemon/main.c:770 #, fuzzy, c-format msgid "Session ID is %s." msgstr "machine ID是%s。" -#: ../src/daemon/main.c:923 +#: ../src/daemon/main.c:776 #, c-format msgid "Using runtime directory %s." msgstr "正在使用运行时文件夹%s。" -#: ../src/daemon/main.c:928 +#: ../src/daemon/main.c:781 #, c-format msgid "Using state directory %s." msgstr "正在使用状态文件夹%s。" -#: ../src/daemon/main.c:931 +#: ../src/daemon/main.c:784 #, c-format msgid "Running in system mode: %s" msgstr "正在以系统模式运行:%s" -#: ../src/daemon/main.c:934 +#: ../src/daemon/main.c:787 msgid "" "OK, so you are running PA in system mode. Please note that you most likely " "shouldn't be doing that.\n" @@ -451,41 +335,41 @@ msgid "" "explanation why system mode is usually a bad idea." msgstr "" -#: ../src/daemon/main.c:951 +#: ../src/daemon/main.c:804 msgid "pa_pid_file_create() failed." msgstr "pa_pid_file_create()失败。" -#: ../src/daemon/main.c:961 +#: ../src/daemon/main.c:814 msgid "Fresh high-resolution timers available! Bon appetit!" msgstr "新鲜的高分辨率计时器开锅了!吃个饱!" -#: ../src/daemon/main.c:963 +#: ../src/daemon/main.c:816 msgid "" "Dude, your kernel stinks! The chef's recommendation today is Linux with high-" "resolution timers enabled!" msgstr "老兄,你的内核真臭!现在流行的是启用了高分辩率计分器的Linux!" -#: ../src/daemon/main.c:988 +#: ../src/daemon/main.c:834 msgid "pa_core_new() failed." msgstr "pa_core_new()失败。" -#: ../src/daemon/main.c:1050 +#: ../src/daemon/main.c:896 msgid "Failed to initialize daemon." msgstr "后台程序初始化失败。" -#: ../src/daemon/main.c:1055 +#: ../src/daemon/main.c:901 msgid "Daemon startup without any loaded modules, refusing to work." msgstr "后台程序启动未加载任何模块,拒绝工作。" -#: ../src/daemon/main.c:1072 +#: ../src/daemon/main.c:918 msgid "Daemon startup complete." msgstr "后台程序启动完成。" -#: ../src/daemon/main.c:1078 +#: ../src/daemon/main.c:924 msgid "Daemon shutdown initiated." msgstr "开始关闭后台程序。" -#: ../src/daemon/main.c:1100 +#: ../src/daemon/main.c:946 msgid "Daemon terminated." msgstr "后台程序已终止。" @@ -802,14 +686,10 @@ msgstr "指定的默认频道地图的频道数与指定的默认频道数不同 msgid "### Read from configuration file: %s ###\n" msgstr "### 从配置文件读取:%s ###\n" -#: ../src/daemon/caps.c:63 +#: ../src/daemon/caps.c:65 msgid "Dropping root privileges." msgstr "正在取消 root 特权。" -#: ../src/daemon/caps.c:103 -msgid "Limited capabilities successfully to CAP_SYS_NICE." -msgstr "性能成功限制到CAP_SYS_NICE。" - #: ../src/daemon/pulseaudio.desktop.in.h:1 msgid "PulseAudio Sound System" msgstr "PulseAudio 声音系统" @@ -818,24 +698,6 @@ msgstr "PulseAudio 声音系统" msgid "Start the PulseAudio Sound System" msgstr "启动 PulseAudio 声音系统" -#: ../src/daemon/org.pulseaudio.policy.in.h:1 -msgid "" -"High-priority scheduling (negative Unix nice level) for the PulseAudio daemon" -msgstr "PulseAudio 守护进程的高优先调度(负的 Unix nic 等级)" - -#: ../src/daemon/org.pulseaudio.policy.in.h:2 -msgid "Real-time scheduling for the PulseAudio daemon" -msgstr "PulseAudio 守护进程的实时调度。" - -#: ../src/daemon/org.pulseaudio.policy.in.h:3 -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:105 ../src/pulse/channelmap.c:747 msgid "Mono" msgstr "单声道" @@ -1208,183 +1070,187 @@ msgstr "cookie数据分析失败" msgid "Failed to open configuration file '%s': %s" msgstr "打开配置文件'%s'失败:%s" -#: ../src/pulse/context.c:546 +#: ../src/pulse/context.c:550 msgid "No cookie loaded. Attempting to connect without." msgstr "没有加载cookie。尝试不加载cookie进行连接。" -#: ../src/pulse/context.c:676 +#: ../src/pulse/context.c:693 #, c-format msgid "fork(): %s" msgstr "fork():%s" -#: ../src/pulse/context.c:729 +#: ../src/pulse/context.c:745 #, c-format msgid "waitpid(): %s" msgstr "waitpid():%s" -#: ../src/pulse/context.c:1403 +#: ../src/pulse/context.c:1432 #, c-format msgid "Received message for unknown extension '%s'" msgstr "收到未知扩展'%s'的信息" -#: ../src/utils/pacat.c:107 -#, c-format -msgid "Failed to drain stream: %s\n" +#: ../src/utils/pacat.c:108 +#, fuzzy, c-format +msgid "Failed to drain stream: %s" msgstr "排出流失败:%s\n" -#: ../src/utils/pacat.c:112 -msgid "Playback stream drained.\n" +#: ../src/utils/pacat.c:113 +#, fuzzy +msgid "Playback stream drained." msgstr "流播放完毕。\n" -#: ../src/utils/pacat.c:122 -msgid "Draining connection to server.\n" +#: ../src/utils/pacat.c:123 +#, fuzzy +msgid "Draining connection to server." msgstr "Draining 连接到服务器。\n" -#: ../src/utils/pacat.c:135 -#, c-format -msgid "pa_stream_drain(): %s\n" +#: ../src/utils/pacat.c:136 +#, fuzzy, c-format +msgid "pa_stream_drain(): %s" msgstr "pa_stream_drain():%s\n" -#: ../src/utils/pacat.c:158 -#, c-format -msgid "pa_stream_write() failed: %s\n" +#: ../src/utils/pacat.c:159 +#, fuzzy, c-format +msgid "pa_stream_write() failed: %s" msgstr "pa_stream_write()失败:%s\n" -#: ../src/utils/pacat.c:233 ../src/utils/pacat.c:262 -#, c-format -msgid "pa_stream_peek() failed: %s\n" +#: ../src/utils/pacat.c:197 +#, fuzzy, c-format +msgid "pa_stream_begin_write() failed: %s" +msgstr "pa_stream_write()失败:%s\n" + +#: ../src/utils/pacat.c:237 ../src/utils/pacat.c:267 +#, fuzzy, c-format +msgid "pa_stream_peek() failed: %s" msgstr "pa_stream_peek()失败:%s\n" -#: ../src/utils/pacat.c:302 -msgid "Stream successfully created.\n" +#: ../src/utils/pacat.c:307 +#, fuzzy +msgid "Stream successfully created." msgstr "流创建成功。\n" -#: ../src/utils/pacat.c:305 -#, c-format -msgid "pa_stream_get_buffer_attr() failed: %s\n" +#: ../src/utils/pacat.c:310 +#, fuzzy, c-format +msgid "pa_stream_get_buffer_attr() failed: %s" msgstr "pa_stream_get_buffer_attr()失败:%s\n" -#: ../src/utils/pacat.c:309 -#, c-format -msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n" +#: ../src/utils/pacat.c:314 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u" msgstr "缓冲计量:maxlength=%u,tlength=%u,prebuf=%u,minreq=%u\n" -#: ../src/utils/pacat.c:312 -#, c-format -msgid "Buffer metrics: maxlength=%u, fragsize=%u\n" +#: ../src/utils/pacat.c:317 +#, fuzzy, c-format +msgid "Buffer metrics: maxlength=%u, fragsize=%u" msgstr "缓冲计量:maxlength=%u,fragsize=%u\n" -#: ../src/utils/pacat.c:316 -#, c-format -msgid "Using sample spec '%s', channel map '%s'.\n" +#: ../src/utils/pacat.c:321 +#, fuzzy, c-format +msgid "Using sample spec '%s', channel map '%s'." msgstr "正在使用样品规格'%s',通道映射'%s'。\n" -#: ../src/utils/pacat.c:320 -#, c-format -msgid "Connected to device %s (%u, %ssuspended).\n" +#: ../src/utils/pacat.c:325 +#, fuzzy, c-format +msgid "Connected to device %s (%u, %ssuspended)." msgstr "已连接至设备%s (%u,%s挂起)。\n" -#: ../src/utils/pacat.c:330 -#, c-format -msgid "Stream error: %s\n" +#: ../src/utils/pacat.c:335 +#, fuzzy, c-format +msgid "Stream error: %s" msgstr "流错误:%s\n" -#: ../src/utils/pacat.c:340 -#, c-format -msgid "Stream device suspended.%s \n" +#: ../src/utils/pacat.c:345 +#, fuzzy, c-format +msgid "Stream device suspended.%s" msgstr "流设备挂起。%s\n" -#: ../src/utils/pacat.c:342 -#, c-format -msgid "Stream device resumed.%s \n" +#: ../src/utils/pacat.c:347 +#, fuzzy, c-format +msgid "Stream device resumed.%s" msgstr "流设备恢复。%s\n" -#: ../src/utils/pacat.c:350 -#, c-format -msgid "Stream underrun.%s \n" +#: ../src/utils/pacat.c:355 +#, fuzzy, c-format +msgid "Stream underrun.%s" msgstr "流欠载运行。%s\n" -#: ../src/utils/pacat.c:357 -#, c-format -msgid "Stream overrun.%s \n" +#: ../src/utils/pacat.c:362 +#, fuzzy, c-format +msgid "Stream overrun.%s" msgstr "流超限运行。%s\n" -#: ../src/utils/pacat.c:364 -#, c-format -msgid "Stream started.%s \n" +#: ../src/utils/pacat.c:369 +#, fuzzy, c-format +msgid "Stream started.%s" msgstr "流已启动。%s\n" -#: ../src/utils/pacat.c:371 -#, c-format -msgid "Stream moved to device %s (%u, %ssuspended).%s \n" +#: ../src/utils/pacat.c:376 +#, fuzzy, c-format +msgid "Stream moved to device %s (%u, %ssuspended).%s" msgstr "流移至设备%s (%u,%s挂起)。%s\n" -#: ../src/utils/pacat.c:371 +#: ../src/utils/pacat.c:376 msgid "not " msgstr "not " -#: ../src/utils/pacat.c:378 -#, c-format -msgid "Stream buffer attributes changed.%s \n" +#: ../src/utils/pacat.c:383 +#, fuzzy, c-format +msgid "Stream buffer attributes changed.%s" msgstr "更改流换出属性。%s\n" -#: ../src/utils/pacat.c:411 -#, c-format -msgid "Connection established.%s \n" +#: ../src/utils/pacat.c:416 +#, fuzzy, c-format +msgid "Connection established.%s" msgstr "连接已建立。%s \n" -#: ../src/utils/pacat.c:414 -#, c-format -msgid "pa_stream_new() failed: %s\n" +#: ../src/utils/pacat.c:419 +#, fuzzy, c-format +msgid "pa_stream_new() failed: %s" msgstr "pa_stream_new()失败:%s\n" -#: ../src/utils/pacat.c:442 -#, c-format -msgid "pa_stream_connect_playback() failed: %s\n" +#: ../src/utils/pacat.c:447 +#, fuzzy, c-format +msgid "pa_stream_connect_playback() failed: %s" msgstr "pa_stream_connect_playback()失败:%s\n" -#: ../src/utils/pacat.c:448 -#, c-format -msgid "pa_stream_connect_record() failed: %s\n" +#: ../src/utils/pacat.c:453 +#, fuzzy, c-format +msgid "pa_stream_connect_record() failed: %s" msgstr "pa_stream_connect_playback()失败:%s\n" -#: ../src/utils/pacat.c:462 ../src/utils/pasuspender.c:159 -#: ../src/utils/pactl.c:814 -#, c-format -msgid "Connection failure: %s\n" +#: ../src/utils/pacat.c:467 +#, fuzzy, c-format +msgid "Connection failure: %s" msgstr "连接失败:%s\n" -#: ../src/utils/pacat.c:495 -msgid "Got EOF.\n" -msgstr "收到EOF。\n" - #: ../src/utils/pacat.c:500 -#, c-format -msgid "read() failed: %s\n" -msgstr "read()失败:%s\n" +#, fuzzy +msgid "Got EOF." +msgstr "收到EOF。\n" -#: ../src/utils/pacat.c:532 -#, c-format -msgid "write() failed: %s\n" +#: ../src/utils/pacat.c:537 +#, fuzzy, c-format +msgid "write() failed: %s" msgstr "write()失败:%s\n" -#: ../src/utils/pacat.c:553 -msgid "Got signal, exiting.\n" +#: ../src/utils/pacat.c:558 +#, fuzzy +msgid "Got signal, exiting." msgstr "收到信号,正在退出。\n" -#: ../src/utils/pacat.c:567 -#, c-format -msgid "Failed to get latency: %s\n" +#: ../src/utils/pacat.c:572 +#, fuzzy, c-format +msgid "Failed to get latency: %s" msgstr "获取传输延迟失败:%s\n" -#: ../src/utils/pacat.c:572 +#: ../src/utils/pacat.c:577 #, c-format msgid "Time: %0.3f sec; Latency: %0.0f usec. \r" msgstr "时间:%0.3f秒;延迟:%0.0f 微秒。 \r" -#: ../src/utils/pacat.c:592 -#, c-format -msgid "pa_stream_update_timing_info() failed: %s\n" +#: ../src/utils/pacat.c:595 +#, fuzzy, c-format +msgid "pa_stream_update_timing_info() failed: %s" msgstr "pa_stream_update_timing_info()失败:%s\n" #: ../src/utils/pacat.c:605 @@ -1490,34 +1356,34 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" -#: ../src/utils/pacat.c:760 ../src/utils/pactl.c:900 +#: ../src/utils/pacat.c:760 #, fuzzy, c-format -msgid "Invalid client name '%s'\n" +msgid "Invalid client name '%s'" msgstr "无效的通道映射描述'%s'\n" #: ../src/utils/pacat.c:776 #, fuzzy, c-format -msgid "Invalid stream name '%s'\n" +msgid "Invalid stream name '%s'" msgstr "无效的重采样方法'%s'。" #: ../src/utils/pacat.c:813 -#, c-format -msgid "Invalid channel map '%s'\n" +#, fuzzy, c-format +msgid "Invalid channel map '%s'" msgstr "无效的通道映射描述'%s'\n" #: ../src/utils/pacat.c:842 -#, c-format -msgid "Invalid latency specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid latency specification '%s'" msgstr "无效的延迟规格描述 %s'\n" #: ../src/utils/pacat.c:849 -#, c-format -msgid "Invalid process time specification '%s'\n" +#, fuzzy, c-format +msgid "Invalid process time specification '%s'" msgstr "无效的处理时间描述 '%s'\n" #: ../src/utils/pacat.c:861 #, fuzzy, c-format -msgid "Invalid property '%s'\n" +msgid "Invalid property '%s'" msgstr "无效的重采样方法'%s'。" #: ../src/utils/pacat.c:878 @@ -1526,60 +1392,66 @@ msgid "Unknown file format %s." msgstr "" #: ../src/utils/pacat.c:897 -msgid "Invalid sample specification\n" +#, fuzzy +msgid "Invalid sample specification" msgstr "无效的采样描述\n" #: ../src/utils/pacat.c:907 -#, c-format -msgid "open(): %s\n" +#, fuzzy, c-format +msgid "open(): %s" msgstr "open():%s\n" #: ../src/utils/pacat.c:912 -#, c-format -msgid "dup2(): %s\n" +#, fuzzy, c-format +msgid "dup2(): %s" msgstr "dup2():%s\n" #: ../src/utils/pacat.c:919 -msgid "Too many arguments.\n" +#, fuzzy +msgid "Too many arguments." msgstr "参数过多。\n" #: ../src/utils/pacat.c:930 #, fuzzy -msgid "Failed to generate sample specification for file.\n" +msgid "Failed to generate sample specification for file." msgstr "获取采样信息失败:%s\n" #: ../src/utils/pacat.c:950 #, fuzzy -msgid "Failed to open audio file.\n" +msgid "Failed to open audio file." msgstr "打开声音文件失败。\n" #: ../src/utils/pacat.c:956 +#, fuzzy msgid "" "Warning: specified sample specification will be overwritten with " -"specification from file.\n" -msgstr "" +"specification from file." +msgstr "以采样规格'%s'打开%s流。\n" -#: ../src/utils/pacat.c:959 ../src/utils/pactl.c:944 +#: ../src/utils/pacat.c:959 #, fuzzy -msgid "Failed to determine sample specification from file.\n" +msgid "Failed to determine sample specification from file." msgstr "获取采样信息失败:%s\n" #: ../src/utils/pacat.c:968 -msgid "Warning: Failed to determine channel map from file.\n" -msgstr "" +#, fuzzy +msgid "Warning: Failed to determine channel map from file." +msgstr "以采样规格'%s'打开%s流。\n" #: ../src/utils/pacat.c:979 -msgid "Channel map doesn't match sample specification\n" +#, fuzzy +msgid "Channel map doesn't match sample specification" msgstr "通道映射与采样描述不匹配\n" #: ../src/utils/pacat.c:990 -msgid "Warning: failed to write channel map to file.\n" -msgstr "" +#, fuzzy +msgid "Warning: failed to write channel map to file." +msgstr "以采样规格'%s'打开%s流。\n" #: ../src/utils/pacat.c:1005 #, fuzzy, c-format msgid "" -"Opening a %s stream with sample specification '%s' and channel map '%s'.\n" +"Opening a %s stream with sample specification '%s' and channel map '%s'." msgstr "以采样规格'%s'打开%s流。\n" #: ../src/utils/pacat.c:1006 @@ -1590,35 +1462,34 @@ msgstr "正在录制" msgid "playback" msgstr "回放" -#: ../src/utils/pacat.c:1032 ../src/utils/pasuspender.c:277 -#: ../src/utils/pactl.c:1104 -#, c-format -msgid "pa_mainloop_new() failed.\n" +#: ../src/utils/pacat.c:1032 +#, fuzzy +msgid "pa_mainloop_new() failed." msgstr "pa_mainloop_new()失败。\n" #: ../src/utils/pacat.c:1051 -msgid "io_new() failed.\n" +#, fuzzy +msgid "io_new() failed." msgstr "io_new()失败。\n" -#: ../src/utils/pacat.c:1058 ../src/utils/pasuspender.c:290 -#: ../src/utils/pactl.c:1116 -#, c-format -msgid "pa_context_new() failed.\n" +#: ../src/utils/pacat.c:1058 +#, fuzzy +msgid "pa_context_new() failed." msgstr "pa_context_new()失败。\n" -#: ../src/utils/pacat.c:1066 -#, fuzzy, c-format -msgid "pa_context_connect() failed: %s\n" +#: ../src/utils/pacat.c:1066 ../src/utils/pactl.c:1122 +#, c-format +msgid "pa_context_connect() failed: %s" msgstr "pa_context_connect()失败:%s" -#: ../src/utils/pacat.c:1077 -msgid "time_new() failed.\n" -msgstr "time_new()失败。\n" +#: ../src/utils/pacat.c:1072 +#, fuzzy +msgid "pa_context_rttime_new() failed." +msgstr "pa_context_new()失败。\n" -#: ../src/utils/pacat.c:1084 ../src/utils/pasuspender.c:298 -#: ../src/utils/pactl.c:1127 -#, c-format -msgid "pa_mainloop_run() failed.\n" +#: ../src/utils/pacat.c:1079 +#, fuzzy +msgid "pa_mainloop_run() failed." msgstr "pa_mainloop_run()失败。\n" #: ../src/utils/pasuspender.c:81 @@ -1646,6 +1517,11 @@ msgstr "恢复失败:%s\n" msgid "WARNING: Sound server is not local, not suspending.\n" msgstr "警告:非本地声音服务器,不会挂起。\n" +#: ../src/utils/pasuspender.c:159 ../src/utils/pactl.c:814 +#, c-format +msgid "Connection failure: %s\n" +msgstr "连接失败:%s\n" + #: ../src/utils/pasuspender.c:176 ../src/utils/pactl.c:820 #, c-format msgid "Got SIGINT, exiting.\n" @@ -1685,6 +1561,21 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" +#: ../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/pasuspender.c:290 ../src/utils/pactl.c:1116 +#, c-format +msgid "pa_context_new() failed.\n" +msgstr "pa_context_new()失败。\n" + +#: ../src/utils/pasuspender.c:298 ../src/utils/pactl.c:1127 +#, c-format +msgid "pa_mainloop_run() failed.\n" +msgstr "pa_mainloop_run()失败。\n" + #: ../src/utils/pactl.c:128 #, c-format msgid "Failed to get statistics: %s\n" @@ -2099,6 +1990,11 @@ msgstr "" "Compiled with libpulse %s\n" "Linked with libpulse %s\n" +#: ../src/utils/pactl.c:900 +#, fuzzy, c-format +msgid "Invalid client name '%s'\n" +msgstr "无效的通道映射描述'%s'\n" + #: ../src/utils/pactl.c:926 msgid "Please specify a sample file to load\n" msgstr "请指定要加载的采样文件\n" @@ -2107,6 +2003,11 @@ msgstr "请指定要加载的采样文件\n" msgid "Failed to open sound file.\n" msgstr "打开声音文件失败。\n" +#: ../src/utils/pactl.c:944 +#, fuzzy +msgid "Failed to determine sample specification from file.\n" +msgstr "获取采样信息失败:%s\n" + #: ../src/utils/pactl.c:951 #, fuzzy msgid "Warning: Failed to determine sample specification from file.\n" @@ -2166,11 +2067,6 @@ msgstr "你必须指定声卡名称/索引和侧写名称\n" 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 "" @@ -2286,11 +2182,11 @@ msgstr "read():%s" msgid "write(): %s" msgstr "write():%s" -#: ../src/pulsecore/lock-autospawn.c:126 ../src/pulsecore/lock-autospawn.c:207 +#: ../src/pulsecore/lock-autospawn.c:136 ../src/pulsecore/lock-autospawn.c:219 msgid "Cannot access autospawn lock." msgstr "不能访问autospawn锁。" -#: ../src/modules/alsa/alsa-sink.c:445 ../src/modules/alsa/alsa-sink.c:593 +#: ../src/modules/alsa/alsa-sink.c:449 ../src/modules/alsa/alsa-sink.c:606 #, c-format msgid "" "ALSA woke us up to write new data to the device, but there was actually " @@ -2306,7 +2202,7 @@ msgstr "" "提醒我们设置 POLLOUT -- 但结果是 snd_pcm_avail() 返回 0 或者另一个小于最小可" "用值的数值。" -#: ../src/modules/alsa/alsa-source.c:424 ../src/modules/alsa/alsa-source.c:563 +#: ../src/modules/alsa/alsa-source.c:429 ../src/modules/alsa/alsa-source.c:578 #, c-format msgid "" "ALSA woke us up to read new data from the device, but there was actually " @@ -2323,15 +2219,15 @@ msgstr "" "用值的数值。" #: ../src/modules/alsa/module-alsa-card.c:152 -#: ../src/modules/bluetooth/module-bluetooth-device.c:2062 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2065 msgid "Off" msgstr "关闭" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2032 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2035 msgid "High Fidelity Playback (A2DP)" msgstr "高保真回放(A2DP)" -#: ../src/modules/bluetooth/module-bluetooth-device.c:2047 +#: ../src/modules/bluetooth/module-bluetooth-device.c:2050 msgid "Telephony Duplex (HSP/HFP)" msgstr "双工电话(HSP/HFP)" @@ -2339,6 +2235,125 @@ msgstr "双工电话(HSP/HFP)" msgid "PulseAudio Sound Server" msgstr "PulseAudio 声音服务器" +#~ msgid "Cannot connect to system bus: %s" +#~ msgstr "无法连接到系统总线:%s" + +#~ msgid "Cannot get caller from PID: %s" +#~ msgstr "无法从PID获取调用者:%s" + +#~ msgid "Cannot set UID on caller object." +#~ msgstr "无法为调用者设定UID。" + +#~ msgid "Failed to get CK session." +#~ msgstr "获取CK会话失败。" + +#~ msgid "Cannot set UID on session object." +#~ msgstr "无法为会话对象设定UID。" + +#~ msgid "Cannot allocate PolKitAction." +#~ msgstr "不能分配PolKitAction。" + +#~ msgid "Cannot set action_id" +#~ msgstr "无法设定action_id" + +#~ msgid "Cannot allocate PolKitContext." +#~ msgstr "无法分配PolKitContext。" + +#~ msgid "Cannot initialize PolKitContext: %s" +#~ msgstr "无法初使化PolKitContext: %s" + +#~ msgid "Could not determine whether caller is authorized: %s" +#~ msgstr "无法判断调用者是否已获得授权: %s" + +#~ msgid "Cannot obtain auth: %s" +#~ msgstr "无法获取授权: %s" + +#~ msgid "PolicyKit responded with '%s'" +#~ msgstr "PolicyKit回复'%s'" + +#~ msgid "" +#~ "High-priority scheduling (negative Unix nice level) for the PulseAudio " +#~ "daemon" +#~ msgstr "PulseAudio 守护进程的高优先调度(负的 Unix nic 等级)" + +#~ msgid "Real-time scheduling for the PulseAudio daemon" +#~ msgstr "PulseAudio 守护进程的实时调度。" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring high-priority scheduling." +#~ msgstr "系统策略防止 PulseAudio 获得高优先调度。" + +#~ msgid "" +#~ "System policy prevents PulseAudio from acquiring real-time scheduling." +#~ msgstr "系统策略防止 PulseAudio 获得实时调度。" + +#~ msgid "read() failed: %s\n" +#~ msgstr "read()失败:%s\n" + +#, fuzzy +#~ msgid "pa_context_connect() failed: %s\n" +#~ msgstr "pa_context_connect()失败:%s" + +#~ msgid "We're in the group '%s', allowing high-priority scheduling." +#~ msgstr "我们在'%s'组中,允许高优先级调度。" + +#~ msgid "We're in the group '%s', allowing real-time scheduling." +#~ msgstr "我们在'%s'组中,允许实时调度。" + +#~ msgid "PolicyKit grants us acquire-high-priority privilege." +#~ msgstr "PolicyKit授予我们“获取高优先级”权限。" + +#~ msgid "PolicyKit refuses acquire-high-priority privilege." +#~ msgstr "PolicyKit拒绝“获取高优先级”权限。" + +#~ msgid "PolicyKit grants us acquire-real-time privilege." +#~ msgstr "PolicyKit授予我们“获取实时”权限。" + +#~ msgid "PolicyKit refuses acquire-real-time privilege." +#~ msgstr "PolicyKit拒绝我们“获取实时”权限。" + +#~ 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." +#~ msgstr "" +#~ "配置中需要调用 SUID root、实时和/或者高优先调度。但是我们缺少必要的特" +#~ "权:\n" +#~ "我们不属于组群 '%s',PolicyKit 拒绝赋予我们要求的特权,而我们无法增加 " +#~ "RLIMIT_NICE/RLIMIT_RTPRIO 资源限制。\n" +#~ "要启用实时/高优先调度,请获得适当的 PolicyKit 特权,或者成为 '%s' 成员,也" +#~ "可以为这个用户增加 RLIMIT_NICE/RLIMIT_RTPRIO 资源限制。" + +#~ msgid "" +#~ "High-priority scheduling enabled in configuration but not allowed by " +#~ "policy." +#~ msgstr "配置中已启用高优先级调度,但策略未允许。" + +#~ msgid "Successfully increased RLIMIT_RTPRIO" +#~ msgstr "提高RLIMIT_RTPRIO成功。" + +#~ msgid "RLIMIT_RTPRIO failed: %s" +#~ msgstr "RLIMIT_RTPRIO失败:%s" + +#~ msgid "Giving up CAP_NICE" +#~ msgstr "正在放弃CAP_NICE" + +#~ msgid "" +#~ "Real-time scheduling enabled in configuration but not allowed by policy." +#~ msgstr "配置中已启用实时调度,但策略未允许。" + +#~ msgid "Limited capabilities successfully to CAP_SYS_NICE." +#~ msgstr "性能成功限制到CAP_SYS_NICE。" + +#~ msgid "time_new() failed.\n" +#~ msgstr "time_new()失败。\n" + #~ msgid "Analog Mono" #~ msgstr "模拟单声道" diff --git a/src/Makefile.am b/src/Makefile.am index 8722f978..a46c5a1b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -32,6 +32,7 @@ xdgautostartdir=$(sysconfdir)/xdg/autostart alsaprofilesetsdir=$(datadir)/pulseaudio/alsa-mixer/profile-sets alsapathsdir=$(datadir)/pulseaudio/alsa-mixer/paths udevrulesdir=/lib/udev/rules.d +dbuspolicydir=$(sysconfdir)/dbus-1/system.d ################################### # Defines # @@ -87,7 +88,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 @@ -119,6 +120,7 @@ EXTRA_DIST = \ modules/module-defs.h.m4 \ daemon/pulseaudio.desktop.in \ map-file \ + daemon/pulseaudio-system.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 \ @@ -145,6 +147,9 @@ pulseconf_DATA = \ daemon.conf \ client.conf +dbuspolicy_DATA = \ + daemon/pulseaudio-system.conf + if HAVE_X11 xdgautostart_in_files = \ daemon/pulseaudio.desktop.in @@ -184,9 +189,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)) +pulseaudio_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(IMMEDIATE_LDFLAGS) -dlopen force $(foreach f,$(PREOPEN_LIBS),-dlopen $(f)) endif ################################### @@ -777,7 +782,7 @@ libpulse_mainloop_glib_la_LDFLAGS = $(AM_LDFLAGS) $(VERSIONING_LDFLAGS) -version # OSS emulation # ################################### -if HAVE_OSS +if HAVE_OSS_WRAPPER lib_LTLIBRARIES += libpulsedsp.la bin_SCRIPTS += utils/padsp endif @@ -869,6 +874,9 @@ libpulsecore_@PA_MAJORMINORMICRO@_la_CFLAGS += $(TDB_CFLAGS) libpulsecore_@PA_MAJORMINORMICRO@_la_LIBADD += $(TDB_LIBS) endif +if HAVE_SIMPLEDB +libpulsecore_@PA_MAJORMINORMICRO@_la_SOURCES += pulsecore/database-simple.c +endif # We split the foreign code off to not be annoyed by warnings we don't care about noinst_LTLIBRARIES = libpulsecore-foreign.la @@ -1035,7 +1043,7 @@ modlibexec_LTLIBRARIES += \ module-x11-cork-request.la endif -if HAVE_OSS +if HAVE_OSS_OUTPUT modlibexec_LTLIBRARIES += \ liboss-util.la \ module-oss.la @@ -1055,8 +1063,10 @@ alsaprofilesets_DATA = \ 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 \ @@ -1122,6 +1132,11 @@ modlibexec_LTLIBRARIES += \ module-hal-detect.la endif +if HAVE_HAL_COMPAT +modlibexec_LTLIBRARIES += \ + module-hal-detect.la +endif + if HAVE_UDEV modlibexec_LTLIBRARIES += \ module-udev-detect.la @@ -1250,7 +1265,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 libpulsecommon-@PA_MAJORMINORMICRO@.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) @@ -1603,10 +1618,16 @@ module_jack_source_la_LDFLAGS = $(MODULE_LDFLAGS) module_jack_source_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la $(JACK_LIBS) libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_jack_source_la_CFLAGS = $(AM_CFLAGS) $(JACK_CFLAGS) +if HAVE_HAL_COMPAT +module_hal_detect_la_SOURCES = modules/module-hal-detect-compat.c +module_hal_detect_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la +module_hal_detect_la_CFLAGS = $(AM_CFLAGS) +else module_hal_detect_la_SOURCES = modules/module-hal-detect.c -module_hal_detect_la_LDFLAGS = $(MODULE_LDFLAGS) module_hal_detect_la_LIBADD = $(AM_LIBADD) $(HAL_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la module_hal_detect_la_CFLAGS = $(AM_CFLAGS) $(HAL_CFLAGS) +endif +module_hal_detect_la_LDFLAGS = $(MODULE_LDFLAGS) module_udev_detect_la_SOURCES = modules/module-udev-detect.c module_udev_detect_la_LDFLAGS = $(MODULE_LDFLAGS) diff --git a/src/daemon/caps.c b/src/daemon/caps.c index 294be494..76b62e03 100644 --- a/src/daemon/caps.c +++ b/src/daemon/caps.c @@ -57,24 +57,29 @@ void pa_drop_root(void) { #ifdef HAVE_GETUID uid_t uid; + gid_t gid; + pa_log_debug(_("Cleaning up privileges.")); uid = getuid(); - if (uid == 0 || geteuid() != 0) - return; - - pa_log_info(_("Dropping root privileges.")); + gid = getgid(); #if defined(HAVE_SETRESUID) pa_assert_se(setresuid(uid, uid, uid) >= 0); + pa_assert_se(setresgid(gid, gid, gid) >= 0); #elif defined(HAVE_SETREUID) pa_assert_se(setreuid(uid, uid) >= 0); + pa_assert_se(setregid(gid, gid) >= 0); #else pa_assert_se(setuid(uid) >= 0); pa_assert_se(seteuid(uid) >= 0); + pa_assert_se(setgid(gid) >= 0); + pa_assert_se(setegid(gid) >= 0); #endif pa_assert_se(getuid() == uid); pa_assert_se(geteuid() == uid); + pa_assert_se(getgid() == gid); + pa_assert_se(getegid() == gid); #endif #ifdef HAVE_SYS_PRCTL_H @@ -82,7 +87,7 @@ void pa_drop_root(void) { #endif #ifdef HAVE_SYS_CAPABILITY_H - { + if (uid != 0) { cap_t caps; pa_assert_se(caps = cap_init()); pa_assert_se(cap_clear(caps) == 0); diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c index ace460ed..31f29009 100644 --- a/src/daemon/daemon-conf.c +++ b/src/daemon/daemon-conf.c @@ -476,14 +476,18 @@ int pa_daemon_conf_load(pa_daemon_conf *c, const char *filename) { { "high-priority", pa_config_parse_bool, &c->high_priority, NULL }, { "realtime-scheduling", pa_config_parse_bool, &c->realtime_scheduling, NULL }, { "disallow-module-loading", pa_config_parse_bool, &c->disallow_module_loading, NULL }, + { "allow-module-loading", pa_config_parse_not_bool, &c->disallow_module_loading, NULL }, { "disallow-exit", pa_config_parse_bool, &c->disallow_exit, NULL }, + { "allow-exit", pa_config_parse_not_bool, &c->disallow_exit, NULL }, { "use-pid-file", pa_config_parse_bool, &c->use_pid_file, NULL }, { "system-instance", pa_config_parse_bool, &c->system_instance, NULL }, #ifdef HAVE_DBUS { "local-server-type", parse_server_type, c, NULL }, #endif { "no-cpu-limit", pa_config_parse_bool, &c->no_cpu_limit, NULL }, + { "cpu-limit", pa_config_parse_not_bool, &c->no_cpu_limit, NULL }, { "disable-shm", pa_config_parse_bool, &c->disable_shm, NULL }, + { "enable-shm", pa_config_parse_not_bool, &c->disable_shm, NULL }, { "flat-volumes", pa_config_parse_bool, &c->flat_volumes, NULL }, { "lock-memory", pa_config_parse_bool, &c->lock_memory, NULL }, { "exit-idle-time", pa_config_parse_int, &c->exit_idle_time, NULL }, @@ -503,7 +507,9 @@ int pa_daemon_conf_load(pa_daemon_conf *c, const char *filename) { { "default-fragment-size-msec", parse_fragment_size_msec, c, NULL }, { "nice-level", parse_nice_level, c, NULL }, { "disable-remixing", pa_config_parse_bool, &c->disable_remixing, NULL }, + { "enable-remixing", pa_config_parse_not_bool, &c->disable_remixing, NULL }, { "disable-lfe-remixing", pa_config_parse_bool, &c->disable_lfe_remixing, NULL }, + { "enable-lfe-remixing", pa_config_parse_not_bool, &c->disable_lfe_remixing, NULL }, { "load-default-script-file", pa_config_parse_bool, &c->load_default_script_file, NULL }, { "shm-size-bytes", pa_config_parse_size, &c->shm_size, NULL }, { "log-meta", pa_config_parse_bool, &c->log_meta, NULL }, @@ -669,15 +675,15 @@ char *pa_daemon_conf_dump(pa_daemon_conf *c) { pa_strbuf_printf(s, "nice-level = %i\n", c->nice_level); pa_strbuf_printf(s, "realtime-scheduling = %s\n", pa_yes_no(c->realtime_scheduling)); pa_strbuf_printf(s, "realtime-priority = %i\n", c->realtime_priority); - pa_strbuf_printf(s, "disallow-module-loading = %s\n", pa_yes_no(c->disallow_module_loading)); - pa_strbuf_printf(s, "disallow-exit = %s\n", pa_yes_no(c->disallow_exit)); + pa_strbuf_printf(s, "allow-module-loading = %s\n", pa_yes_no(!c->disallow_module_loading)); + pa_strbuf_printf(s, "allow-exit = %s\n", pa_yes_no(!c->disallow_exit)); pa_strbuf_printf(s, "use-pid-file = %s\n", pa_yes_no(c->use_pid_file)); pa_strbuf_printf(s, "system-instance = %s\n", pa_yes_no(c->system_instance)); #ifdef HAVE_DBUS pa_strbuf_printf(s, "local-server-type = %s\n", server_type_to_string[c->local_server_type]); #endif - pa_strbuf_printf(s, "no-cpu-limit = %s\n", pa_yes_no(c->no_cpu_limit)); - pa_strbuf_printf(s, "disable-shm = %s\n", pa_yes_no(c->disable_shm)); + pa_strbuf_printf(s, "cpu-limit = %s\n", pa_yes_no(!c->no_cpu_limit)); + pa_strbuf_printf(s, "enable-shm = %s\n", pa_yes_no(!c->disable_shm)); pa_strbuf_printf(s, "flat-volumes = %s\n", pa_yes_no(c->flat_volumes)); pa_strbuf_printf(s, "lock-memory = %s\n", pa_yes_no(c->lock_memory)); pa_strbuf_printf(s, "exit-idle-time = %i\n", c->exit_idle_time); @@ -688,8 +694,8 @@ char *pa_daemon_conf_dump(pa_daemon_conf *c) { pa_strbuf_printf(s, "log-target = %s\n", c->auto_log_target ? "auto" : (c->log_target == PA_LOG_SYSLOG ? "syslog" : "stderr")); pa_strbuf_printf(s, "log-level = %s\n", log_level_to_string[c->log_level]); pa_strbuf_printf(s, "resample-method = %s\n", pa_resample_method_to_string(c->resample_method)); - pa_strbuf_printf(s, "disable-remixing = %s\n", pa_yes_no(c->disable_remixing)); - pa_strbuf_printf(s, "disable-lfe-remixing = %s\n", pa_yes_no(c->disable_lfe_remixing)); + pa_strbuf_printf(s, "enable-remixing = %s\n", pa_yes_no(!c->disable_remixing)); + pa_strbuf_printf(s, "enable-lfe-remixing = %s\n", pa_yes_no(!c->disable_lfe_remixing)); pa_strbuf_printf(s, "default-sample-format = %s\n", pa_sample_format_to_string(c->default_sample_spec.format)); pa_strbuf_printf(s, "default-sample-rate = %u\n", c->default_sample_spec.rate); pa_strbuf_printf(s, "default-sample-channels = %u\n", c->default_sample_spec.channels); diff --git a/src/daemon/daemon.conf.in b/src/daemon/daemon.conf.in index 9bea6148..a11fd06c 100644 --- a/src/daemon/daemon.conf.in +++ b/src/daemon/daemon.conf.in @@ -21,15 +21,15 @@ ; daemonize = no ; fail = yes -; disallow-module-loading = no -; disallow-exit = no +; allow-module-loading = yes +; allow-exit = yes ; use-pid-file = yes ; system-instance = no ; local-server-type = user -; disable-shm = no +; enable-shm = yes ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB ; lock-memory = no -; no-cpu-limit = no +; cpu-limit = yes ; high-priority = yes ; nice-level = -11 @@ -52,8 +52,8 @@ ; log-backtrace = 0 ; resample-method = speex-float-3 -; disable-remixing = no -; disable-lfe-remixing = yes +; enable-remixing = yes +; enable-lfe-remixing = no ; flat-volumes = yes diff --git a/src/daemon/main.c b/src/daemon/main.c index f4209859..73696005 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -110,7 +110,7 @@ int allow_severity = LOG_INFO; int deny_severity = LOG_WARNING; #endif -#ifdef HAVE_OSS +#ifdef HAVE_OSS_WRAPPER /* padsp looks for this symbol in the running process and disables * itself if it finds it and it is set to 7 (which is actually a bit * mask). For details see padsp. */ @@ -407,7 +407,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")) { @@ -418,9 +419,16 @@ 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 + if ((rp = pa_readlink("/proc/self/exe"))) { + + 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?"); + + pa_xfree(rp); + + } else pa_log_warn("Couldn't read /proc/self/exe, cannot self execute. Running in a chroot()?"); } #endif @@ -435,10 +443,13 @@ int main(int argc, char *argv[]) { /* 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 */ + + pa_reset_personality(); pa_drop_root(); pa_close_all(passed_fd, -1); pa_reset_sigs(-1); pa_unblock_sigs(-1); + pa_reset_priority(); setlocale(LC_ALL, ""); pa_init_i18n(); diff --git a/src/daemon/pulseaudio-system.conf b/src/daemon/pulseaudio-system.conf new file mode 100644 index 00000000..edddaf93 --- /dev/null +++ b/src/daemon/pulseaudio-system.conf @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/map-file b/src/map-file index 3db3a2d7..dafef48f 100644 --- a/src/map-file +++ b/src/map-file @@ -220,6 +220,8 @@ pa_simple_get_latency; pa_simple_new; pa_simple_read; pa_simple_write; +pa_stream_begin_write; +pa_stream_cancel_write; pa_stream_connect_playback; pa_stream_connect_record; pa_stream_connect_upload; diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c index a5515e1b..a4c2ee0f 100644 --- a/src/modules/alsa/alsa-mixer.c +++ b/src/modules/alsa/alsa-mixer.c @@ -940,7 +940,6 @@ int pa_alsa_path_select(pa_alsa_path *p, snd_mixer_t *m) { PA_LLIST_FOREACH(e, p->elements) { switch (e->switch_use) { - case PA_ALSA_SWITCH_MUTE: case PA_ALSA_SWITCH_OFF: r = element_set_switch(e, m, FALSE); break; @@ -949,6 +948,7 @@ int pa_alsa_path_select(pa_alsa_path *p, snd_mixer_t *m) { r = element_set_switch(e, m, TRUE); break; + case PA_ALSA_SWITCH_MUTE: case PA_ALSA_SWITCH_IGNORE: case PA_ALSA_SWITCH_SELECT: r = 0; @@ -960,7 +960,6 @@ int pa_alsa_path_select(pa_alsa_path *p, snd_mixer_t *m) { switch (e->volume_use) { case PA_ALSA_VOLUME_OFF: - case PA_ALSA_VOLUME_MERGE: r = element_mute_volume(e, m); break; @@ -968,6 +967,7 @@ int pa_alsa_path_select(pa_alsa_path *p, snd_mixer_t *m) { r = element_zero_volume(e, m); break; + case PA_ALSA_VOLUME_MERGE: case PA_ALSA_VOLUME_IGNORE: r = 0; break; @@ -2838,9 +2838,9 @@ static int mapping_verify(pa_alsa_mapping *m, const pa_channel_map *bonus) { if (bonus) { if (pa_channel_map_equal(&m->channel_map, bonus)) - m->priority += 5000; + m->priority += 50; else if (m->channel_map.channels == bonus->channels) - m->priority += 4000; + m->priority += 30; } return 0; diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c index c584362d..a91b4b8a 100644 --- a/src/modules/alsa/alsa-sink.c +++ b/src/modules/alsa/alsa-sink.c @@ -169,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); @@ -222,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; @@ -341,6 +340,9 @@ static int try_recover(struct userdata *u, const char *call, int err) { if (err == -EPIPE) pa_log_debug("%s: Buffer underrun!", call); + if (err == -ESTRPIPE) + pa_log_debug("%s: System suspended!", call); + if ((err = snd_pcm_recover(u->pcm_handle, err, 1)) < 0) { pa_log("%s: %s", call, pa_alsa_strerror(err)); return -1; @@ -402,6 +404,7 @@ static int mmap_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle snd_pcm_sframes_t n; size_t n_bytes; int r; + pa_bool_t after_avail = TRUE; /* First we determine how many samples are missing to fill the * buffer up to 100% */ @@ -485,6 +488,9 @@ static int mmap_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle if (PA_UNLIKELY((err = pa_alsa_safe_mmap_begin(u->pcm_handle, &areas, &offset, &frames, u->hwbuf_size, &u->sink->sample_spec)) < 0)) { + if (!after_avail && err == -EAGAIN) + break; + if ((r = try_recover(u, "snd_pcm_mmap_begin", err)) == 0) continue; @@ -495,6 +501,12 @@ 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 (!after_avail && frames == 0) + break; + + pa_assert(frames > 0); + after_avail = FALSE; + /* Check these are multiples of 8 bit */ pa_assert((areas[0].first & 7) == 0); pa_assert((areas[0].step & 7)== 0); @@ -615,6 +627,7 @@ static int unix_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle for (;;) { snd_pcm_sframes_t frames; void *p; + pa_bool_t after_avail = TRUE; /* pa_log_debug("%lu frames to write", (unsigned long) frames); */ @@ -632,16 +645,23 @@ 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 (PA_UNLIKELY(frames < 0)) { + if (!after_avail && (int) frames == -EAGAIN) + break; + if ((r = try_recover(u, "snd_pcm_writei", (int) frames)) == 0) continue; return r; } + if (!after_avail && frames == 0) + break; + + pa_assert(frames > 0); + after_avail = FALSE; + u->memchunk.index += (size_t) frames * u->frame_size; u->memchunk.length -= (size_t) frames * u->frame_size; @@ -882,9 +902,13 @@ static int unsuspend(struct userdata *u) { if (build_pollfd(u) < 0) goto fail; + u->write_count = 0; + pa_smoother_reset(u->smoother, pa_rtclock_now(), TRUE); + u->first = TRUE; u->since_start = 0; + pa_log_info("Resumed successfully..."); return 0; @@ -1178,8 +1202,11 @@ static int process_rewind(struct userdata *u) { pa_log_debug("before: %lu", (unsigned long) in_frames); if ((out_frames = snd_pcm_rewind(u->pcm_handle, (snd_pcm_uframes_t) in_frames)) < 0) { pa_log("snd_pcm_rewind() failed: %s", pa_alsa_strerror((int) out_frames)); - return -1; + if (try_recover(u, "process_rewind", out_frames) < 0) + return -1; + out_frames = 0; } + pa_log_debug("after: %lu", (unsigned long) out_frames); rewind_nbytes = (size_t) out_frames * u->frame_size; @@ -1187,7 +1214,7 @@ static int process_rewind(struct userdata *u) { if (rewind_nbytes <= 0) pa_log_info("Tried rewind, but was apparently not possible."); else { - u->write_count -= out_frames * u->frame_size; + u->write_count -= rewind_nbytes; pa_log_debug("Rewound %lu bytes.", (unsigned long) rewind_nbytes); pa_sink_process_rewind(u->sink, rewind_nbytes); @@ -1265,7 +1292,8 @@ static void thread_func(void *userdata) { * we have filled the buffer at least once * completely.*/ - pa_log_debug("Cutting sleep time for the initial iterations by half."); + if (pa_log_ratelimit()) + pa_log_debug("Cutting sleep time for the initial iterations by half."); sleep_usec /= 2; } diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c index a6760e1e..9a51f857 100644 --- a/src/modules/alsa/alsa-source.c +++ b/src/modules/alsa/alsa-source.c @@ -333,6 +333,9 @@ static int try_recover(struct userdata *u, const char *call, int err) { if (err == -EPIPE) pa_log_debug("%s: Buffer overrun!", call); + if (err == -ESTRPIPE) + pa_log_debug("%s: System suspended!", call); + if ((err = snd_pcm_recover(u->pcm_handle, err, 1)) < 0) { pa_log("%s: %s", call, pa_alsa_strerror(err)); return -1; @@ -391,6 +394,7 @@ static int mmap_read(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polled snd_pcm_sframes_t n; size_t n_bytes; int r; + pa_bool_t after_avail = TRUE; if (PA_UNLIKELY((n = pa_alsa_safe_avail(u->pcm_handle, u->hwbuf_size, &u->source->sample_spec)) < 0)) { @@ -463,6 +467,9 @@ static int mmap_read(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polled if (PA_UNLIKELY((err = pa_alsa_safe_mmap_begin(u->pcm_handle, &areas, &offset, &frames, u->hwbuf_size, &u->source->sample_spec)) < 0)) { + if (!after_avail && err == -EAGAIN) + break; + if ((r = try_recover(u, "snd_pcm_mmap_begin", err)) == 0) continue; @@ -473,6 +480,12 @@ 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 (!after_avail && frames == 0) + break; + + pa_assert(frames > 0); + after_avail = FALSE; + /* Check these are multiples of 8 bit */ pa_assert((areas[0].first & 7) == 0); pa_assert((areas[0].step & 7)== 0); @@ -539,6 +552,7 @@ static int unix_read(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polled snd_pcm_sframes_t n; size_t n_bytes; int r; + pa_bool_t after_avail = TRUE; if (PA_UNLIKELY((n = pa_alsa_safe_avail(u->pcm_handle, u->hwbuf_size, &u->source->sample_spec)) < 0)) { @@ -599,17 +613,26 @@ 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 (PA_UNLIKELY(frames < 0)) { pa_memblock_unref(chunk.memblock); - if ((r = try_recover(u, "snd_pcm_readi", (int) (frames))) == 0) + if (!after_avail && (int) frames == -EAGAIN) + break; + + if ((r = try_recover(u, "snd_pcm_readi", (int) frames)) == 0) continue; return r; } + if (!after_avail && frames == 0) { + pa_memblock_unref(chunk.memblock); + break; + } + + pa_assert(frames > 0); + after_avail = FALSE; + chunk.index = 0; chunk.length = (size_t) frames * u->frame_size; @@ -834,7 +857,9 @@ 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_now(), TRUE); + + u->read_count = 0; + pa_smoother_reset(u->smoother, pa_rtclock_now(), TRUE); pa_log_info("Resumed successfully..."); diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c index 1f3e5dcd..a47a8958 100644 --- a/src/modules/alsa/alsa-util.c +++ b/src/modules/alsa/alsa-util.c @@ -233,14 +233,16 @@ int pa_alsa_set_hw_params( goto finish; } - if (_period_size && tsched_size && _periods) { + if (_period_size > 0 && tsched_size > 0 && _periods > 0) { + snd_pcm_uframes_t buffer_size; + unsigned int p; /* Adjust the buffer sizes, if we didn't get the rate we were asking for */ _period_size = (snd_pcm_uframes_t) (((uint64_t) _period_size * r) / ss->rate); tsched_size = (snd_pcm_uframes_t) (((uint64_t) tsched_size * r) / ss->rate); if (_use_tsched) { - snd_pcm_uframes_t buffer_size = 0; + buffer_size = 0; if ((ret = snd_pcm_hw_params_get_buffer_size_max(hwparams, &buffer_size)) < 0) pa_log_warn("snd_pcm_hw_params_get_buffer_size_max() failed: %s", pa_alsa_strerror(ret)); @@ -251,32 +253,33 @@ int pa_alsa_set_hw_params( _periods = 1; } - if (_period_size > 0 && _periods > 0) { - snd_pcm_uframes_t buffer_size; - - buffer_size = _periods * _period_size; - - if ((ret = snd_pcm_hw_params_set_buffer_size_near(pcm_handle, hwparams, &buffer_size)) < 0) - pa_log_info("snd_pcm_hw_params_set_buffer_size_near() failed: %s", pa_alsa_strerror(ret)); - } - - if (_periods > 0) { - - /* First we pass 0 as direction to get exactly what we - * asked for. That this is necessary is presumably a bug - * in ALSA. All in all this is mostly a hint to ALSA, so - * we don't care if this fails. */ - - dir = 0; - if (snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &_periods, &dir) < 0) { - dir = 1; - if (snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &_periods, &dir) < 0) { - dir = -1; - if ((ret = snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &_periods, &dir)) < 0) - pa_log_info("snd_pcm_hw_params_set_periods_near() failed: %s", pa_alsa_strerror(ret)); - } + /* Some ALSA drivers really don't like if we set the buffer + * size first and the number of periods second. (which would + * make a lot more sense to me) So, follow this rule and + * adjust the periods first and the buffer size second */ + + /* First we pass 0 as direction to get exactly what we + * asked for. That this is necessary is presumably a bug + * in ALSA. All in all this is mostly a hint to ALSA, so + * we don't care if this fails. */ + + p = _periods; + dir = 0; + if (snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &p, &dir) < 0) { + p = _periods; + dir = 1; + if (snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &p, &dir) < 0) { + p = _periods; + dir = -1; + if ((ret = snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &p, &dir)) < 0) + pa_log_info("snd_pcm_hw_params_set_periods_near() failed: %s", pa_alsa_strerror(ret)); } } + + /* Now set the buffer size */ + buffer_size = _periods * _period_size; + if ((ret = snd_pcm_hw_params_set_buffer_size_near(pcm_handle, hwparams, &buffer_size)) < 0) + pa_log_info("snd_pcm_hw_params_set_buffer_size_near() failed: %s", pa_alsa_strerror(ret)); } if ((ret = snd_pcm_hw_params(pcm_handle, hwparams)) < 0) diff --git a/src/modules/alsa/mixer/Makefile b/src/modules/alsa/mixer/Makefile new file mode 120000 index 00000000..b4955194 --- /dev/null +++ b/src/modules/alsa/mixer/Makefile @@ -0,0 +1 @@ +../../../pulse/Makefile \ No newline at end of file diff --git a/src/modules/alsa/mixer/paths/Makefile b/src/modules/alsa/mixer/paths/Makefile new file mode 120000 index 00000000..dc23aaa2 --- /dev/null +++ b/src/modules/alsa/mixer/paths/Makefile @@ -0,0 +1 @@ +../../../../pulse/Makefile \ No newline at end of file diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones.conf b/src/modules/alsa/mixer/paths/analog-output-headphones.conf index c018e0eb..691cb3f2 100644 --- a/src/modules/alsa/mixer/paths/analog-output-headphones.conf +++ b/src/modules/alsa/mixer/paths/analog-output-headphones.conf @@ -44,6 +44,10 @@ volume = merge override-map.1 = all override-map.2 = all-left,all-right +[Element Speaker] +switch = off +volume = off + [Element Front] switch = off volume = off 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 7a267890..2db976a5 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 @@ -45,6 +45,12 @@ override-map.2 = lfe,lfe switch = off volume = off +[Element Speaker] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + [Element Front] switch = off volume = off diff --git a/src/modules/alsa/mixer/paths/analog-output-mono.conf b/src/modules/alsa/mixer/paths/analog-output-mono.conf index f6cb9f8a..a58cc970 100644 --- a/src/modules/alsa/mixer/paths/analog-output-mono.conf +++ b/src/modules/alsa/mixer/paths/analog-output-mono.conf @@ -42,6 +42,12 @@ override-map.2 = all-left,all-right switch = off volume = off +[Element Speaker] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + [Element Front] switch = off volume = off diff --git a/src/modules/alsa/mixer/paths/analog-output.conf b/src/modules/alsa/mixer/paths/analog-output.conf index ea108aaf..b412a437 100644 --- a/src/modules/alsa/mixer/paths/analog-output.conf +++ b/src/modules/alsa/mixer/paths/analog-output.conf @@ -41,6 +41,12 @@ volume = off switch = off volume = off +[Element Speaker] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + [Element Front] switch = mute volume = merge diff --git a/src/modules/alsa/mixer/paths/analog-output.conf.common b/src/modules/alsa/mixer/paths/analog-output.conf.common index cc1185f4..3c6ce803 100644 --- a/src/modules/alsa/mixer/paths/analog-output.conf.common +++ b/src/modules/alsa/mixer/paths/analog-output.conf.common @@ -104,8 +104,8 @@ switch = select [Option External Amplifier:on] name = output-amplifier-on -priority = 0 +priority = 10 [Option External Amplifier:off] name = output-amplifier-off -priority = 10 +priority = 0 diff --git a/src/modules/alsa/mixer/profile-sets/Makefile b/src/modules/alsa/mixer/profile-sets/Makefile new file mode 120000 index 00000000..dc23aaa2 --- /dev/null +++ b/src/modules/alsa/mixer/profile-sets/Makefile @@ -0,0 +1 @@ +../../../../pulse/Makefile \ No newline at end of file diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c index 5c7681d4..16c29248 100644 --- a/src/modules/bluetooth/bluetooth-util.c +++ b/src/modules/bluetooth/bluetooth-util.c @@ -122,9 +122,9 @@ static pa_bool_t device_is_audio(pa_bluetooth_device *d) { return d->device_info_valid && - (d->audio_state != PA_BT_AUDIO_STATE_INVALID || - d->audio_sink_state != PA_BT_AUDIO_STATE_INVALID || - d->headset_state != PA_BT_AUDIO_STATE_INVALID); + (d->audio_state != PA_BT_AUDIO_STATE_INVALID && + (d->audio_sink_state != PA_BT_AUDIO_STATE_INVALID || + d->headset_state != PA_BT_AUDIO_STATE_INVALID)); } static int parse_device_property(pa_bluetooth_discovery *y, pa_bluetooth_device *d, DBusMessageIter *i) { @@ -226,10 +226,6 @@ static int parse_device_property(pa_bluetooth_discovery *y, pa_bluetooth_device node = uuid_new(value); PA_LLIST_PREPEND(pa_bluetooth_uuid, d->uuids, node); - /* this might eventually be racy if .Audio is not there yet, but the State change will come anyway later, so this call is for cold-detection mostly */ - pa_assert_se(m = dbus_message_new_method_call("org.bluez", d->path, "org.bluez.Audio", "GetProperties")); - send_and_add_to_pending(y, d, m, get_properties_reply); - /* Vudentz said the interfaces are here when the UUIDs are announced */ if (strcasecmp(HSP_HS_UUID, value) == 0 || strcasecmp(HFP_HS_UUID, value) == 0) { pa_assert_se(m = dbus_message_new_method_call("org.bluez", d->path, "org.bluez.Headset", "GetProperties")); @@ -239,6 +235,10 @@ static int parse_device_property(pa_bluetooth_discovery *y, pa_bluetooth_device send_and_add_to_pending(y, d, m, get_properties_reply); } + /* this might eventually be racy if .Audio is not there yet, but the State change will come anyway later, so this call is for cold-detection mostly */ + pa_assert_se(m = dbus_message_new_method_call("org.bluez", d->path, "org.bluez.Audio", "GetProperties")); + send_and_add_to_pending(y, d, m, get_properties_reply); + if (!dbus_message_iter_next(&ai)) break; } @@ -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); @@ -615,6 +648,32 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *m, void *us run_callback(y, d, FALSE); } + 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; } @@ -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/bluetooth-util.h b/src/modules/bluetooth/bluetooth-util.h index 265caf40..f15f2170 100644 --- a/src/modules/bluetooth/bluetooth-util.h +++ b/src/modules/bluetooth/bluetooth-util.h @@ -59,8 +59,7 @@ typedef enum pa_bt_audio_state { PA_BT_AUDIO_STATE_DISCONNECTED, PA_BT_AUDIO_STATE_CONNECTING, PA_BT_AUDIO_STATE_CONNECTED, - PA_BT_AUDIO_STATE_PLAYING, - PA_BT_AUDIO_STATE_LAST + PA_BT_AUDIO_STATE_PLAYING } pa_bt_audio_state_t; struct pa_bluetooth_device { diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c index e7c6d5e4..d6321fc4 100644 --- a/src/modules/bluetooth/module-bluetooth-device.c +++ b/src/modules/bluetooth/module-bluetooth-device.c @@ -881,7 +881,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse *((pa_usec_t*) data) = wi > ri ? wi - ri : 0; } - *((pa_usec_t*) data) += u->sink->fixed_latency; + *((pa_usec_t*) data) += u->sink->thread_info.fixed_latency; return 0; } } @@ -943,7 +943,7 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off 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; + *((pa_usec_t*) data) = (wi > ri ? wi - ri : 0) + u->source->thread_info.fixed_latency; return 0; } @@ -1262,11 +1262,11 @@ static void thread_func(void *userdata) { if (u->core->realtime_scheduling) pa_make_realtime(u->core->realtime_priority); + pa_thread_mq_install(&u->thread_mq); + if (start_stream_fd(u) < 0) goto fail; - pa_thread_mq_install(&u->thread_mq); - for (;;) { struct pollfd *pollfd; int ret; @@ -1319,18 +1319,21 @@ static void thread_func(void *userdata) { if (u->write_index > 0 && audio_to_send > MAX_PLAYBACK_CATCH_UP_USEC) { pa_usec_t skip_usec; uint64_t skip_bytes; - pa_memchunk tmp; skip_usec = audio_to_send - MAX_PLAYBACK_CATCH_UP_USEC; skip_bytes = pa_usec_to_bytes(skip_usec, &u->sample_spec); - pa_log_warn("Skipping %llu us (= %llu bytes) in audio stream", - (unsigned long long) skip_usec, - (unsigned long long) skip_bytes); + if (skip_bytes > 0) { + pa_memchunk tmp; + + pa_log_warn("Skipping %llu us (= %llu bytes) in audio stream", + (unsigned long long) skip_usec, + (unsigned long long) skip_bytes); - pa_sink_render_full(u->sink, skip_bytes, &tmp); - pa_memblock_unref(tmp.memblock); - u->write_index += skip_bytes; + pa_sink_render_full(u->sink, skip_bytes, &tmp); + pa_memblock_unref(tmp.memblock); + u->write_index += skip_bytes; + } } do_write = 1; @@ -1351,11 +1354,14 @@ 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 @@ -1443,12 +1449,12 @@ static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *m, void *us if (u->sink && dbus_message_is_signal(m, "org.bluez.Headset", "SpeakerGainChanged")) { pa_cvolume_set(&v, u->sample_spec.channels, (pa_volume_t) (gain * PA_VOLUME_NORM / 15)); - pa_sink_volume_changed(u->sink, &v, TRUE); + pa_sink_volume_changed(u->sink, &v); } else if (u->source && dbus_message_is_signal(m, "org.bluez.Headset", "MicrophoneGainChanged")) { pa_cvolume_set(&v, u->sample_spec.channels, (pa_volume_t) (gain * PA_VOLUME_NORM / 15)); - pa_source_volume_changed(u->source, &v, TRUE); + pa_source_volume_changed(u->source, &v); } } } @@ -1733,7 +1739,8 @@ static void shutdown_bt(struct userdata *u) { if (u->service_fd >= 0) { pa_close(u->service_fd); u->service_fd = -1; - u->service_write_type = u->service_write_type = 0; + u->service_write_type = 0; + u->service_read_type = 0; } if (u->write_memchunk.memblock) { @@ -1749,7 +1756,8 @@ static int init_bt(struct userdata *u) { shutdown_bt(u); u->stream_write_type = 0; - u->service_write_type = u->service_write_type = 0; + u->service_write_type = 0; + u->service_read_type = 0; if ((u->service_fd = bt_audio_service_open()) < 0) { pa_log_error("Couldn't connect to bluetooth audio service"); @@ -2082,6 +2090,15 @@ static int add_card(struct userdata *u, const pa_bluetooth_device *device) { u->card->userdata = u; 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; diff --git a/src/modules/module-combine.c b/src/modules/module-combine.c index d50e59ae..582cbce1 100644 --- a/src/modules/module-combine.c +++ b/src/modules/module-combine.c @@ -92,6 +92,8 @@ struct output { pa_sink *sink; pa_sink_input *sink_input; + pa_bool_t ignore_state_change; + pa_asyncmsgq *inq, /* Message queue from the sink thread to this sink input */ *outq; /* Message queue from this sink input to the sink thread */ pa_rtpoll_item *inq_rtpoll_item_read, *inq_rtpoll_item_write; @@ -99,9 +101,12 @@ struct output { pa_memblockq *memblockq; + /* For communication of the stream latencies to the main thread */ pa_usec_t total_latency; + /* For coomunication of the stream parameters to the sink thread */ pa_atomic_t max_request; + pa_atomic_t requested_latency; PA_LLIST_FIELDS(struct output); }; @@ -119,13 +124,12 @@ 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; pa_resample_method_t resample_method; - struct timeval adjust_timestamp; - pa_usec_t block_usec; pa_idxset* outputs; /* managed in main context */ @@ -145,13 +149,16 @@ enum { SINK_MESSAGE_REMOVE_OUTPUT, SINK_MESSAGE_NEED, SINK_MESSAGE_UPDATE_LATENCY, - SINK_MESSAGE_UPDATE_MAX_REQUEST + SINK_MESSAGE_UPDATE_MAX_REQUEST, + SINK_MESSAGE_UPDATE_REQUESTED_LATENCY }; enum { SINK_INPUT_MESSAGE_POST = PA_SINK_INPUT_MESSAGE_MAX, }; +static void output_disable(struct output *o); +static void output_enable(struct output *o); static void output_free(struct output *o); static int output_create_sink_input(struct output *o); @@ -171,7 +178,7 @@ static void adjust_rates(struct userdata *u) { if (!PA_SINK_IS_OPENED(pa_sink_get_state(u->sink))) return; - for (o = pa_idxset_first(u->outputs, &idx); o; o = pa_idxset_next(u->outputs, &idx)) { + PA_IDXSET_FOREACH(o, u->outputs, idx) { pa_usec_t sink_latency; if (!o->sink_input || !PA_SINK_IS_OPENED(pa_sink_get_state(o->sink))) @@ -188,6 +195,11 @@ static void adjust_rates(struct userdata *u) { avg_total_latency += o->total_latency; n++; + + pa_log_debug("[%s] total=%0.2fms sink=%0.2fms ", o->sink->name, (double) o->total_latency / PA_USEC_PER_MSEC, (double) sink_latency / PA_USEC_PER_MSEC); + + if (o->total_latency > 10*PA_USEC_PER_SEC) + pa_log_warn("[%s] Total latency of output is very high (%0.2fms), most likely the audio timing in one of your drivers is broken.", o->sink->name, (double) o->total_latency / PA_USEC_PER_MSEC); } if (min_total_latency == (pa_usec_t) -1) @@ -202,7 +214,7 @@ static void adjust_rates(struct userdata *u) { base_rate = u->sink->sample_spec.rate; - for (o = pa_idxset_first(u->outputs, &idx); o; o = pa_idxset_next(u->outputs, &idx)) { + PA_IDXSET_FOREACH(o, u->outputs, idx) { uint32_t r = base_rate; if (!o->sink_input || !PA_SINK_IS_OPENED(pa_sink_get_state(o->sink))) @@ -214,10 +226,10 @@ static void adjust_rates(struct userdata *u) { r += (uint32_t) ((((double) (o->total_latency - target_latency))/(double)u->adjust_time)*(double)r/PA_USEC_PER_SEC); if (r < (uint32_t) (base_rate*0.9) || r > (uint32_t) (base_rate*1.1)) { - pa_log_warn("[%s] sample rates too different, not adjusting (%u vs. %u).", pa_proplist_gets(o->sink_input->proplist, PA_PROP_MEDIA_NAME), base_rate, r); + pa_log_warn("[%s] sample rates too different, not adjusting (%u vs. %u).", o->sink_input->sink->name, base_rate, r); pa_sink_input_set_rate(o->sink_input, base_rate); } else { - pa_log_info("[%s] new rate is %u Hz; ratio is %0.3f; latency is %0.0f usec.", pa_proplist_gets(o->sink_input->proplist, PA_PROP_MEDIA_NAME), r, (double) r / base_rate, (float) o->total_latency); + pa_log_info("[%s] new rate is %u Hz; ratio is %0.3f; latency is %0.0f usec.", o->sink_input->sink->name, r, (double) r / base_rate, (float) o->total_latency); pa_sink_input_set_rate(o->sink_input, r); } } @@ -354,18 +366,15 @@ static void render_memblock(struct userdata *u, struct output *o, size_t length) u->thread_info.counter += chunk.length; /* OK, let's send this data to the other threads */ - for (j = u->thread_info.active_outputs; j; j = j->next) - - /* Send to other outputs, which are not the requesting - * one */ + PA_LLIST_FOREACH(j, u->thread_info.active_outputs) { + if (j == o) + continue; - if (j != o) - pa_asyncmsgq_post(j->inq, PA_MSGOBJECT(j->sink_input), SINK_INPUT_MESSAGE_POST, NULL, 0, &chunk, NULL); + pa_asyncmsgq_post(j->inq, PA_MSGOBJECT(j->sink_input), SINK_INPUT_MESSAGE_POST, NULL, 0, &chunk, NULL); + } /* And place it directly into the requesting output's queue */ - if (o) - pa_memblockq_push_align(o->memblockq, &chunk); - + pa_memblockq_push_align(o->memblockq, &chunk); pa_memblock_unref(chunk.memblock); } } @@ -401,10 +410,18 @@ static int sink_input_pop_cb(pa_sink_input *i, size_t nbytes, pa_memchunk *chunk /* If necessary, get some new data */ request_memblock(o, nbytes); + /* pa_log("%s q size is %u + %u (%u/%u)", */ + /* i->sink->name, */ + /* pa_memblockq_get_nblocks(o->memblockq), */ + /* pa_memblockq_get_nblocks(i->thread_info.render_memblockq), */ + /* pa_memblockq_get_maxrewind(o->memblockq), */ + /* pa_memblockq_get_maxrewind(i->thread_info.render_memblockq)); */ + if (pa_memblockq_peek(o->memblockq, chunk) < 0) return -1; pa_memblockq_drop(o->memblockq, chunk->length); + return 0; } @@ -439,13 +456,35 @@ static void sink_input_update_max_request_cb(pa_sink_input *i, size_t nbytes) { return; pa_atomic_store(&o->max_request, (int) nbytes); - pa_asyncmsgq_post(o->outq, PA_MSGOBJECT(o->userdata->sink), SINK_MESSAGE_UPDATE_MAX_REQUEST, NULL, 0, NULL, NULL); } +/* Called from thread context */ +static void sink_input_update_sink_requested_latency_cb(pa_sink_input *i) { + struct output *o; + pa_usec_t c; + + pa_assert(i); + + pa_sink_input_assert_ref(i); + pa_assert_se(o = i->userdata); + + c = pa_sink_get_requested_latency_within_thread(i->sink); + + if (c == (pa_usec_t) -1) + c = i->sink->thread_info.max_latency; + + if (pa_atomic_load(&o->requested_latency) == (int) c) + return; + + pa_atomic_store(&o->requested_latency, (int) c); + pa_asyncmsgq_post(o->outq, PA_MSGOBJECT(o->userdata->sink), SINK_MESSAGE_UPDATE_REQUESTED_LATENCY, NULL, 0, NULL, NULL); +} + /* Called from I/O thread context */ static void sink_input_attach_cb(pa_sink_input *i) { struct output *o; + pa_usec_t c; pa_sink_input_assert_ref(i); pa_assert_se(o = i->userdata); @@ -454,14 +493,24 @@ static void sink_input_attach_cb(pa_sink_input *i) { pa_assert(!o->inq_rtpoll_item_read && !o->outq_rtpoll_item_write); o->inq_rtpoll_item_read = pa_rtpoll_item_new_asyncmsgq_read( - i->sink->rtpoll, + i->sink->thread_info.rtpoll, PA_RTPOLL_LATE, /* This one is not that important, since we check for data in _peek() anyway. */ o->inq); o->outq_rtpoll_item_write = pa_rtpoll_item_new_asyncmsgq_write( - i->sink->rtpoll, + i->sink->thread_info.rtpoll, PA_RTPOLL_EARLY, o->outq); + + pa_sink_input_request_rewind(i, 0, FALSE, TRUE, TRUE); + + pa_atomic_store(&o->max_request, (int) pa_sink_input_get_max_request(i)); + + c = pa_sink_get_requested_latency_within_thread(i->sink); + pa_atomic_store(&o->requested_latency, (int) (c == (pa_usec_t) -1 ? 0 : c)); + + pa_asyncmsgq_post(o->outq, PA_MSGOBJECT(o->userdata->sink), SINK_MESSAGE_UPDATE_MAX_REQUEST, NULL, 0, NULL, NULL); + pa_asyncmsgq_post(o->outq, PA_MSGOBJECT(o->userdata->sink), SINK_MESSAGE_UPDATE_REQUESTED_LATENCY, NULL, 0, NULL, NULL); } /* Called from I/O thread context */ @@ -471,14 +520,15 @@ static void sink_input_detach_cb(pa_sink_input *i) { pa_sink_input_assert_ref(i); pa_assert_se(o = i->userdata); - /* Shut down the queue from the sink thread to us */ - pa_assert(o->inq_rtpoll_item_read && o->outq_rtpoll_item_write); - - pa_rtpoll_item_free(o->inq_rtpoll_item_read); - o->inq_rtpoll_item_read = NULL; + if (o->inq_rtpoll_item_read) { + pa_rtpoll_item_free(o->inq_rtpoll_item_read); + o->inq_rtpoll_item_read = NULL; + } - pa_rtpoll_item_free(o->outq_rtpoll_item_write); - o->outq_rtpoll_item_write = NULL; + if (o->outq_rtpoll_item_write) { + pa_rtpoll_item_free(o->outq_rtpoll_item_write); + o->outq_rtpoll_item_write = NULL; + } } /* Called from main context */ @@ -492,20 +542,6 @@ static void sink_input_kill_cb(pa_sink_input *i) { output_free(o); } -/* Called from IO thread context */ -static void sink_input_state_change_cb(pa_sink_input *i, pa_sink_input_state_t state) { - struct userdata *u; - - pa_sink_input_assert_ref(i); - pa_assert_se(u = i->userdata); - - /* If we are added for the first time, ask for a rewinding so that - * we are heard right-away. */ - if (PA_SINK_INPUT_IS_LINKED(state) && - i->thread_info.state == PA_SINK_INPUT_INIT) - pa_sink_input_request_rewind(i, 0, FALSE, TRUE, TRUE); -} - /* Called from thread context */ static int sink_input_process_msg(pa_msgobject *obj, int code, void *data, int64_t offset, pa_memchunk *chunk) { struct output *o = PA_SINK_INPUT(obj)->userdata; @@ -535,37 +571,6 @@ static int sink_input_process_msg(pa_msgobject *obj, int code, void *data, int64 return pa_sink_input_process_msg(obj, code, data, offset, chunk); } -/* Called from main context */ -static void disable_output(struct output *o) { - pa_assert(o); - - if (!o->sink_input) - return; - - pa_sink_input_unlink(o->sink_input); - pa_asyncmsgq_send(o->userdata->sink->asyncmsgq, PA_MSGOBJECT(o->userdata->sink), SINK_MESSAGE_REMOVE_OUTPUT, o, 0, NULL); - pa_sink_input_unref(o->sink_input); - o->sink_input = NULL; -} - -/* Called from main context */ -static void enable_output(struct output *o) { - pa_assert(o); - - if (o->sink_input) - return; - - if (output_create_sink_input(o) >= 0) { - - pa_memblockq_flush_write(o->memblockq); - - pa_sink_input_put(o->sink_input); - - if (o->userdata->sink && PA_SINK_IS_LINKED(pa_sink_get_state(o->userdata->sink))) - pa_asyncmsgq_send(o->userdata->sink->asyncmsgq, PA_MSGOBJECT(o->userdata->sink), SINK_MESSAGE_ADD_OUTPUT, o, 0, NULL); - } -} - /* Called from main context */ static void suspend(struct userdata *u) { struct output *o; @@ -574,8 +579,8 @@ static void suspend(struct userdata *u) { pa_assert(u); /* Let's suspend by unlinking all streams */ - for (o = pa_idxset_first(u->outputs, &idx); o; o = pa_idxset_next(u->outputs, &idx)) - disable_output(o); + PA_IDXSET_FOREACH(o, u->outputs, idx) + output_disable(o); pa_log_info("Device suspended..."); } @@ -588,13 +593,8 @@ static void unsuspend(struct userdata *u) { pa_assert(u); /* Let's resume */ - for (o = pa_idxset_first(u->outputs, &idx); o; o = pa_idxset_next(u->outputs, &idx)) { - - pa_sink_suspend(o->sink, FALSE, PA_SUSPEND_IDLE); - - if (PA_SINK_IS_OPENED(pa_sink_get_state(o->sink))) - enable_output(o); - } + PA_IDXSET_FOREACH(o, u->outputs, idx) + output_enable(o); pa_log_info("Resumed successfully..."); } @@ -638,7 +638,13 @@ static void update_max_request(struct userdata *u) { size_t max_request = 0; struct output *o; - for (o = u->thread_info.active_outputs; o; o = o->next) { + pa_assert(u); + pa_sink_assert_io_context(u->sink); + + /* Collects the max_request values of all streams and sets the + * largest one locally */ + + PA_LLIST_FOREACH(o, u->thread_info.active_outputs) { size_t mr = (size_t) pa_atomic_load(&o->max_request); if (mr > max_request) @@ -651,6 +657,67 @@ static void update_max_request(struct userdata *u) { pa_sink_set_max_request_within_thread(u->sink, max_request); } +/* Called from IO context */ +static void update_fixed_latency(struct userdata *u) { + pa_usec_t fixed_latency = 0; + struct output *o; + + pa_assert(u); + pa_sink_assert_io_context(u->sink); + + /* Collects the requested_latency values of all streams and sets + * the largest one as fixed_latency locally */ + + PA_LLIST_FOREACH(o, u->thread_info.active_outputs) { + pa_usec_t rl = (size_t) pa_atomic_load(&o->requested_latency); + + if (rl > fixed_latency) + fixed_latency = rl; + } + + if (fixed_latency <= 0) + fixed_latency = u->block_usec; + + pa_sink_set_fixed_latency_within_thread(u->sink, fixed_latency); +} + +/* Called from thread context of the io thread */ +static void output_add_within_thread(struct output *o) { + pa_assert(o); + pa_sink_assert_io_context(o->sink); + + PA_LLIST_PREPEND(struct output, o->userdata->thread_info.active_outputs, o); + + pa_assert(!o->outq_rtpoll_item_read && !o->inq_rtpoll_item_write); + + o->outq_rtpoll_item_read = pa_rtpoll_item_new_asyncmsgq_read( + o->userdata->rtpoll, + PA_RTPOLL_EARLY-1, /* This item is very important */ + o->outq); + o->inq_rtpoll_item_write = pa_rtpoll_item_new_asyncmsgq_write( + o->userdata->rtpoll, + PA_RTPOLL_EARLY, + o->inq); +} + +/* Called from thread context of the io thread */ +static void output_remove_within_thread(struct output *o) { + pa_assert(o); + pa_sink_assert_io_context(o->sink); + + PA_LLIST_REMOVE(struct output, o->userdata->thread_info.active_outputs, o); + + if (o->outq_rtpoll_item_read) { + pa_rtpoll_item_free(o->outq_rtpoll_item_read); + o->outq_rtpoll_item_read = NULL; + } + + if (o->inq_rtpoll_item_write) { + pa_rtpoll_item_free(o->inq_rtpoll_item_write); + o->inq_rtpoll_item_write = NULL; + } +} + /* Called from thread context of the io thread */ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offset, pa_memchunk *chunk) { struct userdata *u = PA_SINK(o)->userdata; @@ -683,42 +750,17 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse return 0; } - case SINK_MESSAGE_ADD_OUTPUT: { - struct output *op = data; - - PA_LLIST_PREPEND(struct output, u->thread_info.active_outputs, op); - - pa_assert(!op->outq_rtpoll_item_read && !op->inq_rtpoll_item_write); - - op->outq_rtpoll_item_read = pa_rtpoll_item_new_asyncmsgq_read( - u->rtpoll, - PA_RTPOLL_EARLY-1, /* This item is very important */ - op->outq); - op->inq_rtpoll_item_write = pa_rtpoll_item_new_asyncmsgq_write( - u->rtpoll, - PA_RTPOLL_EARLY, - op->inq); - + case SINK_MESSAGE_ADD_OUTPUT: + output_add_within_thread(data); update_max_request(u); + update_fixed_latency(u); return 0; - } - - case SINK_MESSAGE_REMOVE_OUTPUT: { - struct output *op = data; - - PA_LLIST_REMOVE(struct output, u->thread_info.active_outputs, op); - - pa_assert(op->outq_rtpoll_item_read && op->inq_rtpoll_item_write); - - pa_rtpoll_item_free(op->outq_rtpoll_item_read); - op->outq_rtpoll_item_read = NULL; - - pa_rtpoll_item_free(op->inq_rtpoll_item_write); - op->inq_rtpoll_item_write = NULL; + case SINK_MESSAGE_REMOVE_OUTPUT: + output_remove_within_thread(data); update_max_request(u); + update_fixed_latency(u); return 0; - } case SINK_MESSAGE_NEED: render_memblock(u, (struct output*) data, (size_t) offset); @@ -740,10 +782,13 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse } case SINK_MESSAGE_UPDATE_MAX_REQUEST: - update_max_request(u); break; - } + + case SINK_MESSAGE_UPDATE_REQUESTED_LATENCY: + update_fixed_latency(u); + break; +} return pa_sink_process_msg(o, code, data, offset, chunk); } @@ -756,6 +801,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; @@ -763,7 +811,7 @@ static void update_description(struct userdata *u) { t = pa_xstrdup("Simultaneous output to"); - for (o = pa_idxset_first(u->outputs, &idx); o; o = pa_idxset_next(u->outputs, &idx)) { + PA_IDXSET_FOREACH(o, u->outputs, idx) { char *e; if (first) { @@ -798,7 +846,7 @@ static int output_create_sink_input(struct output *o) { data.module = o->userdata->module; data.resample_method = o->userdata->resample_method; - pa_sink_input_new(&o->sink_input, o->userdata->core, &data, PA_SINK_INPUT_VARIABLE_RATE|PA_SINK_INPUT_DONT_MOVE); + pa_sink_input_new(&o->sink_input, o->userdata->core, &data, PA_SINK_INPUT_VARIABLE_RATE|PA_SINK_INPUT_DONT_MOVE|PA_SINK_INPUT_NO_CREATE_ON_SUSPEND); pa_sink_input_new_data_done(&data); @@ -808,9 +856,9 @@ static int output_create_sink_input(struct output *o) { o->sink_input->parent.process_msg = sink_input_process_msg; o->sink_input->pop = sink_input_pop_cb; o->sink_input->process_rewind = sink_input_process_rewind_cb; - o->sink_input->state_change = sink_input_state_change_cb; o->sink_input->update_max_rewind = sink_input_update_max_rewind_cb; o->sink_input->update_max_request = sink_input_update_max_request_cb; + o->sink_input->update_sink_requested_latency = sink_input_update_sink_requested_latency_cb; o->sink_input->attach = sink_input_attach_cb; o->sink_input->detach = sink_input_detach_cb; o->sink_input->kill = sink_input_kill_cb; @@ -821,22 +869,19 @@ static int output_create_sink_input(struct output *o) { return 0; } +/* Called from main context */ static struct output *output_new(struct userdata *u, pa_sink *sink) { struct output *o; - pa_sink_state_t state; pa_assert(u); pa_assert(sink); pa_assert(u->sink); - o = pa_xnew(struct output, 1); + o = pa_xnew0(struct output, 1); o->userdata = u; o->inq = pa_asyncmsgq_new(0); o->outq = pa_asyncmsgq_new(0); - o->inq_rtpoll_item_write = o->inq_rtpoll_item_read = NULL; - o->outq_rtpoll_item_write = o->outq_rtpoll_item_read = NULL; o->sink = sink; - o->sink_input = NULL; o->memblockq = pa_memblockq_new( 0, MEMBLOCKQ_MAXLENGTH, @@ -846,84 +891,135 @@ static struct output *output_new(struct userdata *u, pa_sink *sink) { 0, 0, NULL); - pa_atomic_store(&o->max_request, 0); - PA_LLIST_INIT(struct output, o); pa_assert_se(pa_idxset_put(u->outputs, o, NULL) == 0); + update_description(u); - state = pa_sink_get_state(u->sink); - - if (state != PA_SINK_INIT) - pa_asyncmsgq_send(u->sink->asyncmsgq, PA_MSGOBJECT(u->sink), SINK_MESSAGE_ADD_OUTPUT, o, 0, NULL); - else { - /* If the sink is not yet started, we need to do the activation ourselves */ - PA_LLIST_PREPEND(struct output, u->thread_info.active_outputs, o); - - o->outq_rtpoll_item_read = pa_rtpoll_item_new_asyncmsgq_read( - u->rtpoll, - PA_RTPOLL_EARLY-1, /* This item is very important */ - o->outq); - o->inq_rtpoll_item_write = pa_rtpoll_item_new_asyncmsgq_write( - u->rtpoll, - PA_RTPOLL_EARLY, - o->inq); - } + return o; +} - if (PA_SINK_IS_OPENED(state) || state == PA_SINK_INIT) { - pa_sink_suspend(sink, FALSE, PA_SUSPEND_IDLE); +/* Called from main context */ +static void output_free(struct output *o) { + pa_assert(o); - if (PA_SINK_IS_OPENED(pa_sink_get_state(sink))) - if (output_create_sink_input(o) < 0) - goto fail; - } + output_disable(o); - update_description(u); + pa_assert_se(pa_idxset_remove_by_data(o->userdata->outputs, o, NULL)); + update_description(o->userdata); - return o; + if (o->inq_rtpoll_item_read) + pa_rtpoll_item_free(o->inq_rtpoll_item_read); + if (o->inq_rtpoll_item_write) + pa_rtpoll_item_free(o->inq_rtpoll_item_write); -fail: + if (o->outq_rtpoll_item_read) + pa_rtpoll_item_free(o->outq_rtpoll_item_read); + if (o->outq_rtpoll_item_write) + pa_rtpoll_item_free(o->outq_rtpoll_item_write); - if (o) { - pa_idxset_remove_by_data(u->outputs, o, NULL); + if (o->inq) + pa_asyncmsgq_unref(o->inq); - if (o->sink_input) { - pa_sink_input_unlink(o->sink_input); - pa_sink_input_unref(o->sink_input); - } + if (o->outq) + pa_asyncmsgq_unref(o->outq); + + if (o->memblockq) + pa_memblockq_free(o->memblockq); + + pa_xfree(o); +} + +/* Called from main context */ +static void output_enable(struct output *o) { + pa_assert(o); + + if (o->sink_input) + return; + + /* This might cause the sink to be resumed. The state change hook + * of the sink might hence be called from here, which might then + * cause us to be called in a loop. Make sure that state changes + * for this output don't cause this loop by setting a flag here */ + o->ignore_state_change = TRUE; - if (o->memblockq) - pa_memblockq_free(o->memblockq); + if (output_create_sink_input(o) >= 0) { - if (o->inq) - pa_asyncmsgq_unref(o->inq); + if (pa_sink_get_state(o->sink) != PA_SINK_INIT) { - if (o->outq) - pa_asyncmsgq_unref(o->outq); + /* First we register the output. That means that the sink + * will start to pass data to this output. */ + pa_asyncmsgq_send(o->userdata->sink->asyncmsgq, PA_MSGOBJECT(o->userdata->sink), SINK_MESSAGE_ADD_OUTPUT, o, 0, NULL); - pa_xfree(o); + /* Then we enable the sink input. That means that the sink + * is now asked for new data. */ + pa_sink_input_put(o->sink_input); + + } else + /* Hmm the sink is not yet started, do things right here */ + output_add_within_thread(o); } - return NULL; + o->ignore_state_change = FALSE; } +/* Called from main context */ +static void output_disable(struct output *o) { + pa_assert(o); + + if (!o->sink_input) + return; + + /* First we disable the sink input. That means that the sink is + * not asked for new data anymore */ + pa_sink_input_unlink(o->sink_input); + + /* Then we unregister the output. That means that the sink doesn't + * pass any further data to this output */ + pa_asyncmsgq_send(o->userdata->sink->asyncmsgq, PA_MSGOBJECT(o->userdata->sink), SINK_MESSAGE_REMOVE_OUTPUT, o, 0, NULL); + + /* Now dellocate the stream */ + pa_sink_input_unref(o->sink_input); + o->sink_input = NULL; + + /* Finally, drop all queued data */ + pa_memblockq_flush_write(o->memblockq); + pa_asyncmsgq_flush(o->inq, FALSE); + pa_asyncmsgq_flush(o->outq, FALSE); +} + +/* Called from main context */ +static void output_verify(struct output *o) { + pa_assert(o); + + if (PA_SINK_IS_OPENED(pa_sink_get_state(o->userdata->sink))) + output_enable(o); + else + output_disable(o); +} + +/* Called from main context */ static pa_bool_t is_suitable_sink(struct userdata *u, pa_sink *s) { const char *t; pa_sink_assert_ref(s); + if (s == u->sink) + return FALSE; + if (!(s->flags & PA_SINK_HARDWARE)) return FALSE; - if (s == u->sink) + if (!(s->flags & PA_SINK_LATENCY)) return FALSE; if ((t = pa_proplist_gets(s->proplist, PA_PROP_DEVICE_CLASS))) - if (strcmp(t, "sound")) + if (!pa_streq(t, "sound")) return FALSE; return TRUE; } +/* Called from main context */ static pa_hook_result_t sink_put_hook_cb(pa_core *c, pa_sink *s, struct userdata* u) { struct output *o; @@ -936,18 +1032,17 @@ static pa_hook_result_t sink_put_hook_cb(pa_core *c, pa_sink *s, struct userdata return PA_HOOK_OK; pa_log_info("Configuring new sink: %s", s->name); - if (!(o = output_new(u, s))) { pa_log("Failed to create sink input on sink '%s'.", s->name); return PA_HOOK_OK; } - if (o->sink_input) - pa_sink_input_put(o->sink_input); + output_verify(o); return PA_HOOK_OK; } +/* Called from main context */ static struct output* find_output(struct userdata *u, pa_sink *s) { struct output *o; uint32_t idx; @@ -958,13 +1053,14 @@ static struct output* find_output(struct userdata *u, pa_sink *s) { if (u->sink == s) return NULL; - for (o = pa_idxset_first(u->outputs, &idx); o; o = pa_idxset_next(u->outputs, &idx)) + PA_IDXSET_FOREACH(o, u->outputs, idx) if (o->sink == s) return o; return NULL; } +/* Called from main context */ static pa_hook_result_t sink_unlink_hook_cb(pa_core *c, pa_sink *s, struct userdata* u) { struct output *o; @@ -976,26 +1072,25 @@ static pa_hook_result_t sink_unlink_hook_cb(pa_core *c, pa_sink *s, struct userd return PA_HOOK_OK; pa_log_info("Unconfiguring sink: %s", s->name); - output_free(o); return PA_HOOK_OK; } +/* Called from main context */ static pa_hook_result_t sink_state_changed_hook_cb(pa_core *c, pa_sink *s, struct userdata* u) { struct output *o; - pa_sink_state_t state; if (!(o = find_output(u, s))) return PA_HOOK_OK; - state = pa_sink_get_state(s); - - if (PA_SINK_IS_OPENED(state) && PA_SINK_IS_OPENED(pa_sink_get_state(u->sink)) && !o->sink_input) - enable_output(o); + /* This state change might be triggered because we are creating a + * stream here, in that case we don't want to create it a second + * time here and enter a loop */ + if (o->ignore_state_change) + return PA_HOOK_OK; - if (state == PA_SINK_SUSPENDED && o->sink_input) - disable_output(o); + output_verify(o); return PA_HOOK_OK; } @@ -1025,18 +1120,14 @@ int pa__init(pa_module*m) { } } - m->userdata = u = pa_xnew(struct userdata, 1); + m->userdata = u = pa_xnew0(struct userdata, 1); u->core = m->core; u->module = m; - u->sink = NULL; - u->time_event = NULL; u->adjust_time = DEFAULT_ADJUST_TIME; u->rtpoll = pa_rtpoll_new(); pa_thread_mq_init(&u->thread_mq, m->core->mainloop, u->rtpoll); - u->thread = NULL; u->resample_method = resample_method; u->outputs = pa_idxset_new(NULL, NULL); - memset(&u->adjust_timestamp, 0, sizeof(u->adjust_timestamp)); u->sink_put_slot = u->sink_unlink_slot = u->sink_state_changed_slot = NULL; PA_LLIST_HEAD_INIT(struct output, u->thread_info.active_outputs); pa_atomic_store(&u->thread_info.running, FALSE); @@ -1061,6 +1152,55 @@ int pa__init(pa_module*m) { ss = m->core->default_sample_spec; map = m->core->default_channel_map; + + /* Check the specified slave sinks for sample_spec and channel_map to use for the combined sink */ + if (!u->automatic) { + const char*split_state = NULL; + char *n = NULL; + pa_sample_spec slaves_spec; + pa_channel_map slaves_map; + pa_bool_t is_first_slave = TRUE; + + while ((n = pa_split(slaves, ",", &split_state))) { + pa_sink *slave_sink; + + if (!(slave_sink = pa_namereg_get(m->core, n, PA_NAMEREG_SINK))) { + pa_log("Invalid slave sink '%s'", n); + pa_xfree(n); + goto fail; + } + + pa_xfree(n); + + if (is_first_slave) { + slaves_spec = slave_sink->sample_spec; + slaves_map = slave_sink->channel_map; + is_first_slave = FALSE; + } else { + if (slaves_spec.format != slave_sink->sample_spec.format) + slaves_spec.format = PA_SAMPLE_INVALID; + + if (slaves_spec.rate < slave_sink->sample_spec.rate) + slaves_spec.rate = slave_sink->sample_spec.rate; + + if (!pa_channel_map_equal(&slaves_map, &slave_sink->channel_map)) + slaves_spec.channels = 0; + } + } + + if (!is_first_slave) { + if (slaves_spec.format != PA_SAMPLE_INVALID) + ss.format = slaves_spec.format; + + ss.rate = slaves_spec.rate; + + if (slaves_spec.channels > 0) { + map = slaves_map; + ss.channels = slaves_map.channels; + } + } + } + if ((pa_modargs_get_sample_spec_and_channel_map(ma, &ss, &map, PA_CHANNEL_MAP_DEFAULT) < 0)) { pa_log("Invalid sample specification."); goto fail; @@ -1073,7 +1213,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) @@ -1085,6 +1224,13 @@ 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); @@ -1138,7 +1284,7 @@ int pa__init(pa_module*m) { /* We're in automatic mode, we add every sink that matches our needs */ - for (s = pa_idxset_first(m->core->sinks, &idx); s; s = pa_idxset_next(m->core->sinks, &idx)) { + PA_IDXSET_FOREACH(s, m->core->sinks, idx) { if (!is_suitable_sink(u, s)) continue; @@ -1163,9 +1309,8 @@ int pa__init(pa_module*m) { /* Activate the sink and the sink inputs */ pa_sink_put(u->sink); - for (o = pa_idxset_first(u->outputs, &idx); o; o = pa_idxset_next(u->outputs, &idx)) - if (o->sink_input) - pa_sink_input_put(o->sink_input); + PA_IDXSET_FOREACH(o, u->outputs, idx) + output_verify(o); 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); @@ -1184,37 +1329,6 @@ fail: return -1; } -static void output_free(struct output *o) { - pa_assert(o); - - disable_output(o); - - pa_assert_se(pa_idxset_remove_by_data(o->userdata->outputs, o, NULL)); - - update_description(o->userdata); - - if (o->inq_rtpoll_item_read) - pa_rtpoll_item_free(o->inq_rtpoll_item_read); - if (o->inq_rtpoll_item_write) - pa_rtpoll_item_free(o->inq_rtpoll_item_write); - - if (o->outq_rtpoll_item_read) - pa_rtpoll_item_free(o->outq_rtpoll_item_read); - if (o->outq_rtpoll_item_write) - pa_rtpoll_item_free(o->outq_rtpoll_item_write); - - if (o->inq) - pa_asyncmsgq_unref(o->inq); - - if (o->outq) - pa_asyncmsgq_unref(o->outq); - - if (o->memblockq) - pa_memblockq_free(o->memblockq); - - pa_xfree(o); -} - void pa__done(pa_module*m) { struct userdata *u; struct output *o; diff --git a/src/modules/module-detect.c b/src/modules/module-detect.c index 18479df3..956fe4c5 100644 --- a/src/modules/module-detect.c +++ b/src/modules/module-detect.c @@ -119,7 +119,7 @@ static int detect_alsa(pa_core *c, int just_one) { } #endif -#ifdef HAVE_OSS +#ifdef HAVE_OSS_OUTPUT static int detect_oss(pa_core *c, int just_one) { FILE *f; int n = 0, b = 0; @@ -240,7 +240,7 @@ int pa__init(pa_module*m) { #ifdef HAVE_ALSA if ((n = detect_alsa(m->core, just_one)) <= 0) #endif -#ifdef HAVE_OSS +#ifdef HAVE_OSS_OUTPUT if ((n = detect_oss(m->core, just_one)) <= 0) #endif #ifdef HAVE_SOLARIS diff --git a/src/modules/module-hal-detect-compat.c b/src/modules/module-hal-detect-compat.c new file mode 100644 index 00000000..14cf8143 --- /dev/null +++ b/src/modules/module-hal-detect-compat.c @@ -0,0 +1,84 @@ +/*** + 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 +#endif + +#include + +#include +#include +#include +#include + +#include "module-hal-detect-symdef.h" + +PA_MODULE_AUTHOR("Lennart Poettering"); +PA_MODULE_DESCRIPTION("Compatibility module"); +PA_MODULE_VERSION(PACKAGE_VERSION); +PA_MODULE_LOAD_ONCE(TRUE); +PA_MODULE_DEPRECATED("Please use module-udev-detect instead of module-hal-detect!"); + +static const char* const valid_modargs[] = { + "api", + "tsched", + "subdevices", + NULL, +}; + +int pa__init(pa_module*m) { + pa_modargs *ma = NULL; + pa_bool_t tsched = TRUE; + pa_module *n; + char *t; + + 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, "tsched", &tsched) < 0) { + pa_log("tsched= expects boolean arguments"); + goto fail; + } + + pa_log_warn("We will now load module-udev-detect. Please make sure to remove module-hal-detect from your configuration."); + + t = pa_sprintf_malloc("tsched=%s", pa_yes_no(tsched)); + n = pa_module_load(m->core, "module-udev-detect", t); + pa_xfree(t); + + if (n) + pa_module_unload_request(m, TRUE); + + pa_modargs_free(ma); + + return n ? 0 : -1; + +fail: + if (ma) + pa_modargs_free(ma); + + return -1; +} diff --git a/src/modules/module-hal-detect.c b/src/modules/module-hal-detect.c index 658b3e55..ec370d61 100644 --- a/src/modules/module-hal-detect.c +++ b/src/modules/module-hal-detect.c @@ -55,14 +55,16 @@ PA_MODULE_AUTHOR("Shahms King"); PA_MODULE_DESCRIPTION("Detect available audio hardware and load matching drivers"); PA_MODULE_VERSION(PACKAGE_VERSION); PA_MODULE_LOAD_ONCE(TRUE); -#if defined(HAVE_ALSA) && defined(HAVE_OSS) +#if defined(HAVE_ALSA) && defined(HAVE_OSS_OUTPUT) PA_MODULE_USAGE("api= " - "tsched="); + "tsched=" + "subdevices="); #elif defined(HAVE_ALSA) PA_MODULE_USAGE("api= " "tsched="); -#elif defined(HAVE_OSS) -PA_MODULE_USAGE("api="); +#elif defined(HAVE_OSS_OUTPUT) +PA_MODULE_USAGE("api=" + "subdevices="); #endif PA_MODULE_DEPRECATED("Please use module-udev-detect instead of module-hal-detect!"); @@ -82,6 +84,9 @@ struct userdata { #ifdef HAVE_ALSA pa_bool_t use_tsched; #endif +#ifdef HAVE_OSS_OUTPUT + pa_bool_t init_subdevs; +#endif }; #define CAPABILITY_ALSA "alsa" @@ -91,6 +96,9 @@ static const char* const valid_modargs[] = { "api", #ifdef HAVE_ALSA "tsched", +#endif +#ifdef HAVE_OSS_OUTPUT + "subdevices", #endif NULL }; @@ -262,9 +270,9 @@ fail: #endif -#ifdef HAVE_OSS +#ifdef HAVE_OSS_OUTPUT -static pa_bool_t hal_oss_device_is_pcm(LibHalContext *context, const char *udi) { +static pa_bool_t hal_oss_device_is_pcm(LibHalContext *context, const char *udi, pa_bool_t init_subdevices) { char *class = NULL, *dev = NULL, *e; int device; pa_bool_t r = FALSE; @@ -294,7 +302,7 @@ static pa_bool_t hal_oss_device_is_pcm(LibHalContext *context, const char *udi) /* We only care for the main device */ device = libhal_device_get_property_int(context, udi, "oss.device", &error); - if (dbus_error_is_set(&error) || device != 0) + if (dbus_error_is_set(&error) || (device != 0 && init_subdevices == FALSE)) goto finish; r = TRUE; @@ -324,7 +332,7 @@ static int hal_device_load_oss(struct userdata *u, const char *udi, struct devic pa_assert(d); /* We only care for OSS PCM devices */ - if (!hal_oss_device_is_pcm(u->context, udi)) + if (!hal_oss_device_is_pcm(u->context, udi, u->init_subdevs)) goto fail; /* We store only one entry per card, hence we look for the originating device */ @@ -394,7 +402,7 @@ static struct device* hal_device_add(struct userdata *u, const char *udi) { if (pa_streq(u->capability, CAPABILITY_ALSA)) r = hal_device_load_alsa(u, udi, d); #endif -#ifdef HAVE_OSS +#ifdef HAVE_OSS_OUTPUT if (pa_streq(u->capability, CAPABILITY_OSS)) r = hal_device_load_oss(u, udi, d); #endif @@ -753,7 +761,7 @@ int pa__init(pa_module*m) { api = pa_modargs_get_value(ma, "api", "oss"); #endif -#ifdef HAVE_OSS +#ifdef HAVE_OSS_OUTPUT if (pa_streq(api, "oss")) u->capability = CAPABILITY_OSS; #endif @@ -763,6 +771,13 @@ int pa__init(pa_module*m) { goto fail; } +#ifdef HAVE_OSS_OUTPUT + if (pa_modargs_get_value_boolean(ma, "subdevices", &u->init_subdevs) < 0) { + pa_log("Failed to parse subdevices= argument."); + goto fail; + } +#endif + if (!(u->connection = pa_dbus_bus_get(m->core, DBUS_BUS_SYSTEM, &error)) || dbus_error_is_set(&error)) { pa_log_error("Unable to contact DBUS system bus: %s: %s", error.name, error.message); goto fail; diff --git a/src/modules/module-intended-roles.c b/src/modules/module-intended-roles.c index c697209a..b9924dfd 100644 --- a/src/modules/module-intended-roles.c +++ b/src/modules/module-intended-roles.c @@ -127,6 +127,9 @@ static pa_hook_result_t sink_input_new_hook_callback(pa_core *c, pa_sink_input_n if (s == def) continue; + if (!PA_SINK_IS_LINKED(pa_sink_get_state(s))) + continue; + if (role_match(s->proplist, role)) { new_data->sink = s; new_data->save_sink = FALSE; @@ -173,6 +176,9 @@ static pa_hook_result_t source_output_new_hook_callback(pa_core *c, pa_source_ou if (s == def) continue; + if (!PA_SOURCE_IS_LINKED(pa_source_get_state(s))) + continue; + if (role_match(s->proplist, role)) { new_data->source = s; new_data->save_source = FALSE; @@ -201,6 +207,17 @@ static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, struct if (si->save_sink) continue; + /* Skip this if it is already in the process of being moved + * anyway */ + if (!si->sink) + continue; + + /* It might happen that a stream and a sink are set up at the + same time, in which case we want to make sure we don't + interfere with that */ + if (!PA_SINK_INPUT_IS_LINKED(pa_sink_input_get_state(si))) + continue; + if (!(role = pa_proplist_gets(si->proplist, PA_PROP_MEDIA_ROLE))) continue; @@ -237,6 +254,17 @@ static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source, if (so->direct_on_input) continue; + /* Skip this if it is already in the process of being moved + * anyway */ + if (!so->source) + continue; + + /* It might happen that a stream and a source are set up at the + same time, in which case we want to make sure we don't + interfere with that */ + if (!PA_SOURCE_OUTPUT_IS_LINKED(pa_source_output_get_state(so))) + continue; + if (!(role = pa_proplist_gets(so->proplist, PA_PROP_MEDIA_ROLE))) continue; @@ -275,24 +303,28 @@ static pa_hook_result_t sink_unlink_hook_callback(pa_core *c, pa_sink *sink, str uint32_t jdx; pa_sink *d; + if (!si->sink) + continue; + 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; - } + if (def != sink && role_match(def->proplist, role)) + if (pa_sink_input_move_to(si, def, FALSE) >= 0) + 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; - } + if (!PA_SINK_IS_LINKED(pa_sink_get_state(d))) + continue; + + if (role_match(d->proplist, role)) + if (pa_sink_input_move_to(si, d, FALSE) >= 0) + break; } } @@ -325,6 +357,9 @@ static pa_hook_result_t source_unlink_hook_callback(pa_core *c, pa_source *sourc if (so->direct_on_input) continue; + if (!so->source) + continue; + if (!(role = pa_proplist_gets(so->proplist, PA_PROP_MEDIA_ROLE))) continue; @@ -339,6 +374,9 @@ static pa_hook_result_t source_unlink_hook_callback(pa_core *c, pa_source *sourc if (d == def || d == source) continue; + if (!PA_SOURCE_IS_LINKED(pa_source_get_state(d))) + continue; + if (role_match(d->proplist, role) && !source->monitor_of == !d->monitor_of) { pa_source_output_move_to(so, d, FALSE); break; diff --git a/src/modules/module-ladspa-sink.c b/src/modules/module-ladspa-sink.c index 21f4a8f1..f2d53d00 100644 --- a/src/modules/module-ladspa-sink.c +++ b/src/modules/module-ladspa-sink.c @@ -64,10 +64,9 @@ PA_MODULE_USAGE( #define MEMBLOCKQ_MAXLENGTH (16*1024*1024) struct userdata { - pa_core *core; pa_module *module; - pa_sink *sink, *master; + pa_sink *sink; pa_sink_input *sink_input; const LADSPA_Descriptor *descriptor; @@ -105,19 +104,26 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse switch (code) { - case PA_SINK_MESSAGE_GET_LATENCY: { - pa_usec_t usec = 0; + case PA_SINK_MESSAGE_GET_LATENCY: - /* Get the latency of the master sink */ - if (PA_MSGOBJECT(u->master)->process_msg(PA_MSGOBJECT(u->master), PA_SINK_MESSAGE_GET_LATENCY, &usec, 0, NULL) < 0) - usec = 0; + /* The sink is _put() before the sink input is, so let's + * make sure we don't access it in that time. Also, the + * sink input is first shut down, the sink second. */ + if (!PA_SINK_IS_LINKED(u->sink->thread_info.state) || + !PA_SINK_INPUT_IS_LINKED(u->sink_input->thread_info.state)) { + *((pa_usec_t*) data) = 0; + return 0; + } + + *((pa_usec_t*) data) = - /* Add the latency internal to our sink input on top */ - usec += pa_bytes_to_usec(pa_memblockq_get_length(u->sink_input->thread_info.render_memblockq), &u->master->sample_spec); + /* Get the latency of the master sink */ + pa_sink_get_latency_within_thread(u->sink_input->sink) + + + /* Add the latency internal to our sink input on top */ + pa_bytes_to_usec(pa_memblockq_get_length(u->sink_input->thread_info.render_memblockq), &u->sink_input->sink->sample_spec); - *((pa_usec_t*) data) = usec; return 0; - } } return pa_sink_process_msg(o, code, data, offset, chunk); @@ -130,12 +136,11 @@ static int sink_set_state(pa_sink *s, pa_sink_state_t state) { pa_sink_assert_ref(s); pa_assert_se(u = s->userdata); - if (PA_SINK_IS_LINKED(state) && - u->sink_input && - PA_SINK_INPUT_IS_LINKED(pa_sink_input_get_state(u->sink_input))) - - pa_sink_input_cork(u->sink_input, state == PA_SINK_SUSPENDED); + if (!PA_SINK_IS_LINKED(state) || + !PA_SINK_INPUT_IS_LINKED(pa_sink_input_get_state(u->sink_input))) + return 0; + pa_sink_input_cork(u->sink_input, state == PA_SINK_SUSPENDED); return 0; } @@ -146,6 +151,10 @@ static void sink_request_rewind(pa_sink *s) { pa_sink_assert_ref(s); pa_assert_se(u = s->userdata); + if (!PA_SINK_IS_LINKED(u->sink->thread_info.state) || + !PA_SINK_INPUT_IS_LINKED(u->sink_input->thread_info.state)) + return; + /* Just hand this one over to the master sink */ pa_sink_input_request_rewind(u->sink_input, s->thread_info.rewind_nbytes + pa_memblockq_get_length(u->memblockq), TRUE, FALSE, FALSE); } @@ -157,6 +166,10 @@ static void sink_update_requested_latency(pa_sink *s) { pa_sink_assert_ref(s); pa_assert_se(u = s->userdata); + if (!PA_SINK_IS_LINKED(u->sink->thread_info.state) || + !PA_SINK_INPUT_IS_LINKED(u->sink_input->thread_info.state)) + return; + /* Just hand this one over to the master sink */ pa_sink_input_set_requested_latency_within_thread( u->sink_input, @@ -175,8 +188,8 @@ static int sink_input_pop_cb(pa_sink_input *i, size_t nbytes, pa_memchunk *chunk pa_assert(chunk); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_OPENED(u->sink->thread_info.state)) - return -1; + /* Hmm, process any rewind request that might be queued up */ + pa_sink_process_rewind(u->sink, 0); while (pa_memblockq_peek(u->memblockq, &tchunk) < 0) { pa_memchunk nchunk; @@ -225,9 +238,6 @@ static void sink_input_process_rewind_cb(pa_sink_input *i, size_t nbytes) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_OPENED(u->sink->thread_info.state)) - return; - if (u->sink->thread_info.rewind_nbytes > 0) { size_t max_rewrite; @@ -263,9 +273,6 @@ static void sink_input_update_max_rewind_cb(pa_sink_input *i, size_t nbytes) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state)) - return; - pa_memblockq_set_maxrewind(u->memblockq, nbytes); pa_sink_set_max_rewind_within_thread(u->sink, nbytes); } @@ -277,9 +284,6 @@ static void sink_input_update_max_request_cb(pa_sink_input *i, size_t nbytes) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state)) - return; - pa_sink_set_max_request_within_thread(u->sink, nbytes); } @@ -290,24 +294,28 @@ static void sink_input_update_sink_latency_range_cb(pa_sink_input *i) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state)) - return; - pa_sink_set_latency_range_within_thread(u->sink, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency); } /* Called from I/O thread context */ -static void sink_input_detach_cb(pa_sink_input *i) { +static void sink_input_update_sink_fixed_latency_cb(pa_sink_input *i) { struct userdata *u; pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state)) - return; + pa_sink_set_fixed_latency_within_thread(u->sink, i->sink->thread_info.fixed_latency); +} + +/* Called from I/O thread context */ +static void sink_input_detach_cb(pa_sink_input *i) { + struct userdata *u; + + pa_sink_input_assert_ref(i); + pa_assert_se(u = i->userdata); pa_sink_detach_within_thread(u->sink); - pa_sink_set_asyncmsgq(u->sink, NULL); + pa_sink_set_rtpoll(u->sink, NULL); } @@ -318,14 +326,13 @@ static void sink_input_attach_cb(pa_sink_input *i) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state)) - return; + pa_sink_set_rtpoll(u->sink, i->sink->thread_info.rtpoll); + pa_sink_set_latency_range_within_thread(u->sink, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency); + pa_sink_set_fixed_latency_within_thread(u->sink, i->sink->thread_info.fixed_latency); + pa_sink_set_max_request_within_thread(u->sink, pa_sink_input_get_max_request(i)); + pa_sink_set_max_rewind_within_thread(u->sink, pa_sink_input_get_max_rewind(i)); - pa_sink_set_asyncmsgq(u->sink, i->sink->asyncmsgq); - pa_sink_set_rtpoll(u->sink, i->sink->rtpoll); pa_sink_attach_within_thread(u->sink); - - pa_sink_set_latency_range_within_thread(u->sink, u->master->thread_info.min_latency, u->master->thread_info.max_latency); } /* Called from main context */ @@ -335,14 +342,18 @@ static void sink_input_kill_cb(pa_sink_input *i) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - pa_sink_unlink(u->sink); + /* The order here matters! We first kill the sink input, followed + * by the sink. That means the sink callbacks must be protected + * against an unconnected sink input! */ pa_sink_input_unlink(u->sink_input); + pa_sink_unlink(u->sink); - pa_sink_unref(u->sink); - u->sink = NULL; pa_sink_input_unref(u->sink_input); u->sink_input = NULL; + pa_sink_unref(u->sink); + u->sink = NULL; + pa_module_unload_request(u->module, TRUE); } @@ -372,6 +383,17 @@ static pa_bool_t sink_input_may_move_to_cb(pa_sink_input *i, pa_sink *dest) { return u->sink != dest; } +/* Called from main context */ +static void sink_input_moving_cb(pa_sink_input *i, pa_sink *dest) { + struct userdata *u; + + pa_sink_input_assert_ref(i); + pa_assert_se(u = i->userdata); + + pa_sink_set_asyncmsgq(u->sink, dest->asyncmsgq); + pa_sink_update_flags(u->sink, PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY, dest->flags); +} + int pa__init(pa_module*m) { struct userdata *u; pa_sample_spec ss; @@ -392,7 +414,7 @@ int pa__init(pa_module*m) { pa_assert(m); - pa_assert(sizeof(LADSPA_Data) == sizeof(float)); + pa_assert_cc(sizeof(LADSPA_Data) == sizeof(float)); if (!(ma = pa_modargs_new(m->argument, valid_modargs))) { pa_log("Failed to parse module arguments."); @@ -425,12 +447,8 @@ int pa__init(pa_module*m) { cdata = pa_modargs_get_value(ma, "control", NULL); u = pa_xnew0(struct userdata, 1); - u->core = m->core; u->module = m; m->userdata = u; - u->master = master; - u->sink = NULL; - u->sink_input = NULL; u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, NULL); if (!(e = getenv("LADSPA_PATH"))) @@ -694,11 +712,10 @@ int pa__init(pa_module*m) { sink_data.module = m; if (!(sink_data.name = pa_xstrdup(pa_modargs_get_value(ma, "sink_name", NULL)))) sink_data.name = pa_sprintf_malloc("%s.ladspa", master->name); - sink_data.namereg_fail = FALSE; pa_sink_new_data_set_sample_spec(&sink_data, &ss); pa_sink_new_data_set_channel_map(&sink_data, &map); z = pa_proplist_gets(master->proplist, PA_PROP_DEVICE_DESCRIPTION); - pa_proplist_setf(sink_data.proplist, PA_PROP_DEVICE_DESCRIPTION, "LADSPA Plugin %s on %s", label, z ? z : master->name); + pa_proplist_setf(sink_data.proplist, PA_PROP_DEVICE_DESCRIPTION, "LADSPA Plugin %s on %s", d->Name, z ? z : master->name); pa_proplist_sets(sink_data.proplist, PA_PROP_DEVICE_MASTER_DEVICE, master->name); pa_proplist_sets(sink_data.proplist, PA_PROP_DEVICE_CLASS, "filter"); pa_proplist_sets(sink_data.proplist, "device.ladspa.module", plugin); @@ -714,7 +731,7 @@ int pa__init(pa_module*m) { goto fail; } - u->sink = pa_sink_new(m->core, &sink_data, PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY); + u->sink = pa_sink_new(m->core, &sink_data, master->flags & (PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY)); pa_sink_new_data_done(&sink_data); if (!u->sink) { @@ -729,19 +746,18 @@ int pa__init(pa_module*m) { u->sink->userdata = u; pa_sink_set_asyncmsgq(u->sink, master->asyncmsgq); - pa_sink_set_rtpoll(u->sink, master->rtpoll); /* Create sink input */ pa_sink_input_new_data_init(&sink_input_data); sink_input_data.driver = __FILE__; sink_input_data.module = m; - sink_input_data.sink = u->master; + sink_input_data.sink = master; pa_proplist_sets(sink_input_data.proplist, PA_PROP_MEDIA_NAME, "LADSPA Stream"); pa_proplist_sets(sink_input_data.proplist, PA_PROP_MEDIA_ROLE, "filter"); pa_sink_input_new_data_set_sample_spec(&sink_input_data, &ss); pa_sink_input_new_data_set_channel_map(&sink_input_data, &map); - pa_sink_input_new(&u->sink_input, m->core, &sink_input_data, PA_SINK_INPUT_DONT_MOVE); + pa_sink_input_new(&u->sink_input, m->core, &sink_input_data, 0); pa_sink_input_new_data_done(&sink_input_data); if (!u->sink_input) @@ -752,11 +768,13 @@ int pa__init(pa_module*m) { u->sink_input->update_max_rewind = sink_input_update_max_rewind_cb; u->sink_input->update_max_request = sink_input_update_max_request_cb; u->sink_input->update_sink_latency_range = sink_input_update_sink_latency_range_cb; + u->sink_input->update_sink_fixed_latency = sink_input_update_sink_fixed_latency_cb; u->sink_input->kill = sink_input_kill_cb; u->sink_input->attach = sink_input_attach_cb; u->sink_input->detach = sink_input_detach_cb; u->sink_input->state_change = sink_input_state_change_cb; u->sink_input->may_move_to = sink_input_may_move_to_cb; + u->sink_input->moving = sink_input_moving_cb; u->sink_input->userdata = u; pa_sink_put(u->sink); @@ -797,15 +815,20 @@ void pa__done(pa_module*m) { if (!(u = m->userdata)) return; - if (u->sink) { - pa_sink_unlink(u->sink); - pa_sink_unref(u->sink); - } + /* See comments in sink_input_kill_cb() above regarding + * destruction order! */ - if (u->sink_input) { + if (u->sink_input) pa_sink_input_unlink(u->sink_input); + + if (u->sink) + pa_sink_unlink(u->sink); + + if (u->sink_input) pa_sink_input_unref(u->sink_input); - } + + if (u->sink) + pa_sink_unref(u->sink); for (c = 0; c < u->channels; c++) if (u->handle[c]) { diff --git a/src/modules/module-pipe-sink.c b/src/modules/module-pipe-sink.c index 8a7dc846..9c169327 100644 --- a/src/modules/module-pipe-sink.c +++ b/src/modules/module-pipe-sink.c @@ -122,7 +122,7 @@ static int process_render(struct userdata *u) { pa_assert(u); if (u->memchunk.length <= 0) - pa_sink_render(u->sink, PIPE_BUF, &u->memchunk); + pa_sink_render(u->sink, pa_pipe_buf(u->fd), &u->memchunk); pa_assert(u->memchunk.length > 0); @@ -299,8 +299,8 @@ int pa__init(pa_module*m) { pa_sink_set_asyncmsgq(u->sink, u->thread_mq.inq); pa_sink_set_rtpoll(u->sink, u->rtpoll); - pa_sink_set_max_request(u->sink, PIPE_BUF); - pa_sink_set_fixed_latency(u->sink, pa_bytes_to_usec(PIPE_BUF, &u->sink->sample_spec)); + pa_sink_set_max_request(u->sink, pa_pipe_buf(u->fd)); + pa_sink_set_fixed_latency(u->sink, pa_bytes_to_usec(pa_pipe_buf(u->fd), &u->sink->sample_spec)); u->rtpoll_item = pa_rtpoll_item_new(u->rtpoll, PA_RTPOLL_NEVER, 1); pollfd = pa_rtpoll_item_get_pollfd(u->rtpoll_item, NULL); diff --git a/src/modules/module-pipe-source.c b/src/modules/module-pipe-source.c index e5609fb5..49104f8d 100644 --- a/src/modules/module-pipe-source.c +++ b/src/modules/module-pipe-source.c @@ -142,7 +142,7 @@ static void thread_func(void *userdata) { void *p; if (!u->memchunk.memblock) { - u->memchunk.memblock = pa_memblock_new(u->core->mempool, PIPE_BUF); + u->memchunk.memblock = pa_memblock_new(u->core->mempool, pa_pipe_buf(u->fd)); u->memchunk.index = u->memchunk.length = 0; } diff --git a/src/modules/module-remap-sink.c b/src/modules/module-remap-sink.c index 119f5b9f..0b4fdc9b 100644 --- a/src/modules/module-remap-sink.c +++ b/src/modules/module-remap-sink.c @@ -1,7 +1,7 @@ /*** This file is part of PulseAudio. - Copyright 2004-2008 Lennart Poettering + 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 @@ -48,16 +48,15 @@ PA_MODULE_USAGE( "master= " "master_channel_map= " "format= " - "channels= " "rate= " + "channels= " "channel_map= " "remix="); struct userdata { - pa_core *core; pa_module *module; - pa_sink *sink, *master; + pa_sink *sink; pa_sink_input *sink_input; }; @@ -80,19 +79,24 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse switch (code) { - case PA_SINK_MESSAGE_GET_LATENCY: { - pa_usec_t usec = 0; + case PA_SINK_MESSAGE_GET_LATENCY: - /* Get the latency of the master sink */ - if (PA_MSGOBJECT(u->master)->process_msg(PA_MSGOBJECT(u->master), PA_SINK_MESSAGE_GET_LATENCY, &usec, 0, NULL) < 0) - usec = 0; + /* The sink is _put() before the sink input is, so let's + * make sure we don't access it yet */ + if (!PA_SINK_IS_LINKED(u->sink->thread_info.state) || + !PA_SINK_INPUT_IS_LINKED(u->sink_input->thread_info.state)) { + *((pa_usec_t*) data) = 0; + return 0; + } - /* Add the latency internal to our sink input on top */ - usec += pa_bytes_to_usec(pa_memblockq_get_length(u->sink_input->thread_info.render_memblockq), &u->master->sample_spec); + *((pa_usec_t*) data) = + /* Get the latency of the master sink */ + pa_sink_get_latency_within_thread(u->sink_input->sink) + + + /* Add the latency internal to our sink input on top */ + pa_bytes_to_usec(pa_memblockq_get_length(u->sink_input->thread_info.render_memblockq), &u->sink_input->sink->sample_spec); - *((pa_usec_t*) data) = usec; return 0; - } } return pa_sink_process_msg(o, code, data, offset, chunk); @@ -105,12 +109,11 @@ static int sink_set_state(pa_sink *s, pa_sink_state_t state) { pa_sink_assert_ref(s); pa_assert_se(u = s->userdata); - if (PA_SINK_IS_LINKED(state) && - u->sink_input && - PA_SINK_INPUT_IS_LINKED(pa_sink_input_get_state(u->sink_input))) - - pa_sink_input_cork(u->sink_input, state == PA_SINK_SUSPENDED); + if (!PA_SINK_IS_LINKED(state) || + !PA_SINK_INPUT_IS_LINKED(pa_sink_input_get_state(u->sink_input))) + return 0; + pa_sink_input_cork(u->sink_input, state == PA_SINK_SUSPENDED); return 0; } @@ -121,6 +124,10 @@ static void sink_request_rewind(pa_sink *s) { pa_sink_assert_ref(s); pa_assert_se(u = s->userdata); + if (!PA_SINK_IS_LINKED(u->sink->thread_info.state) || + !PA_SINK_INPUT_IS_LINKED(u->sink_input->thread_info.state)) + return; + pa_sink_input_request_rewind(u->sink_input, s->thread_info.rewind_nbytes, TRUE, FALSE, FALSE); } @@ -131,6 +138,10 @@ static void sink_update_requested_latency(pa_sink *s) { pa_sink_assert_ref(s); pa_assert_se(u = s->userdata); + if (!PA_SINK_IS_LINKED(u->sink->thread_info.state) || + !PA_SINK_INPUT_IS_LINKED(u->sink_input->thread_info.state)) + return; + /* Just hand this one over to the master sink */ pa_sink_input_set_requested_latency_within_thread( u->sink_input, @@ -145,8 +156,8 @@ static int sink_input_pop_cb(pa_sink_input *i, size_t nbytes, pa_memchunk *chunk pa_assert(chunk); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_OPENED(u->sink->thread_info.state)) - return -1; + /* Hmm, process any rewind request that might be queued up */ + pa_sink_process_rewind(u->sink, 0); pa_sink_render(u->sink, nbytes, chunk); return 0; @@ -160,9 +171,6 @@ static void sink_input_process_rewind_cb(pa_sink_input *i, size_t nbytes) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_OPENED(u->sink->thread_info.state)) - return; - if (u->sink->thread_info.rewind_nbytes > 0) { amount = PA_MIN(u->sink->thread_info.rewind_nbytes, nbytes); u->sink->thread_info.rewind_nbytes = 0; @@ -178,9 +186,6 @@ static void sink_input_update_max_rewind_cb(pa_sink_input *i, size_t nbytes) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state)) - return; - pa_sink_set_max_rewind_within_thread(u->sink, nbytes); } @@ -191,9 +196,6 @@ static void sink_input_update_max_request_cb(pa_sink_input *i, size_t nbytes) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state)) - return; - pa_sink_set_max_request_within_thread(u->sink, nbytes); } @@ -204,24 +206,28 @@ static void sink_input_update_sink_latency_range_cb(pa_sink_input *i) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state)) - return; - pa_sink_set_latency_range_within_thread(u->sink, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency); } /* Called from I/O thread context */ -static void sink_input_detach_cb(pa_sink_input *i) { +static void sink_input_update_sink_fixed_latency_cb(pa_sink_input *i) { struct userdata *u; pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state)) - return; + pa_sink_set_fixed_latency_within_thread(u->sink, i->sink->thread_info.fixed_latency); +} + +/* Called from I/O thread context */ +static void sink_input_detach_cb(pa_sink_input *i) { + struct userdata *u; + + pa_sink_input_assert_ref(i); + pa_assert_se(u = i->userdata); pa_sink_detach_within_thread(u->sink); - pa_sink_set_asyncmsgq(u->sink, NULL); + pa_sink_set_rtpoll(u->sink, NULL); } @@ -232,14 +238,13 @@ static void sink_input_attach_cb(pa_sink_input *i) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state)) - return; + pa_sink_set_rtpoll(u->sink, i->sink->thread_info.rtpoll); + pa_sink_set_latency_range_within_thread(u->sink, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency); + pa_sink_set_fixed_latency_within_thread(u->sink, i->sink->thread_info.fixed_latency); + pa_sink_set_max_request_within_thread(u->sink, pa_sink_input_get_max_request(i)); + pa_sink_set_max_rewind_within_thread(u->sink, pa_sink_input_get_max_rewind(i)); - pa_sink_set_asyncmsgq(u->sink, i->sink->asyncmsgq); - pa_sink_set_rtpoll(u->sink, i->sink->rtpoll); pa_sink_attach_within_thread(u->sink); - - pa_sink_set_latency_range_within_thread(u->sink, u->master->thread_info.min_latency, u->master->thread_info.max_latency); } /* Called from main context */ @@ -249,14 +254,18 @@ static void sink_input_kill_cb(pa_sink_input *i) { pa_sink_input_assert_ref(i); pa_assert_se(u = i->userdata); - pa_sink_unlink(u->sink); + /* The order here matters! We first kill the sink input, followed + * by the sink. That means the sink callbacks must be protected + * against an unconnected sink input! */ pa_sink_input_unlink(u->sink_input); + pa_sink_unlink(u->sink); - pa_sink_unref(u->sink); - u->sink = NULL; pa_sink_input_unref(u->sink_input); u->sink_input = NULL; + pa_sink_unref(u->sink); + u->sink = NULL; + pa_module_unload_request(u->module, TRUE); } @@ -286,6 +295,17 @@ static pa_bool_t sink_input_may_move_to_cb(pa_sink_input *i, pa_sink *dest) { return u->sink != dest; } +/* Called from main context */ +static void sink_input_moving_cb(pa_sink_input *i, pa_sink *dest) { + struct userdata *u; + + pa_sink_input_assert_ref(i); + pa_assert_se(u = i->userdata); + + pa_sink_set_asyncmsgq(u->sink, dest->asyncmsgq); + pa_sink_update_flags(u->sink, PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY, dest->flags); +} + int pa__init(pa_module*m) { struct userdata *u; pa_sample_spec ss; @@ -336,12 +356,8 @@ int pa__init(pa_module*m) { } u = pa_xnew0(struct userdata, 1); - u->core = m->core; u->module = m; m->userdata = u; - u->master = master; - u->sink = NULL; - u->sink_input = NULL; /* Create sink */ pa_sink_new_data_init(&sink_data); @@ -362,7 +378,7 @@ int pa__init(pa_module*m) { goto fail; } - u->sink = pa_sink_new(m->core, &sink_data, PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY); + u->sink = pa_sink_new(m->core, &sink_data, master->flags & (PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY)); pa_sink_new_data_done(&sink_data); if (!u->sink) { @@ -377,19 +393,18 @@ int pa__init(pa_module*m) { u->sink->userdata = u; pa_sink_set_asyncmsgq(u->sink, master->asyncmsgq); - pa_sink_set_rtpoll(u->sink, master->rtpoll); /* Create sink input */ pa_sink_input_new_data_init(&sink_input_data); sink_input_data.driver = __FILE__; sink_input_data.module = m; - sink_input_data.sink = u->master; + sink_input_data.sink = master; pa_proplist_sets(sink_input_data.proplist, PA_PROP_MEDIA_NAME, "Remapped Stream"); pa_proplist_sets(sink_input_data.proplist, PA_PROP_MEDIA_ROLE, "filter"); pa_sink_input_new_data_set_sample_spec(&sink_input_data, &ss); pa_sink_input_new_data_set_channel_map(&sink_input_data, &stream_map); - pa_sink_input_new(&u->sink_input, m->core, &sink_input_data, PA_SINK_INPUT_DONT_MOVE | (remix ? 0 : PA_SINK_INPUT_NO_REMIX)); + pa_sink_input_new(&u->sink_input, m->core, &sink_input_data, (remix ? 0 : PA_SINK_INPUT_NO_REMIX)); pa_sink_input_new_data_done(&sink_input_data); if (!u->sink_input) @@ -400,11 +415,13 @@ int pa__init(pa_module*m) { u->sink_input->update_max_rewind = sink_input_update_max_rewind_cb; u->sink_input->update_max_request = sink_input_update_max_request_cb; u->sink_input->update_sink_latency_range = sink_input_update_sink_latency_range_cb; + u->sink_input->update_sink_fixed_latency = sink_input_update_sink_fixed_latency_cb; u->sink_input->attach = sink_input_attach_cb; u->sink_input->detach = sink_input_detach_cb; u->sink_input->kill = sink_input_kill_cb; u->sink_input->state_change = sink_input_state_change_cb; u->sink_input->may_move_to = sink_input_may_move_to_cb; + u->sink_input->moving = sink_input_moving_cb; u->sink_input->userdata = u; pa_sink_put(u->sink); @@ -440,15 +457,20 @@ void pa__done(pa_module*m) { if (!(u = m->userdata)) return; - if (u->sink) { - pa_sink_unlink(u->sink); - pa_sink_unref(u->sink); - } + /* See comments in sink_input_kill_cb() above regarding + * destruction order! */ - if (u->sink_input) { + if (u->sink_input) pa_sink_input_unlink(u->sink_input); + + if (u->sink) + pa_sink_unlink(u->sink); + + if (u->sink_input) pa_sink_input_unref(u->sink_input); - } + + if (u->sink) + pa_sink_unref(u->sink); pa_xfree(u); } diff --git a/src/modules/module-rescue-streams.c b/src/modules/module-rescue-streams.c index c23feceb..722d84b2 100644 --- a/src/modules/module-rescue-streams.c +++ b/src/modules/module-rescue-streams.c @@ -45,13 +45,46 @@ static const char* const valid_modargs[] = { }; struct userdata { - pa_hook_slot *sink_slot, *source_slot; + pa_hook_slot + *sink_unlink_slot, + *source_unlink_slot, + *sink_input_move_fail_slot, + *source_output_move_fail_slot; }; -static pa_hook_result_t sink_hook_callback(pa_core *c, pa_sink *sink, void* userdata) { +static pa_sink* find_evacuation_sink(pa_core *c, pa_sink_input *i, pa_sink *skip) { + pa_sink *target, *def; + uint32_t idx; + + pa_assert(c); + pa_assert(i); + + def = pa_namereg_get_default_sink(c); + + if (def && def != skip && pa_sink_input_may_move_to(i, def)) + return def; + + PA_IDXSET_FOREACH(target, c->sinks, idx) { + if (target == def) + continue; + + if (target == skip) + continue; + + if (!PA_SINK_IS_LINKED(pa_sink_get_state(target))) + continue; + + if (pa_sink_input_may_move_to(i, target)) + return target; + } + + pa_log_debug("No evacuation sink found."); + return NULL; +} + +static pa_hook_result_t sink_unlink_hook_callback(pa_core *c, pa_sink *sink, void* userdata) { pa_sink_input *i; uint32_t idx; - pa_sink *target; pa_assert(c); pa_assert(sink); @@ -65,21 +98,12 @@ 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_default_sink(c)) || target == sink) { - - PA_IDXSET_FOREACH(target, c->sinks, idx) - if (target != sink) - break; - - if (!target) { - pa_log_debug("No evacuation sink found."); - return PA_HOOK_OK; - } - } + PA_IDXSET_FOREACH(i, sink->inputs, idx) { + pa_sink *target; - pa_assert(target != sink); + if (!(target = find_evacuation_sink(c, i, sink))) + continue; - PA_IDXSET_FOREACH(i, sink->inputs, idx) { if (pa_sink_input_move_to(i, target, FALSE) < 0) pa_log_info("Failed to move sink input %u \"%s\" to %s.", i->index, pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_APPLICATION_NAME)), target->name); @@ -91,9 +115,66 @@ static pa_hook_result_t sink_hook_callback(pa_core *c, pa_sink *sink, void* user return PA_HOOK_OK; } -static pa_hook_result_t source_hook_callback(pa_core *c, pa_source *source, void* userdata) { +static pa_hook_result_t sink_input_move_fail_hook_callback(pa_core *c, pa_sink_input *i, void *userdata) { + pa_sink *target; + + pa_assert(c); + pa_assert(i); + + /* 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 (!(target = find_evacuation_sink(c, i, NULL))) + return PA_HOOK_OK; + + if (pa_sink_input_finish_move(i, target, FALSE) < 0) { + pa_log_info("Failed to move sink input %u \"%s\" to %s.", i->index, + pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_APPLICATION_NAME)), target->name); + return PA_HOOK_OK; + + } else { + pa_log_info("Sucessfully moved sink input %u \"%s\" to %s.", i->index, + pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_APPLICATION_NAME)), target->name); + return PA_HOOK_STOP; + } +} + +static pa_source* find_evacuation_source(pa_core *c, pa_source_output *o, pa_source *skip) { + pa_source *target, *def; + uint32_t idx; + + pa_assert(c); + pa_assert(o); + + def = pa_namereg_get_default_source(c); + + if (def && def != skip && pa_source_output_may_move_to(o, def)) + return def; + + PA_IDXSET_FOREACH(target, c->sources, idx) { + if (target == def) + continue; + + if (target == skip) + continue; + + if (!target->monitor_of != !skip->monitor_of) + continue; + + if (!PA_SOURCE_IS_LINKED(pa_source_get_state(target))) + continue; + + if (pa_source_output_may_move_to(o, target)) + return target; + } + + pa_log_debug("No evacuation source found."); + return NULL; +} + +static pa_hook_result_t source_unlink_hook_callback(pa_core *c, pa_source *source, void* userdata) { pa_source_output *o; - pa_source *target; uint32_t idx; pa_assert(c); @@ -108,21 +189,12 @@ static pa_hook_result_t source_hook_callback(pa_core *c, pa_source *source, void return PA_HOOK_OK; } - 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) - break; - - if (!target) { - pa_log_info("No evacuation source found."); - return PA_HOOK_OK; - } - } + PA_IDXSET_FOREACH(o, source->outputs, idx) { + pa_source *target; - pa_assert(target != source); + if (!(target = find_evacuation_source(c, o, source))) + continue; - PA_IDXSET_FOREACH(o, source->outputs, idx) { if (pa_source_output_move_to(o, target, FALSE) < 0) pa_log_info("Failed to move source output %u \"%s\" to %s.", o->index, pa_strnull(pa_proplist_gets(o->proplist, PA_PROP_APPLICATION_NAME)), target->name); @@ -134,6 +206,31 @@ static pa_hook_result_t source_hook_callback(pa_core *c, pa_source *source, void return PA_HOOK_OK; } +static pa_hook_result_t source_output_move_fail_hook_callback(pa_core *c, pa_source_output *i, void *userdata) { + pa_source *target; + + pa_assert(c); + pa_assert(i); + + /* 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 (!(target = find_evacuation_source(c, i, NULL))) + return PA_HOOK_OK; + + if (pa_source_output_finish_move(i, target, FALSE) < 0) { + pa_log_info("Failed to move source input %u \"%s\" to %s.", i->index, + pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_APPLICATION_NAME)), target->name); + return PA_HOOK_OK; + + } else { + pa_log_info("Sucessfully moved source input %u \"%s\" to %s.", i->index, + pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_APPLICATION_NAME)), target->name); + return PA_HOOK_STOP; + } +} + int pa__init(pa_module*m) { pa_modargs *ma; struct userdata *u; @@ -148,8 +245,11 @@ int pa__init(pa_module*m) { m->userdata = u = pa_xnew(struct userdata, 1); /* 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); + u->sink_unlink_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_UNLINK], PA_HOOK_LATE+20, (pa_hook_cb_t) sink_unlink_hook_callback, u); + u->source_unlink_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_UNLINK], PA_HOOK_LATE+20, (pa_hook_cb_t) source_unlink_hook_callback, u); + + u->sink_input_move_fail_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SINK_INPUT_MOVE_FAIL], PA_HOOK_LATE+20, (pa_hook_cb_t) sink_input_move_fail_hook_callback, u); + u->source_output_move_fail_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_MOVE_FAIL], PA_HOOK_LATE+20, (pa_hook_cb_t) source_output_move_fail_hook_callback, u); pa_modargs_free(ma); return 0; @@ -163,10 +263,15 @@ void pa__done(pa_module*m) { if (!(u = m->userdata)) return; - if (u->sink_slot) - pa_hook_slot_free(u->sink_slot); - if (u->source_slot) - pa_hook_slot_free(u->source_slot); + if (u->sink_unlink_slot) + pa_hook_slot_free(u->sink_unlink_slot); + if (u->source_unlink_slot) + pa_hook_slot_free(u->source_unlink_slot); + + if (u->sink_input_move_fail_slot) + pa_hook_slot_free(u->sink_input_move_fail_slot); + if (u->source_output_move_fail_slot) + pa_hook_slot_free(u->source_output_move_fail_slot); pa_xfree(u); } diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c index e9063031..076b3918 100644 --- a/src/modules/module-stream-restore.c +++ b/src/modules/module-stream-restore.c @@ -114,15 +114,16 @@ struct userdata { #endif }; -#define ENTRY_VERSION 2 +#define ENTRY_VERSION 3 struct entry { uint8_t version; - pa_bool_t muted_valid:1, volume_valid:1, device_valid:1; + pa_bool_t muted_valid:1, volume_valid:1, device_valid:1, card_valid:1; pa_bool_t muted:1; pa_channel_map channel_map; pa_cvolume volume; char device[PA_NAME_MAX]; + char card[PA_NAME_MAX]; } PA_GCC_PACKED; enum { @@ -1083,11 +1084,21 @@ static struct entry *read_entry(struct userdata *u, const char *name) { goto fail; } + if (!memchr(e->card, 0, sizeof(e->card))) { + pa_log_warn("Database contains entry for stream %s with missing NUL byte in card name", name); + goto fail; + } + if (e->device_valid && !pa_namereg_is_valid_name(e->device)) { pa_log_warn("Invalid device name stored in database for stream %s", name); goto fail; } + if (e->card_valid && !pa_namereg_is_valid_name(e->card)) { + pa_log_warn("Invalid card name stored in database for stream %s", name); + goto fail; + } + if (e->volume_valid && !pa_channel_map_valid(&e->channel_map)) { pa_log_warn("Invalid channel map stored in database for stream %s", name); goto fail; @@ -1139,6 +1150,10 @@ static pa_bool_t entries_equal(const struct entry *a, const struct entry *b) { (a->device_valid && strncmp(a->device, b->device, sizeof(a->device)))) return FALSE; + if (a->card_valid != b->card_valid || + (a->card_valid && strncmp(a->card, b->card, sizeof(a->card)))) + return FALSE; + if (a->muted_valid != b->muted_valid || (a->muted_valid && (a->muted != b->muted))) return FALSE; @@ -1217,6 +1232,10 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 entry.device_valid = TRUE; device_updated = !created_new_entry && (!old->device_valid || !pa_streq(entry.device, old->device)); + if (sink_input->sink->card) { + pa_strlcpy(entry.card, sink_input->sink->card->name, sizeof(entry.card)); + entry.card_valid = TRUE; + } } } else { @@ -1240,6 +1259,11 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 entry.device_valid = source_output->save_source; device_updated = !created_new_entry && (!old->device_valid || !pa_streq(entry.device, old->device)); + + if (source_output->source->card) { + pa_strlcpy(entry.card, source_output->source->card->name, sizeof(entry.card)); + entry.card_valid = TRUE; + } } } @@ -1298,19 +1322,28 @@ static pa_hook_result_t sink_input_new_hook_callback(pa_core *c, pa_sink_input_n if (!(name = get_name(new_data->proplist, "sink-input"))) return PA_HOOK_OK; - if ((e = read_entry(u, name))) { + if (new_data->sink) + pa_log_debug("Not restoring device for stream %s, because already set.", name); + else if ((e = read_entry(u, name))) { + pa_sink *s = NULL; - if (e->device_valid) { - pa_sink *s; + if (e->device_valid) + s = pa_namereg_get(c, e->device, PA_NAMEREG_SINK); - if ((s = pa_namereg_get(c, e->device, PA_NAMEREG_SINK))) { - if (!new_data->sink) { - pa_log_info("Restoring device for stream %s.", name); - new_data->sink = s; - new_data->save_sink = TRUE; - } else - pa_log_debug("Not restoring device for stream %s, because already set.", name); - } + if (!s && e->card_valid) { + pa_card *card; + + if ((card = pa_namereg_get(c, e->card, PA_NAMEREG_CARD))) + s = pa_idxset_first(card->sinks, NULL); + } + + /* It might happen that a stream and a sink are set up at the + same time, in which case we want to make sure we don't + interfere with that */ + if (s && PA_SINK_IS_LINKED(pa_sink_get_state(s))) { + pa_log_info("Restoring device for stream %s.", name); + new_data->sink = s; + new_data->save_sink = TRUE; } pa_xfree(e); @@ -1385,18 +1418,28 @@ static pa_hook_result_t source_output_new_hook_callback(pa_core *c, pa_source_ou if (!(name = get_name(new_data->proplist, "source-output"))) return PA_HOOK_OK; - if ((e = read_entry(u, name))) { - pa_source *s; + if (new_data->source) + pa_log_debug("Not restoring device for stream %s, because already set", name); + else if ((e = read_entry(u, name))) { + pa_source *s = NULL; - if (e->device_valid) { - if ((s = pa_namereg_get(c, e->device, PA_NAMEREG_SOURCE))) { - if (!new_data->source) { - pa_log_info("Restoring device for stream %s.", name); - new_data->source = s; - new_data->save_source = TRUE; - } else - pa_log_debug("Not restoring device for stream %s, because already set", name); - } + if (e->device_valid) + s = pa_namereg_get(c, e->device, PA_NAMEREG_SOURCE); + + if (!s && e->card_valid) { + pa_card *card; + + if ((card = pa_namereg_get(c, e->card, PA_NAMEREG_CARD))) + s = pa_idxset_first(card->sources, NULL); + } + + /* It might happen that a stream and a sink are set up at the + same time, in which case we want to make sure we don't + interfere with that */ + if (s && PA_SOURCE_IS_LINKED(pa_source_get_state(s))) { + pa_log_info("Restoring device for stream %s.", name); + new_data->source = s; + new_data->save_source = TRUE; } pa_xfree(e); @@ -1426,6 +1469,17 @@ static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, struct if (si->save_sink) continue; + /* Skip this if it is already in the process of being moved + * anyway */ + if (!si->sink) + continue; + + /* It might happen that a stream and a sink are set up at the + same time, in which case we want to make sure we don't + interfere with that */ + if (!PA_SINK_INPUT_IS_LINKED(pa_sink_input_get_state(si))) + continue; + if (!(name = get_name(si->proplist, "sink-input"))) continue; @@ -1464,6 +1518,16 @@ static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source, if (so->direct_on_input) continue; + /* Skip this if it is already in the process of being moved anyway */ + if (!so->source) + continue; + + /* It might happen that a stream and a sink are set up at the + same time, in which case we want to make sure we don't + interfere with that */ + if (!PA_SOURCE_OUTPUT_IS_LINKED(pa_source_output_get_state(so))) + continue; + if (!(name = get_name(so->proplist, "source-input"))) continue; @@ -1497,6 +1561,9 @@ static pa_hook_result_t sink_unlink_hook_callback(pa_core *c, pa_sink *sink, str char *name; struct entry *e; + if (!si->sink) + continue; + if (!(name = get_name(si->proplist, "sink-input"))) continue; @@ -1505,7 +1572,9 @@ static pa_hook_result_t sink_unlink_hook_callback(pa_core *c, pa_sink *sink, str if (e->device_valid) { pa_sink *d; - if ((d = pa_namereg_get(c, e->device, PA_NAMEREG_SINK)) && d != sink) + if ((d = pa_namereg_get(c, e->device, PA_NAMEREG_SINK)) && + d != sink && + PA_SINK_IS_LINKED(pa_sink_get_state(d))) pa_sink_input_move_to(si, d, TRUE); } @@ -1535,6 +1604,12 @@ static pa_hook_result_t source_unlink_hook_callback(pa_core *c, pa_source *sourc char *name; struct entry *e; + if (so->direct_on_input) + continue; + + if (!so->source) + continue; + if (!(name = get_name(so->proplist, "source-output"))) continue; @@ -1543,7 +1618,9 @@ static pa_hook_result_t source_unlink_hook_callback(pa_core *c, pa_source *sourc if (e->device_valid) { pa_source *d; - if ((d = pa_namereg_get(c, e->device, PA_NAMEREG_SOURCE)) && d != source) + if ((d = pa_namereg_get(c, e->device, PA_NAMEREG_SOURCE)) && + d != source && + PA_SOURCE_IS_LINKED(pa_source_get_state(d))) pa_source_output_move_to(so, d, TRUE); } @@ -1567,7 +1644,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; @@ -1585,12 +1662,13 @@ 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) { pa_log_info("Restoring mute state for sink input %s.", name); - pa_sink_input_set_mute(si, e->muted, FALSE); + pa_sink_input_set_mute(si, e->muted, TRUE); } if (u->restore_device && @@ -1598,11 +1676,11 @@ static void apply_entry(struct userdata *u, const char *name, struct entry *e) { (s = pa_namereg_get(u->core, e->device, PA_NAMEREG_SINK))) { pa_log_info("Restoring device for stream %s.", name); - pa_sink_input_move_to(si, s, FALSE); + pa_sink_input_move_to(si, s, TRUE); } } - 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; @@ -1620,7 +1698,7 @@ static void apply_entry(struct userdata *u, const char *name, struct entry *e) { (s = pa_namereg_get(u->core, e->device, PA_NAMEREG_SOURCE))) { pa_log_info("Restoring device for stream %s.", name); - pa_source_output_move_to(so, s, FALSE); + pa_source_output_move_to(so, s, TRUE); } } } diff --git a/src/modules/module-tunnel.c b/src/modules/module-tunnel.c index d1153829..eaccea4e 100644 --- a/src/modules/module-tunnel.c +++ b/src/modules/module-tunnel.c @@ -55,6 +55,7 @@ #include #include #include +#include #ifdef TUNNEL_SINK #include "module-tunnel-sink-symdef.h" @@ -194,6 +195,7 @@ struct userdata { #else char *source_name; pa_source *source; + pa_mcalign *mcalign; #endif pa_auth_cookie *auth_cookie; @@ -614,14 +616,23 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off return 0; } - case SOURCE_MESSAGE_POST: + case SOURCE_MESSAGE_POST: { + pa_memchunk c; - if (PA_SOURCE_IS_OPENED(u->source->thread_info.state)) - pa_source_post(u->source, chunk); + pa_mcalign_push(u->mcalign, chunk); - u->counter += (int64_t) chunk->length; + while (pa_mcalign_pop(u->mcalign, &c) >= 0) { + + if (PA_SOURCE_IS_OPENED(u->source->thread_info.state)) + pa_source_post(u->source, &c); + + pa_memblock_unref(c.memblock); + + u->counter += (int64_t) c.length; + } return 0; + } case SOURCE_MESSAGE_REMOTE_SUSPEND: @@ -1154,10 +1165,10 @@ static void sink_input_info_cb(pa_pdispatch *pd, uint32_t command, uint32_t tag pa_cvolume_equal(&volume, &u->sink->virtual_volume)) return; - pa_sink_volume_changed(u->sink, &volume, FALSE); + pa_sink_volume_changed(u->sink, &volume); if (u->version >= 11) - pa_sink_mute_changed(u->sink, mute, FALSE); + pa_sink_mute_changed(u->sink, mute); return; @@ -1937,6 +1948,8 @@ int pa__init(pa_module*m) { pa_source_set_asyncmsgq(u->source, u->thread_mq.inq); pa_source_set_rtpoll(u->source, u->rtpoll); + + u->mcalign = pa_mcalign_new(pa_frame_size(&u->source->sample_spec)); #endif pa_xfree(dn); @@ -2030,6 +2043,11 @@ void pa__done(pa_module*m) { if (u->time_event) u->core->mainloop->time_free(u->time_event); +#ifndef TUNNEL_SINK + if (u->mcalign) + pa_mcalign_free(u->mcalign); +#endif + #ifdef TUNNEL_SINK pa_xfree(u->sink_name); #else diff --git a/src/modules/module-udev-detect.c b/src/modules/module-udev-detect.c index 1ad6fa2d..11de1ccb 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,38 @@ 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) { + pa_log_debug("/dev/snd/ is apparently not existing yet, retrying to create inotify watch later."); + return 0; + } + + if (saved_errno == ENOSPC) { + pa_log("You apparently ran out of inotify watches, probably because Tracker/Beagle took them all away. " + "I wished people would do their homework first and fix inotify before using it for watching whole " + "directory trees which is something the current inotify is certainly not useful for. " + "Please make sure to drop the Tracker/Beagle guys a line complaining about their broken use of inotify."); + return 0; + } + + pa_log("inotify_add_watch() failed: %s", pa_cstrerror(saved_errno)); return -1; } diff --git a/src/modules/module-volume-restore.c b/src/modules/module-volume-restore.c index 91da598e..6e484eae 100644 --- a/src/modules/module-volume-restore.c +++ b/src/modules/module-volume-restore.c @@ -48,6 +48,7 @@ static const char* const valid_modargs[] = { int pa__init(pa_module*m) { pa_modargs *ma = NULL; pa_bool_t restore_device = TRUE, restore_volume = TRUE; + pa_module *n; char *t; pa_assert(m); @@ -66,13 +67,15 @@ int pa__init(pa_module*m) { pa_log_warn("We will now load module-stream-restore. Please make sure to remove module-volume-restore from your configuration."); t = pa_sprintf_malloc("restore_volume=%s restore_device=%s", pa_yes_no(restore_volume), pa_yes_no(restore_device)); - pa_module_load(m->core, "module-stream-restore", t); + n = pa_module_load(m->core, "module-stream-restore", t); pa_xfree(t); - pa_module_unload_request(m, TRUE); + if (n) + pa_module_unload_request(m, TRUE); pa_modargs_free(ma); - return 0; + + return n ? 0 : -1; fail: if (ma) 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 #include +#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 #include +#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 5caf8272..c195c045 100644 --- a/src/modules/rtp/module-rtp-recv.c +++ b/src/modules/rtp/module-rtp-recv.c @@ -361,7 +361,7 @@ static void sink_input_attach(pa_sink_input *i) { pa_assert_se(s = i->userdata); pa_assert(!s->rtpoll_item); - s->rtpoll_item = pa_rtpoll_item_new(i->sink->rtpoll, PA_RTPOLL_LATE, 1); + s->rtpoll_item = pa_rtpoll_item_new(i->sink->thread_info.rtpoll, PA_RTPOLL_LATE, 1); p = pa_rtpoll_item_get_pollfd(s->rtpoll_item, NULL); p->fd = s->rtp_context.fd; diff --git a/src/pulse/client-conf.c b/src/pulse/client-conf.c index 8eab1094..62c06f6a 100644 --- a/src/pulse/client-conf.c +++ b/src/pulse/client-conf.c @@ -94,17 +94,18 @@ int pa_client_conf_load(pa_client_conf *c, const char *filename) { /* Prepare the configuration parse table */ pa_config_item table[] = { - { "daemon-binary", pa_config_parse_string, &c->daemon_binary, NULL }, - { "extra-arguments", pa_config_parse_string, &c->extra_arguments, NULL }, - { "default-sink", pa_config_parse_string, &c->default_sink, NULL }, - { "default-source", pa_config_parse_string, &c->default_source, NULL }, - { "default-server", pa_config_parse_string, &c->default_server, NULL }, - { "default-dbus-server", pa_config_parse_string, &c->default_dbus_server, NULL }, - { "autospawn", pa_config_parse_bool, &c->autospawn, NULL }, - { "cookie-file", pa_config_parse_string, &c->cookie_file, NULL }, - { "disable-shm", pa_config_parse_bool, &c->disable_shm, NULL }, - { "shm-size-bytes", pa_config_parse_size, &c->shm_size, NULL }, - { NULL, NULL, NULL, NULL }, + { "daemon-binary", pa_config_parse_string, &c->daemon_binary, NULL }, + { "extra-arguments", pa_config_parse_string, &c->extra_arguments, NULL }, + { "default-sink", pa_config_parse_string, &c->default_sink, NULL }, + { "default-source", pa_config_parse_string, &c->default_source, NULL }, + { "default-server", pa_config_parse_string, &c->default_server, NULL }, + { "default-dbus-server", pa_config_parse_string, &c->default_dbus_server, NULL }, + { "autospawn", pa_config_parse_bool, &c->autospawn, NULL }, + { "cookie-file", pa_config_parse_string, &c->cookie_file, NULL }, + { "disable-shm", pa_config_parse_bool, &c->disable_shm, NULL }, + { "enable-shm", pa_config_parse_not_bool, &c->disable_shm, NULL }, + { "shm-size-bytes", pa_config_parse_size, &c->shm_size, NULL }, + { NULL, NULL, NULL, NULL }, }; if (filename) { diff --git a/src/pulse/client.conf.in b/src/pulse/client.conf.in index 3340b0b2..e03096e0 100644 --- a/src/pulse/client.conf.in +++ b/src/pulse/client.conf.in @@ -30,5 +30,5 @@ ; cookie-file = -; disable-shm = no +; enable-shm = yes ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB diff --git a/src/pulse/context.c b/src/pulse/context.c index 505e758a..894ab2e0 100644 --- a/src/pulse/context.c +++ b/src/pulse/context.c @@ -668,11 +668,24 @@ static pa_strlist *prepend_per_user(pa_strlist *l) { static int context_autospawn(pa_context *c) { pid_t pid; int status, r; - - pa_log_debug("Trying to autospawn..."); + struct sigaction sa; pa_context_ref(c); + if (sigaction(SIGCHLD, NULL, &sa) < 0) { + pa_log_debug("sigaction() failed: %s", pa_cstrerror(errno)); + pa_context_fail(c, PA_ERR_INTERNAL); + goto fail; + } + + if ((sa.sa_flags & SA_NOCLDWAIT) || sa.sa_handler == SIG_IGN) { + pa_log_debug("Process disabled waitpid(), cannot autospawn."); + pa_context_fail(c, PA_ERR_CONNECTIONREFUSED); + goto fail; + } + + pa_log_debug("Trying to autospawn..."); + if (c->spawn_api.prefork) c->spawn_api.prefork(); @@ -688,23 +701,23 @@ static int context_autospawn(pa_context *c) { /* Child */ const char *state = NULL; -#define MAX_ARGS 64 - const char * argv[MAX_ARGS+1]; - int n; + const char * argv[32]; + unsigned n = 0; if (c->spawn_api.atfork) c->spawn_api.atfork(); + /* We leave most of the cleaning up of the process environment + * to the executable. We only clean up the file descriptors to + * make sure the executable can actually be loaded + * correctly. */ pa_close_all(-1); /* Setup argv */ - - n = 0; - argv[n++] = c->conf->daemon_binary; argv[n++] = "--start"; - while (n < MAX_ARGS) { + while (n < PA_ELEMENTSOF(argv)-1) { char *a; if (!(a = pa_split_spaces(c->conf->extra_arguments, &state))) @@ -714,10 +727,10 @@ static int context_autospawn(pa_context *c) { } argv[n++] = NULL; + pa_assert(n <= PA_ELEMENTSOF(argv)); execv(argv[0], (char * const *) argv); _exit(1); -#undef MAX_ARGS } /* Parent */ @@ -730,9 +743,16 @@ static int context_autospawn(pa_context *c) { } while (r < 0 && errno == EINTR); if (r < 0) { - pa_log(_("waitpid(): %s"), pa_cstrerror(errno)); - pa_context_fail(c, PA_ERR_INTERNAL); - goto fail; + + if (errno != ESRCH) { + pa_log(_("waitpid(): %s"), pa_cstrerror(errno)); + pa_context_fail(c, PA_ERR_INTERNAL); + goto fail; + } + + /* hmm, something already reaped our child, so we assume + * startup worked, even if we cannot know */ + } else if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) { pa_context_fail(c, PA_ERR_CONNECTIONREFUSED); goto fail; @@ -761,22 +781,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, 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 @@ -861,7 +892,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) { @@ -897,7 +928,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 */ @@ -937,7 +968,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); @@ -954,10 +985,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); diff --git a/src/pulse/internal.h b/src/pulse/internal.h index ec2da85b..e069c9e9 100644 --- a/src/pulse/internal.h +++ b/src/pulse/internal.h @@ -151,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; 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.c b/src/pulse/mainloop.c index c418d108..93a4742d 100644 --- a/src/pulse/mainloop.c +++ b/src/pulse/mainloop.c @@ -765,23 +765,22 @@ static pa_time_event* find_next_time_event(pa_mainloop *m) { static int calc_next_timeout(pa_mainloop *m) { pa_time_event *t; - pa_usec_t usec; + pa_usec_t clock_now; if (!m->n_enabled_time_events) return -1; - t = find_next_time_event(m); - pa_assert(t); + pa_assert_se(t = find_next_time_event(m)); - if (t->time == 0) + if (t->time <= 0) return 0; - usec = t->time - pa_rtclock_now(); + clock_now = pa_rtclock_now(); - if (usec <= 0) + if (t->time <= clock_now) return 0; - return (int) (usec / 1000); /* in milliseconds */ + return (int) ((t->time - clock_now) / 1000); /* in milliseconds */ } static int dispatch_timeout(pa_mainloop *m) { diff --git a/src/pulse/operation.h b/src/pulse/operation.h index 7b0dabdd..b6b5691d 100644 --- a/src/pulse/operation.h +++ b/src/pulse/operation.h @@ -40,7 +40,11 @@ pa_operation *pa_operation_ref(pa_operation *o); /** Decrease the reference count by one */ void pa_operation_unref(pa_operation *o); -/** Cancel the operation. Beware! This will not necessarily cancel the execution of the operation on the server side. */ +/** Cancel the operation. Beware! This will not necessarily cancel the + * execution of the operation on the server side. However it will make + * sure that the callback associated with this operation will not be + * called anymore, effectively disabling the operation from the client + * side's view. */ void pa_operation_cancel(pa_operation *o); /** Return the current status of the operation */ diff --git a/src/pulse/simple.c b/src/pulse/simple.c index f4481fc3..9ed7a653 100644 --- a/src/pulse/simple.c +++ b/src/pulse/simple.c @@ -70,8 +70,8 @@ struct pa_simple { #define CHECK_DEAD_GOTO(p, rerror, label) \ do { \ - if (!(p)->context || pa_context_get_state((p)->context) != PA_CONTEXT_READY || \ - !(p)->stream || pa_stream_get_state((p)->stream) != PA_STREAM_READY) { \ + if (!(p)->context || !PA_CONTEXT_IS_GOOD(pa_context_get_state((p)->context)) || \ + !(p)->stream || !PA_STREAM_IS_GOOD(pa_stream_get_state((p)->stream))) { \ if (((p)->context && pa_context_get_state((p)->context) == PA_CONTEXT_FAILED) || \ ((p)->stream && pa_stream_get_state((p)->stream) == PA_STREAM_FAILED)) { \ if (rerror) \ @@ -157,12 +157,8 @@ pa_simple* pa_simple_new( CHECK_VALIDITY_RETURN_ANY(rerror, ss && pa_sample_spec_valid(ss), PA_ERR_INVALID, NULL); CHECK_VALIDITY_RETURN_ANY(rerror, !map || (pa_channel_map_valid(map) && map->channels == ss->channels), PA_ERR_INVALID, NULL) - p = pa_xnew(pa_simple, 1); - p->context = NULL; - p->stream = NULL; + p = pa_xnew0(pa_simple, 1); p->direction = dir; - p->read_data = NULL; - p->read_index = p->read_length = 0; if (!(p->mainloop = pa_threaded_mainloop_new())) goto fail; @@ -182,12 +178,21 @@ pa_simple* pa_simple_new( if (pa_threaded_mainloop_start(p->mainloop) < 0) goto unlock_and_fail; - /* Wait until the context is ready */ - pa_threaded_mainloop_wait(p->mainloop); + for (;;) { + pa_context_state_t state; - if (pa_context_get_state(p->context) != PA_CONTEXT_READY) { - error = pa_context_errno(p->context); - goto unlock_and_fail; + state = pa_context_get_state(p->context); + + if (state == PA_CONTEXT_READY) + break; + + if (!PA_CONTEXT_IS_GOOD(state)) { + error = pa_context_errno(p->context); + goto unlock_and_fail; + } + + /* Wait until the context is ready */ + pa_threaded_mainloop_wait(p->mainloop); } if (!(p->stream = pa_stream_new(p->context, stream_name, ss, map))) { @@ -216,13 +221,21 @@ pa_simple* pa_simple_new( goto unlock_and_fail; } - /* Wait until the stream is ready */ - pa_threaded_mainloop_wait(p->mainloop); + for (;;) { + pa_stream_state_t state; - /* Wait until the stream is ready */ - if (pa_stream_get_state(p->stream) != PA_STREAM_READY) { - error = pa_context_errno(p->context); - goto unlock_and_fail; + state = pa_stream_get_state(p->stream); + + if (state == PA_STREAM_READY) + break; + + if (!PA_STREAM_IS_GOOD(state)) { + error = pa_context_errno(p->context); + goto unlock_and_fail; + } + + /* Wait until the stream is ready */ + pa_threaded_mainloop_wait(p->mainloop); } pa_threaded_mainloop_unlock(p->mainloop); @@ -248,8 +261,10 @@ void pa_simple_free(pa_simple *s) { if (s->stream) pa_stream_unref(s->stream); - if (s->context) + if (s->context) { + pa_context_disconnect(s->context); pa_context_unref(s->context); + } if (s->mainloop) pa_threaded_mainloop_free(s->mainloop); @@ -261,7 +276,8 @@ int pa_simple_write(pa_simple *p, const void*data, size_t length, int *rerror) { pa_assert(p); CHECK_VALIDITY_RETURN_ANY(rerror, p->direction == PA_STREAM_PLAYBACK, PA_ERR_BADSTATE, -1); - CHECK_VALIDITY_RETURN_ANY(rerror, data && length, PA_ERR_INVALID, -1); + CHECK_VALIDITY_RETURN_ANY(rerror, data, PA_ERR_INVALID, -1); + CHECK_VALIDITY_RETURN_ANY(rerror, length > 0, PA_ERR_INVALID, -1); pa_threaded_mainloop_lock(p->mainloop); @@ -300,7 +316,8 @@ int pa_simple_read(pa_simple *p, void*data, size_t length, int *rerror) { pa_assert(p); CHECK_VALIDITY_RETURN_ANY(rerror, p->direction == PA_STREAM_RECORD, PA_ERR_BADSTATE, -1); - CHECK_VALIDITY_RETURN_ANY(rerror, data && length, PA_ERR_INVALID, -1); + CHECK_VALIDITY_RETURN_ANY(rerror, data, PA_ERR_INVALID, -1); + CHECK_VALIDITY_RETURN_ANY(rerror, length > 0, PA_ERR_INVALID, -1); pa_threaded_mainloop_lock(p->mainloop); @@ -375,7 +392,7 @@ int pa_simple_drain(pa_simple *p, int *rerror) { CHECK_SUCCESS_GOTO(p, rerror, o, unlock_and_fail); p->operation_success = 0; - while (pa_operation_get_state(o) != PA_OPERATION_DONE) { + while (pa_operation_get_state(o) == PA_OPERATION_RUNNING) { pa_threaded_mainloop_wait(p->mainloop); CHECK_DEAD_GOTO(p, rerror, unlock_and_fail); } @@ -411,7 +428,7 @@ int pa_simple_flush(pa_simple *p, int *rerror) { CHECK_SUCCESS_GOTO(p, rerror, o, unlock_and_fail); p->operation_success = 0; - while (pa_operation_get_state(o) != PA_OPERATION_DONE) { + while (pa_operation_get_state(o) == PA_OPERATION_RUNNING) { pa_threaded_mainloop_wait(p->mainloop); CHECK_DEAD_GOTO(p, rerror, unlock_and_fail); } diff --git a/src/pulse/stream.c b/src/pulse/stream.c index 40556329..2bc2b1e4 100644 --- a/src/pulse/stream.c +++ b/src/pulse/stream.c @@ -144,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; @@ -221,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); @@ -821,7 +827,7 @@ static void create_stream_complete(pa_stream *s) { if (s->flags & PA_STREAM_AUTO_TIMING_UPDATE) { s->auto_timing_interval_usec = AUTO_TIMING_INTERVAL_START_USEC; pa_assert(!s->auto_timing_update_event); - s->auto_timing_update_event = pa_context_rttime_new(s->context, pa_rtclock_now() + s->auto_timing_interval_usec, &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); } @@ -861,7 +867,7 @@ static void automatic_buffer_attr(pa_stream *s, pa_buffer_attr *attr, const pa_s void pa_create_stream_callback(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata) { pa_stream *s = userdata; - uint32_t requested_bytes; + uint32_t requested_bytes = 0; pa_assert(pd); pa_assert(s); @@ -1166,7 +1172,7 @@ int pa_stream_connect_playback( const char *dev, const pa_buffer_attr *attr, pa_stream_flags_t flags, - pa_cvolume *volume, + const pa_cvolume *volume, pa_stream *sync_stream) { pa_assert(s); @@ -1187,20 +1193,71 @@ 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 (*nbytes != (size_t) -1) { + size_t m, fs; + + m = pa_mempool_block_size_max(s->context->mempool); + fs = pa_frame_size(&s->sample_spec); + + m = (m / fs) * fs; + if (*nbytes > m) + *nbytes = m; + } + + 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); @@ -1210,46 +1267,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 */ diff --git a/src/pulse/stream.h b/src/pulse/stream.h index 49c132a2..8a08421f 100644 --- a/src/pulse/stream.h +++ b/src/pulse/stream.h @@ -405,7 +405,7 @@ int pa_stream_connect_playback( const char *dev /**< Name of the sink to connect to, or NULL for default */ , const pa_buffer_attr *attr /**< Buffering attributes, or NULL for default */, pa_stream_flags_t flags /**< Additional flags, or 0 for default */, - pa_cvolume *volume /**< Initial volume, or NULL for default */, + const pa_cvolume *volume /**< Initial volume, or NULL for default */, pa_stream *sync_stream /**< Synchronize this stream with the specified one, or NULL for a standalone stream*/); /** Connect the stream to a source */ @@ -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 smaller 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(). 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,11 +491,12 @@ 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). - * 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 - * buffer. If no data is available will return a NULL pointer */ +/** Read the next fragment from the buffer (for recording streams). + * data will point to the actual data and nbytes will contain the size + * of the data in bytes (which can be less or more than a complete + * fragment). Use pa_stream_drop() to actually remove the data from + * the buffer. If no data is available this will return a NULL + * pointer */ int pa_stream_peek( pa_stream *p /**< The stream to use */, const void **data /**< Pointer to pointer that will point to data */, @@ -455,7 +512,9 @@ size_t pa_stream_writable_size(pa_stream *p); /** Return the number of bytes that may be read using pa_stream_peek()*/ size_t pa_stream_readable_size(pa_stream *p); -/** Drain a playback stream. Use this for notification when the buffer is empty */ +/** Drain a playback stream. Use this for notification when the buffer + * is empty. Please note that only one drain operation per stream may + * be issued at a time. */ pa_operation* pa_stream_drain(pa_stream *s, pa_stream_success_cb_t cb, void *userdata); /** Request a timing info structure update for a stream. Use diff --git a/src/pulse/thread-mainloop.c b/src/pulse/thread-mainloop.c index 6916d867..a2b98ce1 100644 --- a/src/pulse/thread-mainloop.c +++ b/src/pulse/thread-mainloop.c @@ -51,7 +51,7 @@ struct pa_threaded_mainloop { pa_mainloop *real_mainloop; - int n_waiting; + int n_waiting, n_waiting_for_accept; pa_thread* thread; pa_mutex* mutex; @@ -190,8 +190,12 @@ void pa_threaded_mainloop_signal(pa_threaded_mainloop *m, int wait_for_accept) { pa_cond_signal(m->cond, 1); - if (wait_for_accept && m->n_waiting > 0) - pa_cond_wait(m->accept_cond, m->mutex); + if (wait_for_accept) { + m->n_waiting_for_accept ++; + + while (m->n_waiting_for_accept > 0) + pa_cond_wait(m->accept_cond, m->mutex); + } } void pa_threaded_mainloop_wait(pa_threaded_mainloop *m) { @@ -214,6 +218,9 @@ void pa_threaded_mainloop_accept(pa_threaded_mainloop *m) { /* Make sure that this function is not called from the helper thread */ pa_assert(!m->thread || !pa_thread_is_running(m->thread) || !in_worker(m)); + pa_assert(m->n_waiting_for_accept > 0); + m->n_waiting_for_accept --; + pa_cond_signal(m->accept_cond, 0); } diff --git a/src/pulse/thread-mainloop.h b/src/pulse/thread-mainloop.h index 8eddce4c..e847070d 100644 --- a/src/pulse/thread-mainloop.h +++ b/src/pulse/thread-mainloop.h @@ -137,15 +137,19 @@ PA_C_DECL_BEGIN * The main function, my_drain_stream_func(), will wait for the callback to * be called using pa_threaded_mainloop_wait(). * - * If your application is multi-threaded, then this waiting must be done - * inside a while loop. The reason for this is that multiple threads might be - * using pa_threaded_mainloop_wait() at the same time. Each thread must - * therefore verify that it was its callback that was invoked. + * If your application is multi-threaded, then this waiting must be + * done inside a while loop. The reason for this is that multiple + * threads might be using pa_threaded_mainloop_wait() at the same + * time. Each thread must therefore verify that it was its callback + * that was invoked. Also the underlying OS synchronization primitives + * are usually not free of spurious wake-ups, so a + * pa_threaded_mainloop_wait() must be called within a loop even if + * you have only one thread waiting. * * The callback, my_drain_callback(), indicates to the main function that it * has been called using pa_threaded_mainloop_signal(). * - * As you can see, both pa_threaded_mainloop_wait() may only be called with + * As you can see, pa_threaded_mainloop_wait() may only be called with * the lock held. The same thing is true for pa_threaded_mainloop_signal(), * but as the lock is held before the callback is invoked, you do not have to * deal with that. @@ -274,7 +278,9 @@ void pa_threaded_mainloop_unlock(pa_threaded_mainloop *m); * inside the event loop thread. Prior to this call the event loop * object needs to be locked using pa_threaded_mainloop_lock(). While * waiting the lock will be released, immediately before returning it - * will be acquired again. */ + * will be acquired again. This function may spuriously wake up even + * without _signal() being called. You need to make sure to handle + * that! */ void pa_threaded_mainloop_wait(pa_threaded_mainloop *m); /** Signal all threads waiting for a signalling event in diff --git a/src/pulse/volume.c b/src/pulse/volume.c index 42cde5b9..c23f360b 100644 --- a/src/pulse/volume.c +++ b/src/pulse/volume.c @@ -205,9 +205,12 @@ pa_volume_t pa_sw_volume_from_linear(double v) { * * http://www.robotplanet.dk/audio/audio_gui_design/ * http://lists.linuxaudio.org/pipermail/linux-audio-dev/2009-May/thread.html#23151 + * + * We make sure that the conversion to linear and back yields the + * same volume value! That's why we need the lround() below! */ - return (pa_volume_t) (cbrt(v) * PA_VOLUME_NORM); + return (pa_volume_t) lround(cbrt(v) * PA_VOLUME_NORM); } double pa_sw_volume_to_linear(pa_volume_t v) { diff --git a/src/pulsecore/asyncmsgq.c b/src/pulsecore/asyncmsgq.c index e191b05f..b0804f79 100644 --- a/src/pulsecore/asyncmsgq.c +++ b/src/pulsecore/asyncmsgq.c @@ -26,14 +26,16 @@ #include #include +#include + #include +#include #include #include #include #include #include #include -#include #include "asyncmsgq.h" @@ -76,7 +78,7 @@ static void asyncmsgq_free(pa_asyncmsgq *a) { struct asyncmsgq_item *i; pa_assert(a); - while ((i = pa_asyncq_pop(a->asyncq, 0))) { + while ((i = pa_asyncq_pop(a->asyncq, FALSE))) { pa_assert(!i->semaphore); @@ -172,11 +174,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; } @@ -246,7 +248,7 @@ int pa_asyncmsgq_wait_for(pa_asyncmsgq *a, int code) { pa_memchunk chunk; int ret; - if (pa_asyncmsgq_get(a, &o, &c, &data, &offset, &chunk, 1) < 0) + if (pa_asyncmsgq_get(a, &o, &c, &data, &offset, &chunk, TRUE) < 0) return -1; ret = pa_asyncmsgq_dispatch(o, c, data, offset, &chunk); @@ -269,7 +271,7 @@ int pa_asyncmsgq_process_one(pa_asyncmsgq *a) { pa_assert(PA_REFCNT_VALUE(a) > 0); - if (pa_asyncmsgq_get(a, &object, &code, &data, &offset, &chunk, 0) < 0) + if (pa_asyncmsgq_get(a, &object, &code, &data, &offset, &chunk, FALSE) < 0) return 0; pa_asyncmsgq_ref(a); @@ -323,3 +325,35 @@ int pa_asyncmsgq_dispatch(pa_msgobject *object, int code, void *userdata, int64_ return 0; } + +void pa_asyncmsgq_flush(pa_asyncmsgq *a, pa_bool_t run) { + pa_assert(PA_REFCNT_VALUE(a) > 0); + + for (;;) { + pa_msgobject *object; + int code; + void *data; + int64_t offset; + pa_memchunk chunk; + int ret; + + if (pa_asyncmsgq_get(a, &object, &code, &data, &offset, &chunk, FALSE) < 0) + return; + + if (!run) { + pa_asyncmsgq_done(a, -1); + continue; + } + + pa_asyncmsgq_ref(a); + ret = pa_asyncmsgq_dispatch(object, code, data, offset, &chunk); + pa_asyncmsgq_done(a, ret); + pa_asyncmsgq_unref(a); + } +} + +pa_bool_t pa_asyncmsgq_dispatching(pa_asyncmsgq *a) { + pa_assert(PA_REFCNT_VALUE(a) > 0); + + return !!a->current; +} diff --git a/src/pulsecore/asyncmsgq.h b/src/pulsecore/asyncmsgq.h index 1f38207a..1085c2f0 100644 --- a/src/pulsecore/asyncmsgq.h +++ b/src/pulsecore/asyncmsgq.h @@ -66,6 +66,8 @@ void pa_asyncmsgq_done(pa_asyncmsgq *q, int ret); int pa_asyncmsgq_wait_for(pa_asyncmsgq *a, int code); int pa_asyncmsgq_process_one(pa_asyncmsgq *a); +void pa_asyncmsgq_flush(pa_asyncmsgq *a, pa_bool_t run); + /* For the reading side */ int pa_asyncmsgq_read_fd(pa_asyncmsgq *q); int pa_asyncmsgq_read_before_poll(pa_asyncmsgq *a); @@ -76,4 +78,6 @@ int pa_asyncmsgq_write_fd(pa_asyncmsgq *q); void pa_asyncmsgq_write_before_poll(pa_asyncmsgq *a); void pa_asyncmsgq_write_after_poll(pa_asyncmsgq *a); +pa_bool_t pa_asyncmsgq_dispatching(pa_asyncmsgq *a); + #endif diff --git a/src/pulsecore/aupdate.c b/src/pulsecore/aupdate.c index 56ebb8e5..85b6e00e 100644 --- a/src/pulsecore/aupdate.c +++ b/src/pulsecore/aupdate.c @@ -39,6 +39,7 @@ struct pa_aupdate { pa_atomic_t read_lock; pa_mutex *write_lock; pa_semaphore *semaphore; + pa_bool_t swapped; }; pa_aupdate *pa_aupdate_new(void) { @@ -101,6 +102,8 @@ unsigned pa_aupdate_write_begin(pa_aupdate *a) { n = (unsigned) pa_atomic_load(&a->read_lock); + a->swapped = FALSE; + return !WHICH(n); } @@ -119,11 +122,16 @@ unsigned pa_aupdate_write_swap(pa_aupdate *a) { break; } + a->swapped = TRUE; + return WHICH(n); } void pa_aupdate_write_end(pa_aupdate *a) { pa_assert(a); + if (!a->swapped) + pa_aupdate_write_swap(a); + pa_mutex_unlock(a->write_lock); } diff --git a/src/pulsecore/aupdate.h b/src/pulsecore/aupdate.h index 072e382d..fb38ffa2 100644 --- a/src/pulsecore/aupdate.h +++ b/src/pulsecore/aupdate.h @@ -93,6 +93,10 @@ unsigned pa_aupdate_write_swap(pa_aupdate *a); * pa_update_write_end(a) * } * + * In some cases keeping both structures up-to-date might not be + * necessary, since they are fully rebuilt on each iteration + * anyway. In that case you may leave the _write_swap() call out, it + * will then be done implicitly in the _write_end() invocation. */ #endif diff --git a/src/pulsecore/authkey.c b/src/pulsecore/authkey.c index 1e31d076..15613e27 100644 --- a/src/pulsecore/authkey.c +++ b/src/pulsecore/authkey.c @@ -36,6 +36,7 @@ #include #include +#include #include #include #include @@ -147,47 +148,46 @@ int pa_authkey_load(const char *path, void *data, size_t length) { /* If the specified file path starts with / return it, otherwise * return path prepended with home directory */ -static const char *normalize_path(const char *fn, char *s, size_t l) { +static char *normalize_path(const char *fn) { pa_assert(fn); - pa_assert(s); - pa_assert(l > 0); #ifndef OS_IS_WIN32 if (fn[0] != '/') { #else if (strlen(fn) < 3 || !isalpha(fn[0]) || fn[1] != ':' || fn[2] != '\\') { #endif - char homedir[PATH_MAX]; + char *homedir, *s; - if (!pa_get_home_dir(homedir, sizeof(homedir))) + if (!(homedir = pa_get_home_dir_malloc())) return NULL; -#ifndef OS_IS_WIN32 - pa_snprintf(s, l, "%s/%s", homedir, fn); -#else - pa_snprintf(s, l, "%s\\%s", homedir, fn); -#endif + s = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", homedir, fn); + pa_xfree(homedir); + return s; } - return fn; + return pa_xstrdup(fn); } /* Load a cookie from a file in the home directory. If the specified * path starts with /, use it as absolute path instead. */ int pa_authkey_load_auto(const char *fn, void *data, size_t length) { - char path[PATH_MAX]; - const char *p; + char *p; + int ret; pa_assert(fn); pa_assert(data); pa_assert(length > 0); - if (!(p = normalize_path(fn, path, sizeof(path)))) + if (!(p = normalize_path(fn))) return -2; - return pa_authkey_load(p, data, length); + ret = pa_authkey_load(p, data, length); + pa_xfree(p); + + return ret; } /* Store the specified cookie in the specified cookie file */ @@ -195,14 +195,13 @@ int pa_authkey_save(const char *fn, const void *data, size_t length) { int fd = -1; int unlock = 0, ret = -1; ssize_t r; - char path[PATH_MAX]; - const char *p; + char *p; pa_assert(fn); pa_assert(data); pa_assert(length > 0); - if (!(p = normalize_path(fn, path, sizeof(path)))) + if (!(p = normalize_path(fn))) return -2; if ((fd = open(p, O_RDWR|O_CREAT|O_NOCTTY, S_IRUSR|S_IWUSR)) < 0) { @@ -232,5 +231,7 @@ finish: } } + pa_xfree(p); + return ret; } diff --git a/src/pulsecore/cli-text.c b/src/pulsecore/cli-text.c index 9395513d..a5530991 100644 --- a/src/pulsecore/cli-text.c +++ b/src/pulsecore/cli-text.c @@ -296,7 +296,7 @@ char *pa_sink_list_to_string(pa_core *c) { pa_strbuf_printf( s, "\tfixed latency: %0.2f ms\n", - (double) pa_sink_get_requested_latency(sink) / PA_USEC_PER_MSEC); + (double) pa_sink_get_fixed_latency(sink) / PA_USEC_PER_MSEC); if (sink->card) pa_strbuf_printf(s, "\tcard: %u <%s>\n", sink->card->index, sink->card->name); @@ -415,7 +415,7 @@ char *pa_source_list_to_string(pa_core *c) { pa_strbuf_printf( s, "\tfixed latency: %0.2f ms\n", - (double) pa_source_get_requested_latency(source) / PA_USEC_PER_MSEC); + (double) pa_source_get_fixed_latency(source) / PA_USEC_PER_MSEC); if (source->monitor_of) pa_strbuf_printf(s, "\tmonitor_of: %u\n", source->monitor_of->index); @@ -482,7 +482,7 @@ char *pa_source_output_list_to_string(pa_core *c) { s, " index: %u\n" "\tdriver: <%s>\n" - "\tflags: %s%s%s%s%s%s%s%s%s%s\n" + "\tflags: %s%s%s%s%s%s%s%s%s%s%s\n" "\tstate: %s\n" "\tsource: %u <%s>\n" "\tcurrent latency: %0.2f ms\n" @@ -501,7 +501,8 @@ char *pa_source_output_list_to_string(pa_core *c) { o->flags & PA_SOURCE_OUTPUT_FIX_RATE ? "FIX_RATE " : "", o->flags & PA_SOURCE_OUTPUT_FIX_CHANNELS ? "FIX_CHANNELS " : "", o->flags & PA_SOURCE_OUTPUT_DONT_INHIBIT_AUTO_SUSPEND ? "DONT_INHIBIT_AUTO_SUSPEND " : "", - o->flags & PA_SOURCE_OUTPUT_FAIL_ON_SUSPEND ? "FAIL_ON_SUSPEND " : "", + o->flags & PA_SOURCE_OUTPUT_NO_CREATE_ON_SUSPEND ? "NO_CREATE_ON_SUSPEND " : "", + o->flags & PA_SOURCE_OUTPUT_KILL_ON_SUSPEND ? "KILL_ON_SUSPEND " : "", state_table[pa_source_output_get_state(o)], o->source->index, o->source->name, (double) pa_source_output_get_latency(o, NULL) / PA_USEC_PER_MSEC, @@ -564,7 +565,7 @@ char *pa_sink_input_list_to_string(pa_core *c) { s, " index: %u\n" "\tdriver: <%s>\n" - "\tflags: %s%s%s%s%s%s%s%s%s%s\n" + "\tflags: %s%s%s%s%s%s%s%s%s%s%s\n" "\tstate: %s\n" "\tsink: %u <%s>\n" "\tvolume: %s\n" @@ -587,7 +588,8 @@ char *pa_sink_input_list_to_string(pa_core *c) { i->flags & PA_SINK_INPUT_FIX_RATE ? "FIX_RATE " : "", i->flags & PA_SINK_INPUT_FIX_CHANNELS ? "FIX_CHANNELS " : "", i->flags & PA_SINK_INPUT_DONT_INHIBIT_AUTO_SUSPEND ? "DONT_INHIBIT_AUTO_SUSPEND " : "", - i->flags & PA_SINK_INPUT_FAIL_ON_SUSPEND ? "FAIL_ON_SUSPEND " : "", + i->flags & PA_SINK_INPUT_NO_CREATE_ON_SUSPEND ? "NO_CREATE_SUSPEND " : "", + i->flags & PA_SINK_INPUT_KILL_ON_SUSPEND ? "KILL_ON_SUSPEND " : "", state_table[pa_sink_input_get_state(i)], i->sink->index, i->sink->name, pa_cvolume_snprint(cv, sizeof(cv), &v), diff --git a/src/pulsecore/conf-parser.c b/src/pulsecore/conf-parser.c index 2dc9a223..b4ab23cc 100644 --- a/src/pulsecore/conf-parser.c +++ b/src/pulsecore/conf-parser.c @@ -278,6 +278,30 @@ int pa_config_parse_bool(const char *filename, unsigned line, const char *sectio return 0; } +int pa_config_parse_not_bool( + const char *filename, unsigned line, + const char *section, + const char *lvalue, const char *rvalue, + void *data, void *userdata) { + + int k; + pa_bool_t *b = data; + + pa_assert(filename); + pa_assert(lvalue); + pa_assert(rvalue); + pa_assert(data); + + if ((k = pa_parse_boolean(rvalue)) < 0) { + pa_log("[%s:%u] Failed to parse boolean value: %s", filename, line, rvalue); + return -1; + } + + *b = !k; + + return 0; +} + int pa_config_parse_string(const char *filename, unsigned line, const char *section, const char *lvalue, const char *rvalue, void *data, void *userdata) { char **s = data; diff --git a/src/pulsecore/conf-parser.h b/src/pulsecore/conf-parser.h index 08e17ca7..c6c8a148 100644 --- a/src/pulsecore/conf-parser.h +++ b/src/pulsecore/conf-parser.h @@ -47,6 +47,7 @@ int pa_config_parse_int(const char *filename, unsigned line, const char *section int pa_config_parse_unsigned(const char *filename, unsigned line, const char *section, const char *lvalue, const char *rvalue, void *data, void *userdata); int pa_config_parse_size(const char *filename, unsigned line, const char *section, const char *lvalue, const char *rvalue, void *data, void *userdata); int pa_config_parse_bool(const char *filename, unsigned line, const char *section, const char *lvalue, const char *rvalue, void *data, void *userdata); +int pa_config_parse_not_bool(const char *filename, unsigned line, const char *section, const char *lvalue, const char *rvalue, void *data, void *userdata); int pa_config_parse_string(const char *filename, unsigned line, const char *section, const char *lvalue, const char *rvalue, void *data, void *userdata); #endif diff --git a/src/pulsecore/core-scache.c b/src/pulsecore/core-scache.c index 4c5a4b26..fde12ecf 100644 --- a/src/pulsecore/core-scache.c +++ b/src/pulsecore/core-scache.c @@ -494,13 +494,14 @@ int pa_scache_add_directory_lazy(pa_core *c, const char *pathname) { struct dirent *e; while ((e = readdir(dir))) { - char p[PATH_MAX]; + char *p; if (e->d_name[0] == '.') continue; - pa_snprintf(p, sizeof(p), "%s/%s", pathname, e->d_name); + p = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", pathname, e->d_name); add_file(c, p); + pa_xfree(p); } closedir(dir); diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index ebddf363..e83563f9 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -101,6 +101,10 @@ #include "rtkit.h" #endif +#ifdef __linux__ +#include +#endif + #include #include #include @@ -552,12 +556,20 @@ char *pa_vsprintf_malloc(const char *format, va_list ap) { /* Similar to OpenBSD's strlcpy() function */ char *pa_strlcpy(char *b, const char *s, size_t l) { + size_t k; + pa_assert(b); pa_assert(s); pa_assert(l > 0); - strncpy(b, s, l); - b[l-1] = 0; + k = strlen(s); + + if (k > l-1) + k = l-1; + + memcpy(b, s, k); + b[k] = 0; + return b; } @@ -1328,26 +1340,32 @@ int pa_unlock_lockfile(const char *fn, int fd) { } static char *get_pulse_home(void) { - char h[PATH_MAX]; + char *h; struct stat st; + char *ret = NULL; - if (!pa_get_home_dir(h, sizeof(h))) { + if (!(h = pa_get_home_dir_malloc())) { pa_log_error("Failed to get home directory."); return NULL; } if (stat(h, &st) < 0) { pa_log_error("Failed to stat home directory %s: %s", h, pa_cstrerror(errno)); - return NULL; + goto finish; } if (st.st_uid != getuid()) { pa_log_error("Home directory %s not ours.", h); errno = EACCES; - return NULL; + goto finish; } - return pa_sprintf_malloc("%s" PA_PATH_SEP ".pulse", h); + ret = pa_sprintf_malloc("%s" PA_PATH_SEP ".pulse", h); + +finish: + pa_xfree(h); + + return ret; } char *pa_get_state_dir(void) { @@ -1372,6 +1390,50 @@ char *pa_get_state_dir(void) { return d; } +char *pa_get_home_dir_malloc(void) { + char *homedir; + size_t allocated = 128; + + for (;;) { + homedir = pa_xmalloc(allocated); + + if (!pa_get_home_dir(homedir, allocated)) { + pa_xfree(homedir); + return NULL; + } + + if (strlen(homedir) < allocated - 1) + break; + + pa_xfree(homedir); + allocated *= 2; + } + + return homedir; +} + +char *pa_get_binary_name_malloc(void) { + char *t; + size_t allocated = 128; + + for (;;) { + t = pa_xmalloc(allocated); + + if (!pa_get_binary_name(t, allocated)) { + pa_xfree(t); + return NULL; + } + + if (strlen(t) < allocated - 1) + break; + + pa_xfree(t); + allocated *= 2; + } + + return t; +} + static char* make_random_dir(mode_t m) { static const char table[] = "abcdefghijklmnopqrstuvwxyz" @@ -1481,7 +1543,7 @@ char *pa_get_runtime_dir(void) { goto fail; } - k = pa_sprintf_malloc("%s" PA_PATH_SEP "%s:runtime", d, mid); + k = pa_sprintf_malloc("%s" PA_PATH_SEP "%s-runtime", d, mid); pa_xfree(d); pa_xfree(mid); @@ -1626,14 +1688,15 @@ FILE *pa_open_config_file(const char *global, const char *local, const char *env if (local) { const char *e; char *lfn; - char h[PATH_MAX]; + char *h; FILE *f; if ((e = getenv("PULSE_CONFIG_PATH"))) fn = lfn = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", e, local); - else if (pa_get_home_dir(h, sizeof(h))) + else if ((h = pa_get_home_dir_malloc())) { fn = lfn = pa_sprintf_malloc("%s" PA_PATH_SEP ".pulse" PA_PATH_SEP "%s", h, local); - else + pa_xfree(h); + } else return NULL; #ifdef OS_IS_WIN32 @@ -1713,13 +1776,14 @@ char *pa_find_config_file(const char *global, const char *local, const char *env if (local) { const char *e; char *lfn; - char h[PATH_MAX]; + char *h; if ((e = getenv("PULSE_CONFIG_PATH"))) fn = lfn = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", e, local); - else if (pa_get_home_dir(h, sizeof(h))) + else if ((h = pa_get_home_dir_malloc())) { fn = lfn = pa_sprintf_malloc("%s" PA_PATH_SEP ".pulse" PA_PATH_SEP "%s", h, local); - else + pa_xfree(h); + } else return NULL; #ifdef OS_IS_WIN32 @@ -1904,7 +1968,7 @@ static char *get_path(const char *fn, pa_bool_t prependmid, pa_bool_t rt) { return NULL; } - r = pa_sprintf_malloc("%s" PA_PATH_SEP "%s:%s", rtp, mid, fn); + r = pa_sprintf_malloc("%s" PA_PATH_SEP "%s-%s", rtp, mid, fn); pa_xfree(mid); } else r = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", rtp, fn); @@ -2801,3 +2865,28 @@ char* pa_maybe_prefix_path(const char *path, const char *prefix) { return pa_sprintf_malloc("%s" PA_PATH_SEP "%s", prefix, path); } + +size_t pa_pipe_buf(int fd) { + +#ifdef _PC_PIPE_BUF + long n; + + if ((n = fpathconf(fd, _PC_PIPE_BUF)) >= 0) + return (size_t) n; +#endif + +#ifdef PIPE_BUF + return PIPE_BUF; +#else + return 4096; +#endif +} + +void pa_reset_personality(void) { + +#ifdef __linux__ + if (personality(PER_LINUX) < 0) + pa_log_warn("Uh, personality() failed: %s", pa_cstrerror(errno)); +#endif + +} diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h index aaa51bd6..3db55106 100644 --- a/src/pulsecore/core-util.h +++ b/src/pulsecore/core-util.h @@ -126,6 +126,8 @@ char* pa_find_config_file(const char *global, const char *local, const char *env char *pa_get_runtime_dir(void); char *pa_get_state_dir(void); +char *pa_get_home_dir_malloc(void); +char *pa_get_binary_name_malloc(void); char *pa_runtime_path(const char *fn); char *pa_state_path(const char *fn, pa_bool_t prepend_machine_id); @@ -243,4 +245,9 @@ char **pa_split_spaces_strv(const char *s); char* pa_maybe_prefix_path(const char *path, const char *prefix); +/* Returns size of the specified pipe or 4096 on failure */ +size_t pa_pipe_buf(int fd); + +void pa_reset_personality(void); + #endif diff --git a/src/pulsecore/database-simple.c b/src/pulsecore/database-simple.c new file mode 100644 index 00000000..1f4caf71 --- /dev/null +++ b/src/pulsecore/database-simple.c @@ -0,0 +1,510 @@ +/*** + This file is part of PulseAudio. + + Copyright 2009 Nokia Corporation + Contact: Maemo Multimedia + + 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 +#endif + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "database.h" + + +typedef struct simple_data { + char *filename; + char *tmp_filename; + pa_hashmap *map; + pa_bool_t read_only; +} simple_data; + +typedef struct entry { + pa_datum key; + pa_datum data; +} entry; + +void pa_datum_free(pa_datum *d) { + pa_assert(d); + + pa_xfree(d->data); + d->data = NULL; + d->size = 0; +} + +static int compare_func(const void *a, const void *b) { + const pa_datum *aa, *bb; + + aa = (const pa_datum*)a; + bb = (const pa_datum*)b; + + if (aa->size != bb->size) + return aa->size > bb->size ? 1 : -1; + + return memcmp(aa->data, bb->data, aa->size); +} + +/* pa_idxset_string_hash_func modified for our use */ +static unsigned hash_func(const void *p) { + const pa_datum *d; + unsigned hash = 0; + const char *c; + unsigned i; + + d = (const pa_datum*)p; + c = d->data; + + for (i = 0; i < d->size; i++) { + hash = 31 * hash + (unsigned) *c; + c++; + } + + return hash; +} + +static entry* new_entry(const pa_datum *key, const pa_datum *data) { + entry *e; + + pa_assert(key); + pa_assert(data); + + e = pa_xnew0(entry, 1); + e->key.data = key->size > 0 ? pa_xmemdup(key->data, key->size) : NULL; + e->key.size = key->size; + e->data.data = data->size > 0 ? pa_xmemdup(data->data, data->size) : NULL; + e->data.size = data->size; + return e; +} + +static void free_entry(entry *e) { + if (e) { + if (e->key.data) + pa_xfree(e->key.data); + if (e->data.data) + pa_xfree(e->data.data); + pa_xfree(e); + } +} + +static int read_uint(FILE *f, uint32_t *res) { + size_t items = 0; + uint8_t values[4]; + uint32_t tmp; + int i; + + items = fread(&values, sizeof(values), sizeof(uint8_t), f); + + if (feof(f)) /* EOF */ + return 0; + + if (ferror(f)) + return -1; + + for (i = 0; i < 4; ++i) { + tmp = values[i]; + *res += (tmp << (i*8)); + } + + return items; +} + +static int read_data(FILE *f, void **data, ssize_t *length) { + size_t items = 0; + uint32_t data_len = 0; + + pa_assert(f); + + *data = NULL; + *length = 0; + + if ((items = read_uint(f, &data_len)) <= 0) + return -1; + + if (data_len > 0) { + *data = pa_xmalloc0(data_len); + items = fread(*data, data_len, 1, f); + + if (feof(f)) /* EOF */ + goto reset; + + if (ferror(f)) + goto reset; + + *length = data_len; + + } else { /* no data? */ + return -1; + } + + return 0; + +reset: + pa_xfree(*data); + *data = NULL; + *length = 0; + return -1; +} + +static int fill_data(simple_data *db, FILE *f) { + pa_datum key; + pa_datum data; + void *d = NULL; + ssize_t l = 0; + pa_bool_t append = FALSE; + enum { FIELD_KEY = 0, FIELD_DATA } field = FIELD_KEY; + + pa_assert(db); + pa_assert(db->map); + + errno = 0; + + key.size = 0; + key.data = NULL; + + while (!read_data(f, &d, &l)) { + + switch (field) { + case FIELD_KEY: + key.data = d; + key.size = l; + field = FIELD_DATA; + break; + case FIELD_DATA: + data.data = d; + data.size = l; + append = TRUE; + break; + } + + if (append) { + entry *e = pa_xnew0(entry, 1); + e->key.data = key.data; + e->key.size = key.size; + e->data.data = data.data; + e->data.size = data.size; + pa_hashmap_put(db->map, &e->key, e); + append = FALSE; + field = FIELD_KEY; + } + } + + if (ferror(f)) { + pa_log_warn("read error. %s", pa_cstrerror(errno)); + pa_database_clear((pa_database*)db); + } + + if (field == FIELD_DATA && d) + pa_xfree(d); + + return pa_hashmap_size(db->map); +} + +pa_database* pa_database_open(const char *fn, pa_bool_t for_write) { + FILE *f; + char *path; + simple_data *db; + + pa_assert(fn); + + path = pa_sprintf_malloc("%s."CANONICAL_HOST".simple", fn); + errno = 0; + + f = fopen(path, "r"); + + if (f || errno == ENOENT) { /* file not found is ok */ + db = pa_xnew0(simple_data, 1); + db->map = pa_hashmap_new(hash_func, compare_func); + db->filename = pa_xstrdup(path); + db->tmp_filename = pa_sprintf_malloc(".%s.tmp", db->filename); + db->read_only = !for_write; + + if (f) { + fill_data(db, f); + fclose(f); + } + } else { + if (errno == 0) + errno = EIO; + db = NULL; + } + + pa_xfree(path); + + return (pa_database*) db; +} + +void pa_database_close(pa_database *database) { + simple_data *db = (simple_data*)database; + pa_assert(db); + + pa_database_sync(database); + pa_database_clear(database); + pa_xfree(db->filename); + pa_xfree(db->tmp_filename); + pa_hashmap_free(db->map, NULL, NULL); + pa_xfree(db); +} + +pa_datum* pa_database_get(pa_database *database, const pa_datum *key, pa_datum* data) { + simple_data *db = (simple_data*)database; + entry *e; + + pa_assert(db); + pa_assert(key); + pa_assert(data); + + e = pa_hashmap_get(db->map, key); + + if (!e) + return NULL; + + data->data = e->data.size > 0 ? pa_xmemdup(e->data.data, e->data.size) : NULL; + data->size = e->data.size; + + return data; +} + +int pa_database_set(pa_database *database, const pa_datum *key, const pa_datum* data, pa_bool_t overwrite) { + simple_data *db = (simple_data*)database; + entry *e; + int ret = 0; + + pa_assert(db); + pa_assert(key); + pa_assert(data); + + if (db->read_only) + return -1; + + e = new_entry(key, data); + + if (pa_hashmap_put(db->map, &e->key, e) < 0) { + /* entry with same key exists in hashmap */ + entry *r; + if (overwrite) { + r = pa_hashmap_remove(db->map, key); + pa_hashmap_put(db->map, &e->key, e); + } else { + /* wont't overwrite, so clean new entry */ + r = e; + ret = -1; + } + + free_entry(r); + } + + return ret; +} + +int pa_database_unset(pa_database *database, const pa_datum *key) { + simple_data *db = (simple_data*)database; + entry *e; + + pa_assert(db); + pa_assert(key); + + e = pa_hashmap_remove(db->map, key); + if (!e) + return -1; + + free_entry(e); + + return 0; +} + +int pa_database_clear(pa_database *database) { + simple_data *db = (simple_data*)database; + entry *e; + + pa_assert(db); + + while ((e = pa_hashmap_steal_first(db->map))) + free_entry(e); + + return 0; +} + +signed pa_database_size(pa_database *database) { + simple_data *db = (simple_data*)database; + pa_assert(db); + + return (signed) pa_hashmap_size(db->map); +} + +pa_datum* pa_database_first(pa_database *database, pa_datum *key, pa_datum *data) { + simple_data *db = (simple_data*)database; + entry *e; + + pa_assert(db); + pa_assert(key); + + e = pa_hashmap_first(db->map); + + if (!e) + return NULL; + + key->data = e->key.size > 0 ? pa_xmemdup(e->key.data, e->key.size) : NULL; + key->size = e->key.size; + + if (data) { + data->data = e->data.size > 0 ? pa_xmemdup(e->data.data, e->data.size) : NULL; + data->size = e->data.size; + } + + return key; +} + +pa_datum* pa_database_next(pa_database *database, const pa_datum *key, pa_datum *next, pa_datum *data) { + simple_data *db = (simple_data*)database; + entry *e; + entry *search; + void *state; + pa_bool_t pick_now; + + pa_assert(db); + pa_assert(next); + + if (!key) + return pa_database_first(database, next, data); + + search = pa_hashmap_get(db->map, key); + + state = NULL; + pick_now = FALSE; + + while ((e = pa_hashmap_iterate(db->map, &state, NULL))) { + if (pick_now) + break; + + if (search == e) + pick_now = TRUE; + } + + if (!pick_now || !e) + return NULL; + + next->data = e->key.size > 0 ? pa_xmemdup(e->key.data, e->key.size) : NULL; + next->size = e->key.size; + + if (data) { + data->data = e->data.size > 0 ? pa_xmemdup(e->data.data, e->data.size) : NULL; + data->size = e->data.size; + } + + return next; +} + +static int write_uint(FILE *f, const uint32_t num) { + size_t items; + uint8_t values[4]; + int i; + errno = 0; + + for (i = 0; i < 4; i++) + values[i] = (num >> (i*8)) & 0xFF; + + items = fwrite(&values, sizeof(values), sizeof(uint8_t), f); + + if (ferror(f)) + return -1; + + return items; +} + +static int write_data(FILE *f, void *data, const size_t length) { + size_t items; + uint32_t len; + + len = length; + if ((items = write_uint(f, len)) <= 0) + return -1; + + items = fwrite(data, length, 1, f); + + if (ferror(f) || items != 1) + return -1; + + return 0; +} + +static int write_entry(FILE *f, const entry *e) { + pa_assert(f); + pa_assert(e); + + if (write_data(f, e->key.data, e->key.size) < 0) + return -1; + if (write_data(f, e->data.data, e->data.size) < 0) + return -1; + + return 0; +} + +int pa_database_sync(pa_database *database) { + simple_data *db = (simple_data*)database; + FILE *f; + void *state; + entry *e; + + pa_assert(db); + + if (db->read_only) + return 0; + + errno = 0; + + f = fopen(db->tmp_filename, "w"); + + if (!f) + goto fail; + + state = NULL; + while((e = pa_hashmap_iterate(db->map, &state, NULL))) { + if (write_entry(f, e) < 0) { + pa_log_warn("error while writing to file. %s", pa_cstrerror(errno)); + goto fail; + } + } + + fclose(f); + f = NULL; + + if (rename(db->tmp_filename, db->filename) < 0) { + pa_log_warn("error while renaming file. %s", pa_cstrerror(errno)); + goto fail; + } + + return 0; + +fail: + if (f) + fclose(f); + return -1; +} diff --git a/src/pulsecore/dbus-util.c b/src/pulsecore/dbus-util.c index 903acadb..b45e6a6c 100644 --- a/src/pulsecore/dbus-util.c +++ b/src/pulsecore/dbus-util.c @@ -667,7 +667,7 @@ void pa_dbus_append_proplist(DBusMessageIter *iter, pa_proplist *proplist) { pa_assert_se(dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY, "{say}", &dict_iter)); - while ((key = pa_proplist_iterate(proplist, state))) { + while ((key = pa_proplist_iterate(proplist, &state))) { const void *value = NULL; size_t nbytes; diff --git a/src/pulsecore/hook-list.c b/src/pulsecore/hook-list.c index a00116d1..d9b9917d 100644 --- a/src/pulsecore/hook-list.c +++ b/src/pulsecore/hook-list.c @@ -97,7 +97,7 @@ pa_hook_result_t pa_hook_fire(pa_hook *hook, void *data) { hook->n_firing ++; - for (slot = hook->slots; slot; slot = slot->next) { + PA_LLIST_FOREACH(slot, hook->slots) { if (slot->dead) continue; diff --git a/src/pulsecore/lock-autospawn.c b/src/pulsecore/lock-autospawn.c index 4436974d..c0df7938 100644 --- a/src/pulsecore/lock-autospawn.c +++ b/src/pulsecore/lock-autospawn.c @@ -55,10 +55,16 @@ static pa_mutex *mutex; static unsigned n_ref = 0; static int lock_fd = -1; static pa_mutex *lock_fd_mutex = NULL; -static pa_bool_t taken = FALSE; -static pa_thread *thread; +static pa_thread *thread = NULL; static int pipe_fd[2] = { -1, -1 }; +static enum { + STATE_IDLE, + STATE_OWNING, + STATE_TAKEN, + STATE_FAILED +} state = STATE_IDLE; + static void destroy_mutex(void) PA_GCC_DESTRUCTOR; static int ref(void) { @@ -67,15 +73,16 @@ static int ref(void) { pa_assert(pipe_fd[0] >= 0); pa_assert(pipe_fd[1] >= 0); + pa_assert(lock_fd_mutex); n_ref++; return 0; } - pa_assert(lock_fd < 0); pa_assert(!lock_fd_mutex); - pa_assert(!taken); + pa_assert(state == STATE_IDLE); + pa_assert(lock_fd < 0); pa_assert(!thread); pa_assert(pipe_fd[0] < 0); pa_assert(pipe_fd[1] < 0); @@ -83,14 +90,14 @@ static int ref(void) { if (pipe(pipe_fd) < 0) return -1; - lock_fd_mutex = pa_mutex_new(FALSE, FALSE); - pa_make_fd_cloexec(pipe_fd[0]); pa_make_fd_cloexec(pipe_fd[1]); pa_make_fd_nonblock(pipe_fd[1]); pa_make_fd_nonblock(pipe_fd[0]); + lock_fd_mutex = pa_mutex_new(FALSE, FALSE); + n_ref = 1; return 0; } @@ -107,15 +114,18 @@ static void unref(pa_bool_t after_fork) { if (n_ref > 0) return; - pa_assert(!taken); - if (thread) { pa_thread_free(thread); thread = NULL; } pa_mutex_lock(lock_fd_mutex); - if (lock_fd >= 0) { + + pa_assert(state != STATE_TAKEN); + + if (state == STATE_OWNING) { + + pa_assert(lock_fd >= 0); if (after_fork) pa_close(lock_fd); @@ -127,10 +137,12 @@ static void unref(pa_bool_t after_fork) { pa_unlock_lockfile(lf, lock_fd); pa_xfree(lf); - - lock_fd = -1; } } + + lock_fd = -1; + state = STATE_IDLE; + pa_mutex_unlock(lock_fd_mutex); pa_mutex_free(lock_fd_mutex); @@ -205,15 +217,24 @@ static void thread_func(void *u) { if (!(lf = pa_runtime_path(AUTOSPAWN_LOCK))) { pa_log_warn(_("Cannot access autospawn lock.")); - goto finish; + goto fail; } if ((fd = pa_lock_lockfile(lf)) < 0) - goto finish; + goto fail; pa_mutex_lock(lock_fd_mutex); - pa_assert(lock_fd < 0); + pa_assert(state == STATE_IDLE); lock_fd = fd; + state = STATE_OWNING; + pa_mutex_unlock(lock_fd_mutex); + + goto finish; + +fail: + pa_mutex_lock(lock_fd_mutex); + pa_assert(state == STATE_IDLE); + state = STATE_FAILED; pa_mutex_unlock(lock_fd_mutex); finish: @@ -238,12 +259,10 @@ static void create_mutex(void) { } static void destroy_mutex(void) { - if (mutex) pa_mutex_free(mutex); } - int pa_autospawn_lock_init(void) { int ret = -1; @@ -273,13 +292,18 @@ int pa_autospawn_lock_acquire(pa_bool_t block) { empty_pipe(); - if (lock_fd >= 0 && !taken) { - taken = TRUE; + if (state == STATE_OWNING) { + state = STATE_TAKEN; ret = 1; break; } - if (lock_fd < 0) + if (state == STATE_FAILED) { + ret = -1; + break; + } + + if (state == STATE_IDLE) if (start_thread() < 0) break; @@ -310,8 +334,8 @@ void pa_autospawn_lock_release(void) { pa_mutex_lock(mutex); pa_assert(n_ref >= 1); - pa_assert(taken); - taken = FALSE; + pa_assert(state == STATE_TAKEN); + state = STATE_OWNING; ping(); diff --git a/src/pulsecore/memblock.c b/src/pulsecore/memblock.c index 9a57895b..441b397b 100644 --- a/src/pulsecore/memblock.c +++ b/src/pulsecore/memblock.c @@ -96,6 +96,7 @@ struct pa_memimport_segment { unsigned n_blocks; }; +/* A collection of multiple segments */ struct pa_memimport { pa_mutex *mutex; @@ -257,7 +258,8 @@ 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"); + if (pa_log_ratelimit()) + pa_log_debug("Pool full"); pa_atomic_inc(&p->stat.n_pool_full); return NULL; } @@ -509,13 +511,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_assert_se(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 +530,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 +663,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 +674,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, - PA_UINT32_TO_PTR(b->per_type.imported.id)); + pa_assert_se(pa_hashmap_remove( + 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) { @@ -956,6 +962,11 @@ pa_memblock* pa_memimport_get(pa_memimport *i, uint32_t block_id, uint32_t shm_i pa_mutex_lock(i->mutex); + if ((b = pa_hashmap_get(i->blocks, PA_UINT32_TO_PTR(block_id)))) { + pa_memblock_ref(b); + goto finish; + } + if (pa_hashmap_size(i->blocks) >= PA_MEMIMPORT_SLOTS_MAX) goto finish; @@ -985,12 +996,11 @@ pa_memblock* pa_memimport_get(pa_memimport *i, uint32_t block_id, uint32_t shm_i seg->n_blocks++; + stat_add(b); + finish: pa_mutex_unlock(i->mutex); - if (b) - stat_add(b); - return b; } diff --git a/src/pulsecore/memblockq.c b/src/pulsecore/memblockq.c index 77f9efc9..32758be3 100644 --- a/src/pulsecore/memblockq.c +++ b/src/pulsecore/memblockq.c @@ -692,6 +692,12 @@ size_t pa_memblockq_get_minreq(pa_memblockq *bq) { return bq->minreq; } +size_t pa_memblockq_get_maxrewind(pa_memblockq *bq) { + pa_assert(bq); + + return bq->maxrewind; +} + int64_t pa_memblockq_get_read_index(pa_memblockq *bq) { pa_assert(bq); diff --git a/src/pulsecore/memblockq.h b/src/pulsecore/memblockq.h index 146d261b..587c364b 100644 --- a/src/pulsecore/memblockq.h +++ b/src/pulsecore/memblockq.h @@ -141,6 +141,9 @@ size_t pa_memblockq_get_prebuf(pa_memblockq *bq); /* Returns the minimal request value */ size_t pa_memblockq_get_minreq(pa_memblockq *bq); +/* Returns the maximal rewind value */ +size_t pa_memblockq_get_maxrewind(pa_memblockq *bq); + /* Return the base unit in bytes */ size_t pa_memblockq_get_base(pa_memblockq *bq); 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 #include #include +#include #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/namereg.c b/src/pulsecore/namereg.c index 046c87b2..d7d83c5e 100644 --- a/src/pulsecore/namereg.c +++ b/src/pulsecore/namereg.c @@ -167,26 +167,33 @@ void pa_namereg_unregister(pa_core *c, const char *name) { pa_assert_se(e = pa_hashmap_remove(c->namereg, name)); if (c->default_sink == e->data) { - pa_sink *new_default = pa_idxset_first(c->sinks, &idx); + pa_sink *new_default = NULL; - if (new_default == e->data) - new_default = pa_idxset_next(c->sinks, &idx); + /* FIXME: the selection here should be based priority values on + * the sinks */ + + PA_IDXSET_FOREACH(new_default, c->sinks, idx) { + if (new_default != e->data && PA_SINK_IS_LINKED(pa_sink_get_state(new_default))) + break; + } pa_namereg_set_default_sink(c, new_default); } else if (c->default_source == e->data) { - pa_source *new_default; + pa_source *new_default = NULL; - for (new_default = pa_idxset_first(c->sources, &idx); new_default; new_default = pa_idxset_next(c->sources, &idx)) { - if (new_default != e->data && !new_default->monitor_of) + /* First, try to find one that isn't a monitor */ + PA_IDXSET_FOREACH(new_default, c->sources, idx) { + if (new_default != e->data && !new_default->monitor_of && PA_SOURCE_IS_LINKED(pa_source_get_state(new_default))) break; } if (!new_default) { - new_default = pa_idxset_first(c->sources, &idx); - - if (new_default == e->data) - new_default = pa_idxset_next(c->sources, &idx); + /* Then, fallback to a monitor */ + PA_IDXSET_FOREACH(new_default, c->sources, idx) { + if (new_default != e->data && PA_SOURCE_IS_LINKED(pa_source_get_state(new_default))) + break; + } } pa_namereg_set_default_source(c, new_default); @@ -249,6 +256,9 @@ void* pa_namereg_get(pa_core *c, const char *name, pa_namereg_type_t type) { pa_sink* pa_namereg_set_default_sink(pa_core*c, pa_sink *s) { pa_assert(c); + if (s && !PA_SINK_IS_LINKED(pa_sink_get_state(s))) + return NULL; + if (c->default_sink != s) { c->default_sink = s; pa_subscription_post(c, PA_SUBSCRIPTION_EVENT_SERVER|PA_SUBSCRIPTION_EVENT_CHANGE, PA_INVALID_INDEX); @@ -260,6 +270,9 @@ pa_sink* pa_namereg_set_default_sink(pa_core*c, pa_sink *s) { pa_source* pa_namereg_set_default_source(pa_core*c, pa_source *s) { pa_assert(c); + if (s && !PA_SOURCE_IS_LINKED(pa_source_get_state(s))) + return NULL; + if (c->default_source != s) { c->default_source = s; pa_subscription_post(c, PA_SUBSCRIPTION_EVENT_SERVER|PA_SUBSCRIPTION_EVENT_CHANGE, PA_INVALID_INDEX); @@ -270,14 +283,47 @@ pa_source* pa_namereg_set_default_source(pa_core*c, pa_source *s) { /* XXX: After removing old functionality, has this function become useless? */ pa_sink *pa_namereg_get_default_sink(pa_core *c) { + pa_sink *s; + uint32_t idx; + pa_assert(c); - return c->default_sink; + if (!c->default_sink || PA_SINK_IS_LINKED(pa_sink_get_state(c->default_sink))) + return c->default_sink; + + /* The old default sink has become unlinked, set a new one. */ + + /* FIXME: the selection here should be based priority values on + * the sinks */ + + PA_IDXSET_FOREACH(s, c->sinks, idx) + if (PA_SINK_IS_LINKED(pa_sink_get_state(s))) + return pa_namereg_set_default_sink(c, s); + + return pa_namereg_set_default_sink(c, NULL); } /* XXX: After removing old functionality, has this function become useless? */ pa_source *pa_namereg_get_default_source(pa_core *c) { + pa_source *s; + uint32_t idx; + pa_assert(c); - return c->default_source; + if (!c->default_source || PA_SOURCE_IS_LINKED(pa_source_get_state(c->default_source))) + return c->default_source; + + /* The old default source has become unlinked, set a new one. */ + + /* First, try to find one that isn't a monitor */ + PA_IDXSET_FOREACH(s, c->sources, idx) + if (!s->monitor_of && PA_SOURCE_IS_LINKED(pa_source_get_state(s))) + return pa_namereg_set_default_source(c, s); + + /* Then, fallback to a monitor */ + PA_IDXSET_FOREACH(s, c->sources, idx) + if (PA_SOURCE_IS_LINKED(pa_source_get_state(s))) + return pa_namereg_set_default_source(c, s); + + return pa_namereg_set_default_source(c, NULL); } diff --git a/src/pulsecore/proplist-util.c b/src/pulsecore/proplist-util.c index d9769bc7..23864bcb 100644 --- a/src/pulsecore/proplist-util.c +++ b/src/pulsecore/proplist-util.c @@ -186,10 +186,12 @@ void pa_init_proplist(pa_proplist *p) { } if (!pa_proplist_contains(p, PA_PROP_APPLICATION_PROCESS_BINARY)) { - char t[PATH_MAX]; - if (pa_get_binary_name(t, sizeof(t))) { + char *t; + + if ((t = pa_get_binary_name_malloc())) { char *c = pa_utf8_filter(t); pa_proplist_sets(p, PA_PROP_APPLICATION_PROCESS_BINARY, c); + pa_xfree(t); pa_xfree(c); } } diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c index cda7ef57..280707e2 100644 --- a/src/pulsecore/protocol-native.c +++ b/src/pulsecore/protocol-native.c @@ -762,6 +762,7 @@ static int playback_stream_process_msg(pa_msgobject *o, int code, void*userdata, return -1; switch (code) { + case PLAYBACK_STREAM_MESSAGE_REQUEST_DATA: { pa_tagstruct *t; int l = 0; @@ -1130,6 +1131,12 @@ static void playback_stream_request_bytes(playback_stream *s) { m = pa_memblockq_pop_missing(s->memblockq); + /* pa_log("request_bytes(%lu) (tlength=%lu minreq=%lu length=%lu)", */ + /* (unsigned long) m, */ + /* pa_memblockq_get_tlength(s->memblockq), */ + /* pa_memblockq_get_minreq(s->memblockq), */ + /* pa_memblockq_get_length(s->memblockq)); */ + if (m <= 0) return; @@ -1143,7 +1150,6 @@ static void playback_stream_request_bytes(playback_stream *s) { pa_asyncmsgq_post(pa_thread_mq_get()->outq, PA_MSGOBJECT(s), PLAYBACK_STREAM_MESSAGE_REQUEST_DATA, NULL, 0, NULL, NULL); } - /* Called from main context */ static void playback_stream_send_killed(playback_stream *p) { pa_tagstruct *t; @@ -1345,7 +1351,9 @@ static int sink_input_process_msg(pa_msgobject *o, int code, void *userdata, int /* pa_log("sink input post: %lu %lli", (unsigned long) chunk->length, (long long) windex); */ if (pa_memblockq_push_align(s->memblockq, chunk) < 0) { - pa_log_warn("Failed to push data into queue"); + + if (pa_log_ratelimit()) + pa_log_warn("Failed to push data into queue"); pa_asyncmsgq_post(pa_thread_mq_get()->outq, PA_MSGOBJECT(s), PLAYBACK_STREAM_MESSAGE_OVERFLOW, NULL, 0, NULL, NULL); pa_memblockq_seek(s->memblockq, (int64_t) chunk->length, PA_SEEK_RELATIVE, TRUE); } @@ -1617,6 +1625,9 @@ static void sink_input_moving_cb(pa_sink_input *i, pa_sink *dest) { s = PLAYBACK_STREAM(i->userdata); playback_stream_assert_ref(s); + if (!dest) + return; + fix_playback_buffer_attr(s); pa_memblockq_apply_attr(s->memblockq, &s->buffer_attr); pa_memblockq_get_attr(s->memblockq, &s->buffer_attr); @@ -1752,6 +1763,9 @@ static void source_output_moving_cb(pa_source_output *o, pa_source *dest) { s = RECORD_STREAM(o->userdata); record_stream_assert_ref(s); + if (!dest) + return; + fix_record_buffer_attr_pre(s); pa_memblockq_set_maxlength(s->memblockq, s->buffer_attr.maxlength); pa_memblockq_get_attr(s->memblockq, &s->buffer_attr); @@ -1951,7 +1965,7 @@ static void command_create_playback_stream(pa_pdispatch *pd, uint32_t command, u (no_move ? PA_SINK_INPUT_DONT_MOVE : 0) | (variable_rate ? PA_SINK_INPUT_VARIABLE_RATE : 0) | (dont_inhibit_auto_suspend ? PA_SINK_INPUT_DONT_INHIBIT_AUTO_SUSPEND : 0) | - (fail_on_suspend ? PA_SINK_INPUT_FAIL_ON_SUSPEND : 0); + (fail_on_suspend ? PA_SINK_INPUT_NO_CREATE_ON_SUSPEND|PA_SINK_INPUT_KILL_ON_SUSPEND : 0); /* Only since protocol version 15 there's a seperate muted_set * flag. For older versions we synthesize it here */ @@ -2207,7 +2221,7 @@ static void command_create_record_stream(pa_pdispatch *pd, uint32_t command, uin (no_move ? PA_SOURCE_OUTPUT_DONT_MOVE : 0) | (variable_rate ? PA_SOURCE_OUTPUT_VARIABLE_RATE : 0) | (dont_inhibit_auto_suspend ? PA_SOURCE_OUTPUT_DONT_INHIBIT_AUTO_SUSPEND : 0) | - (fail_on_suspend ? PA_SOURCE_OUTPUT_FAIL_ON_SUSPEND : 0); + (fail_on_suspend ? PA_SOURCE_OUTPUT_NO_CREATE_ON_SUSPEND|PA_SOURCE_OUTPUT_KILL_ON_SUSPEND : 0); s = record_stream_new(c, source, &ss, &map, peak_detect, &attr, flags, p, adjust_latency, direct_on_input, early_requests, &ret); pa_proplist_free(p); @@ -2550,7 +2564,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 && @@ -2689,7 +2703,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); @@ -3321,6 +3337,7 @@ static void command_set_volume( pa_source *source = NULL; pa_sink_input *si = NULL; const char *name = NULL; + const char *client_name; pa_native_connection_assert_ref(c); pa_assert(t); @@ -3367,12 +3384,20 @@ static void command_set_volume( CHECK_VALIDITY(c->pstream, si || sink || source, tag, PA_ERR_NOENTITY); - if (sink) + client_name = pa_strnull(pa_proplist_gets(c->client->proplist, PA_PROP_APPLICATION_PROCESS_BINARY)); + + if (sink) { + pa_log_debug("Client %s changes volume of sink %s.", client_name, sink->name); pa_sink_set_volume(sink, &volume, TRUE, TRUE, TRUE, TRUE); - else if (source) + } else if (source) { + pa_log_debug("Client %s changes volume of sink %s.", client_name, source->name); pa_source_set_volume(source, &volume, TRUE); - else if (si) + } else if (si) { + pa_log_debug("Client %s changes volume of sink %s.", + client_name, + pa_strnull(pa_proplist_gets(si->proplist, PA_PROP_MEDIA_NAME))); pa_sink_input_set_volume(si, &volume, TRUE, TRUE); + } pa_pstream_send_simple_ack(c->pstream, tag); } diff --git a/src/pulsecore/resampler.c b/src/pulsecore/resampler.c index 17fb8480..59e0a0c1 100644 --- a/src/pulsecore/resampler.c +++ b/src/pulsecore/resampler.c @@ -347,13 +347,17 @@ void pa_resampler_set_output_rate(pa_resampler *r, uint32_t rate) { size_t pa_resampler_request(pa_resampler *r, size_t out_length) { pa_assert(r); - return (((out_length / r->o_fz)*r->i_ss.rate)/r->o_ss.rate) * r->i_fz; + /* Let's round up here */ + + return (((((out_length + r->o_fz-1) / r->o_fz) * r->i_ss.rate) + r->o_ss.rate-1) / r->o_ss.rate) * r->i_fz; } size_t pa_resampler_result(pa_resampler *r, size_t in_length) { pa_assert(r); - return (((in_length / r->i_fz)*r->o_ss.rate)/r->i_ss.rate) * r->o_fz; + /* Let's round up here */ + + return (((((in_length + r->i_fz-1) / r->i_fz) * r->o_ss.rate) + r->i_ss.rate-1) / r->i_ss.rate) * r->o_fz; } size_t pa_resampler_max_block_size(pa_resampler *r) { diff --git a/src/pulsecore/shm.c b/src/pulsecore/shm.c index 6e428426..fbf777a4 100644 --- a/src/pulsecore/shm.c +++ b/src/pulsecore/shm.c @@ -60,7 +60,8 @@ #define MADV_REMOVE 9 #endif -#define MAX_SHM_SIZE (PA_ALIGN(1024*1024*64)) +/* 1 GiB at max */ +#define MAX_SHM_SIZE (PA_ALIGN(1024*1024*1024)) #ifdef __linux__ /* On Linux we know that the shared memory blocks are files in diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index a5f96351..f6d9ac73 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -51,7 +51,7 @@ static void sink_input_free(pa_object *o); pa_sink_input_new_data* pa_sink_input_new_data_init(pa_sink_input_new_data *data) { pa_assert(data); - memset(data, 0, sizeof(*data)); + pa_zero(*data); data->resample_method = PA_RESAMPLER_INVALID; data->proplist = pa_proplist_new(); @@ -114,6 +114,7 @@ static void reset_callbacks(pa_sink_input *i) { i->update_max_request = NULL; i->update_sink_requested_latency = NULL; i->update_sink_latency_range = NULL; + i->update_sink_fixed_latency = NULL; i->attach = NULL; i->detach = NULL; i->suspend = NULL; @@ -142,6 +143,7 @@ int pa_sink_input_new( pa_assert(_i); pa_assert(core); pa_assert(data); + pa_assert_ctl_context(); if (data->client) pa_proplist_update(data->proplist, PA_UPDATE_MERGE, data->client->proplist); @@ -220,7 +222,7 @@ int pa_sink_input_new( if ((r = pa_hook_fire(&core->hooks[PA_CORE_HOOK_SINK_INPUT_FIXATE], data)) < 0) return r; - if ((flags & PA_SINK_INPUT_FAIL_ON_SUSPEND) && + if ((flags & PA_SINK_INPUT_NO_CREATE_ON_SUSPEND) && pa_sink_get_state(data->sink) == PA_SINK_SUSPENDED) { pa_log_warn("Failed to create sink input: sink is suspended."); return -PA_ERR_BADSTATE; @@ -348,6 +350,7 @@ int pa_sink_input_new( /* Called from main context */ static void update_n_corked(pa_sink_input *i, pa_sink_input_state_t state) { pa_assert(i); + pa_assert_ctl_context(); if (!i->sink) return; @@ -362,6 +365,7 @@ static void update_n_corked(pa_sink_input *i, pa_sink_input_state_t state) { static void sink_input_set_state(pa_sink_input *i, pa_sink_input_state_t state) { pa_sink_input *ssync; pa_assert(i); + pa_assert_ctl_context(); if (state == PA_SINK_INPUT_DRAINED) state = PA_SINK_INPUT_RUNNING; @@ -400,7 +404,9 @@ static void sink_input_set_state(pa_sink_input *i, pa_sink_input_state_t state) void pa_sink_input_unlink(pa_sink_input *i) { pa_bool_t linked; pa_source_output *o, *p = NULL; + pa_assert(i); + pa_assert_ctl_context(); /* See pa_sink_unlink() for a couple of comments how this function * works */ @@ -471,6 +477,7 @@ static void sink_input_free(pa_object *o) { pa_sink_input* i = PA_SINK_INPUT(o); pa_assert(i); + pa_assert_ctl_context(); pa_assert(pa_sink_input_refcnt(i) == 0); if (PA_SINK_INPUT_IS_LINKED(i->state)) @@ -502,7 +509,9 @@ static void sink_input_free(pa_object *o) { /* Called from main context */ void pa_sink_input_put(pa_sink_input *i) { pa_sink_input_state_t state; + pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(i->state == PA_SINK_INPUT_INIT); @@ -538,6 +547,7 @@ void pa_sink_input_put(pa_sink_input *i) { /* Called from main context */ void pa_sink_input_kill(pa_sink_input*i) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); i->kill(i); @@ -548,6 +558,7 @@ pa_usec_t pa_sink_input_get_latency(pa_sink_input *i, pa_usec_t *sink_latency) { pa_usec_t r[2] = { 0, 0 }; pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); pa_assert_se(pa_asyncmsgq_send(i->sink->asyncmsgq, PA_MSGOBJECT(i), PA_SINK_INPUT_MESSAGE_GET_LATENCY, r, 0, NULL) == 0); @@ -569,6 +580,7 @@ void pa_sink_input_peek(pa_sink_input *i, size_t slength /* in sink frames */, p size_t ilength; pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); pa_assert(PA_SINK_INPUT_IS_LINKED(i->thread_info.state)); pa_assert(pa_frame_aligned(slength, &i->sink->sample_spec)); pa_assert(chunk); @@ -706,8 +718,9 @@ void pa_sink_input_peek(pa_sink_input *i, size_t slength /* in sink frames */, p /* Called from thread context */ void pa_sink_input_drop(pa_sink_input *i, size_t nbytes /* in sink sample spec */) { - pa_sink_input_assert_ref(i); + pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); pa_assert(PA_SINK_INPUT_IS_LINKED(i->thread_info.state)); pa_assert(pa_frame_aligned(nbytes, &i->sink->sample_spec)); pa_assert(nbytes > 0); @@ -721,8 +734,9 @@ void pa_sink_input_drop(pa_sink_input *i, size_t nbytes /* in sink sample spec * void pa_sink_input_process_rewind(pa_sink_input *i, size_t nbytes /* in sink sample spec */) { size_t lbq; pa_bool_t called = FALSE; - pa_sink_input_assert_ref(i); + pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); pa_assert(PA_SINK_INPUT_IS_LINKED(i->thread_info.state)); pa_assert(pa_frame_aligned(nbytes, &i->sink->sample_spec)); @@ -789,9 +803,29 @@ void pa_sink_input_process_rewind(pa_sink_input *i, size_t nbytes /* in sink sam i->thread_info.dont_rewind_render = FALSE; } +/* Called from thread context */ +size_t pa_sink_input_get_max_rewind(pa_sink_input *i) { + pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); + + return i->thread_info.resampler ? pa_resampler_request(i->thread_info.resampler, i->sink->thread_info.max_rewind) : i->sink->thread_info.max_rewind; +} + +/* Called from thread context */ +size_t pa_sink_input_get_max_request(pa_sink_input *i) { + pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); + + /* We're not verifying the status here, to allow this to be called + * in the state change handler between _INIT and _RUNNING */ + + return i->thread_info.resampler ? pa_resampler_request(i->thread_info.resampler, i->sink->thread_info.max_request) : i->sink->thread_info.max_request; +} + /* Called from thread context */ void pa_sink_input_update_max_rewind(pa_sink_input *i, size_t nbytes /* in the sink's sample spec */) { pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); pa_assert(PA_SINK_INPUT_IS_LINKED(i->thread_info.state)); pa_assert(pa_frame_aligned(nbytes, &i->sink->sample_spec)); @@ -804,6 +838,7 @@ void pa_sink_input_update_max_rewind(pa_sink_input *i, size_t nbytes /* in the /* Called from thread context */ void pa_sink_input_update_max_request(pa_sink_input *i, size_t nbytes /* in the sink's sample spec */) { pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); pa_assert(PA_SINK_INPUT_IS_LINKED(i->thread_info.state)); pa_assert(pa_frame_aligned(nbytes, &i->sink->sample_spec)); @@ -814,15 +849,16 @@ void pa_sink_input_update_max_request(pa_sink_input *i, size_t nbytes /* in the /* Called from thread context */ pa_usec_t pa_sink_input_set_requested_latency_within_thread(pa_sink_input *i, pa_usec_t usec) { pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); if (!(i->sink->flags & PA_SINK_DYNAMIC_LATENCY)) - usec = i->sink->fixed_latency; + usec = i->sink->thread_info.fixed_latency; if (usec != (pa_usec_t) -1) usec = PA_CLAMP(usec, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency); i->thread_info.requested_sink_latency = usec; - pa_sink_invalidate_requested_latency(i->sink); + pa_sink_invalidate_requested_latency(i->sink, TRUE); return usec; } @@ -830,6 +866,7 @@ pa_usec_t pa_sink_input_set_requested_latency_within_thread(pa_sink_input *i, pa /* Called from main context */ pa_usec_t pa_sink_input_set_requested_latency(pa_sink_input *i, pa_usec_t usec) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); if (PA_SINK_INPUT_IS_LINKED(i->state) && i->sink) { pa_assert_se(pa_asyncmsgq_send(i->sink->asyncmsgq, PA_MSGOBJECT(i), PA_SINK_INPUT_MESSAGE_SET_REQUESTED_LATENCY, &usec, 0, NULL) == 0); @@ -841,7 +878,7 @@ pa_usec_t pa_sink_input_set_requested_latency(pa_sink_input *i, pa_usec_t usec) if (i->sink) { if (!(i->sink->flags & PA_SINK_DYNAMIC_LATENCY)) - usec = i->sink->fixed_latency; + usec = pa_sink_get_fixed_latency(i->sink); if (usec != (pa_usec_t) -1) { pa_usec_t min_latency, max_latency; @@ -858,6 +895,7 @@ pa_usec_t pa_sink_input_set_requested_latency(pa_sink_input *i, pa_usec_t usec) /* Called from main context */ pa_usec_t pa_sink_input_get_requested_latency(pa_sink_input *i) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); if (PA_SINK_INPUT_IS_LINKED(i->state) && i->sink) { pa_usec_t usec = 0; @@ -876,6 +914,7 @@ void pa_sink_input_set_volume(pa_sink_input *i, const pa_cvolume *volume, pa_boo pa_cvolume v; pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); pa_assert(volume); pa_assert(pa_cvolume_valid(volume)); @@ -922,6 +961,7 @@ void pa_sink_input_set_volume(pa_sink_input *i, const pa_cvolume *volume, pa_boo /* Called from main context */ pa_cvolume *pa_sink_input_get_volume(pa_sink_input *i, pa_cvolume *volume, pa_bool_t absolute) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); if ((i->sink->flags & PA_SINK_FLAT_VOLUME) && !absolute) { @@ -939,6 +979,7 @@ pa_cvolume *pa_sink_input_get_relative_volume(pa_sink_input *i, pa_cvolume *v) { unsigned c; pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(v); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); @@ -959,6 +1000,7 @@ void pa_sink_input_set_relative_volume(pa_sink_input *i, const pa_cvolume *v) { pa_cvolume _v; pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); pa_assert(!v || pa_cvolume_compatible(v, &i->sample_spec)); @@ -985,8 +1027,8 @@ void pa_sink_input_set_relative_volume(pa_sink_input *i, const pa_cvolume *v) { /* Called from main context */ void pa_sink_input_set_mute(pa_sink_input *i, pa_bool_t mute, pa_bool_t save) { - pa_assert(i); pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); if (!i->muted == !mute) @@ -1002,6 +1044,7 @@ void pa_sink_input_set_mute(pa_sink_input *i, pa_bool_t mute, pa_bool_t save) { /* Called from main context */ pa_bool_t pa_sink_input_get_mute(pa_sink_input *i) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); return i->muted; @@ -1010,6 +1053,7 @@ pa_bool_t pa_sink_input_get_mute(pa_sink_input *i) { /* Called from main thread */ void pa_sink_input_update_proplist(pa_sink_input *i, pa_update_mode_t mode, pa_proplist *p) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); if (p) pa_proplist_update(i->proplist, mode, p); @@ -1023,6 +1067,7 @@ void pa_sink_input_update_proplist(pa_sink_input *i, pa_update_mode_t mode, pa_p /* Called from main context */ void pa_sink_input_cork(pa_sink_input *i, pa_bool_t b) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); sink_input_set_state(i, b ? PA_SINK_INPUT_CORKED : PA_SINK_INPUT_RUNNING); @@ -1031,6 +1076,7 @@ void pa_sink_input_cork(pa_sink_input *i, pa_bool_t b) { /* Called from main context */ int pa_sink_input_set_rate(pa_sink_input *i, uint32_t rate) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); pa_return_val_if_fail(i->thread_info.resampler, -PA_ERR_BADSTATE); @@ -1049,13 +1095,14 @@ int pa_sink_input_set_rate(pa_sink_input *i, uint32_t rate) { void pa_sink_input_set_name(pa_sink_input *i, const char *name) { const char *old; pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); if (!name && !pa_proplist_contains(i->proplist, PA_PROP_MEDIA_NAME)) return; old = pa_proplist_gets(i->proplist, PA_PROP_MEDIA_NAME); - if (old && name && !strcmp(old, name)) + if (old && name && pa_streq(old, name)) return; if (name) @@ -1072,6 +1119,7 @@ void pa_sink_input_set_name(pa_sink_input *i, const char *name) { /* Called from main context */ pa_resample_method_t pa_sink_input_get_resample_method(pa_sink_input *i) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); return i->actual_resample_method; } @@ -1079,6 +1127,7 @@ pa_resample_method_t pa_sink_input_get_resample_method(pa_sink_input *i) { /* Called from main context */ pa_bool_t pa_sink_input_may_move(pa_sink_input *i) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); if (i->flags & PA_SINK_INPUT_DONT_MOVE) @@ -1095,6 +1144,7 @@ pa_bool_t pa_sink_input_may_move(pa_sink_input *i) { /* Called from main context */ pa_bool_t pa_sink_input_may_move_to(pa_sink_input *i, pa_sink *dest) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); pa_sink_assert_ref(dest); @@ -1123,6 +1173,7 @@ int pa_sink_input_start_move(pa_sink_input *i) { int r; pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); pa_assert(i->sink); @@ -1177,6 +1228,7 @@ int pa_sink_input_finish_move(pa_sink_input *i, pa_sink *dest, pa_bool_t save) { pa_resampler *new_resampler; pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); pa_assert(!i->sink); pa_sink_assert_ref(dest); @@ -1266,11 +1318,30 @@ int pa_sink_input_finish_move(pa_sink_input *i, pa_sink *dest, pa_bool_t save) { return 0; } +/* Called from main context */ +void pa_sink_input_fail_move(pa_sink_input *i) { + + pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); + pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); + pa_assert(!i->sink); + + /* Check if someone wants this sink input? */ + if (pa_hook_fire(&i->core->hooks[PA_CORE_HOOK_SINK_INPUT_MOVE_FAIL], i) == PA_HOOK_STOP) + return; + + if (i->moving) + i->moving(i, NULL); + + pa_sink_input_kill(i); +} + /* Called from main context */ int pa_sink_input_move_to(pa_sink_input *i, pa_sink *dest, pa_bool_t save) { int r; pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(PA_SINK_INPUT_IS_LINKED(i->state)); pa_assert(i->sink); pa_sink_assert_ref(dest); @@ -1289,6 +1360,7 @@ int pa_sink_input_move_to(pa_sink_input *i, pa_sink *dest, pa_bool_t save) { } if ((r = pa_sink_input_finish_move(i, dest, save)) < 0) { + pa_sink_input_fail_move(i); pa_sink_input_unref(i); return r; } @@ -1301,7 +1373,9 @@ int pa_sink_input_move_to(pa_sink_input *i, pa_sink *dest, pa_bool_t save) { /* Called from IO thread context */ void pa_sink_input_set_state_within_thread(pa_sink_input *i, pa_sink_input_state_t state) { pa_bool_t corking, uncorking; + pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); if (state == i->thread_info.state) return; @@ -1411,6 +1485,7 @@ int pa_sink_input_process_msg(pa_msgobject *o, int code, void *userdata, int64_t /* Called from main thread */ pa_sink_input_state_t pa_sink_input_get_state(pa_sink_input *i) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); if (i->state == PA_SINK_INPUT_RUNNING || i->state == PA_SINK_INPUT_DRAINED) return pa_atomic_load(&i->thread_info.drained) ? PA_SINK_INPUT_DRAINED : PA_SINK_INPUT_RUNNING; @@ -1421,6 +1496,7 @@ pa_sink_input_state_t pa_sink_input_get_state(pa_sink_input *i) { /* Called from IO context */ pa_bool_t pa_sink_input_safe_to_remove(pa_sink_input *i) { pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); if (PA_SINK_INPUT_IS_LINKED(i->thread_info.state)) return pa_memblockq_is_empty(i->thread_info.render_memblockq); @@ -1445,6 +1521,7 @@ void pa_sink_input_request_rewind(pa_sink_input *i, size_t nbytes /* in our sam * rewound. */ pa_sink_input_assert_ref(i); + pa_sink_input_assert_io_context(i); nbytes = PA_MAX(i->thread_info.rewrite_nbytes, nbytes); @@ -1511,8 +1588,11 @@ void pa_sink_input_request_rewind(pa_sink_input *i, size_t nbytes /* in our sam /* Called from main context */ pa_memchunk* pa_sink_input_get_silence(pa_sink_input *i, pa_memchunk *ret) { pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(ret); + /* FIXME: Shouldn't access resampler object from main context! */ + pa_silence_memchunk_get( &i->core->silence_cache, i->core->mempool, @@ -1529,6 +1609,7 @@ void pa_sink_input_send_event(pa_sink_input *i, const char *event, pa_proplist * pa_sink_input_send_event_hook_data hook_data; pa_sink_input_assert_ref(i); + pa_assert_ctl_context(); pa_assert(event); if (!i->send_event) diff --git a/src/pulsecore/sink-input.h b/src/pulsecore/sink-input.h index 98144d41..b5502c45 100644 --- a/src/pulsecore/sink-input.h +++ b/src/pulsecore/sink-input.h @@ -42,6 +42,7 @@ typedef enum pa_sink_input_state { PA_SINK_INPUT_RUNNING, /*< The stream is alive and kicking */ PA_SINK_INPUT_CORKED, /*< The stream was corked on user request */ PA_SINK_INPUT_UNLINKED /*< The stream is dead */ + /* FIXME: we need a state for MOVING here */ } pa_sink_input_state_t; static inline pa_bool_t PA_SINK_INPUT_IS_LINKED(pa_sink_input_state_t x) { @@ -58,7 +59,8 @@ typedef enum pa_sink_input_flags { PA_SINK_INPUT_FIX_RATE = 64, PA_SINK_INPUT_FIX_CHANNELS = 128, PA_SINK_INPUT_DONT_INHIBIT_AUTO_SUSPEND = 256, - PA_SINK_INPUT_FAIL_ON_SUSPEND = 512 + PA_SINK_INPUT_NO_CREATE_ON_SUSPEND = 512, + PA_SINK_INPUT_KILL_ON_SUSPEND = 1024 } pa_sink_input_flags_t; struct pa_sink_input { @@ -137,6 +139,10 @@ struct pa_sink_input { * from IO context. */ void (*update_sink_latency_range) (pa_sink_input *i); /* may be NULL */ + /* Called whenver the fixed latency of the sink changes, if there + * is one. Called from IO context. */ + void (*update_sink_fixed_latency) (pa_sink_input *i); /* may be NULL */ + /* If non-NULL this function is called when the input is first * connected to a sink or when the rtpoll/asyncmsgq fields * change. You usually don't need to implement this function @@ -159,7 +165,9 @@ struct pa_sink_input { /* If non-NULL called whenever the sink input is moved to a new * sink. Called from main context after the sink input has been * detached from the old sink and before it has been attached to - * the new sink. */ + * the new sink. If dest is NULL the move was executed in two + * phases and the second one failed; the stream will be destroyed + * after this call. */ void (*moving) (pa_sink_input *i, pa_sink *dest); /* may be NULL */ /* Supposed to unlink and destroy this stream. Called from main @@ -303,6 +311,10 @@ void pa_sink_input_cork(pa_sink_input *i, pa_bool_t b); int pa_sink_input_set_rate(pa_sink_input *i, uint32_t rate); +/* This returns the sink's fields converted into out sample type */ +size_t pa_sink_input_get_max_rewind(pa_sink_input *i); +size_t pa_sink_input_get_max_request(pa_sink_input *i); + /* Callable by everyone from main thread*/ /* External code may request disconnection with this function */ @@ -333,6 +345,7 @@ pa_bool_t pa_sink_input_may_move_to(pa_sink_input *i, pa_sink *dest); /* may thi * new sink */ int pa_sink_input_start_move(pa_sink_input *i); int pa_sink_input_finish_move(pa_sink_input *i, pa_sink *dest, pa_bool_t save); +void pa_sink_input_fail_move(pa_sink_input *i); pa_sink_input_state_t pa_sink_input_get_state(pa_sink_input *i); @@ -359,4 +372,7 @@ pa_memchunk* pa_sink_input_get_silence(pa_sink_input *i, pa_memchunk *ret); /* To be used by sink.c only */ void pa_sink_input_set_relative_volume(pa_sink_input *i, const pa_cvolume *v); +#define pa_sink_input_assert_io_context(s) \ + pa_assert(pa_thread_mq_get() || !PA_SINK_INPUT_IS_LINKED((s)->state)) + #endif diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c index d8f3c7d1..717584f2 100644 --- a/src/pulsecore/sink.c +++ b/src/pulsecore/sink.c @@ -59,7 +59,7 @@ static void sink_free(pa_object *s); pa_sink_new_data* pa_sink_new_data_init(pa_sink_new_data *data) { pa_assert(data); - memset(data, 0, sizeof(*data)); + pa_zero(*data); data->proplist = pa_proplist_new(); return data; @@ -177,6 +177,7 @@ pa_sink* pa_sink_new( pa_assert(core); pa_assert(data); pa_assert(data->name); + pa_assert_ctl_context(); s = pa_msgobject_new(pa_sink); @@ -255,13 +256,10 @@ pa_sink* pa_sink_new( s->muted = data->muted; s->refresh_volume = s->refresh_muted = FALSE; - s->fixed_latency = flags & PA_SINK_DYNAMIC_LATENCY ? 0 : DEFAULT_FIXED_LATENCY; - reset_callbacks(s); s->userdata = NULL; s->asyncmsgq = NULL; - s->rtpoll = NULL; /* As a minor optimization we just steal the list instead of * copying it here */ @@ -294,6 +292,7 @@ pa_sink* pa_sink_new( &s->sample_spec, 0); + s->thread_info.rtpoll = NULL; s->thread_info.inputs = pa_hashmap_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); s->thread_info.soft_volume = s->soft_volume; s->thread_info.soft_muted = s->muted; @@ -306,7 +305,9 @@ pa_sink* pa_sink_new( s->thread_info.requested_latency = 0; s->thread_info.min_latency = ABSOLUTE_MIN_LATENCY; s->thread_info.max_latency = ABSOLUTE_MAX_LATENCY; + s->thread_info.fixed_latency = flags & PA_SINK_DYNAMIC_LATENCY ? 0 : DEFAULT_FIXED_LATENCY; + /* FIXME: This should probably be moved to pa_sink_put() */ pa_assert_se(pa_idxset_put(core->sinks, s, &s->index) >= 0); if (s->card) @@ -348,6 +349,7 @@ pa_sink* pa_sink_new( s->monitor_source->monitor_of = s; pa_source_set_latency_range(s->monitor_source, s->thread_info.min_latency, s->thread_info.max_latency); + pa_source_set_fixed_latency(s->monitor_source, s->thread_info.fixed_latency); pa_source_set_max_rewind(s->monitor_source, s->thread_info.max_rewind); return s; @@ -360,6 +362,7 @@ static int sink_set_state(pa_sink *s, pa_sink_state_t state) { pa_sink_state_t original_state; pa_assert(s); + pa_assert_ctl_context(); if (s->state == state) return 0; @@ -396,9 +399,9 @@ static int sink_set_state(pa_sink *s, pa_sink_state_t state) { /* We're suspending or resuming, tell everyone about it */ - for (i = PA_SINK_INPUT(pa_idxset_first(s->inputs, &idx)); i; i = PA_SINK_INPUT(pa_idxset_next(s->inputs, &idx))) + PA_IDXSET_FOREACH(i, s->inputs, idx) if (s->state == PA_SINK_SUSPENDED && - (i->flags & PA_SINK_INPUT_FAIL_ON_SUSPEND)) + (i->flags & PA_SINK_INPUT_KILL_ON_SUSPEND)) pa_sink_input_kill(i); else if (i->suspend) i->suspend(i, state == PA_SINK_SUSPENDED); @@ -413,12 +416,12 @@ static int sink_set_state(pa_sink *s, pa_sink_state_t state) { /* Called from main context */ void pa_sink_put(pa_sink* s) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(s->state == PA_SINK_INIT); /* The following fields must be initialized properly when calling _put() */ pa_assert(s->asyncmsgq); - pa_assert(s->rtpoll); pa_assert(s->thread_info.min_latency <= s->thread_info.max_latency); /* Generally, flags should be initialized via pa_sink_new(). As a @@ -436,11 +439,11 @@ void pa_sink_put(pa_sink* s) { pa_assert((s->flags & PA_SINK_HW_VOLUME_CTRL) || (s->base_volume == PA_VOLUME_NORM && s->flags & PA_SINK_DECIBEL_VOLUME)); pa_assert(!(s->flags & PA_SINK_DECIBEL_VOLUME) || s->n_volume_steps == PA_VOLUME_NORM+1); - pa_assert(!(s->flags & PA_SINK_DYNAMIC_LATENCY) == (s->fixed_latency != 0)); + pa_assert(!(s->flags & PA_SINK_DYNAMIC_LATENCY) == (s->thread_info.fixed_latency != 0)); pa_assert(!(s->flags & PA_SINK_LATENCY) == !(s->monitor_source->flags & PA_SOURCE_LATENCY)); pa_assert(!(s->flags & PA_SINK_DYNAMIC_LATENCY) == !(s->monitor_source->flags & PA_SOURCE_DYNAMIC_LATENCY)); - pa_assert(s->monitor_source->fixed_latency == s->fixed_latency); + pa_assert(s->monitor_source->thread_info.fixed_latency == s->thread_info.fixed_latency); pa_assert(s->monitor_source->thread_info.min_latency == s->thread_info.min_latency); pa_assert(s->monitor_source->thread_info.max_latency == s->thread_info.max_latency); @@ -458,6 +461,7 @@ void pa_sink_unlink(pa_sink* s) { pa_sink_input *i, *j = NULL; pa_assert(s); + pa_assert_ctl_context(); /* Please note that pa_sink_unlink() does more than simply * reversing pa_sink_put(). It also undoes the registrations @@ -507,6 +511,7 @@ static void sink_free(pa_object *o) { pa_sink_input *i; pa_assert(s); + pa_assert_ctl_context(); pa_assert(pa_sink_refcnt(s) == 0); if (PA_SINK_IS_LINKED(s->state)) @@ -547,9 +552,10 @@ static void sink_free(pa_object *o) { pa_xfree(s); } -/* Called from main context */ +/* Called from main context, and not while the IO thread is active, please */ void pa_sink_set_asyncmsgq(pa_sink *s, pa_asyncmsgq *q) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); s->asyncmsgq = q; @@ -557,11 +563,32 @@ void pa_sink_set_asyncmsgq(pa_sink *s, pa_asyncmsgq *q) { pa_source_set_asyncmsgq(s->monitor_source, q); } -/* Called from main context */ +/* Called from main context, and not while the IO thread is active, please */ +void pa_sink_update_flags(pa_sink *s, pa_sink_flags_t mask, pa_sink_flags_t value) { + pa_sink_assert_ref(s); + pa_assert_ctl_context(); + + if (mask == 0) + return; + + /* For now, allow only a minimal set of flags to be changed. */ + pa_assert((mask & ~(PA_SINK_DYNAMIC_LATENCY|PA_SINK_LATENCY)) == 0); + + s->flags = (s->flags & ~mask) | (value & mask); + + pa_source_update_flags(s->monitor_source, + ((mask & PA_SINK_LATENCY) ? PA_SOURCE_LATENCY : 0) | + ((mask & PA_SINK_DYNAMIC_LATENCY) ? PA_SOURCE_DYNAMIC_LATENCY : 0), + ((value & PA_SINK_LATENCY) ? PA_SOURCE_LATENCY : 0) | + ((value & PA_SINK_DYNAMIC_LATENCY) ? PA_SINK_DYNAMIC_LATENCY : 0)); +} + +/* Called from IO context, or before _put() from main context */ void pa_sink_set_rtpoll(pa_sink *s, pa_rtpoll *p) { pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); - s->rtpoll = p; + s->thread_info.rtpoll = p; if (s->monitor_source) pa_source_set_rtpoll(s->monitor_source, p); @@ -570,6 +597,7 @@ void pa_sink_set_rtpoll(pa_sink *s, pa_rtpoll *p) { /* Called from main context */ int pa_sink_update_status(pa_sink*s) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); if (s->state == PA_SINK_SUSPENDED) @@ -581,6 +609,7 @@ int pa_sink_update_status(pa_sink*s) { /* Called from main context */ int pa_sink_suspend(pa_sink *s, pa_bool_t suspend, pa_suspend_cause_t cause) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); pa_assert(cause != 0); @@ -609,6 +638,7 @@ pa_queue *pa_sink_move_all_start(pa_sink *s, pa_queue *q) { uint32_t idx; pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); if (!q) @@ -633,12 +663,13 @@ void pa_sink_move_all_finish(pa_sink *s, pa_queue *q, pa_bool_t save) { pa_sink_input *i; pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); pa_assert(q); while ((i = PA_SINK_INPUT(pa_queue_pop(q)))) { if (pa_sink_input_finish_move(i, s, save) < 0) - pa_sink_input_kill(i); + pa_sink_input_fail_move(i); pa_sink_input_unref(i); } @@ -649,13 +680,13 @@ void pa_sink_move_all_finish(pa_sink *s, pa_queue *q, pa_bool_t save) { /* Called from main context */ void pa_sink_move_all_fail(pa_queue *q) { pa_sink_input *i; + + pa_assert_ctl_context(); pa_assert(q); while ((i = PA_SINK_INPUT(pa_queue_pop(q)))) { - if (pa_hook_fire(&i->core->hooks[PA_CORE_HOOK_SINK_INPUT_MOVE_FAIL], i) == PA_HOOK_OK) { - pa_sink_input_kill(i); - pa_sink_input_unref(i); - } + pa_sink_input_fail_move(i); + pa_sink_input_unref(i); } pa_queue_free(q, NULL, NULL); @@ -665,11 +696,15 @@ void pa_sink_move_all_fail(pa_queue *q) { void pa_sink_process_rewind(pa_sink *s, size_t nbytes) { pa_sink_input *i; void *state = NULL; + pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(PA_SINK_IS_LINKED(s->thread_info.state)); /* If nobody requested this and this is actually no real rewind - * then we can short cut this */ + * then we can short cut this. Please note that this means that + * not all rewind requests triggered upstream will always be + * translated in actual requests! */ if (!s->thread_info.rewind_requested && nbytes <= 0) return; @@ -682,7 +717,7 @@ void pa_sink_process_rewind(pa_sink *s, size_t nbytes) { if (nbytes > 0) pa_log_debug("Processing rewind..."); - while ((i = pa_hashmap_iterate(s->thread_info.inputs, &state, NULL))) { + PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) { pa_sink_input_assert_ref(i); pa_sink_input_process_rewind(i, nbytes); } @@ -700,6 +735,7 @@ static unsigned fill_mix_info(pa_sink *s, size_t *length, pa_mix_info *info, uns size_t mixlength = *length; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(info); while ((i = pa_hashmap_iterate(s->thread_info.inputs, &state, NULL)) && maxinfo > 0) { @@ -739,6 +775,7 @@ static void inputs_drop(pa_sink *s, pa_mix_info *info, unsigned n, pa_memchunk * unsigned n_unreffed = 0; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(result); pa_assert(result->memblock); pa_assert(result->length > 0); @@ -834,6 +871,7 @@ void pa_sink_render(pa_sink*s, size_t length, pa_memchunk *result) { size_t block_size_max; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(PA_SINK_IS_LINKED(s->thread_info.state)); pa_assert(pa_frame_aligned(length, &s->sample_spec)); pa_assert(result); @@ -920,6 +958,7 @@ void pa_sink_render_into(pa_sink*s, pa_memchunk *target) { size_t length, block_size_max; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(PA_SINK_IS_LINKED(s->thread_info.state)); pa_assert(target); pa_assert(target->memblock); @@ -1003,6 +1042,7 @@ void pa_sink_render_into_full(pa_sink *s, pa_memchunk *target) { size_t l, d; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(PA_SINK_IS_LINKED(s->thread_info.state)); pa_assert(target); pa_assert(target->memblock); @@ -1037,6 +1077,7 @@ void pa_sink_render_full(pa_sink *s, size_t length, pa_memchunk *result) { unsigned n; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(PA_SINK_IS_LINKED(s->thread_info.state)); pa_assert(length > 0); pa_assert(pa_frame_aligned(length, &s->sample_spec)); @@ -1128,6 +1169,7 @@ pa_usec_t pa_sink_get_latency(pa_sink *s) { pa_usec_t usec = 0; pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); /* The returned value is supposed to be in the time domain of the sound card! */ @@ -1149,6 +1191,7 @@ pa_usec_t pa_sink_get_latency_within_thread(pa_sink *s) { pa_msgobject *o; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(PA_SINK_IS_LINKED(s->thread_info.state)); /* The returned value is supposed to be in the time domain of the sound card! */ @@ -1161,7 +1204,7 @@ pa_usec_t pa_sink_get_latency_within_thread(pa_sink *s) { o = PA_MSGOBJECT(s); - /* We probably should make this a proper vtable callback instead of going through process_msg() */ + /* FIXME: We probably should make this a proper vtable callback instead of going through process_msg() */ if (o->process_msg(o, PA_SINK_MESSAGE_GET_LATENCY, &usec, 0, NULL) < 0) return -1; @@ -1215,6 +1258,7 @@ void pa_sink_update_flat_volume(pa_sink *s, pa_cvolume *new_volume) { uint32_t idx; pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(new_volume); pa_assert(PA_SINK_IS_LINKED(s->state)); pa_assert(s->flags & PA_SINK_FLAT_VOLUME); @@ -1271,6 +1315,7 @@ void pa_sink_propagate_flat_volume(pa_sink *s) { uint32_t idx; pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); pa_assert(s->flags & PA_SINK_FLAT_VOLUME); @@ -1319,6 +1364,7 @@ void pa_sink_set_volume(pa_sink *s, const pa_cvolume *volume, pa_bool_t propagat pa_bool_t virtual_volume_changed; pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); pa_assert(volume); pa_assert(pa_cvolume_valid(volume)); @@ -1360,6 +1406,7 @@ void pa_sink_set_volume(pa_sink *s, const pa_cvolume *volume, pa_bool_t propagat /* Called from main thread. Only to be called by sink implementor */ void pa_sink_set_soft_volume(pa_sink *s, const pa_cvolume *volume) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(volume); s->soft_volume = *volume; @@ -1373,6 +1420,8 @@ void pa_sink_set_soft_volume(pa_sink *s, const pa_cvolume *volume) { /* Called from main thread */ const pa_cvolume *pa_sink_get_volume(pa_sink *s, pa_bool_t force_refresh, pa_bool_t reference) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); + pa_assert(PA_SINK_IS_LINKED(s->state)); if (s->refresh_volume || force_refresh) { struct pa_cvolume old_virtual_volume = s->virtual_volume; @@ -1386,6 +1435,12 @@ const pa_cvolume *pa_sink_get_volume(pa_sink *s, pa_bool_t force_refresh, pa_boo s->reference_volume = s->virtual_volume; + /* Something got changed in the hardware. It probably + * makes sense to save changed hw settings given that hw + * volume changes not triggered by PA are almost certainly + * done by the user. */ + s->save_volume = TRUE; + if (s->flags & PA_SINK_FLAT_VOLUME) pa_sink_propagate_flat_volume(s); @@ -1397,17 +1452,17 @@ const pa_cvolume *pa_sink_get_volume(pa_sink *s, pa_bool_t force_refresh, pa_boo } /* Called from main thread */ -void pa_sink_volume_changed(pa_sink *s, const pa_cvolume *new_volume, pa_bool_t save) { +void pa_sink_volume_changed(pa_sink *s, const pa_cvolume *new_volume) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); + pa_assert(PA_SINK_IS_LINKED(s->state)); /* The sink implementor may call this if the volume changed to make sure everyone is notified */ - if (pa_cvolume_equal(&s->virtual_volume, new_volume)) { - s->save_volume = s->save_volume || save; + if (pa_cvolume_equal(&s->virtual_volume, new_volume)) return; - } s->reference_volume = s->virtual_volume = *new_volume; - s->save_volume = save; + s->save_volume = TRUE; if (s->flags & PA_SINK_FLAT_VOLUME) pa_sink_propagate_flat_volume(s); @@ -1420,6 +1475,7 @@ void pa_sink_set_mute(pa_sink *s, pa_bool_t mute, pa_bool_t save) { pa_bool_t old_muted; pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); old_muted = s->muted; @@ -1439,6 +1495,8 @@ void pa_sink_set_mute(pa_sink *s, pa_bool_t mute, pa_bool_t save) { pa_bool_t pa_sink_get_mute(pa_sink *s, pa_bool_t force_refresh) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); + pa_assert(PA_SINK_IS_LINKED(s->state)); if (s->refresh_muted || force_refresh) { pa_bool_t old_muted = s->muted; @@ -1449,6 +1507,8 @@ pa_bool_t pa_sink_get_mute(pa_sink *s, pa_bool_t force_refresh) { pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SINK_MESSAGE_GET_MUTE, NULL, 0, NULL) == 0); if (old_muted != s->muted) { + s->save_muted = TRUE; + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); /* Make sure the soft mute status stays in sync */ @@ -1456,22 +1516,23 @@ pa_bool_t pa_sink_get_mute(pa_sink *s, pa_bool_t force_refresh) { } } + return s->muted; } /* Called from main thread */ -void pa_sink_mute_changed(pa_sink *s, pa_bool_t new_muted, pa_bool_t save) { +void pa_sink_mute_changed(pa_sink *s, pa_bool_t new_muted) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); + pa_assert(PA_SINK_IS_LINKED(s->state)); /* The sink implementor may call this if the volume changed to make sure everyone is notified */ - if (s->muted == new_muted) { - s->save_muted = s->save_muted || save; + if (s->muted == new_muted) return; - } s->muted = new_muted; - s->save_muted = save; + s->save_muted = TRUE; pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); } @@ -1479,6 +1540,7 @@ void pa_sink_mute_changed(pa_sink *s, pa_bool_t new_muted, pa_bool_t save) { /* Called from main thread */ pa_bool_t pa_sink_update_proplist(pa_sink *s, pa_update_mode_t mode, pa_proplist *p) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); if (p) pa_proplist_update(s->proplist, mode, p); @@ -1492,16 +1554,18 @@ pa_bool_t pa_sink_update_proplist(pa_sink *s, pa_update_mode_t mode, pa_proplist } /* Called from main thread */ +/* FIXME -- this should be dropped and be merged into pa_sink_update_proplist() */ void pa_sink_set_description(pa_sink *s, const char *description) { const char *old; pa_sink_assert_ref(s); + pa_assert_ctl_context(); if (!description && !pa_proplist_contains(s->proplist, PA_PROP_DEVICE_DESCRIPTION)) return; old = pa_proplist_gets(s->proplist, PA_PROP_DEVICE_DESCRIPTION); - if (old && description && !strcmp(old, description)) + if (old && description && pa_streq(old, description)) return; if (description) @@ -1528,6 +1592,7 @@ unsigned pa_sink_linked_by(pa_sink *s) { unsigned ret; pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); ret = pa_idxset_size(s->inputs); @@ -1546,6 +1611,7 @@ unsigned pa_sink_used_by(pa_sink *s) { unsigned ret; pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); ret = pa_idxset_size(s->inputs); @@ -1564,6 +1630,7 @@ unsigned pa_sink_check_suspend(pa_sink *s) { uint32_t idx; pa_sink_assert_ref(s); + pa_assert_ctl_context(); if (!PA_SINK_IS_LINKED(s->state)) return 0; @@ -1597,8 +1664,9 @@ static void sync_input_volumes_within_thread(pa_sink *s) { void *state = NULL; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); - while ((i = PA_SINK_INPUT(pa_hashmap_iterate(s->thread_info.inputs, &state, NULL)))) { + PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) { if (pa_cvolume_equal(&i->thread_info.soft_volume, &i->soft_volume)) continue; @@ -1701,7 +1769,7 @@ int pa_sink_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offse if (pa_hashmap_remove(s->thread_info.inputs, PA_UINT32_TO_PTR(i->index))) pa_sink_input_unref(i); - pa_sink_invalidate_requested_latency(s); + pa_sink_invalidate_requested_latency(s, TRUE); pa_sink_request_rewind(s, (size_t) -1); /* In flat volume mode we need to update the volume as @@ -1723,10 +1791,7 @@ int pa_sink_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offse size_t sink_nbytes, total_nbytes; /* Get the latency of the sink */ - if (!(s->flags & PA_SINK_LATENCY) || - PA_MSGOBJECT(s)->process_msg(PA_MSGOBJECT(s), PA_SINK_MESSAGE_GET_LATENCY, &usec, 0, NULL) < 0) - usec = 0; - + usec = pa_sink_get_latency_within_thread(s); sink_nbytes = pa_usec_to_bytes(usec, &s->sample_spec); total_nbytes = sink_nbytes + pa_memblockq_get_length(i->thread_info.render_memblockq); @@ -1747,7 +1812,7 @@ int pa_sink_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offse if (pa_hashmap_remove(s->thread_info.inputs, PA_UINT32_TO_PTR(i->index))) pa_sink_input_unref(i); - pa_sink_invalidate_requested_latency(s); + pa_sink_invalidate_requested_latency(s, TRUE); pa_log_debug("Requesting rewind due to started move"); pa_sink_request_rewind(s, (size_t) -1); @@ -1785,10 +1850,7 @@ int pa_sink_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offse size_t nbytes; /* Get the latency of the sink */ - if (!(s->flags & PA_SINK_LATENCY) || - PA_MSGOBJECT(s)->process_msg(PA_MSGOBJECT(s), PA_SINK_MESSAGE_GET_LATENCY, &usec, 0, NULL) < 0) - usec = 0; - + usec = pa_sink_get_latency_within_thread(s); nbytes = pa_usec_to_bytes(usec, &s->sample_spec); if (nbytes > 0) @@ -1876,6 +1938,9 @@ int pa_sink_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offse pa_usec_t *usec = userdata; *usec = pa_sink_get_requested_latency_within_thread(s); + /* Yes, that's right, the IO thread will see -1 when no + * explicit requested latency is configured, the main + * thread will see max_latency */ if (*usec == (pa_usec_t) -1) *usec = s->thread_info.max_latency; @@ -1899,6 +1964,16 @@ int pa_sink_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offse return 0; } + case PA_SINK_MESSAGE_GET_FIXED_LATENCY: + + *((pa_usec_t*) userdata) = s->thread_info.fixed_latency; + return 0; + + case PA_SINK_MESSAGE_SET_FIXED_LATENCY: + + pa_sink_set_fixed_latency_within_thread(s, (pa_usec_t) offset); + return 0; + case PA_SINK_MESSAGE_GET_MAX_REWIND: *((size_t*) userdata) = s->thread_info.max_rewind; @@ -1934,9 +2009,10 @@ int pa_sink_suspend_all(pa_core *c, pa_bool_t suspend, pa_suspend_cause_t cause) int ret = 0; pa_core_assert_ref(c); + pa_assert_ctl_context(); pa_assert(cause != 0); - for (sink = PA_SINK(pa_idxset_first(c->sinks, &idx)); sink; sink = PA_SINK(pa_idxset_next(c->sinks, &idx))) { + PA_IDXSET_FOREACH(sink, c->sinks, idx) { int r; if ((r = pa_sink_suspend(sink, suspend, cause)) < 0) @@ -1949,6 +2025,7 @@ int pa_sink_suspend_all(pa_core *c, pa_bool_t suspend, pa_suspend_cause_t cause) /* Called from main thread */ void pa_sink_detach(pa_sink *s) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SINK_MESSAGE_DETACH, NULL, 0, NULL) == 0); @@ -1957,6 +2034,7 @@ void pa_sink_detach(pa_sink *s) { /* Called from main thread */ void pa_sink_attach(pa_sink *s) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SINK_MESSAGE_ATTACH, NULL, 0, NULL) == 0); @@ -1968,9 +2046,10 @@ void pa_sink_detach_within_thread(pa_sink *s) { void *state = NULL; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(PA_SINK_IS_LINKED(s->thread_info.state)); - while ((i = pa_hashmap_iterate(s->thread_info.inputs, &state, NULL))) + PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) if (i->detach) i->detach(i); @@ -1984,9 +2063,10 @@ void pa_sink_attach_within_thread(pa_sink *s) { void *state = NULL; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(PA_SINK_IS_LINKED(s->thread_info.state)); - while ((i = pa_hashmap_iterate(s->thread_info.inputs, &state, NULL))) + PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) if (i->attach) i->attach(i); @@ -1997,6 +2077,7 @@ void pa_sink_attach_within_thread(pa_sink *s) { /* Called from IO thread */ void pa_sink_request_rewind(pa_sink*s, size_t nbytes) { pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(PA_SINK_IS_LINKED(s->thread_info.state)); if (s->thread_info.state == PA_SINK_SUSPENDED) @@ -2026,15 +2107,15 @@ pa_usec_t pa_sink_get_requested_latency_within_thread(pa_sink *s) { pa_usec_t monitor_latency; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); if (!(s->flags & PA_SINK_DYNAMIC_LATENCY)) - return PA_CLAMP(s->fixed_latency, s->thread_info.min_latency, s->thread_info.max_latency); + return PA_CLAMP(s->thread_info.fixed_latency, s->thread_info.min_latency, s->thread_info.max_latency); if (s->thread_info.requested_latency_valid) return s->thread_info.requested_latency; - while ((i = pa_hashmap_iterate(s->thread_info.inputs, &state, NULL))) - + PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) if (i->thread_info.requested_sink_latency != (pa_usec_t) -1 && (result == (pa_usec_t) -1 || result > i->thread_info.requested_sink_latency)) result = i->thread_info.requested_sink_latency; @@ -2062,6 +2143,7 @@ pa_usec_t pa_sink_get_requested_latency(pa_sink *s) { pa_usec_t usec = 0; pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SINK_IS_LINKED(s->state)); if (s->state == PA_SINK_SUSPENDED) @@ -2077,16 +2159,16 @@ void pa_sink_set_max_rewind_within_thread(pa_sink *s, size_t max_rewind) { void *state = NULL; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); if (max_rewind == s->thread_info.max_rewind) return; s->thread_info.max_rewind = max_rewind; - if (PA_SINK_IS_LINKED(s->thread_info.state)) { - while ((i = pa_hashmap_iterate(s->thread_info.inputs, &state, NULL))) + if (PA_SINK_IS_LINKED(s->thread_info.state)) + PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) pa_sink_input_update_max_rewind(i, s->thread_info.max_rewind); - } if (s->monitor_source) pa_source_set_max_rewind_within_thread(s->monitor_source, s->thread_info.max_rewind); @@ -2095,6 +2177,7 @@ void pa_sink_set_max_rewind_within_thread(pa_sink *s, size_t max_rewind) { /* Called from main thread */ void pa_sink_set_max_rewind(pa_sink *s, size_t max_rewind) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); if (PA_SINK_IS_LINKED(s->state)) pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SINK_MESSAGE_SET_MAX_REWIND, NULL, max_rewind, NULL) == 0); @@ -2107,6 +2190,7 @@ void pa_sink_set_max_request_within_thread(pa_sink *s, size_t max_request) { void *state = NULL; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); if (max_request == s->thread_info.max_request) return; @@ -2116,7 +2200,7 @@ void pa_sink_set_max_request_within_thread(pa_sink *s, size_t max_request) { if (PA_SINK_IS_LINKED(s->thread_info.state)) { pa_sink_input *i; - while ((i = pa_hashmap_iterate(s->thread_info.inputs, &state, NULL))) + PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) pa_sink_input_update_max_request(i, s->thread_info.max_request); } } @@ -2124,6 +2208,7 @@ void pa_sink_set_max_request_within_thread(pa_sink *s, size_t max_request) { /* Called from main thread */ void pa_sink_set_max_request(pa_sink *s, size_t max_request) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); if (PA_SINK_IS_LINKED(s->state)) pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SINK_MESSAGE_SET_MAX_REQUEST, NULL, max_request, NULL) == 0); @@ -2132,23 +2217,24 @@ void pa_sink_set_max_request(pa_sink *s, size_t max_request) { } /* Called from IO thread */ -void pa_sink_invalidate_requested_latency(pa_sink *s) { +void pa_sink_invalidate_requested_latency(pa_sink *s, pa_bool_t dynamic) { pa_sink_input *i; void *state = NULL; pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); - if (!(s->flags & PA_SINK_DYNAMIC_LATENCY)) + if ((s->flags & PA_SINK_DYNAMIC_LATENCY)) + s->thread_info.requested_latency_valid = FALSE; + else if (dynamic) return; - s->thread_info.requested_latency_valid = FALSE; - if (PA_SINK_IS_LINKED(s->thread_info.state)) { if (s->update_requested_latency) s->update_requested_latency(s); - while ((i = pa_hashmap_iterate(s->thread_info.inputs, &state, NULL))) + PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) if (i->update_sink_requested_latency) i->update_sink_requested_latency(i); } @@ -2157,6 +2243,7 @@ void pa_sink_invalidate_requested_latency(pa_sink *s) { /* Called from main thread */ void pa_sink_set_latency_range(pa_sink *s, pa_usec_t min_latency, pa_usec_t max_latency) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); /* min_latency == 0: no limit * min_latency anything else: specified limit @@ -2191,6 +2278,7 @@ void pa_sink_set_latency_range(pa_sink *s, pa_usec_t min_latency, pa_usec_t max_ /* Called from main thread */ void pa_sink_get_latency_range(pa_sink *s, pa_usec_t *min_latency, pa_usec_t *max_latency) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); pa_assert(min_latency); pa_assert(max_latency); @@ -2209,9 +2297,8 @@ void pa_sink_get_latency_range(pa_sink *s, pa_usec_t *min_latency, pa_usec_t *ma /* Called from IO thread */ void pa_sink_set_latency_range_within_thread(pa_sink *s, pa_usec_t min_latency, pa_usec_t max_latency) { - void *state = NULL; - pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); pa_assert(min_latency >= ABSOLUTE_MIN_LATENCY); pa_assert(max_latency <= ABSOLUTE_MAX_LATENCY); @@ -2222,27 +2309,36 @@ void pa_sink_set_latency_range_within_thread(pa_sink *s, pa_usec_t min_latency, max_latency == ABSOLUTE_MAX_LATENCY) || (s->flags & PA_SINK_DYNAMIC_LATENCY)); + if (s->thread_info.min_latency == min_latency && + s->thread_info.max_latency == max_latency) + return; + s->thread_info.min_latency = min_latency; s->thread_info.max_latency = max_latency; if (PA_SINK_IS_LINKED(s->thread_info.state)) { pa_sink_input *i; + void *state = NULL; - while ((i = pa_hashmap_iterate(s->thread_info.inputs, &state, NULL))) + PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) if (i->update_sink_latency_range) i->update_sink_latency_range(i); } - pa_sink_invalidate_requested_latency(s); + pa_sink_invalidate_requested_latency(s, FALSE); pa_source_set_latency_range_within_thread(s->monitor_source, min_latency, max_latency); } -/* Called from main thread, before the sink is put */ +/* Called from main thread */ void pa_sink_set_fixed_latency(pa_sink *s, pa_usec_t latency) { pa_sink_assert_ref(s); + pa_assert_ctl_context(); - pa_assert(pa_sink_get_state(s) == PA_SINK_INIT); + if (s->flags & PA_SINK_DYNAMIC_LATENCY) { + pa_assert(latency == 0); + return; + } if (latency < ABSOLUTE_MIN_LATENCY) latency = ABSOLUTE_MIN_LATENCY; @@ -2250,14 +2346,69 @@ void pa_sink_set_fixed_latency(pa_sink *s, pa_usec_t latency) { if (latency > ABSOLUTE_MAX_LATENCY) latency = ABSOLUTE_MAX_LATENCY; - s->fixed_latency = latency; + if (PA_SINK_IS_LINKED(s->state)) + pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SINK_MESSAGE_SET_FIXED_LATENCY, NULL, (int64_t) latency, NULL) == 0); + else + s->thread_info.fixed_latency = latency; + pa_source_set_fixed_latency(s->monitor_source, latency); } +/* Called from main thread */ +pa_usec_t pa_sink_get_fixed_latency(pa_sink *s) { + pa_usec_t latency; + + pa_sink_assert_ref(s); + pa_assert_ctl_context(); + + if (s->flags & PA_SINK_DYNAMIC_LATENCY) + return 0; + + if (PA_SINK_IS_LINKED(s->state)) + pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SINK_MESSAGE_GET_FIXED_LATENCY, &latency, 0, NULL) == 0); + else + latency = s->thread_info.fixed_latency; + + return latency; +} + +/* Called from IO thread */ +void pa_sink_set_fixed_latency_within_thread(pa_sink *s, pa_usec_t latency) { + pa_sink_assert_ref(s); + pa_sink_assert_io_context(s); + + if (s->flags & PA_SINK_DYNAMIC_LATENCY) { + pa_assert(latency == 0); + return; + } + + pa_assert(latency >= ABSOLUTE_MIN_LATENCY); + pa_assert(latency <= ABSOLUTE_MAX_LATENCY); + + if (s->thread_info.fixed_latency == latency) + return; + + s->thread_info.fixed_latency = latency; + + if (PA_SINK_IS_LINKED(s->thread_info.state)) { + pa_sink_input *i; + void *state = NULL; + + PA_HASHMAP_FOREACH(i, s->thread_info.inputs, state) + if (i->update_sink_fixed_latency) + i->update_sink_fixed_latency(i); + } + + pa_sink_invalidate_requested_latency(s, FALSE); + + pa_source_set_fixed_latency_within_thread(s->monitor_source, latency); +} + /* Called from main context */ size_t pa_sink_get_max_rewind(pa_sink *s) { size_t r; pa_sink_assert_ref(s); + pa_assert_ctl_context(); if (!PA_SINK_IS_LINKED(s->state)) return s->thread_info.max_rewind; @@ -2271,6 +2422,7 @@ size_t pa_sink_get_max_rewind(pa_sink *s) { size_t pa_sink_get_max_request(pa_sink *s) { size_t r; pa_sink_assert_ref(s); + pa_assert_ctl_context(); if (!PA_SINK_IS_LINKED(s->state)) return s->thread_info.max_request; @@ -2284,7 +2436,8 @@ size_t pa_sink_get_max_request(pa_sink *s) { int pa_sink_set_port(pa_sink *s, const char *name, pa_bool_t save) { pa_device_port *port; - pa_assert(s); + pa_sink_assert_ref(s); + pa_assert_ctl_context(); if (!s->set_port) { pa_log_debug("set_port() operation not implemented for sink %u \"%s\"", s->index, s->name); @@ -2315,7 +2468,6 @@ int pa_sink_set_port(pa_sink *s, const char *name, pa_bool_t save) { return 0; } -/* Called from main context */ pa_bool_t pa_device_init_icon(pa_proplist *p, pa_bool_t is_sink) { const char *ff, *c, *t = NULL, *s = "", *profile, *bus; diff --git a/src/pulsecore/sink.h b/src/pulsecore/sink.h index d16fcc01..3cd7e59d 100644 --- a/src/pulsecore/sink.h +++ b/src/pulsecore/sink.h @@ -42,6 +42,7 @@ typedef struct pa_device_port pa_device_port; #include #include #include +#include #define PA_MAX_INPUTS_PER_SINK 32 @@ -101,12 +102,9 @@ struct pa_sink { pa_bool_t save_muted:1; pa_asyncmsgq *asyncmsgq; - pa_rtpoll *rtpoll; pa_memchunk silence; - pa_usec_t fixed_latency; /* for sinks with PA_SINK_DYNAMIC_LATENCY this is 0 */ - pa_hashmap *ports; pa_device_port *active_port; @@ -155,9 +153,14 @@ struct pa_sink { pa_sink_state_t state; pa_hashmap *inputs; + pa_rtpoll *rtpoll; + pa_cvolume soft_volume; pa_bool_t soft_muted:1; + /* The requested latency is used for dynamic latency + * sinks. For fixed latency sinks it is always identical to + * the fixed_latency. See below. */ pa_bool_t requested_latency_valid:1; pa_usec_t requested_latency; @@ -173,8 +176,15 @@ struct pa_sink { size_t rewind_nbytes; pa_bool_t rewind_requested; + /* Both dynamic and fixed latencies will be clamped to this + * range. */ pa_usec_t min_latency; /* we won't go below this latency */ pa_usec_t max_latency; /* An upper limit for the latencies */ + + /* 'Fixed' simply means that the latency is exclusively + * decided on by the sink, and the clients have no influence + * in changing it */ + pa_usec_t fixed_latency; /* for sinks with PA_SINK_DYNAMIC_LATENCY this is 0 */ } thread_info; void *userdata; @@ -200,6 +210,8 @@ typedef enum pa_sink_message { PA_SINK_MESSAGE_DETACH, PA_SINK_MESSAGE_SET_LATENCY_RANGE, PA_SINK_MESSAGE_GET_LATENCY_RANGE, + PA_SINK_MESSAGE_SET_FIXED_LATENCY, + PA_SINK_MESSAGE_GET_FIXED_LATENCY, PA_SINK_MESSAGE_GET_MAX_REWIND, PA_SINK_MESSAGE_GET_MAX_REQUEST, PA_SINK_MESSAGE_SET_MAX_REWIND, @@ -267,8 +279,10 @@ void pa_sink_detach(pa_sink *s); void pa_sink_attach(pa_sink *s); void pa_sink_set_soft_volume(pa_sink *s, const pa_cvolume *volume); -void pa_sink_volume_changed(pa_sink *s, const pa_cvolume *new_volume, pa_bool_t save); -void pa_sink_mute_changed(pa_sink *s, pa_bool_t new_muted, pa_bool_t save); +void pa_sink_volume_changed(pa_sink *s, const pa_cvolume *new_volume); +void pa_sink_mute_changed(pa_sink *s, pa_bool_t new_muted); + +void pa_sink_update_flags(pa_sink *s, pa_sink_flags_t mask, pa_sink_flags_t value); pa_bool_t pa_device_init_description(pa_proplist *p); pa_bool_t pa_device_init_icon(pa_proplist *p, pa_bool_t is_sink); @@ -280,6 +294,7 @@ pa_bool_t pa_device_init_intended_roles(pa_proplist *p); pa_usec_t pa_sink_get_latency(pa_sink *s); pa_usec_t pa_sink_get_requested_latency(pa_sink *s); void pa_sink_get_latency_range(pa_sink *s, pa_usec_t *min_latency, pa_usec_t *max_latency); +pa_usec_t pa_sink_get_fixed_latency(pa_sink *s); size_t pa_sink_get_max_rewind(pa_sink *s); size_t pa_sink_get_max_request(pa_sink *s); @@ -331,16 +346,23 @@ void pa_sink_set_max_rewind_within_thread(pa_sink *s, size_t max_rewind); void pa_sink_set_max_request_within_thread(pa_sink *s, size_t max_request); void pa_sink_set_latency_range_within_thread(pa_sink *s, pa_usec_t min_latency, pa_usec_t max_latency); +void pa_sink_set_fixed_latency_within_thread(pa_sink *s, pa_usec_t latency); /*** To be called exclusively by sink input drivers, from IO context */ void pa_sink_request_rewind(pa_sink*s, size_t nbytes); -void pa_sink_invalidate_requested_latency(pa_sink *s); +void pa_sink_invalidate_requested_latency(pa_sink *s, pa_bool_t dynamic); pa_usec_t pa_sink_get_latency_within_thread(pa_sink *s); pa_device_port *pa_device_port_new(const char *name, const char *description, size_t extra); void pa_device_port_free(pa_device_port *p); +/* Verify that we called in IO context (aka 'thread context), or that + * the sink is not yet set up, i.e. the thread not set up yet. See + * pa_assert_io_context() in thread-mq.h for more information. */ +#define pa_sink_assert_io_context(s) \ + pa_assert(pa_thread_mq_get() || !PA_SINK_IS_LINKED((s)->state)) + #endif diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c index 4ba25ae4..3803a6cc 100644 --- a/src/pulsecore/source-output.c +++ b/src/pulsecore/source-output.c @@ -48,7 +48,7 @@ static void source_output_free(pa_object* mo); pa_source_output_new_data* pa_source_output_new_data_init(pa_source_output_new_data *data) { pa_assert(data); - memset(data, 0, sizeof(*data)); + pa_zero(*data); data->resample_method = PA_RESAMPLER_INVALID; data->proplist = pa_proplist_new(); @@ -84,6 +84,7 @@ static void reset_callbacks(pa_source_output *o) { o->update_max_rewind = NULL; o->update_source_requested_latency = NULL; o->update_source_latency_range = NULL; + o->update_source_fixed_latency = NULL; o->attach = NULL; o->detach = NULL; o->suspend = NULL; @@ -111,6 +112,7 @@ int pa_source_output_new( pa_assert(_o); pa_assert(core); pa_assert(data); + pa_assert_ctl_context(); if (data->client) pa_proplist_update(data->proplist, PA_UPDATE_MERGE, data->client->proplist); @@ -166,7 +168,7 @@ int pa_source_output_new( if ((r = pa_hook_fire(&core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_FIXATE], data)) < 0) return r; - if ((flags & PA_SOURCE_OUTPUT_FAIL_ON_SUSPEND) && + if ((flags & PA_SOURCE_OUTPUT_NO_CREATE_ON_SUSPEND) && pa_source_get_state(data->source) == PA_SOURCE_SUSPENDED) { pa_log("Failed to create source output: source is suspended."); return -PA_ERR_BADSTATE; @@ -262,6 +264,7 @@ int pa_source_output_new( /* Called from main context */ static void update_n_corked(pa_source_output *o, pa_source_output_state_t state) { pa_assert(o); + pa_assert_ctl_context(); if (!o->source) return; @@ -275,6 +278,7 @@ static void update_n_corked(pa_source_output *o, pa_source_output_state_t state) /* Called from main context */ static void source_output_set_state(pa_source_output *o, pa_source_output_state_t state) { pa_assert(o); + pa_assert_ctl_context(); if (o->state == state) return; @@ -294,6 +298,7 @@ static void source_output_set_state(pa_source_output *o, pa_source_output_state_ void pa_source_output_unlink(pa_source_output*o) { pa_bool_t linked; pa_assert(o); + pa_assert_ctl_context(); /* See pa_sink_unlink() for a couple of comments how this function * works */ @@ -346,6 +351,7 @@ static void source_output_free(pa_object* mo) { pa_source_output *o = PA_SOURCE_OUTPUT(mo); pa_assert(o); + pa_assert_ctl_context(); pa_assert(pa_source_output_refcnt(o) == 0); if (PA_SOURCE_OUTPUT_IS_LINKED(o->state)) @@ -371,7 +377,9 @@ static void source_output_free(pa_object* mo) { /* Called from main context */ void pa_source_output_put(pa_source_output *o) { pa_source_output_state_t state; + pa_source_output_assert_ref(o); + pa_assert_ctl_context(); pa_assert(o->state == PA_SOURCE_OUTPUT_INIT); @@ -395,6 +403,7 @@ void pa_source_output_put(pa_source_output *o) { /* Called from main context */ void pa_source_output_kill(pa_source_output*o) { pa_source_output_assert_ref(o); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->state)); o->kill(o); @@ -405,6 +414,7 @@ pa_usec_t pa_source_output_get_latency(pa_source_output *o, pa_usec_t *source_la pa_usec_t r[2] = { 0, 0 }; pa_source_output_assert_ref(o); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->state)); pa_assert_se(pa_asyncmsgq_send(o->source->asyncmsgq, PA_MSGOBJECT(o), PA_SOURCE_OUTPUT_MESSAGE_GET_LATENCY, r, 0, NULL) == 0); @@ -424,6 +434,7 @@ void pa_source_output_push(pa_source_output *o, const pa_memchunk *chunk) { size_t limit, mbs = 0; pa_source_output_assert_ref(o); + pa_source_output_assert_io_context(o); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->thread_info.state)); pa_assert(chunk); pa_assert(pa_frame_aligned(chunk->length, &o->source->sample_spec)); @@ -499,8 +510,9 @@ void pa_source_output_push(pa_source_output *o, const pa_memchunk *chunk) { /* Called from thread context */ void pa_source_output_process_rewind(pa_source_output *o, size_t nbytes /* in source sample spec */) { - pa_source_output_assert_ref(o); + pa_source_output_assert_ref(o); + pa_source_output_assert_io_context(o); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->thread_info.state)); pa_assert(pa_frame_aligned(nbytes, &o->source->sample_spec)); @@ -525,9 +537,18 @@ void pa_source_output_process_rewind(pa_source_output *o, size_t nbytes /* in so pa_memblockq_rewind(o->thread_info.delay_memblockq, nbytes); } +/* Called from thread context */ +size_t pa_source_output_get_max_rewind(pa_source_output *o) { + pa_source_output_assert_ref(o); + pa_source_output_assert_io_context(o); + + return o->thread_info.resampler ? pa_resampler_request(o->thread_info.resampler, o->source->thread_info.max_rewind) : o->source->thread_info.max_rewind; +} + /* Called from thread context */ void pa_source_output_update_max_rewind(pa_source_output *o, size_t nbytes /* in the source's sample spec */) { pa_source_output_assert_ref(o); + pa_source_output_assert_io_context(o); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->thread_info.state)); pa_assert(pa_frame_aligned(nbytes, &o->source->sample_spec)); @@ -538,15 +559,16 @@ void pa_source_output_update_max_rewind(pa_source_output *o, size_t nbytes /* i /* Called from thread context */ pa_usec_t pa_source_output_set_requested_latency_within_thread(pa_source_output *o, pa_usec_t usec) { pa_source_output_assert_ref(o); + pa_source_output_assert_io_context(o); if (!(o->source->flags & PA_SOURCE_DYNAMIC_LATENCY)) - usec = o->source->fixed_latency; + usec = o->source->thread_info.fixed_latency; if (usec != (pa_usec_t) -1) usec = PA_CLAMP(usec, o->source->thread_info.min_latency, o->source->thread_info.max_latency); o->thread_info.requested_source_latency = usec; - pa_source_invalidate_requested_latency(o->source); + pa_source_invalidate_requested_latency(o->source, TRUE); return usec; } @@ -554,6 +576,7 @@ pa_usec_t pa_source_output_set_requested_latency_within_thread(pa_source_output /* Called from main context */ pa_usec_t pa_source_output_set_requested_latency(pa_source_output *o, pa_usec_t usec) { pa_source_output_assert_ref(o); + pa_assert_ctl_context(); if (PA_SOURCE_OUTPUT_IS_LINKED(o->state) && o->source) { pa_assert_se(pa_asyncmsgq_send(o->source->asyncmsgq, PA_MSGOBJECT(o), PA_SOURCE_OUTPUT_MESSAGE_SET_REQUESTED_LATENCY, &usec, 0, NULL) == 0); @@ -565,7 +588,7 @@ pa_usec_t pa_source_output_set_requested_latency(pa_source_output *o, pa_usec_t if (o->source) { if (!(o->source->flags & PA_SOURCE_DYNAMIC_LATENCY)) - usec = o->source->fixed_latency; + usec = pa_source_get_fixed_latency(o->source); if (usec != (pa_usec_t) -1) { pa_usec_t min_latency, max_latency; @@ -582,6 +605,7 @@ pa_usec_t pa_source_output_set_requested_latency(pa_source_output *o, pa_usec_t /* Called from main context */ pa_usec_t pa_source_output_get_requested_latency(pa_source_output *o) { pa_source_output_assert_ref(o); + pa_assert_ctl_context(); if (PA_SOURCE_OUTPUT_IS_LINKED(o->state) && o->source) { pa_usec_t usec = 0; @@ -598,6 +622,7 @@ pa_usec_t pa_source_output_get_requested_latency(pa_source_output *o) { /* Called from main context */ void pa_source_output_cork(pa_source_output *o, pa_bool_t b) { pa_source_output_assert_ref(o); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->state)); source_output_set_state(o, b ? PA_SOURCE_OUTPUT_CORKED : PA_SOURCE_OUTPUT_RUNNING); @@ -606,6 +631,7 @@ void pa_source_output_cork(pa_source_output *o, pa_bool_t b) { /* Called from main context */ int pa_source_output_set_rate(pa_source_output *o, uint32_t rate) { pa_source_output_assert_ref(o); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->state)); pa_return_val_if_fail(o->thread_info.resampler, -PA_ERR_BADSTATE); @@ -623,6 +649,7 @@ int pa_source_output_set_rate(pa_source_output *o, uint32_t rate) { /* Called from main context */ void pa_source_output_set_name(pa_source_output *o, const char *name) { const char *old; + pa_assert_ctl_context(); pa_source_output_assert_ref(o); if (!name && !pa_proplist_contains(o->proplist, PA_PROP_MEDIA_NAME)) @@ -647,11 +674,12 @@ void pa_source_output_set_name(pa_source_output *o, const char *name) { /* Called from main thread */ void pa_source_output_update_proplist(pa_source_output *o, pa_update_mode_t mode, pa_proplist *p) { pa_source_output_assert_ref(o); + pa_assert_ctl_context(); if (p) pa_proplist_update(o->proplist, mode, p); - if (PA_SINK_IS_LINKED(o->state)) { + if (PA_SOURCE_OUTPUT_IS_LINKED(o->state)) { pa_hook_fire(&o->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_PROPLIST_CHANGED], o); pa_subscription_post(o->core, PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT|PA_SUBSCRIPTION_EVENT_CHANGE, o->index); } @@ -660,6 +688,7 @@ void pa_source_output_update_proplist(pa_source_output *o, pa_update_mode_t mode /* Called from main context */ pa_resample_method_t pa_source_output_get_resample_method(pa_source_output *o) { pa_source_output_assert_ref(o); + pa_assert_ctl_context(); return o->actual_resample_method; } @@ -667,6 +696,7 @@ pa_resample_method_t pa_source_output_get_resample_method(pa_source_output *o) { /* Called from main context */ pa_bool_t pa_source_output_may_move(pa_source_output *o) { pa_source_output_assert_ref(o); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->state)); if (o->flags & PA_SOURCE_OUTPUT_DONT_MOVE) @@ -708,6 +738,7 @@ int pa_source_output_start_move(pa_source_output *o) { int r; pa_source_output_assert_ref(o); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->state)); pa_assert(o->source); @@ -739,6 +770,7 @@ int pa_source_output_finish_move(pa_source_output *o, pa_source *dest, pa_bool_t pa_resampler *new_resampler; pa_source_output_assert_ref(o); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->state)); pa_assert(!o->source); pa_source_assert_ref(dest); @@ -815,11 +847,30 @@ int pa_source_output_finish_move(pa_source_output *o, pa_source *dest, pa_bool_t return 0; } +/* Called from main context */ +void pa_source_output_fail_move(pa_source_output *o) { + + pa_source_output_assert_ref(o); + pa_assert_ctl_context(); + pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->state)); + pa_assert(!o->source); + + /* Check if someone wants this source output? */ + if (pa_hook_fire(&o->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_MOVE_FAIL], o) == PA_HOOK_STOP) + return; + + if (o->moving) + o->moving(o, NULL); + + pa_source_output_kill(o); +} + /* Called from main context */ int pa_source_output_move_to(pa_source_output *o, pa_source *dest, pa_bool_t save) { int r; pa_source_output_assert_ref(o); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_OUTPUT_IS_LINKED(o->state)); pa_assert(o->source); pa_source_assert_ref(dest); @@ -838,6 +889,7 @@ int pa_source_output_move_to(pa_source_output *o, pa_source *dest, pa_bool_t sav } if ((r = pa_source_output_finish_move(o, dest, save)) < 0) { + pa_source_output_fail_move(o); pa_source_output_unref(o); return r; } @@ -850,6 +902,7 @@ int pa_source_output_move_to(pa_source_output *o, pa_source *dest, pa_bool_t sav /* Called from IO thread context */ void pa_source_output_set_state_within_thread(pa_source_output *o, pa_source_output_state_t state) { pa_source_output_assert_ref(o); + pa_source_output_assert_io_context(o); if (state == o->thread_info.state) return; @@ -906,11 +959,13 @@ int pa_source_output_process_msg(pa_msgobject *mo, int code, void *userdata, int return -PA_ERR_NOTIMPLEMENTED; } +/* Called from main context */ void pa_source_output_send_event(pa_source_output *o, const char *event, pa_proplist *data) { pa_proplist *pl = NULL; pa_source_output_send_event_hook_data hook_data; pa_source_output_assert_ref(o); + pa_assert_ctl_context(); pa_assert(event); if (!o->send_event) diff --git a/src/pulsecore/source-output.h b/src/pulsecore/source-output.h index 9824e160..a70a3fdb 100644 --- a/src/pulsecore/source-output.h +++ b/src/pulsecore/source-output.h @@ -55,7 +55,8 @@ typedef enum pa_source_output_flags { PA_SOURCE_OUTPUT_FIX_RATE = 64, PA_SOURCE_OUTPUT_FIX_CHANNELS = 128, PA_SOURCE_OUTPUT_DONT_INHIBIT_AUTO_SUSPEND = 256, - PA_SOURCE_OUTPUT_FAIL_ON_SUSPEND = 512 + PA_SOURCE_OUTPUT_NO_CREATE_ON_SUSPEND = 512, + PA_SOURCE_OUTPUT_KILL_ON_SUSPEND = 1024 } pa_source_output_flags_t; struct pa_source_output { @@ -108,6 +109,10 @@ struct pa_source_output { * from IO context. */ void (*update_source_latency_range) (pa_source_output *o); /* may be NULL */ + /* Called whenver the fixed latency of the source changes, if there + * is one. Called from IO context. */ + void (*update_source_fixed_latency) (pa_source_output *i); /* may be NULL */ + /* If non-NULL this function is called when the output is first * connected to a source. Called from IO thread context */ void (*attach) (pa_source_output *o); /* may be NULL */ @@ -127,7 +132,9 @@ struct pa_source_output { /* If non-NULL called whenever the source output is moved to a new * source. Called from main context after the stream was detached * from the old source and before it is attached to the new - * source. */ + * source. If dest is NULL the move was executed in two + * phases and the second one failed; the stream will be destroyed + * after this call. */ void (*moving) (pa_source_output *o, pa_source *dest); /* may be NULL */ /* Supposed to unlink and destroy this stream. Called from main @@ -238,6 +245,8 @@ void pa_source_output_cork(pa_source_output *o, pa_bool_t b); int pa_source_output_set_rate(pa_source_output *o, uint32_t rate); +size_t pa_source_output_get_max_rewind(pa_source_output *o); + /* Callable by everyone */ /* External code may request disconnection with this funcion */ @@ -260,6 +269,7 @@ int pa_source_output_move_to(pa_source_output *o, pa_source *dest, pa_bool_t sav * new source */ int pa_source_output_start_move(pa_source_output *o); int pa_source_output_finish_move(pa_source_output *o, pa_source *dest, pa_bool_t save); +void pa_source_output_fail_move(pa_source_output *o); #define pa_source_output_get_state(o) ((o)->state) @@ -277,4 +287,7 @@ int pa_source_output_process_msg(pa_msgobject *mo, int code, void *userdata, int pa_usec_t pa_source_output_set_requested_latency_within_thread(pa_source_output *o, pa_usec_t usec); +#define pa_source_output_assert_io_context(s) \ + pa_assert(pa_thread_mq_get() || !PA_SOURCE_OUTPUT_IS_LINKED((s)->state)) + #endif diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 74f38bc5..46f049ef 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -33,6 +33,7 @@ #include #include +#include #include #include #include @@ -52,7 +53,7 @@ static void source_free(pa_object *o); pa_source_new_data* pa_source_new_data_init(pa_source_new_data *data) { pa_assert(data); - memset(data, 0, sizeof(*data)); + pa_zero(*data); data->proplist = pa_proplist_new(); return data; @@ -145,6 +146,7 @@ pa_source* pa_source_new( pa_assert(core); pa_assert(data); pa_assert(data->name); + pa_assert_ctl_context(); s = pa_msgobject_new(pa_source); @@ -224,13 +226,10 @@ pa_source* pa_source_new( s->muted = data->muted; s->refresh_volume = s->refresh_muted = FALSE; - s->fixed_latency = flags & PA_SOURCE_DYNAMIC_LATENCY ? 0 : DEFAULT_FIXED_LATENCY; - reset_callbacks(s); s->userdata = NULL; s->asyncmsgq = NULL; - s->rtpoll = NULL; /* As a minor optimization we just steal the list instead of * copying it here */ @@ -263,6 +262,7 @@ pa_source* pa_source_new( &s->sample_spec, 0); + s->thread_info.rtpoll = NULL; s->thread_info.outputs = pa_hashmap_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); s->thread_info.soft_volume = s->soft_volume; s->thread_info.soft_muted = s->muted; @@ -272,6 +272,7 @@ pa_source* pa_source_new( s->thread_info.requested_latency = 0; s->thread_info.min_latency = ABSOLUTE_MIN_LATENCY; s->thread_info.max_latency = ABSOLUTE_MAX_LATENCY; + s->thread_info.fixed_latency = flags & PA_SOURCE_DYNAMIC_LATENCY ? 0 : DEFAULT_FIXED_LATENCY; pa_assert_se(pa_idxset_put(core->sources, s, &s->index) >= 0); @@ -297,6 +298,7 @@ static int source_set_state(pa_source *s, pa_source_state_t state) { pa_source_state_t original_state; pa_assert(s); + pa_assert_ctl_context(); if (s->state == state) return 0; @@ -333,27 +335,26 @@ static int source_set_state(pa_source *s, pa_source_state_t state) { /* We're suspending or resuming, tell everyone about it */ - for (o = PA_SOURCE_OUTPUT(pa_idxset_first(s->outputs, &idx)); o; o = PA_SOURCE_OUTPUT(pa_idxset_next(s->outputs, &idx))) + PA_IDXSET_FOREACH(o, s->outputs, idx) if (s->state == PA_SOURCE_SUSPENDED && - (o->flags & PA_SOURCE_OUTPUT_FAIL_ON_SUSPEND)) + (o->flags & PA_SOURCE_OUTPUT_KILL_ON_SUSPEND)) pa_source_output_kill(o); else if (o->suspend) o->suspend(o, state == PA_SOURCE_SUSPENDED); } - return 0; } /* Called from main context */ void pa_source_put(pa_source *s) { pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(s->state == PA_SOURCE_INIT); /* The following fields must be initialized properly when calling _put() */ pa_assert(s->asyncmsgq); - pa_assert(s->rtpoll); pa_assert(s->thread_info.min_latency <= s->thread_info.max_latency); /* Generally, flags should be initialized via pa_source_new(). As @@ -368,7 +369,7 @@ void pa_source_put(pa_source *s) { pa_assert((s->flags & PA_SOURCE_HW_VOLUME_CTRL) || (s->base_volume == PA_VOLUME_NORM && s->flags & PA_SOURCE_DECIBEL_VOLUME)); pa_assert(!(s->flags & PA_SOURCE_DECIBEL_VOLUME) || s->n_volume_steps == PA_VOLUME_NORM+1); - pa_assert(!(s->flags & PA_SOURCE_DYNAMIC_LATENCY) == (s->fixed_latency != 0)); + pa_assert(!(s->flags & PA_SOURCE_DYNAMIC_LATENCY) == (s->thread_info.fixed_latency != 0)); pa_assert_se(source_set_state(s, PA_SOURCE_IDLE) == 0); @@ -382,6 +383,7 @@ void pa_source_unlink(pa_source *s) { pa_source_output *o, *j = NULL; pa_assert(s); + pa_assert_ctl_context(); /* See pa_sink_unlink() for a couple of comments how this function * works. */ @@ -423,6 +425,7 @@ static void source_free(pa_object *o) { pa_source *s = PA_SOURCE(o); pa_assert(s); + pa_assert_ctl_context(); pa_assert(pa_source_refcnt(s) == 0); if (PA_SOURCE_IS_LINKED(s->state)) @@ -458,23 +461,40 @@ static void source_free(pa_object *o) { pa_xfree(s); } -/* Called from main context */ +/* Called from main context, and not while the IO thread is active, please */ void pa_source_set_asyncmsgq(pa_source *s, pa_asyncmsgq *q) { pa_source_assert_ref(s); + pa_assert_ctl_context(); s->asyncmsgq = q; } -/* Called from main context */ +/* Called from main context, and not while the IO thread is active, please */ +void pa_source_update_flags(pa_source *s, pa_source_flags_t mask, pa_source_flags_t value) { + pa_source_assert_ref(s); + pa_assert_ctl_context(); + + if (mask == 0) + return; + + /* For now, allow only a minimal set of flags to be changed. */ + pa_assert((mask & ~(PA_SOURCE_DYNAMIC_LATENCY|PA_SOURCE_LATENCY)) == 0); + + s->flags = (s->flags & ~mask) | (value & mask); +} + +/* Called from IO context, or before _put() from main context */ void pa_source_set_rtpoll(pa_source *s, pa_rtpoll *p) { pa_source_assert_ref(s); + pa_source_assert_io_context(s); - s->rtpoll = p; + s->thread_info.rtpoll = p; } /* Called from main context */ int pa_source_update_status(pa_source*s) { pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); if (s->state == PA_SOURCE_SUSPENDED) @@ -486,6 +506,7 @@ int pa_source_update_status(pa_source*s) { /* Called from main context */ int pa_source_suspend(pa_source *s, pa_bool_t suspend, pa_suspend_cause_t cause) { pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); pa_assert(cause != 0); @@ -513,6 +534,7 @@ int pa_source_sync_suspend(pa_source *s) { pa_sink_state_t state; pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); pa_assert(s->monitor_of); @@ -532,6 +554,7 @@ pa_queue *pa_source_move_all_start(pa_source *s, pa_queue *q) { uint32_t idx; pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); if (!q) @@ -556,12 +579,13 @@ void pa_source_move_all_finish(pa_source *s, pa_queue *q, pa_bool_t save) { pa_source_output *o; pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); pa_assert(q); while ((o = PA_SOURCE_OUTPUT(pa_queue_pop(q)))) { if (pa_source_output_finish_move(o, s, save) < 0) - pa_source_output_kill(o); + pa_source_output_fail_move(o); pa_source_output_unref(o); } @@ -572,13 +596,13 @@ void pa_source_move_all_finish(pa_source *s, pa_queue *q, pa_bool_t save) { /* Called from main context */ void pa_source_move_all_fail(pa_queue *q) { pa_source_output *o; + + pa_assert_ctl_context(); pa_assert(q); while ((o = PA_SOURCE_OUTPUT(pa_queue_pop(q)))) { - if (pa_hook_fire(&o->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_MOVE_FAIL], o) == PA_HOOK_OK) { - pa_source_output_kill(o); - pa_source_output_unref(o); - } + pa_source_output_fail_move(o); + pa_source_output_unref(o); } pa_queue_free(q, NULL, NULL); @@ -590,17 +614,18 @@ void pa_source_process_rewind(pa_source *s, size_t nbytes) { void *state = NULL; pa_source_assert_ref(s); + pa_source_assert_io_context(s); pa_assert(PA_SOURCE_IS_LINKED(s->thread_info.state)); - if (s->thread_info.state == PA_SOURCE_SUSPENDED) + if (nbytes <= 0) return; - if (nbytes <= 0) + if (s->thread_info.state == PA_SOURCE_SUSPENDED) return; pa_log_debug("Processing rewind..."); - while ((o = pa_hashmap_iterate(s->thread_info.outputs, &state, NULL))) { + PA_HASHMAP_FOREACH(o, s->thread_info.outputs, state) { pa_source_output_assert_ref(o); pa_source_output_process_rewind(o, nbytes); } @@ -612,6 +637,7 @@ void pa_source_post(pa_source*s, const pa_memchunk *chunk) { void *state = NULL; pa_source_assert_ref(s); + pa_source_assert_io_context(s); pa_assert(PA_SOURCE_IS_LINKED(s->thread_info.state)); pa_assert(chunk); @@ -651,6 +677,7 @@ void pa_source_post(pa_source*s, const pa_memchunk *chunk) { /* Called from IO thread context */ void pa_source_post_direct(pa_source*s, pa_source_output *o, const pa_memchunk *chunk) { pa_source_assert_ref(s); + pa_source_assert_io_context(s); pa_assert(PA_SOURCE_IS_LINKED(s->thread_info.state)); pa_source_output_assert_ref(o); pa_assert(o->thread_info.direct_on_input); @@ -682,6 +709,7 @@ pa_usec_t pa_source_get_latency(pa_source *s) { pa_usec_t usec; pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); if (s->state == PA_SOURCE_SUSPENDED) @@ -701,6 +729,7 @@ pa_usec_t pa_source_get_latency_within_thread(pa_source *s) { pa_msgobject *o; pa_source_assert_ref(s); + pa_source_assert_io_context(s); pa_assert(PA_SOURCE_IS_LINKED(s->thread_info.state)); /* The returned value is supposed to be in the time domain of the sound card! */ @@ -727,6 +756,7 @@ void pa_source_set_volume(pa_source *s, const pa_cvolume *volume, pa_bool_t save pa_bool_t virtual_volume_changed; pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); pa_assert(volume); pa_assert(pa_cvolume_valid(volume)); @@ -752,6 +782,7 @@ void pa_source_set_volume(pa_source *s, const pa_cvolume *volume, pa_bool_t save /* Called from main thread. Only to be called by source implementor */ void pa_source_set_soft_volume(pa_source *s, const pa_cvolume *volume) { pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(volume); if (PA_SOURCE_IS_LINKED(s->state)) @@ -763,6 +794,7 @@ void pa_source_set_soft_volume(pa_source *s, const pa_cvolume *volume) { /* Called from main thread */ const pa_cvolume *pa_source_get_volume(pa_source *s, pa_bool_t force_refresh) { pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); if (s->refresh_volume || force_refresh) { @@ -773,26 +805,28 @@ const pa_cvolume *pa_source_get_volume(pa_source *s, pa_bool_t force_refresh) { pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SOURCE_MESSAGE_GET_VOLUME, NULL, 0, NULL) == 0); - if (!pa_cvolume_equal(&old_virtual_volume, &s->virtual_volume)) + if (!pa_cvolume_equal(&old_virtual_volume, &s->virtual_volume)) { + s->save_volume = TRUE; pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); + } } return &s->virtual_volume; } /* Called from main thread */ -void pa_source_volume_changed(pa_source *s, const pa_cvolume *new_volume, pa_bool_t save) { +void pa_source_volume_changed(pa_source *s, const pa_cvolume *new_volume) { pa_source_assert_ref(s); + pa_assert_ctl_context(); + pa_assert(PA_SOURCE_IS_LINKED(s->state)); /* The source implementor may call this if the volume changed to make sure everyone is notified */ - if (pa_cvolume_equal(&s->virtual_volume, new_volume)) { - s->save_volume = s->save_volume || save; + if (pa_cvolume_equal(&s->virtual_volume, new_volume)) return; - } s->virtual_volume = *new_volume; - s->save_volume = save; + s->save_volume = TRUE; pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); } @@ -802,6 +836,7 @@ void pa_source_set_mute(pa_source *s, pa_bool_t mute, pa_bool_t save) { pa_bool_t old_muted; pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); old_muted = s->muted; @@ -820,6 +855,7 @@ void pa_source_set_mute(pa_source *s, pa_bool_t mute, pa_bool_t save) { /* Called from main thread */ pa_bool_t pa_source_get_mute(pa_source *s, pa_bool_t force_refresh) { pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); if (s->refresh_muted || force_refresh) { @@ -831,6 +867,8 @@ pa_bool_t pa_source_get_mute(pa_source *s, pa_bool_t force_refresh) { pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SOURCE_MESSAGE_GET_MUTE, NULL, 0, NULL) == 0); if (old_muted != s->muted) { + s->save_muted = TRUE; + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); /* Make sure the soft mute status stays in sync */ @@ -842,18 +880,18 @@ pa_bool_t pa_source_get_mute(pa_source *s, pa_bool_t force_refresh) { } /* Called from main thread */ -void pa_source_mute_changed(pa_source *s, pa_bool_t new_muted, pa_bool_t save) { +void pa_source_mute_changed(pa_source *s, pa_bool_t new_muted) { pa_source_assert_ref(s); + pa_assert_ctl_context(); + pa_assert(PA_SOURCE_IS_LINKED(s->state)); /* The source implementor may call this if the mute state changed to make sure everyone is notified */ - if (s->muted == new_muted) { - s->save_muted = s->save_muted || save; + if (s->muted == new_muted) return; - } s->muted = new_muted; - s->save_muted = save; + s->save_muted = TRUE; pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); } @@ -861,6 +899,7 @@ void pa_source_mute_changed(pa_source *s, pa_bool_t new_muted, pa_bool_t save) { /* Called from main thread */ pa_bool_t pa_source_update_proplist(pa_source *s, pa_update_mode_t mode, pa_proplist *p) { pa_source_assert_ref(s); + pa_assert_ctl_context(); if (p) pa_proplist_update(s->proplist, mode, p); @@ -874,16 +913,18 @@ pa_bool_t pa_source_update_proplist(pa_source *s, pa_update_mode_t mode, pa_prop } /* Called from main thread */ +/* FIXME -- this should be dropped and be merged into pa_source_update_proplist() */ void pa_source_set_description(pa_source *s, const char *description) { const char *old; pa_source_assert_ref(s); + pa_assert_ctl_context(); if (!description && !pa_proplist_contains(s->proplist, PA_PROP_DEVICE_DESCRIPTION)) return; old = pa_proplist_gets(s->proplist, PA_PROP_DEVICE_DESCRIPTION); - if (old && description && !strcmp(old, description)) + if (old && description && pa_streq(old, description)) return; if (description) @@ -901,6 +942,7 @@ void pa_source_set_description(pa_source *s, const char *description) { unsigned pa_source_linked_by(pa_source *s) { pa_source_assert_ref(s); pa_assert(PA_SOURCE_IS_LINKED(s->state)); + pa_assert_ctl_context(); return pa_idxset_size(s->outputs); } @@ -911,6 +953,7 @@ unsigned pa_source_used_by(pa_source *s) { pa_source_assert_ref(s); pa_assert(PA_SOURCE_IS_LINKED(s->state)); + pa_assert_ctl_context(); ret = pa_idxset_size(s->outputs); pa_assert(ret >= s->n_corked); @@ -925,6 +968,7 @@ unsigned pa_source_check_suspend(pa_source *s) { uint32_t idx; pa_source_assert_ref(s); + pa_assert_ctl_context(); if (!PA_SOURCE_IS_LINKED(s->state)) return 0; @@ -1006,7 +1050,7 @@ int pa_source_process_msg(pa_msgobject *object, int code, void *userdata, int64_ if (pa_hashmap_remove(s->thread_info.outputs, PA_UINT32_TO_PTR(o->index))) pa_source_output_unref(o); - pa_source_invalidate_requested_latency(s); + pa_source_invalidate_requested_latency(s, TRUE); return 0; } @@ -1086,6 +1130,16 @@ int pa_source_process_msg(pa_msgobject *object, int code, void *userdata, int64_ return 0; } + case PA_SOURCE_MESSAGE_GET_FIXED_LATENCY: + + *((pa_usec_t*) userdata) = s->thread_info.fixed_latency; + return 0; + + case PA_SOURCE_MESSAGE_SET_FIXED_LATENCY: + + pa_source_set_fixed_latency_within_thread(s, (pa_usec_t) offset); + return 0; + case PA_SOURCE_MESSAGE_GET_MAX_REWIND: *((size_t*) userdata) = s->thread_info.max_rewind; @@ -1120,6 +1174,7 @@ int pa_source_suspend_all(pa_core *c, pa_bool_t suspend, pa_suspend_cause_t caus int ret = 0; pa_core_assert_ref(c); + pa_assert_ctl_context(); pa_assert(cause != 0); for (source = PA_SOURCE(pa_idxset_first(c->sources, &idx)); source; source = PA_SOURCE(pa_idxset_next(c->sources, &idx))) { @@ -1138,6 +1193,7 @@ int pa_source_suspend_all(pa_core *c, pa_bool_t suspend, pa_suspend_cause_t caus /* Called from main thread */ void pa_source_detach(pa_source *s) { pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SOURCE_MESSAGE_DETACH, NULL, 0, NULL) == 0); @@ -1146,6 +1202,7 @@ void pa_source_detach(pa_source *s) { /* Called from main thread */ void pa_source_attach(pa_source *s) { pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SOURCE_MESSAGE_ATTACH, NULL, 0, NULL) == 0); @@ -1157,9 +1214,10 @@ void pa_source_detach_within_thread(pa_source *s) { void *state = NULL; pa_source_assert_ref(s); + pa_source_assert_io_context(s); pa_assert(PA_SOURCE_IS_LINKED(s->thread_info.state)); - while ((o = pa_hashmap_iterate(s->thread_info.outputs, &state, NULL))) + PA_HASHMAP_FOREACH(o, s->thread_info.outputs, state) if (o->detach) o->detach(o); } @@ -1170,9 +1228,10 @@ void pa_source_attach_within_thread(pa_source *s) { void *state = NULL; pa_source_assert_ref(s); + pa_source_assert_io_context(s); pa_assert(PA_SOURCE_IS_LINKED(s->thread_info.state)); - while ((o = pa_hashmap_iterate(s->thread_info.outputs, &state, NULL))) + PA_HASHMAP_FOREACH(o, s->thread_info.outputs, state) if (o->attach) o->attach(o); } @@ -1184,15 +1243,15 @@ pa_usec_t pa_source_get_requested_latency_within_thread(pa_source *s) { void *state = NULL; pa_source_assert_ref(s); + pa_source_assert_io_context(s); if (!(s->flags & PA_SOURCE_DYNAMIC_LATENCY)) - return PA_CLAMP(s->fixed_latency, s->thread_info.min_latency, s->thread_info.max_latency); + return PA_CLAMP(s->thread_info.fixed_latency, s->thread_info.min_latency, s->thread_info.max_latency); if (s->thread_info.requested_latency_valid) return s->thread_info.requested_latency; - while ((o = pa_hashmap_iterate(s->thread_info.outputs, &state, NULL))) - + PA_HASHMAP_FOREACH(o, s->thread_info.outputs, state) if (o->thread_info.requested_source_latency != (pa_usec_t) -1 && (result == (pa_usec_t) -1 || result > o->thread_info.requested_source_latency)) result = o->thread_info.requested_source_latency; @@ -1214,6 +1273,7 @@ pa_usec_t pa_source_get_requested_latency(pa_source *s) { pa_usec_t usec = 0; pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(PA_SOURCE_IS_LINKED(s->state)); if (s->state == PA_SOURCE_SUSPENDED) @@ -1230,21 +1290,22 @@ void pa_source_set_max_rewind_within_thread(pa_source *s, size_t max_rewind) { void *state = NULL; pa_source_assert_ref(s); + pa_source_assert_io_context(s); if (max_rewind == s->thread_info.max_rewind) return; s->thread_info.max_rewind = max_rewind; - if (PA_SOURCE_IS_LINKED(s->thread_info.state)) { - while ((o = pa_hashmap_iterate(s->thread_info.outputs, &state, NULL))) + if (PA_SOURCE_IS_LINKED(s->thread_info.state)) + PA_HASHMAP_FOREACH(o, s->thread_info.outputs, state) pa_source_output_update_max_rewind(o, s->thread_info.max_rewind); - } } /* Called from main thread */ void pa_source_set_max_rewind(pa_source *s, size_t max_rewind) { pa_source_assert_ref(s); + pa_assert_ctl_context(); if (PA_SOURCE_IS_LINKED(s->state)) pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SOURCE_MESSAGE_SET_MAX_REWIND, NULL, max_rewind, NULL) == 0); @@ -1253,17 +1314,18 @@ void pa_source_set_max_rewind(pa_source *s, size_t max_rewind) { } /* Called from IO thread */ -void pa_source_invalidate_requested_latency(pa_source *s) { +void pa_source_invalidate_requested_latency(pa_source *s, pa_bool_t dynamic) { pa_source_output *o; void *state = NULL; pa_source_assert_ref(s); + pa_source_assert_io_context(s); - if (!(s->flags & PA_SOURCE_DYNAMIC_LATENCY)) + if ((s->flags & PA_SOURCE_DYNAMIC_LATENCY)) + s->thread_info.requested_latency_valid = FALSE; + else if (dynamic) return; - s->thread_info.requested_latency_valid = FALSE; - if (PA_SOURCE_IS_LINKED(s->thread_info.state)) { if (s->update_requested_latency) @@ -1275,12 +1337,13 @@ void pa_source_invalidate_requested_latency(pa_source *s) { } if (s->monitor_of) - pa_sink_invalidate_requested_latency(s->monitor_of); + pa_sink_invalidate_requested_latency(s->monitor_of, dynamic); } /* Called from main thread */ void pa_source_set_latency_range(pa_source *s, pa_usec_t min_latency, pa_usec_t max_latency) { pa_source_assert_ref(s); + pa_assert_ctl_context(); /* min_latency == 0: no limit * min_latency anything else: specified limit @@ -1315,6 +1378,7 @@ void pa_source_set_latency_range(pa_source *s, pa_usec_t min_latency, pa_usec_t /* Called from main thread */ void pa_source_get_latency_range(pa_source *s, pa_usec_t *min_latency, pa_usec_t *max_latency) { pa_source_assert_ref(s); + pa_assert_ctl_context(); pa_assert(min_latency); pa_assert(max_latency); @@ -1333,9 +1397,8 @@ void pa_source_get_latency_range(pa_source *s, pa_usec_t *min_latency, pa_usec_t /* Called from IO thread, and from main thread before pa_source_put() is called */ void pa_source_set_latency_range_within_thread(pa_source *s, pa_usec_t min_latency, pa_usec_t max_latency) { - void *state = NULL; - pa_source_assert_ref(s); + pa_source_assert_io_context(s); pa_assert(min_latency >= ABSOLUTE_MIN_LATENCY); pa_assert(max_latency <= ABSOLUTE_MAX_LATENCY); @@ -1347,25 +1410,34 @@ void pa_source_set_latency_range_within_thread(pa_source *s, pa_usec_t min_laten (s->flags & PA_SOURCE_DYNAMIC_LATENCY) || s->monitor_of); + if (s->thread_info.min_latency == min_latency && + s->thread_info.max_latency == max_latency) + return; + s->thread_info.min_latency = min_latency; s->thread_info.max_latency = max_latency; if (PA_SOURCE_IS_LINKED(s->thread_info.state)) { pa_source_output *o; + void *state = NULL; - while ((o = pa_hashmap_iterate(s->thread_info.outputs, &state, NULL))) + PA_HASHMAP_FOREACH(o, s->thread_info.outputs, state) if (o->update_source_latency_range) o->update_source_latency_range(o); } - pa_source_invalidate_requested_latency(s); + pa_source_invalidate_requested_latency(s, FALSE); } /* Called from main thread, before the source is put */ void pa_source_set_fixed_latency(pa_source *s, pa_usec_t latency) { pa_source_assert_ref(s); + pa_assert_ctl_context(); - pa_assert(pa_source_get_state(s) == PA_SOURCE_INIT); + if (s->flags & PA_SOURCE_DYNAMIC_LATENCY) { + pa_assert(latency == 0); + return; + } if (latency < ABSOLUTE_MIN_LATENCY) latency = ABSOLUTE_MIN_LATENCY; @@ -1373,12 +1445,64 @@ void pa_source_set_fixed_latency(pa_source *s, pa_usec_t latency) { if (latency > ABSOLUTE_MAX_LATENCY) latency = ABSOLUTE_MAX_LATENCY; - s->fixed_latency = latency; + if (PA_SOURCE_IS_LINKED(s->state)) + pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SOURCE_MESSAGE_SET_FIXED_LATENCY, NULL, (int64_t) latency, NULL) == 0); + else + s->thread_info.fixed_latency = latency; +} + +/* Called from main thread */ +pa_usec_t pa_source_get_fixed_latency(pa_source *s) { + pa_usec_t latency; + + pa_source_assert_ref(s); + pa_assert_ctl_context(); + + if (s->flags & PA_SOURCE_DYNAMIC_LATENCY) + return 0; + + if (PA_SOURCE_IS_LINKED(s->state)) + pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SOURCE_MESSAGE_GET_FIXED_LATENCY, &latency, 0, NULL) == 0); + else + latency = s->thread_info.fixed_latency; + + return latency; +} + +/* Called from IO thread */ +void pa_source_set_fixed_latency_within_thread(pa_source *s, pa_usec_t latency) { + pa_source_assert_ref(s); + pa_source_assert_io_context(s); + + if (s->flags & PA_SOURCE_DYNAMIC_LATENCY) { + pa_assert(latency == 0); + return; + } + + pa_assert(latency >= ABSOLUTE_MIN_LATENCY); + pa_assert(latency <= ABSOLUTE_MAX_LATENCY); + + if (s->thread_info.fixed_latency == latency) + return; + + s->thread_info.fixed_latency = latency; + + if (PA_SOURCE_IS_LINKED(s->thread_info.state)) { + pa_source_output *o; + void *state = NULL; + + PA_HASHMAP_FOREACH(o, s->thread_info.outputs, state) + if (o->update_source_fixed_latency) + o->update_source_fixed_latency(o); + } + + pa_source_invalidate_requested_latency(s, FALSE); } /* Called from main thread */ size_t pa_source_get_max_rewind(pa_source *s) { size_t r; + pa_assert_ctl_context(); pa_source_assert_ref(s); if (!PA_SOURCE_IS_LINKED(s->state)) @@ -1394,9 +1518,10 @@ int pa_source_set_port(pa_source *s, const char *name, pa_bool_t save) { pa_device_port *port; pa_assert(s); + pa_assert_ctl_context(); if (!s->set_port) { - pa_log_debug("set_port() operation not implemented for sink %u \"%s\"", s->index, s->name); + pa_log_debug("set_port() operation not implemented for source %u \"%s\"", s->index, s->name); return -PA_ERR_NOTIMPLEMENTED; } diff --git a/src/pulsecore/source.h b/src/pulsecore/source.h index 7e9fd8b7..6f33de06 100644 --- a/src/pulsecore/source.h +++ b/src/pulsecore/source.h @@ -43,6 +43,7 @@ typedef struct pa_source pa_source; #include #include #include +#include #define PA_MAX_OUTPUTS_PER_SOURCE 32 @@ -89,12 +90,9 @@ struct pa_source { pa_bool_t save_muted:1; pa_asyncmsgq *asyncmsgq; - pa_rtpoll *rtpoll; pa_memchunk silence; - pa_usec_t fixed_latency; /* for sources with PA_SOURCE_DYNAMIC_LATENCY this is 0 */ - pa_hashmap *ports; pa_device_port *active_port; @@ -139,6 +137,8 @@ struct pa_source { pa_source_state_t state; pa_hashmap *outputs; + pa_rtpoll *rtpoll; + pa_cvolume soft_volume; pa_bool_t soft_muted:1; @@ -151,7 +151,9 @@ struct pa_source { pa_usec_t min_latency; /* we won't go below this latency */ pa_usec_t max_latency; /* An upper limit for the latencies */ - } thread_info; + + pa_usec_t fixed_latency; /* for sources with PA_SOURCE_DYNAMIC_LATENCY this is 0 */ + } thread_info; void *userdata; }; @@ -173,6 +175,8 @@ typedef enum pa_source_message { PA_SOURCE_MESSAGE_DETACH, PA_SOURCE_MESSAGE_SET_LATENCY_RANGE, PA_SOURCE_MESSAGE_GET_LATENCY_RANGE, + PA_SOURCE_MESSAGE_SET_FIXED_LATENCY, + PA_SOURCE_MESSAGE_GET_FIXED_LATENCY, PA_SOURCE_MESSAGE_GET_MAX_REWIND, PA_SOURCE_MESSAGE_SET_MAX_REWIND, PA_SOURCE_MESSAGE_MAX @@ -237,17 +241,20 @@ void pa_source_detach(pa_source *s); void pa_source_attach(pa_source *s); void pa_source_set_soft_volume(pa_source *s, const pa_cvolume *volume); -void pa_source_volume_changed(pa_source *s, const pa_cvolume *new_volume, pa_bool_t save); -void pa_source_mute_changed(pa_source *s, pa_bool_t new_muted, pa_bool_t save); +void pa_source_volume_changed(pa_source *s, const pa_cvolume *new_volume); +void pa_source_mute_changed(pa_source *s, pa_bool_t new_muted); int pa_source_sync_suspend(pa_source *s); +void pa_source_update_flags(pa_source *s, pa_source_flags_t mask, pa_source_flags_t value); + /*** May be called by everyone, from main context */ /* The returned value is supposed to be in the time domain of the sound card! */ pa_usec_t pa_source_get_latency(pa_source *s); pa_usec_t pa_source_get_requested_latency(pa_source *s); void pa_source_get_latency_range(pa_source *s, pa_usec_t *min_latency, pa_usec_t *max_latency); +pa_usec_t pa_source_get_fixed_latency(pa_source *s); size_t pa_source_get_max_rewind(pa_source *s); @@ -257,6 +264,7 @@ int pa_source_suspend_all(pa_core *c, pa_bool_t suspend, pa_suspend_cause_t caus void pa_source_set_volume(pa_source *source, const pa_cvolume *volume, pa_bool_t save); const pa_cvolume *pa_source_get_volume(pa_source *source, pa_bool_t force_refresh); + void pa_source_set_mute(pa_source *source, pa_bool_t mute, pa_bool_t save); pa_bool_t pa_source_get_mute(pa_source *source, pa_bool_t force_refresh); @@ -288,11 +296,16 @@ void pa_source_detach_within_thread(pa_source *s); pa_usec_t pa_source_get_requested_latency_within_thread(pa_source *s); void pa_source_set_max_rewind_within_thread(pa_source *s, size_t max_rewind); + void pa_source_set_latency_range_within_thread(pa_source *s, pa_usec_t min_latency, pa_usec_t max_latency); +void pa_source_set_fixed_latency_within_thread(pa_source *s, pa_usec_t latency); /*** To be called exclusively by source output drivers, from IO context */ -void pa_source_invalidate_requested_latency(pa_source *s); +void pa_source_invalidate_requested_latency(pa_source *s, pa_bool_t dynamic); pa_usec_t pa_source_get_latency_within_thread(pa_source *s); +#define pa_source_assert_io_context(s) \ + pa_assert(pa_thread_mq_get() || !PA_SOURCE_IS_LINKED((s)->state)) + #endif diff --git a/src/pulsecore/start-child.c b/src/pulsecore/start-child.c index 7774bde6..b3bce131 100644 --- a/src/pulsecore/start-child.c +++ b/src/pulsecore/start-child.c @@ -68,23 +68,24 @@ int pa_start_child_for_read(const char *name, const char *argv1, pid_t *pid) { } else { /* child */ - pa_reset_priority(); + pa_reset_personality(); pa_assert_se(pa_close(pipe_fds[0]) == 0); - pa_assert_se(dup2(pipe_fds[1], 1) == 1); + pa_assert_se(dup2(pipe_fds[1], STDOUT_FILENO) == STDOUT_FILENO); - if (pipe_fds[1] != 1) + if (pipe_fds[1] != STDOUT_FILENO) pa_assert_se(pa_close(pipe_fds[1]) == 0); - pa_close(0); - pa_assert_se(open("/dev/null", O_RDONLY) == 0); + pa_close(STDIN_FILENO); + pa_assert_se(open("/dev/null", O_RDONLY) == STDIN_FILENO); - pa_close(2); - pa_assert_se(open("/dev/null", O_WRONLY) == 2); + pa_close(STDERR_FILENO); + pa_assert_se(open("/dev/null", O_WRONLY) == STDERR_FILENO); pa_close_all(-1); pa_reset_sigs(-1); pa_unblock_sigs(-1); + pa_reset_priority(); #ifdef PR_SET_PDEATHSIG /* On Linux we can use PR_SET_PDEATHSIG to have the helper diff --git a/src/pulsecore/thread-mq.c b/src/pulsecore/thread-mq.c index 34f92a7e..73997a74 100644 --- a/src/pulsecore/thread-mq.c +++ b/src/pulsecore/thread-mq.c @@ -59,7 +59,7 @@ static void asyncmsgq_read_cb(pa_mainloop_api*api, pa_io_event* e, int fd, pa_io pa_memchunk chunk; /* Check whether there is a message for us to process */ - while (pa_asyncmsgq_get(aq, &object, &code, &data, &offset, &chunk, 0) == 0) { + while (pa_asyncmsgq_get(aq, &object, &code, &data, &offset, &chunk, 0) >= 0) { int ret; ret = pa_asyncmsgq_dispatch(object, code, data, offset, &chunk); @@ -104,6 +104,15 @@ void pa_thread_mq_init(pa_thread_mq *q, pa_mainloop_api *mainloop, pa_rtpoll *rt void pa_thread_mq_done(pa_thread_mq *q) { pa_assert(q); + /* Since we are called from main context we can be sure that the + * inq is empty. However, the outq might still contain messages + * for the main loop, which we need to dispatch (e.g. release + * msgs, other stuff). Hence do so if we aren't currently + * dispatching anyway. */ + + if (!pa_asyncmsgq_dispatching(q->outq)) + pa_asyncmsgq_flush(q->outq, TRUE); + q->mainloop->io_free(q->read_event); q->mainloop->io_free(q->write_event); q->read_event = q->write_event = NULL; diff --git a/src/pulsecore/thread-mq.h b/src/pulsecore/thread-mq.h index 3b5e0e78..96839d25 100644 --- a/src/pulsecore/thread-mq.h +++ b/src/pulsecore/thread-mq.h @@ -45,4 +45,12 @@ void pa_thread_mq_install(pa_thread_mq *q); /* Return the pa_thread_mq object that is set for the current thread */ pa_thread_mq *pa_thread_mq_get(void); +/* Verify that we are in control context (aka 'main context'). */ +#define pa_assert_ctl_context(s) \ + pa_assert(!pa_thread_mq_get()) + +/* Verify that we are in IO context (aka 'thread context'). */ +#define pa_assert_io_context(s) \ + pa_assert(pa_thread_mq_get()) + #endif diff --git a/src/pulsecore/time-smoother.c b/src/pulsecore/time-smoother.c index 9d5a0705..d6c37878 100644 --- a/src/pulsecore/time-smoother.c +++ b/src/pulsecore/time-smoother.c @@ -108,29 +108,11 @@ pa_smoother* pa_smoother_new( s = pa_xnew(pa_smoother, 1); s->adjust_time = adjust_time; s->history_time = history_time; - s->time_offset = 0; + s->min_history = min_history; s->monotonic = monotonic; - - s->px = s->py = 0; - s->dp = 1; - - s->ex = s->ey = s->ry = 0; - s->de = 1; - - s->history_idx = 0; - s->n_history = 0; - - s->last_y = s->last_x = 0; - - s->abc_valid = FALSE; - - s->paused = FALSE; s->smoothing = smoothing; - s->min_history = min_history; - - s->paused = paused; - s->time_offset = s->pause_time = time_offset; + pa_smoother_reset(s, time_offset, paused); return s; } @@ -514,9 +496,26 @@ pa_usec_t pa_smoother_translate(pa_smoother *s, pa_usec_t x, pa_usec_t y_delay) return (pa_usec_t) llrint((double) y_delay / nde); } -void pa_smoother_reset(pa_smoother *s) { +void pa_smoother_reset(pa_smoother *s, pa_usec_t time_offset, pa_bool_t paused) { pa_assert(s); + s->px = s->py = 0; + s->dp = 1; + + s->ex = s->ey = s->ry = 0; + s->de = 1; + + s->history_idx = 0; s->n_history = 0; + + s->last_y = s->last_x = 0; + s->abc_valid = FALSE; + + s->paused = paused; + s->time_offset = s->pause_time = time_offset; + +#ifdef DEBUG_DATA + pa_log_debug("reset()"); +#endif } diff --git a/src/pulsecore/time-smoother.h b/src/pulsecore/time-smoother.h index 5244a7e7..63d33e48 100644 --- a/src/pulsecore/time-smoother.h +++ b/src/pulsecore/time-smoother.h @@ -52,7 +52,7 @@ void pa_smoother_set_time_offset(pa_smoother *s, pa_usec_t x_offset); void pa_smoother_pause(pa_smoother *s, pa_usec_t x); void pa_smoother_resume(pa_smoother *s, pa_usec_t x, pa_bool_t abrupt); -void pa_smoother_reset(pa_smoother *s); +void pa_smoother_reset(pa_smoother *s, pa_usec_t time_offset, pa_bool_t paused); void pa_smoother_fix_now(pa_smoother *s); diff --git a/src/tests/get-binary-name-test.c b/src/tests/get-binary-name-test.c index a34e38fd..e49f2eff 100644 --- a/src/tests/get-binary-name-test.c +++ b/src/tests/get-binary-name-test.c @@ -23,12 +23,33 @@ #include #include +#include #include +#include int main(int argc, char *argv[]) { - char exename[PATH_MAX]; + char *exename; + size_t allocated = 128; + + for (;;) { + exename = pa_xmalloc(allocated); + + if (!pa_get_binary_name(exename, allocated)) { + printf("failed to read binary name\n"); + pa_xfree(exename); + break; + } + + if (strlen(exename) < allocated - 1) { + printf("%s\n", exename); + pa_xfree(exename); + break; + } + + pa_xfree(exename); + allocated *= 2; + } - printf("%s\n", pa_get_binary_name(exename, sizeof(exename))); return 0; } diff --git a/src/tests/interpol-test.c b/src/tests/interpol-test.c index 0c906d3e..007555c3 100644 --- a/src/tests/interpol-test.c +++ b/src/tests/interpol-test.c @@ -43,20 +43,37 @@ static pa_context *context = NULL; static pa_stream *stream = NULL; static pa_mainloop_api *mainloop_api = NULL; static pa_bool_t playback = TRUE; +static pa_usec_t latency = 0; static void stream_write_cb(pa_stream *p, size_t nbytes, void *userdata) { /* Just some silence */ - pa_assert_se(pa_stream_write(p, pa_xmalloc0(nbytes), nbytes, pa_xfree, 0, PA_SEEK_RELATIVE) == 0); + + for (;;) { + void *data; + + pa_assert_se((nbytes = pa_stream_writable_size(p)) != (size_t) -1); + + if (nbytes <= 0) + break; + + pa_assert_se(pa_stream_begin_write(p, &data, &nbytes) == 0); + pa_memzero(data, nbytes); + pa_assert_se(pa_stream_write(p, data, nbytes, NULL, 0, PA_SEEK_RELATIVE) == 0); + } } static void stream_read_cb(pa_stream *p, size_t nbytes, void *userdata) { - /* We don't care, just drop the data */ + /* We don't care about the data, just drop it */ - while (pa_stream_readable_size(p) > 0) { - const void *d; - size_t b; + for (;;) { + const void *data; - pa_assert_se(pa_stream_peek(p, &d, &b) == 0); + pa_assert_se((nbytes = pa_stream_readable_size(p)) != (size_t) -1); + + if (nbytes <= 0) + break; + + pa_assert_se(pa_stream_peek(p, &data, &nbytes) == 0); pa_assert_se(pa_stream_drop(p) == 0); } } @@ -82,27 +99,36 @@ static void context_state_callback(pa_context *c, void *userdata) { case PA_CONTEXT_READY: { pa_stream_flags_t flags = PA_STREAM_AUTO_TIMING_UPDATE; - + pa_buffer_attr attr; static const pa_sample_spec ss = { .format = PA_SAMPLE_S16LE, .rate = 44100, .channels = 2 }; + pa_zero(attr); + attr.maxlength = (uint32_t) -1; + attr.tlength = latency > 0 ? (uint32_t) pa_usec_to_bytes(latency, &ss) : (uint32_t) -1; + attr.prebuf = (uint32_t) -1; + attr.minreq = (uint32_t) -1; + attr.fragsize = (uint32_t) -1; + #ifdef INTERPOLATE flags |= PA_STREAM_INTERPOLATE_TIMING; #endif + if (latency > 0) + flags |= PA_STREAM_ADJUST_LATENCY; + fprintf(stderr, "Connection established.\n"); - stream = pa_stream_new(c, "interpol-test", &ss, NULL); - assert(stream); + pa_assert_se(stream = pa_stream_new(c, "interpol-test", &ss, NULL)); if (playback) { - pa_assert_se(pa_stream_connect_playback(stream, NULL, NULL, flags, NULL, NULL) == 0); + pa_assert_se(pa_stream_connect_playback(stream, NULL, &attr, flags, NULL, NULL) == 0); pa_stream_set_write_callback(stream, stream_write_cb, NULL); } else { - pa_assert_se(pa_stream_connect_record(stream, NULL, NULL, flags) == 0); + pa_assert_se(pa_stream_connect_record(stream, NULL, &attr, flags) == 0); pa_stream_set_read_callback(stream, stream_read_cb, NULL); } @@ -123,7 +149,7 @@ static void context_state_callback(pa_context *c, void *userdata) { int main(int argc, char *argv[]) { pa_threaded_mainloop* m = NULL; - int k, r; + int k; struct timeval start, last_info = { 0, 0 }; pa_usec_t old_t = 0, old_rtc = 0; #ifdef CORK @@ -134,24 +160,22 @@ int main(int argc, char *argv[]) { playback = argc <= 1 || !pa_streq(argv[1], "-r"); - /* Set up a new main loop */ - m = pa_threaded_mainloop_new(); - assert(m); - - mainloop_api = pa_threaded_mainloop_get_api(m); + latency = + (argc >= 2 && !pa_streq(argv[1], "-r")) ? atoi(argv[1]) : + (argc >= 3 ? atoi(argv[2]) : 0); - context = pa_context_new(mainloop_api, argv[0]); - assert(context); + /* Set up a new main loop */ + pa_assert_se(m = pa_threaded_mainloop_new()); + pa_assert_se(mainloop_api = pa_threaded_mainloop_get_api(m)); + pa_assert_se(context = pa_context_new(mainloop_api, argv[0])); pa_context_set_state_callback(context, context_state_callback, NULL); - r = pa_context_connect(context, NULL, 0, NULL); - assert(r >= 0); + pa_assert_se(pa_context_connect(context, NULL, 0, NULL) >= 0); pa_gettimeofday(&start); - r = pa_threaded_mainloop_start(m); - assert(r >= 0); + pa_assert_se(pa_threaded_mainloop_start(m) >= 0); /* #ifdef CORK */ for (k = 0; k < 20000; k++) @@ -160,7 +184,7 @@ int main(int argc, char *argv[]) { /* #endif */ { pa_bool_t success = FALSE, changed = FALSE; - pa_usec_t t, rtc; + pa_usec_t t, rtc, d; struct timeval now, tv; pa_bool_t playing = FALSE; @@ -169,7 +193,8 @@ int main(int argc, char *argv[]) { if (stream) { const pa_timing_info *info; - if (pa_stream_get_time(stream, &t) >= 0) + if (pa_stream_get_time(stream, &t) >= 0 && + pa_stream_get_latency(stream, &d, NULL) >= 0) success = TRUE; if ((info = pa_stream_get_timing_info(stream))) { @@ -191,14 +216,16 @@ int main(int argc, char *argv[]) { pa_bool_t cork_now; #endif rtc = pa_timeval_diff(&now, &start); - printf("%i\t%llu\t%llu\t%llu\t%llu\t%lli\t%u\t%u\n", k, + printf("%i\t%llu\t%llu\t%llu\t%llu\t%lli\t%u\t%u\t%llu\t%llu\n", k, (unsigned long long) rtc, (unsigned long long) t, (unsigned long long) (rtc-old_rtc), (unsigned long long) (t-old_t), (signed long long) rtc - (signed long long) t, changed, - playing); + playing, + (unsigned long long) latency, + (unsigned long long) d); fflush(stdout); old_t = t; diff --git a/src/tests/mix-test.c b/src/tests/mix-test.c index c7a30d67..f9f76da3 100644 --- a/src/tests/mix-test.c +++ b/src/tests/mix-test.c @@ -69,6 +69,8 @@ static void dump_block(const pa_sample_spec *ss, const pa_memchunk *chunk) { break; } + case PA_SAMPLE_S24_32NE: + case PA_SAMPLE_S24_32RE: case PA_SAMPLE_S32NE: case PA_SAMPLE_S32RE: { uint32_t *u = d; @@ -83,8 +85,10 @@ static void dump_block(const pa_sample_spec *ss, const pa_memchunk *chunk) { 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++), *(u++)); + for (i = 0; i < chunk->length / pa_frame_size(ss); i++) { + printf("0x%02x%02x%02xx ", *u, *(u+1), *(u+2)); + u += 3; + } break; } @@ -123,66 +127,72 @@ 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: { - static const uint8_t u8_samples[] = - { 0x00, 0xFF, 0x7F, 0x80, 0x9f, - 0x3f, 0x01, 0xF0, 0x20, 0x21 }; + static const uint8_t u8_samples[] = { + 0x00, 0xFF, 0x7F, 0x80, 0x9f, + 0x3f, 0x01, 0xF0, 0x20, 0x21 + }; - memcpy(d, &u8_samples[0], sizeof(u8_samples)); + memcpy(d, u8_samples, sizeof(u8_samples)); break; } case PA_SAMPLE_S16NE: case PA_SAMPLE_S16RE: { - static const uint16_t u16_samples[] = - { 0x0000, 0xFFFF, 0x7FFF, 0x8000, 0x9fff, - 0x3fff, 0x0001, 0xF000, 0x0020, 0x0021 }; + static const uint16_t u16_samples[] = { + 0x0000, 0xFFFF, 0x7FFF, 0x8000, 0x9fff, + 0x3fff, 0x0001, 0xF000, 0x0020, 0x0021 + }; - memcpy(d, &u16_samples[0], sizeof(u16_samples)); + memcpy(d, u16_samples, sizeof(u16_samples)); break; } + case PA_SAMPLE_S24_32NE: + case PA_SAMPLE_S24_32RE: case PA_SAMPLE_S32NE: case PA_SAMPLE_S32RE: { - static const uint32_t u32_samples[] = - { 0x00000001, 0xFFFF0002, 0x7FFF0003, 0x80000004, 0x9fff0005, - 0x3fff0006, 0x00010007, 0xF0000008, 0x00200009, 0x0021000A }; + static const uint32_t u32_samples[] = { + 0x00000001, 0xFFFF0002, 0x7FFF0003, 0x80000004, 0x9fff0005, + 0x3fff0006, 0x00010007, 0xF0000008, 0x00200009, 0x0021000A + }; - memcpy(d, &u32_samples[0], sizeof(u32_samples)); + memcpy(d, u32_samples, sizeof(u32_samples)); break; } 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)); + /* 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, 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 }; + static const float float_samples[] = { + 0.0f, -1.0f, 1.0f, 4711.0f, 0.222f, + 0.33f, -.3f, 99.0f, -0.555f, -.123f + }; if (ss->format == PA_SAMPLE_FLOAT32RE) { for (i = 0; i < 10; i++) u[i] = swap_float(float_samples[i]); - } else { - memcpy(d, &float_samples[0], sizeof(float_samples)); - } + } else + memcpy(d, float_samples, sizeof(float_samples)); break; } 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/voltest.c b/src/tests/voltest.c index 2dcfa53c..64aec5c6 100644 --- a/src/tests/voltest.c +++ b/src/tests/voltest.c @@ -1,8 +1,33 @@ +/*** + 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. +***/ + +#ifdef HAVE_CONFIG_H +#include +#endif + #include #include #include +#include + int main(int argc, char *argv[]) { pa_volume_t v; pa_cvolume cv; @@ -60,5 +85,16 @@ int main(int argc, char *argv[]) { printf("After: volume: [%s]; balance: %2.1f (intended: %2.1f) %s\n", pa_cvolume_snprint(s, sizeof(s), &r), k, b, k < b-.05 || k > b+.5 ? "MISMATCH" : ""); } + for (v = PA_VOLUME_MUTED; v <= PA_VOLUME_NORM*2; v += 1) { + + double l = pa_sw_volume_to_linear(v); + pa_volume_t k = pa_sw_volume_from_linear(l); + double db = pa_sw_volume_to_dB(v); + pa_volume_t r = pa_sw_volume_from_dB(db); + + pa_assert(k == v); + pa_assert(r == v); + } + return 0; } diff --git a/src/utils/pacat.c b/src/utils/pacat.c index f00a32eb..9264a062 100644 --- a/src/utils/pacat.c +++ b/src/utils/pacat.c @@ -105,12 +105,12 @@ static void context_drain_complete(pa_context*c, void *userdata) { static void stream_drain_complete(pa_stream*s, int success, void *userdata) { if (!success) { - pa_log(_("Failed to drain stream: %s\n"), pa_strerror(pa_context_errno(context))); + pa_log(_("Failed to drain stream: %s"), pa_strerror(pa_context_errno(context))); quit(1); } if (verbose) - pa_log(_("Playback stream drained.\n")); + pa_log(_("Playback stream drained.")); pa_stream_disconnect(stream); pa_stream_unref(stream); @@ -120,7 +120,7 @@ static void stream_drain_complete(pa_stream*s, int success, void *userdata) { pa_context_disconnect(context); else { if (verbose) - pa_log(_("Draining connection to server.\n")); + pa_log(_("Draining connection to server.")); } } @@ -133,7 +133,7 @@ static void start_drain(void) { pa_stream_set_write_callback(stream, NULL, NULL); if (!(o = pa_stream_drain(stream, stream_drain_complete, NULL))) { - pa_log(_("pa_stream_drain(): %s\n"), pa_strerror(pa_context_errno(context))); + pa_log(_("pa_stream_drain(): %s"), pa_strerror(pa_context_errno(context))); quit(1); return; } @@ -156,7 +156,7 @@ static void do_stream_write(size_t length) { l = buffer_length; if (pa_stream_write(stream, (uint8_t*) buffer + buffer_index, l, NULL, 0, PA_SEEK_RELATIVE) < 0) { - pa_log(_("pa_stream_write() failed: %s\n"), pa_strerror(pa_context_errno(context))); + pa_log(_("pa_stream_write() failed: %s"), pa_strerror(pa_context_errno(context))); quit(1); return; } @@ -193,7 +193,11 @@ static void stream_write_callback(pa_stream *s, size_t length, void *userdata) { pa_assert(sndfile); - data = pa_xmalloc(length); + if (pa_stream_begin_write(s, &data, &length) < 0) { + pa_log(_("pa_stream_begin_write() failed: %s"), pa_strerror(pa_context_errno(context))); + quit(1); + return; + } if (readf_function) { size_t k = pa_frame_size(&sample_spec); @@ -205,9 +209,9 @@ static void stream_write_callback(pa_stream *s, size_t length, void *userdata) { bytes = sf_read_raw(sndfile, data, (sf_count_t) length); if (bytes > 0) - pa_stream_write(s, data, (size_t) bytes, pa_xfree, 0, PA_SEEK_RELATIVE); + pa_stream_write(s, data, (size_t) bytes, NULL, 0, PA_SEEK_RELATIVE); else - pa_xfree(data); + pa_stream_cancel_write(s); if (bytes < (sf_count_t) length) start_drain(); @@ -226,12 +230,11 @@ static void stream_read_callback(pa_stream *s, size_t length, void *userdata) { if (stdio_event) mainloop_api->io_enable(stdio_event, PA_IO_EVENT_OUTPUT); - while (pa_stream_readable_size(s) > 0) { const void *data; if (pa_stream_peek(s, &data, &length) < 0) { - pa_log(_("pa_stream_peek() failed: %s\n"), pa_strerror(pa_context_errno(context))); + pa_log(_("pa_stream_peek() failed: %s"), pa_strerror(pa_context_errno(context))); quit(1); return; } @@ -249,6 +252,7 @@ static void stream_read_callback(pa_stream *s, size_t length, void *userdata) { buffer_length = length; buffer_index = 0; } + pa_stream_drop(s); } @@ -260,7 +264,7 @@ static void stream_read_callback(pa_stream *s, size_t length, void *userdata) { const void *data; if (pa_stream_peek(s, &data, &length) < 0) { - pa_log(_("pa_stream_peek() failed: %s\n"), pa_strerror(pa_context_errno(context))); + pa_log(_("pa_stream_peek() failed: %s"), pa_strerror(pa_context_errno(context))); quit(1); return; } @@ -300,25 +304,25 @@ static void stream_state_callback(pa_stream *s, void *userdata) { const pa_buffer_attr *a; char cmt[PA_CHANNEL_MAP_SNPRINT_MAX], sst[PA_SAMPLE_SPEC_SNPRINT_MAX]; - pa_log(_("Stream successfully created.\n")); + pa_log(_("Stream successfully created.")); if (!(a = pa_stream_get_buffer_attr(s))) - pa_log(_("pa_stream_get_buffer_attr() failed: %s\n"), pa_strerror(pa_context_errno(pa_stream_get_context(s)))); + pa_log(_("pa_stream_get_buffer_attr() failed: %s"), pa_strerror(pa_context_errno(pa_stream_get_context(s)))); else { if (mode == PLAYBACK) - pa_log(_("Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u\n"), a->maxlength, a->tlength, a->prebuf, a->minreq); + pa_log(_("Buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u"), a->maxlength, a->tlength, a->prebuf, a->minreq); else { pa_assert(mode == RECORD); - pa_log(_("Buffer metrics: maxlength=%u, fragsize=%u\n"), a->maxlength, a->fragsize); + pa_log(_("Buffer metrics: maxlength=%u, fragsize=%u"), a->maxlength, a->fragsize); } } - pa_log(_("Using sample spec '%s', channel map '%s'.\n"), + pa_log(_("Using sample spec '%s', channel map '%s'."), pa_sample_spec_snprint(sst, sizeof(sst), pa_stream_get_sample_spec(s)), pa_channel_map_snprint(cmt, sizeof(cmt), pa_stream_get_channel_map(s))); - pa_log(_("Connected to device %s (%u, %ssuspended).\n"), + pa_log(_("Connected to device %s (%u, %ssuspended)."), pa_stream_get_device_name(s), pa_stream_get_device_index(s), pa_stream_is_suspended(s) ? "" : "not "); @@ -328,7 +332,7 @@ static void stream_state_callback(pa_stream *s, void *userdata) { case PA_STREAM_FAILED: default: - pa_log(_("Stream error: %s\n"), pa_strerror(pa_context_errno(pa_stream_get_context(s)))); + pa_log(_("Stream error: %s"), pa_strerror(pa_context_errno(pa_stream_get_context(s)))); quit(1); } } @@ -338,9 +342,9 @@ static void stream_suspended_callback(pa_stream *s, void *userdata) { if (verbose) { if (pa_stream_is_suspended(s)) - pa_log(_("Stream device suspended.%s \n"), CLEAR_LINE); + pa_log(_("Stream device suspended.%s"), CLEAR_LINE); else - pa_log(_("Stream device resumed.%s \n"), CLEAR_LINE); + pa_log(_("Stream device resumed.%s"), CLEAR_LINE); } } @@ -348,35 +352,35 @@ static void stream_underflow_callback(pa_stream *s, void *userdata) { pa_assert(s); if (verbose) - pa_log(_("Stream underrun.%s \n"), CLEAR_LINE); + pa_log(_("Stream underrun.%s"), CLEAR_LINE); } static void stream_overflow_callback(pa_stream *s, void *userdata) { pa_assert(s); if (verbose) - pa_log(_("Stream overrun.%s \n"), CLEAR_LINE); + pa_log(_("Stream overrun.%s"), CLEAR_LINE); } static void stream_started_callback(pa_stream *s, void *userdata) { pa_assert(s); if (verbose) - pa_log(_("Stream started.%s \n"), CLEAR_LINE); + pa_log(_("Stream started.%s"), CLEAR_LINE); } static void stream_moved_callback(pa_stream *s, void *userdata) { pa_assert(s); if (verbose) - pa_log(_("Stream moved to device %s (%u, %ssuspended).%s \n"), pa_stream_get_device_name(s), pa_stream_get_device_index(s), pa_stream_is_suspended(s) ? "" : _("not "), CLEAR_LINE); + pa_log(_("Stream moved to device %s (%u, %ssuspended).%s"), pa_stream_get_device_name(s), pa_stream_get_device_index(s), pa_stream_is_suspended(s) ? "" : _("not "), CLEAR_LINE); } static void stream_buffer_attr_callback(pa_stream *s, void *userdata) { pa_assert(s); if (verbose) - pa_log(_("Stream buffer attributes changed.%s \n"), CLEAR_LINE); + pa_log(_("Stream buffer attributes changed.%s"), CLEAR_LINE); } static void stream_event_callback(pa_stream *s, const char *name, pa_proplist *pl, void *userdata) { @@ -387,7 +391,7 @@ static void stream_event_callback(pa_stream *s, const char *name, pa_proplist *p pa_assert(pl); t = pa_proplist_to_string_sep(pl, ", "); - pa_log("Got event '%s', properties '%s'\n", name, t); + pa_log("Got event '%s', properties '%s'", name, t); pa_xfree(t); } @@ -409,10 +413,10 @@ static void context_state_callback(pa_context *c, void *userdata) { pa_assert(!stream); if (verbose) - pa_log(_("Connection established.%s \n"), CLEAR_LINE); + pa_log(_("Connection established.%s"), CLEAR_LINE); if (!(stream = pa_stream_new_with_proplist(c, NULL, &sample_spec, &channel_map, proplist))) { - pa_log(_("pa_stream_new() failed: %s\n"), pa_strerror(pa_context_errno(c))); + pa_log(_("pa_stream_new() failed: %s"), pa_strerror(pa_context_errno(c))); goto fail; } @@ -440,13 +444,13 @@ static void context_state_callback(pa_context *c, void *userdata) { if (mode == PLAYBACK) { pa_cvolume cv; if ((r = pa_stream_connect_playback(stream, device, latency > 0 ? &buffer_attr : NULL, flags, volume_is_set ? pa_cvolume_set(&cv, sample_spec.channels, volume) : NULL, NULL)) < 0) { - pa_log(_("pa_stream_connect_playback() failed: %s\n"), pa_strerror(pa_context_errno(c))); + pa_log(_("pa_stream_connect_playback() failed: %s"), pa_strerror(pa_context_errno(c))); goto fail; } } else { if ((r = pa_stream_connect_record(stream, device, latency > 0 ? &buffer_attr : NULL, flags)) < 0) { - pa_log(_("pa_stream_connect_record() failed: %s\n"), pa_strerror(pa_context_errno(c))); + pa_log(_("pa_stream_connect_record() failed: %s"), pa_strerror(pa_context_errno(c))); goto fail; } } @@ -460,7 +464,7 @@ static void context_state_callback(pa_context *c, void *userdata) { case PA_CONTEXT_FAILED: default: - pa_log(_("Connection failure: %s\n"), pa_strerror(pa_context_errno(c))); + pa_log(_("Connection failure: %s"), pa_strerror(pa_context_errno(c))); goto fail; } @@ -493,12 +497,12 @@ static void stdin_callback(pa_mainloop_api*a, pa_io_event *e, int fd, pa_io_even if ((r = read(fd, buffer, l)) <= 0) { if (r == 0) { if (verbose) - pa_log(_("Got EOF.\n")); + pa_log(_("Got EOF.")); start_drain(); } else { - pa_log(_("read() failed: %s\n"), strerror(errno)); + pa_log(_("read() failed: %s"), strerror(errno)); quit(1); } @@ -530,7 +534,7 @@ static void stdout_callback(pa_mainloop_api*a, pa_io_event *e, int fd, pa_io_eve pa_assert(buffer_length); if ((r = write(fd, (uint8_t*) buffer+buffer_index, buffer_length)) <= 0) { - pa_log(_("write() failed: %s\n"), strerror(errno)); + pa_log(_("write() failed: %s"), strerror(errno)); quit(1); mainloop_api->io_free(stdio_event); @@ -551,7 +555,7 @@ static void stdout_callback(pa_mainloop_api*a, pa_io_event *e, int fd, pa_io_eve /* UNIX signal to quit recieved */ static void exit_signal_callback(pa_mainloop_api*m, pa_signal_event *e, int sig, void *userdata) { if (verbose) - pa_log(_("Got signal, exiting.\n")); + pa_log(_("Got signal, exiting.")); quit(0); } @@ -565,7 +569,7 @@ static void stream_update_timing_callback(pa_stream *s, int success, void *userd if (!success || pa_stream_get_time(s, &usec) < 0 || pa_stream_get_latency(s, &l, &negative) < 0) { - pa_log(_("Failed to get latency: %s\n"), pa_strerror(pa_context_errno(context))); + pa_log(_("Failed to get latency: %s"), pa_strerror(pa_context_errno(context))); quit(1); return; } @@ -588,7 +592,7 @@ static void time_event_callback(pa_mainloop_api *m, pa_time_event *e, const stru 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))) - pa_log(_("pa_stream_update_timing_info() failed: %s\n"), pa_strerror(pa_context_errno(context))); + pa_log(_("pa_stream_update_timing_info() failed: %s"), pa_strerror(pa_context_errno(context))); else pa_operation_unref(o); } @@ -753,7 +757,7 @@ int main(int argc, char *argv[]) { if (!(t = pa_locale_to_utf8(optarg)) || pa_proplist_sets(proplist, PA_PROP_APPLICATION_NAME, t) < 0) { - pa_log(_("Invalid client name '%s'\n"), t ? t : optarg); + pa_log(_("Invalid client name '%s'"), t ? t : optarg); pa_xfree(t); goto quit; } @@ -769,7 +773,7 @@ int main(int argc, char *argv[]) { if (!(t = pa_locale_to_utf8(optarg)) || pa_proplist_sets(proplist, PA_PROP_MEDIA_NAME, t) < 0) { - pa_log(_("Invalid stream name '%s'\n"), t ? t : optarg); + pa_log(_("Invalid stream name '%s'"), t ? t : optarg); pa_xfree(t); goto quit; } @@ -806,7 +810,7 @@ int main(int argc, char *argv[]) { case ARG_CHANNELMAP: if (!pa_channel_map_parse(&channel_map, optarg)) { - pa_log(_("Invalid channel map '%s'\n"), optarg); + pa_log(_("Invalid channel map '%s'"), optarg); goto quit; } @@ -835,14 +839,14 @@ int main(int argc, char *argv[]) { case ARG_LATENCY: if (((latency = (size_t) atoi(optarg))) <= 0) { - pa_log(_("Invalid latency specification '%s'\n"), optarg); + pa_log(_("Invalid latency specification '%s'"), optarg); goto quit; } break; case ARG_PROCESS_TIME: if (((process_time = (size_t) atoi(optarg))) <= 0) { - pa_log(_("Invalid process time specification '%s'\n"), optarg); + pa_log(_("Invalid process time specification '%s'"), optarg); goto quit; } break; @@ -854,7 +858,7 @@ int main(int argc, char *argv[]) { pa_proplist_setp(proplist, t) < 0) { pa_xfree(t); - pa_log(_("Invalid property '%s'\n"), optarg); + pa_log(_("Invalid property '%s'"), optarg); goto quit; } @@ -890,7 +894,7 @@ int main(int argc, char *argv[]) { } if (!pa_sample_spec_valid(&sample_spec)) { - pa_log(_("Invalid sample specification\n")); + pa_log(_("Invalid sample specification")); goto quit; } @@ -900,19 +904,19 @@ int main(int argc, char *argv[]) { filename = argv[optind]; if ((fd = open(argv[optind], mode == PLAYBACK ? O_RDONLY : O_WRONLY|O_TRUNC|O_CREAT, 0666)) < 0) { - pa_log(_("open(): %s\n"), strerror(errno)); + pa_log(_("open(): %s"), strerror(errno)); goto quit; } if (dup2(fd, mode == PLAYBACK ? STDIN_FILENO : STDOUT_FILENO) < 0) { - pa_log(_("dup2(): %s\n"), strerror(errno)); + pa_log(_("dup2(): %s"), strerror(errno)); goto quit; } pa_close(fd); } else if (optind+1 <= argc) { - pa_log(_("Too many arguments.\n")); + pa_log(_("Too many arguments.")); goto quit; } @@ -923,7 +927,7 @@ int main(int argc, char *argv[]) { if (mode == RECORD) { /* This might patch up the sample spec */ if (pa_sndfile_write_sample_spec(&sfi, &sample_spec) < 0) { - pa_log(_("Failed to generate sample specification for file.\n")); + pa_log(_("Failed to generate sample specification for file.")); goto quit; } @@ -943,16 +947,16 @@ int main(int argc, char *argv[]) { if (!(sndfile = sf_open_fd(mode == RECORD ? STDOUT_FILENO : STDIN_FILENO, mode == RECORD ? SFM_WRITE : SFM_READ, &sfi, 0))) { - pa_log(_("Failed to open audio file.\n")); + pa_log(_("Failed to open audio file.")); goto quit; } if (mode == PLAYBACK) { if (sample_spec_set) - pa_log(_("Warning: specified sample specification will be overwritten with specification from file.\n")); + pa_log(_("Warning: specified sample specification will be overwritten with specification from file.")); if (pa_sndfile_read_sample_spec(sndfile, &sample_spec) < 0) { - pa_log(_("Failed to determine sample specification from file.\n")); + pa_log(_("Failed to determine sample specification from file.")); goto quit; } sample_spec_set = TRUE; @@ -961,7 +965,7 @@ int main(int argc, char *argv[]) { /* Allow the user to overwrite the channel map on the command line */ if (pa_sndfile_read_channel_map(sndfile, &channel_map) < 0) { if (sample_spec.channels > 2) - pa_log(_("Warning: Failed to determine channel map from file.\n")); + pa_log(_("Warning: Failed to determine channel map from file.")); } else channel_map_set = TRUE; } @@ -972,7 +976,7 @@ int main(int argc, char *argv[]) { pa_channel_map_init_extend(&channel_map, sample_spec.channels, PA_CHANNEL_MAP_DEFAULT); if (!pa_channel_map_compatible(&channel_map, &sample_spec)) { - pa_log(_("Channel map doesn't match sample specification\n")); + pa_log(_("Channel map doesn't match sample specification")); goto quit; } @@ -983,7 +987,7 @@ int main(int argc, char *argv[]) { readf_function = pa_sndfile_readf_function(&sample_spec); else { if (pa_sndfile_write_channel_map(sndfile, &channel_map) < 0) - pa_log(_("Warning: failed to write channel map to file.\n")); + pa_log(_("Warning: failed to write channel map to file.")); writef_function = pa_sndfile_writef_function(&sample_spec); } @@ -998,7 +1002,7 @@ int main(int argc, char *argv[]) { if (verbose) { char tss[PA_SAMPLE_SPEC_SNPRINT_MAX], tcm[PA_CHANNEL_MAP_SNPRINT_MAX]; - pa_log(_("Opening a %s stream with sample specification '%s' and channel map '%s'.\n"), + pa_log(_("Opening a %s stream with sample specification '%s' and channel map '%s'."), mode == RECORD ? _("recording") : _("playback"), pa_sample_spec_snprint(tss, sizeof(tss), &sample_spec), pa_channel_map_snprint(tcm, sizeof(tcm), &channel_map)); @@ -1025,7 +1029,7 @@ int main(int argc, char *argv[]) { /* Set up a new main loop */ if (!(m = pa_mainloop_new())) { - pa_log(_("pa_mainloop_new() failed.\n")); + pa_log(_("pa_mainloop_new() failed.")); goto quit; } @@ -1044,14 +1048,14 @@ int main(int argc, char *argv[]) { mode == PLAYBACK ? STDIN_FILENO : STDOUT_FILENO, mode == PLAYBACK ? PA_IO_EVENT_INPUT : PA_IO_EVENT_OUTPUT, mode == PLAYBACK ? stdin_callback : stdout_callback, NULL))) { - pa_log(_("io_new() failed.\n")); + pa_log(_("io_new() failed.")); goto quit; } } /* Create a new connection context */ if (!(context = pa_context_new_with_proplist(mainloop_api, NULL, proplist))) { - pa_log(_("pa_context_new() failed.\n")); + pa_log(_("pa_context_new() failed.")); goto quit; } @@ -1059,20 +1063,20 @@ int main(int argc, char *argv[]) { /* Connect the context */ if (pa_context_connect(context, server, 0, NULL) < 0) { - pa_log(_("pa_context_connect() failed: %s\n"), pa_strerror(pa_context_errno(context))); + pa_log(_("pa_context_connect() failed: %s"), pa_strerror(pa_context_errno(context))); goto quit; } if (verbose) { 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")); + pa_log(_("pa_context_rttime_new() failed.")); goto quit; } } /* Run the main loop */ if (pa_mainloop_run(m, &ret) < 0) { - pa_log(_("pa_mainloop_run() failed.\n")); + pa_log(_("pa_mainloop_run() failed.")); goto quit; } diff --git a/src/utils/pacmd.c b/src/utils/pacmd.c index ac60a0bc..5ef57e3b 100644 --- a/src/utils/pacmd.c +++ b/src/utils/pacmd.c @@ -25,7 +25,7 @@ #include #include -#include +#include #include #include #include @@ -45,6 +45,13 @@ int main(int argc, char*argv[]) { + enum { + WATCH_STDIN, + WATCH_STDOUT, + WATCH_SOCKET, + N_WATCH + }; + pid_t pid ; int fd = -1; int ret = 1, i; @@ -53,6 +60,7 @@ int main(int argc, char*argv[]) { size_t ibuf_index, ibuf_length, obuf_index, obuf_length; char *cli; pa_bool_t ibuf_eof, obuf_eof, ibuf_closed, obuf_closed; + struct pollfd pollfd[N_WATCH]; setlocale(LC_ALL, ""); bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR); @@ -108,7 +116,7 @@ int main(int argc, char*argv[]) { size_t k; k = PA_MIN(sizeof(ibuf) - ibuf_length, strlen(argv[i])); - memcpy(ibuf + ibuf_length, argv[1], k); + memcpy(ibuf + ibuf_length, argv[i], k); ibuf_length += k; if (ibuf_length < sizeof(ibuf)) { @@ -120,38 +128,45 @@ int main(int argc, char*argv[]) { ibuf_eof = TRUE; } - for (;;) { - fd_set ifds, ofds; + pa_zero(pollfd); + pollfd[WATCH_STDIN].fd = STDIN_FILENO; + pollfd[WATCH_STDOUT].fd = STDOUT_FILENO; + pollfd[WATCH_SOCKET].fd = fd; + + for (;;) { if (ibuf_eof && obuf_eof && ibuf_length <= 0 && obuf_length <= 0) break; - FD_ZERO(&ifds); - FD_ZERO(&ofds); + pollfd[WATCH_STDIN].events = pollfd[WATCH_STDOUT].events = pollfd[WATCH_SOCKET].events = 0; if (obuf_length > 0) - FD_SET(1, &ofds); + pollfd[WATCH_STDOUT].events |= POLLOUT; else if (!obuf_eof) - FD_SET(fd, &ifds); + pollfd[WATCH_SOCKET].events |= POLLIN; if (ibuf_length > 0) - FD_SET(fd, &ofds); + pollfd[WATCH_SOCKET].events |= POLLOUT; else if (!ibuf_eof) - FD_SET(0, &ifds); + pollfd[WATCH_STDIN].events |= POLLIN; - if (select(FD_SETSIZE, &ifds, &ofds, NULL, NULL) < 0) { - pa_log(_("select(): %s"), strerror(errno)); + if (poll(pollfd, N_WATCH, -1) < 0) { + + if (errno == EINTR) + continue; + + pa_log(_("poll(): %s"), strerror(errno)); goto fail; } - if (FD_ISSET(0, &ifds)) { + if (pollfd[WATCH_STDIN].revents & POLLIN) { ssize_t r; pa_assert(!ibuf_length); - if ((r = pa_read(0, ibuf, sizeof(ibuf), NULL)) <= 0) { + if ((r = pa_read(STDIN_FILENO, ibuf, sizeof(ibuf), NULL)) <= 0) { if (r < 0) { pa_log(_("read(): %s"), strerror(errno)); goto fail; @@ -164,7 +179,7 @@ int main(int argc, char*argv[]) { } } - if (FD_ISSET(fd, &ifds)) { + if (pollfd[WATCH_SOCKET].revents & POLLIN) { ssize_t r; pa_assert(!obuf_length); @@ -181,21 +196,26 @@ int main(int argc, char*argv[]) { } } - if (FD_ISSET(1, &ofds)) { + if (pollfd[WATCH_STDOUT].revents & POLLHUP) { + obuf_eof = TRUE; + obuf_length = 0; + } else if (pollfd[WATCH_STDOUT].revents & POLLOUT) { ssize_t r; pa_assert(obuf_length); - if ((r = pa_write(1, obuf + obuf_index, obuf_length, NULL)) < 0) { + if ((r = pa_write(STDOUT_FILENO, obuf + obuf_index, obuf_length, NULL)) < 0) { pa_log(_("write(): %s"), strerror(errno)); goto fail; } obuf_length -= (size_t) r; obuf_index += obuf_index; - } - if (FD_ISSET(fd, &ofds)) { + if (pollfd[WATCH_SOCKET].revents & POLLHUP) { + ibuf_eof = TRUE; + ibuf_length = 0; + } if (pollfd[WATCH_SOCKET].revents & POLLOUT) { ssize_t r; pa_assert(ibuf_length); @@ -209,14 +229,14 @@ int main(int argc, char*argv[]) { } if (ibuf_length <= 0 && ibuf_eof && !ibuf_closed) { - pa_close(0); + pa_close(STDIN_FILENO); shutdown(fd, SHUT_WR); ibuf_closed = TRUE; } if (obuf_length <= 0 && obuf_eof && !obuf_closed) { shutdown(fd, SHUT_RD); - pa_close(1); + pa_close(STDOUT_FILENO); obuf_closed = TRUE; } } diff --git a/src/utils/padsp.c b/src/utils/padsp.c index dfa5aac2..882522c4 100644 --- a/src/utils/padsp.c +++ b/src/utils/padsp.c @@ -53,6 +53,7 @@ #include #include #include +#include /* On some systems SIOCINQ isn't defined, but FIONREAD is just an alias */ #if !defined(SIOCINQ) && defined(FIONREAD) @@ -459,15 +460,16 @@ static void reset_params(fd_info *i) { } static const char *client_name(char *buf, size_t n) { - char p[PATH_MAX]; + char *p; const char *e; if ((e = getenv("PADSP_CLIENT_NAME"))) return e; - if (pa_get_binary_name(p, sizeof(p))) + if ((p = pa_get_binary_name_malloc())) { snprintf(buf, n, "OSS Emulation[%s]", p); - else + pa_xfree(p); + } else snprintf(buf, n, "OSS"); return buf;